I am in the midst of creating a new piece for the Mount Holyoke College Symphony Orchestra for their April 1 & 2 show: Metamorphonics. Also on the show are two of my favorite works for orchestra, Einojuhani Rautavaara’s Cantus Arcticus (for orch. with taped bird sounds) and John Adams’s Fearful Symmetries.
My work — GreyNoiseLitanies — plays with the line of separation between the analog and the digital worlds of sound. It explores orchestral color as filtered through and augmented by laptop, primarily through large blocks of varying densities, sampled and regurgitated by my own granular synthesizer (written in ChucK). Creating the piece has required not only extensive coding, but also constructing a USB button to communicate with the laptop and modifying a turntable to increase the range of speeds it is capable of rendering.
Making the Button
Some details about the button, since it was so fun to make and there may be other folks out there hoping to make a similar item.
- The actual button mechanism itself — available from adafruit and is listed as the “Massive Arcade Button with LED – 100mm Red.” It’s sturdy and even includes a nifty LED light that makes the whole thing look like HAL from 2001. At the time of my writing, the cost was about $10.
- USB keyboard — an old thing I had lying around. It was nothing fancy and I had no qualms about disemboweling it.
- 2x4s and ≈3/4″ plywood
- black spray paint
I had a bunch of scrap lumber lying around from another project: The 2x4s were already cut to an appropriate size, so all I had to do was trim the ply and screw and glue it all together. A few coats of black spray paint help to hide any sloppy carpentry. [see photos below]
I drilled a hole for the button with a spade bit and countersunk with a slightly larger spade bit.
Dismantling the USB keyboard was a little involved, but a screwdriver or hacksaw should get you through most models. (BTW, this will destroy the keyboard.) Depending on your model, you should find a set of contacts connecting to the various keys. When a key is pressed it completes a circuit (or circuits) that can be recognized by the microcontroller as a unique keystroke. I wrote a simple ChucK script to listen to the USB keyboard and spit out the character codes as they came in. I was looking for a character code that did not correspond with anything that the computer would recognize as input, i.e., I didn’t want any unexpected behavior while I was using the button — I just wanted the computer to ignore it. Through trial and error I found a combination of contacts that worked perfectly. I soldered a lead onto each contact and soldered the other ends to the button contacts. So, presto, when the button is pushed, the zombie USB keyboard sends a message to the computer which I can listen for.
I also connected a 9V battery to the LED with a little kill switch. This isn’t required to make the thing work, but it looks nice and is not connected to, nor will it foul up, the functioning of the system.