Glasslands is a small, DIY-feeling music venue with no dedicated lighting tech. As such, it was necessary to design a largely autonomous control system for controlling this 300-channel RGB LED lighting system so that their sound techs could select from a 'scenebook' of looks and modify only high-level parameters (lighter/darker, faster/slower, chandeliers or no, monochromatic or more complex color system, more/less saturated, more/less distinction between stage and house, more/less responsive to audio, etc.), freeing them up to run sound let the tubes run themselves.
The software has two primary elements to its GUI:
1) a low-level window in which users use modular number generators (constant values, LFOs, audio analysis, MIDI, or OSC) to modify basic parameters of how color is drawn onto the floorplan of the venue
2) a higher-level window in which users can modify mapping ranges and toggle venue-specific settings
The system is designed so that the sound operator can, at any time, load a 'scene' of 8 'looks' through which the system will randomly walk at a pace determined in part by the user and in part by musical analysis. The operator can also, at any time, 'lock' any parameter or mapping setting such that the preset system cannot override that particular setting.
This way, the sound guy could come in and say 'OK it's a singer-songwriter tonight, so I'm gonna call up scene 21, which has some mellow looks. I'm also gonna turn on the center chandelier (over center stage), and lock it on to keep attention there. I'm gonna dim the house and lock that. I'm gonna restrict it to the blue range and lock that. I'm gonna keep the lights pretty dim and lock that. The rest I'll let the system run.'
Or maybe, 'It's a dance party so I'm gonna let the color range be wide, turn off the chandeliers (let them be controlled by other color generators), make the stage and the house act as one space, and lock all that in. For the rest I'll call up scene 31 because that has some good dynamic dance-party looks.'
Everything in this software is built in Max, MSP, and Jitter. It draws color to slabs in GL space with a custom gradient shader. It uses the built-in preset system to store and recall looks. It uses some custom audio analysis (built in MSP) and custom color picking from matrix space (built in Jitter).
Due to the zig-zagging, haphazard, fail-early-and-often dev process, it would have been nearly impossible to do this project in another environment.
Thanks to the folks on the forums (Vade) as well as Jake Rosenthal, Rami Haykal, Jason Fellows, Eileen Tang, Trevor Hufnagel, Joshua Thiel, Cameron Hull, Rochelle Fafone, Noam Foxtongue, Alan Yaspan, Francisco J Casablanca, Guillermo Echevarria, Chuck Ludwig, and anybody else I forgot in the credits.