The project is standing on the shoulders of two other hacks. First, this project hacked an easy button into a switch for a garage door. Second, Dave Merrill, who I am involved with in the EMI (Experimental Musical Instruments Workshop) at MIT (see inventmusic.org), had taken apart a keyboard to create footpedal for the ctrl, shift, and alt keys for use when his arm was in a cast. His project details are here.
The motivation behind this project was a performance called Mandala at SIGGRAPH 2006 ( video clip ) as part of their electronically mediated performances series. Six musicians sat around a circle projected onto the floor that gave instructions to each individual about what and how to play. A computer program generated these instructions and therefore lead the improvisation of the group. Foot switches were needed so that the musicians could communicate with the program (e.g., when the sheet music should be scrolled, voting for song changes, etc.). The Mandala program was written in Flash but future projects will use Pure Data (PD), Java, and other languages. All that is needed is the ability to programmatically read input from a keyboard.
About one and a half days was required to complete this for someone who had never soldered before (thanks to Ben Vigoda, the main instigator for the Mandala Project, for lessons and helping me figure out the details of the electronics).
Step 1: Hack the Easy Button
First, the existing connections are desoldered from the location shown in the photo and as explained the the links above. Then two wires are soldered at the described positions which was connected to a 1/4" mono jack.
Step 2: Map the USB Keyboard
I found the numbers 0 to 9 and traced them to where they were connected to the circuit board. Each number/character is mapped to two inputs on the circuit board, so when that combination is switched, the keyboard sends the corresponding character to the PC.
Step 3: Create USB Connection Box
Wires need to be soldered onto the 1/4" jacks. The other end of these wires will be soldered to the locations on the circuit board that we mapped in the previous step.