...but this video gives a brief demonstration of the Ghetto Drum System that I built several years ago, and I just recently added MIDI over USB.
The sounds you hear are from a pretty sizable collection of samples ripped from (mostly commodity) synthesizers and played horribly by me in real time.
The Ghetto Drum is triggering MIDI into Pure Data (Pd) in order to play the samples, and the Dickhole Keypiss controller sitting on top of it is used to do bank programming and selection. Audio is routed out of the cheap-o netbook and into an even cheaper guitar amplifier.
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.
I built this little midi controller to trigger samples and control a few Pd parameters:
It's based on an old touchtone telephone keypad, a rotary encoder, a two digit LED display, and a USB-based AVR breakout board (the Teensy++). The PC board was hand-etched at home, and it's mounted in a solid white, repurposed jewelry or makeup box, purchased at the Goodwill.
Click the above to view more images, read the brief technical spec, and to download the code and circuit/pcb design artifacts.
I've mostly finished the next phase of the kolpxnty board -- driving the thing from midi over usb from apps like pd (pure-data). In the above clip, a braindead pd patch is sequencing the bowels of a Barbie telephone children's toy without any additional circuit bending bonus points. My video recorder died, so the video was recorded in near darkness on my phone ("Sorry folks!").
The next phase is to see how it can switch in circuit bent components (pitch down resistors/caps, for example) and to shrink the board size before having it fabbed.
In the last week or two I've been doing some of the smallest soldering I've ever attempted.
It all started with the KOLPXNTY board I've been designing and prototyping. I won't dive into detail here (maybe later!?), but the basic goal is to trigger a fairly large number of circuit bent devices from a networked computer.
I'll put up a documentation page if/when it's more relevant.
Although this certainly not rocket science, it's certainly the most complex 2-sided surface mount board I've attempted to design. Briefly, there are a few buses, a lot of traces, and a shitton of vias (for my amateur hand anyway). I soldered down the teeny LEDs and 6 small SMT chips and the bypass caps and resistors and rested confident in knowing that even though the board was hand-ironed and soldered haphazardly, that it was good and efficient and tight.
Then I decided to finally build out the benito kits that I scored from Dorkbot Don a month or longer ago.
Let's be clear -- this shit is pretty damn small. It's not exactly microscopic. It's still hand soldered, but wow, it's really tight. The TQFP part is really hard not to bridge, but the braid will save you. The LEDs are really light and challenging, but totally doable if careful. The remainder of the SMT parts (caps and resistors mostly) are surprisingly fun to mount and actually save you the trouble of cutting those long leads (like on thru-hole parts).
I built two of them and although I managed to ruin one of the LEDs on one of the boards, I have been able to confirm that they're both functional.
Don has really done some great and amazing work here!
Let's be absolutely clear: He's designed and built us a cheap and readily available platform that can act as a usb-to-and-from-serial bridge, an Atmel programmer, or even more generally, a really great cheap and open platform for USB+AVR hacking. Wanna control a servo? Sure, this can do it! Wanna read from an SPI sensor? Sure, this can do it too!
It's still probably in need of some general purpose cross-platform code and reusable modules, but what a great small, cheap, and efficient platform on which to build computer-enabled projects! It think it was nearly ten years ago that I read about the death of the serial port and the future of this newfangled USB thing.
It was a hobbyist nightmare. How were (are?) we going to deal with the insanity? Other than the overpriced FTDI chip (not to fully knock it -- that chip is great), the benito is the first real usb platform that does what we hobbyists kinda want. Granted the software has to be there to support it -- and it will follow soon. Pay attention. :)