so, making music for LSDj is fun. but after a while you start to wish you could “play" the gameboy software as a musical instrument as opposed to composing music in its tracker style interface. that's where the LSDj keyboard comes in. the idea is, the keyboard sends messages though the gameboy linkport to LSDj. the commands that can be sent vary from playing/stopping notes or chains or tables, un/muting channels, in/decreasing octaves, switching instruments, navigating screens, and more.
here's what the LSDj wiki says about the keyboard...
Read: LSDj keyboard tutorial »
the nintendo ds is an awesome portable gaming system. i have the ds lite, its thin, weights under a pound, has two super bright backlit screens, pretty sweet integrated speakers, the classic nintendo plus d-pad, four front buttons, and two shoulder buttons. the bottom screen is touch sensitive, which makes for some awesome gameplay. the touch screen is sick, but a lot of people can be put off by it. so tons of games let your switch between the touch motion and d-pad motion.
Read: R4-DS »
today’s mod is for the original nintendo gameboy. if you want to get serious about chip tunes, whether your using lsdj or nanoloop, the sound quality of your instrument is a priority. the stock nintendo gameboy is equipped with a single headphone jack. and if you have ever tried recording anything from that, it sounds pretty bad. thus the prosound modification was invented to add a line out jack to the gameboy.
Read: gameboy prosound mod »
here we go again, another papervision3D demo featuring math permeated lines. this time im working with a classic piece of code known as the PQ torus. the vague idea is that you have 2 numbers (P + Q) that are used in the algorithm to define the knot. in general, given P + Q mutually prime, the line wraps meridionally around the torus P times and wraps the longitudinally around it Q times. i was having some trouble grasping exactly how this was going to be achieved, until i read this article on blackpawn’s website. he really breaks down the algo to a very simplistic level...
Read: PQ torus knot »
i just got clued in on a new project from one of the members of the cDc (cult of the dead cow), a notorious hacker group from way back in the l0pht days. the wave bubble is a self-tuning, wide-bandwidth portable RF jammer. an internal lithium-ion battery provides up to 2 hours of jamming (two bands, such as cell) or 4 hours (single band, such as cordless phone, GPS, WiFi, bluetooth, etc). the battery is rechargeable via a mini-USB connector or 4mm DC jack (a common size). alternately, 3 AAA batteries may also be used. self-tuning is provided via dual PLL, therefore, no spectrum analyzer is necessary to build this jammer and a single wave bubble can jam many different frequency bands...
Read: wavebubble »
a question popped up on the papervision3D mailing list the other day about using the lines3D class to trace a 3D object. i found the idea fascinating, so i whipped up this little demo to demonstrate how simple it actually was. i started out by creating a simple cylinder with a wide base and small top, and setting its visibility to false. then creating my lines3D object. finally in the render loop i create a new line3D that connects each vertice. by checking to see in a counter variable is less than the total object vertice count ((box.geometry.vertices.length)), and adding a new line3D if the counter is less than that, or deleting all the lines and starting over...
Read: tracing 3D objects with papervision3D »
we were discussing recursive algorithms and chaos theory at work yesterday. when one of the chemistry professors brought up the lorenz attractor. he was trying to draw one on the white board for about 10 minutes until i decided it would be easier to draw in flash, lol!
after a quick conversation w/ andy zupko about the new Line3D object, and my new CanvasView3D component for papervision, i made a sweet lorenz attractor!
the algorithm is super simple:
x1 = x0 + h * a * (y0 - x0); y1 = y0 + h * (x0 * (b - z0) - y0); z1 = z0 + h * (x0 * y0 - c * z0);