Haven’t posted in a while but I keep up with every post through email updates. Very excited for the direction of this library and some of the projects I’ve seen are mind blowing.
Back in March I was approached by the rock band Boston and asked to design an audio reactive drum kit for them: https://youtu.be/aQiT6eR48F4
How this happened is beyond me… I really was just in the right place at the right time and heard a guy yelling over the phone about audio reactive lighting. Turned into a pretty legit gig.
The client didn’t want cymbals or snare lit. Strange, I think it would have looked great in this bit, especially since the drummer is mostly playing the kick, snare, and ride.
Not designed by me is the lightning around the kit and on the guitar/bass.
The system uses a Teensy 3.2 running FastLED parallel output to 144/meter ws2812b strips. Most drums had two strips, so I was working with about 2000 pixels and a theoretical max amperage of 120 amps, but since the artists didn’t ever need the kit to be all white, amperage really never would exceed 60A. Absolutely had to use parallel output because without, it took about 16ms to write all LED data. I think that math is correct… either way, if a drum was hit during that time, it wouldn’t register. Tom Scholz would not approve. Parallel output increased the framerate from ~17fps (yikes) to ~ 60fps. Still not amazing? But it did the job.
Each drum lights up a specific color (green, white, and magenta). The system is capable of much cooler effects, but this is what the client wanted. One really cool effect I wrote up that ultimately wasn’t used was one in which “drops” of random widths at random locations across the entire kit would be drawn at random intervals using EVERY_MILLIS_I. No media documentation of that, but it was meant to be an end-of-song finale kind of effect.
I designed a custom PCB to mount the teensy on. Each drum has its own dedicated shrouded header that sends LED data and receives piezo (vibration) sensor data. I used DDrum Acoustic Pro triggers mounted to each head, and that AC signal runs through a full wave rectifier on the board. Full wave rectifier converts the AC signal (positive/negative voltage generated from the flexing of the piezo elements) into a teensy-acceptable DC voltage. Resistors had to be in the 10MOhm range for setting hardware noise thresholds.
I wanted the band to be able to adjust noise thresholds/change colors on the fly if needed, so I designed a fairly simple user interface to go along with the system. There is a button, CUE+, that increments a temporary variable, and a CUE- that decrements that temporary variable. When the GO button is pressed, it sets the main switch case variable to that temporary variable. This lets the user switch through a menu, and trigger that effect when desired.
REALLY tough was designing a calibration screen… when CUE+ and CUE- are both held for about 2 seconds, it allows the user to adjust each sensor’s noise floor. Some drums would vibrate enough to trigger adjacent drums, so this was a necessity. The code for this is VERY messy! But it works - check it out.
There is also an OLED screen reflects all of these states. When turned on, the system displays the band’s logo, followed by my signature.
This was… really tough. I mean it had to be VERY reactive, low-profile, and road-worthy. Think it came out pretty well though and I couldn’t have done it without this community. PLEASE rip this project apart if you have time. Tell me what could be improved, tell me what you like/don’t like, etc.
Here is the code: https://github.com/drewandre/Boston-LED-Drums
Here is video of the user interface (not documented is the calibration screen) https://youtu.be/8AXHwLWNXyw
Included in my github are photos of the PCB and miscellaneous photos of the kit.