Hi there! This is going to be blog for Matthew Dierker and Brady Salz as we document our massive freshmen year light project.
Much like videos seen across the internet, syncing music and visual things areas generally pretty awesome. This could be due in some part to both our extensive history as both trumpet players (accounts for the need to always be arrogantly displaying something awesome) and as marching band members (accounts for the need to synchronize any and everything). That second video was particularly inspiring for us, to the degree we wondered if we could replicate that ourselves. Maybe not on that massive scale, but on something similar. Brady has had some small experience with the basics of musically synchronized lights, but this would definitely a much larger challenge. On Matthew’s end, being to control and communicate to all these strands of lights automatically is a massive job in Java as well.
First initial problems:
- Quantity of Lights – Obviously if one intends to light up a large area, one needs a lot of lights
- Cost – Apparently spreading the Christmas Spirit isn’t free? Who knew!
- Data Control – How do we control which songs do what?
- Location – I mean, these lights do need to go somewhere
The first problem is solved rather in an interesting manner. Rather than try and directly buy approximately a gazillion LEDs as we’ve used in previous hacks, we’re going to try and circumvent that problem by use of standard, Walmart brand Christmas lights. They’re still LEDs, but they’re all wired up in parallel and have pre-programmed patterns built in. Now the hardware hacking fun comes into play. We get to deal with AC sources, rectifiers, filters, and a whole assortment of stuff Brady has yet to learn or understand.
We got real lucky on the Cost end of things, as the majority of this project is now being funded by IEEE as a SEED project. Our proposal was accepted, and now we’re on to the fun part: Making it!
[Next part entirely written in first person as it's all Matthew's]
The software end is going to be rather elaborate as well. I plan on creating a complete suite of software to power this project. The first program I’m thinking of is modeled after Audacity, where you’ll have multiple tracks controlled in a linear, time centric interface. Then you can control what pattern a channel is on, brightness, etc. in sync with the music (also similar to something like Adobe Premiere.) When I write the software, I’d like to write it to be very expandable, so there’s no reason to limit the number of channels it can control, or even limit it to this project.
We plan on starting in just one room, but with hopes of expansion into other rooms and larger areas. Therefore, I’ve based technical details off of that expandability. I’d like to have everything run off of one server, in this case my second laptop for ease of use. That server is responsible for two software aspects of the project. I’m keeping these somewhat separate, not for the end viewer who will hear music and see lights in sync, or for the end user developing a light sequence, but in the background. For the music, I’m going to setup a live stream system you can get into from any computer (and quite possibly any phone as well, but that’s a few steps ahead.) Therefore, you could have multiple speakers in one room, or even have no speakers in one room. The point, though, is that it does not require a microcontroller connected computer for audio. If we were, for example, to do the courtyard in our dorm, why not allow anyone to listen from the computer they already have in their room? (In addition to the speaker we would likely have in the lobby.) For the microcontroller (most likely an Arduino board), I’d like to connect it via Ethernet to the wall, where it will automatically ping the server for commands such as “set channel 3 to pattern 14”. Expansion then, for example to another room, is literally as simple as plugging in an Arduino and hooking up the lights, and all it will require the viewer to do is keep a speaker on.
We’re starting off with just one strand, messing around with the basic of hardware communication. From there we move on to multiple strands in Matthew’s room, and from there our dorm hall. If it all works out as planned, we may have a chance to present a huge scale display at EOH this spring!