Project Rudolph. Part 1

For as long as I can remember, I've always had an unusual interest in musical lightshows.  For those who don't know, I am referring to a light display that flashes lights to music, usually popular around Christmas time.  I remember when I was in university, I told myself every Christmas season that I would build one for the house we were renting, but I never got around to it.

Earlier this year I had purchased a 0/4/4 phidgets relay, to build my Build Status lamp.  Now that I had the parts, and a little bit more free time, I decided to finally put together a light show.  Here are the results: http://www.youtube.com/watch?v=euYSeCEecR4  The clicking you hear in the background is the switching on/off of the physical relays.

Like I mentioned earlier, the lights are controlled by a phidgets relay, and the relay is driven by a groovy script, with a little regular old java mixed in for the midi processing.  Right now, my setup only works with midi music. This is because a midi file is pretty basic, and is the easiest and simplest to be processed.  It contains a series of events, indicating whether a note on a certain channel is either on or off.  What I do in my script is read these events, and when a note is on, I turn a relay on, and when a note is off, I turn the relay off.  Since I have 4 relays, I take the channel number reported in the midi event, and perform a modulus operation on it, to ensure it is mapped to one of the relays.

For part two, I want to make the whole setup interactive, controllable live by anyone over the internet. To achieve this I'm planning on writing a web based frontend that allows people to submit midi files to be synchronized with my lights.  So if this interests you stay tuned...

On a related note, this kinda sickly looking fake tree I got from Wal-Mart sure makes me miss the real tree that my parents get every year back home on the farm.