Building a MIDI-Controlled Light Show via Arduino, Part One
Professional stage lighting is big, heavy, expensive, and complicated.
Then again, professional album creation used to be that way too- you’d pay session players, spend $1,000 an hour on studio time, and even more on artwork and CD replication. With that in mind, I wanted to figure out how to create effect lighting (think flashy colors, not flood lights) on the super-cheap for my Coffee Bunker set and on-stage performances.
What I Wanted To Accomplish
I pride myself on a lightweight, easy-to-travel setup. There are only two of us on stage and we rely on a convention’s in-house A/V crew. I try to keep our load-in to less than half an hour and setup/sound check to an hour at most. Keeping my ship this light and maneuverable was the #1 priority.
What I needed was some way to control LED strip lighting from my on-stage controls (which are all MIDI-based). In theory, I should be able to hit a foot switch in the middle of a song and have the LED’s flash with the thunderclaps from “Let It Rain“, or pulse in various colors to the exact tempo we’re playing, or glow bright red when the ship is under attack. That sort of thing.
My Way or The Proper Way
Effect lighting is usually controlled by a system called DMX. If you’re familiar with MIDI, it’s kinda like that… only specifically for stage instruments (lights, lasers, fog machines, etc.) It’s an industry standard, but basic lighting controllers start at over a hundred bucks and they’re usually 2- or 3-U rack-mount hardware. I fly to gigs. The last thing I want is a big rack unit to put in the “gentle” clutches of the TSA.
Enter the Arduino. In a nutshell, it’s a tiny computer running on a very basic programming language. You hook things up to the available pins and the little CPU either senses voltage coming in or controls voltage going out. That’s it.
And it’s about $25, shipped.
Add onto that a pre-made MIDI interface like the MIDI Shield from SparkFun for another $25 and you’ve got yourself a computer that can talk to your music setup. Sure, you’ll need to know a little bit about soldering and programming, but this is the stuff they give 8th graders to teach them about electronics. You’re as capable as an 8th grader, right?
So the basic hardware build is something like this:
- Solder the parts of the MIDI Shield (buttons, jacks, knobs, stackable headers) onto the board.
- Shove the MIDI shield’s headers into the corresponding pins on the Arduino
- Connect my on-stage gear’s MIDI Out to the Arduino’s new MIDI In
Why Not DMX?
If you’re familiar with all this stuff, you may be wondering why I didn’t just get the DMX shield so I could use the industry standard.
DMX lighting instruments themselves tend to be heavy and bulky, not something you can literally roll up on a spool. They’re much brighter, but I don’t need front-of-house lighting, just some on-stage accents. Also, that still wouldn’t solve the problem of getting my Mainstage MIDI setup talking to the Arduino. Rather than deal with two shields and expensive lighting hardware, I’d rather control the lights directly from the Arduino and keep things small.
The MIDI shield has a couple of LED’s built right into the board, so you can start testing right away (GladOS would be proud). Eventually this could lead to all kinds of programmable effects, like animatronic robots playing bass for me. I’ll get into the soldering details in Part Two, but this is enough for today’s write-up. Back to making music!