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.