Sat Jun 05 2010 23:38:13 GMT-0700 (PDT)
So Paul hooked me up with a Teensy++ with a couple bad pins a few months ago and I ended up putting it to good use by retrofitting my Ghetto Drum system in order to support MIDI over USB. The project page has been updated and provides a few more details about the Frankenstein job. I pulled open the old SyQuest case and unmounted the existing circuit board. After hacking at it with the Dremel for some time, I was able to turn the board sideways to make room for the new Teensy board. I mounted this new Teensy in the upper back and made a ghetto faceplate that allows the mini USB connector to poke through. I mounted the Teensy on a small piece of perfboard and made some super ghetto wooden standoffs. I wired 10 pins from the Teensy over to the existing PIC board with wire-wrap wire: 2 power lines and the 8 trigger points. On the legacy side, I decided to solder the connections right to the pins on the PIC chip itself. Whatever works! This change allows the whole mess to be powered by USB when pluged in. The legacy PIC board maintains its old function of reading the triggers and converting the data to RS232, but more importantly, the PIC toggles the trigger LED whenever a pad is hit. :) On the software side of things, I leveraged Dean Camera's LUFA to build some firmware that allows the Ghetto Drum to show up as a USB MIDI device. When plugged in, the device will show up with a clever name and show itself to the host computer as a USB audio/MIDI interface device. When the triggers are hit, the Teensy sends note on/off MIDI events on channel 1 (zero based). In order to make some sounds, I built a fairly involved Pd patch that receives the MIDI events and can trigger drum samples from a gigantic library of synthesizers. I used the Dickhole Keypiss with Pd to program different patches and assign samples to trigger channels. After the integration was complete, I ended up demonstrating the whole shebang one Monday night at Dorkbot in Portland. I hope to have a demonstration video up within a few days.