Paul and I are are friends with Le Bonk, and wanted to help make their live set a little more flashy. For the track "Please Flash Boobs" Virgile and Paul came up with the idea of having 3 light-up stencil boxes spelling out "Please", "Flash" and "Boobs" that would light up in line with the chorus' words. After an initial bout with some semi-off-the-shelf solutions, I lobbied to throw in some AVR MIDI decoding and a power triac card from Futurlec to help automate the task. The original idea was to sniff the MIDI signal, and correlate the light-up boxes' light pulses with the samples being played. We eventually decided to dedicate a seperate MIDI channel to the box, thus considering it as a separate track. There is a good overview of the MIDI protocol here if you want to delve into the code.
I decided to go with the following electronics: A standard Arduino Uno (my pure avr-gcc days are over, arduino is just too easy). A power triac card from Futurlec (here). A very don't-do-this-at-home-simple MIDI hookup without an optocoupler (I know, I know). A big grey plastic electricalbox (very classy, IP-something, and only ~15eur at Castorama).
The three light boxes are rectangular boxes put together from some plywood, with one face left off where we cardboard silhouette of the words we want to flash. We currently have a wooden front for "Please", "Flash", and "Boobs", but we can easily swap out the words for other lyrics. We originally tried the project with a 12V power transistors, but finding a 15A-12V power supply was a pain, so the TRIAC card really saved the day allowing us to use mains power directly, and therefore standard lightbulbs.
I've thrown the code up here, it's just a single .ino file, that I compile with the greate arduino-make package. I keep the hardware serial for debug, and run all the MIDI on using SoftwareSerial. The general idea is that you sniff the MIDI port, when you see a Note On signal coming to your specified channel (hard-coded) then bring on note's corresponding TRIAC on the power controller. I believe the current configuration keeps the light on until a LightOff signal is sent, but the code is pretty straightforward so feel free to change the logic around.