DrumPants are a wearable set of pants and gloves that enable the wearer to produce drum sounds by hitting various parts of the pants with his hands. The wearer thusly becomes a cyborg musician, his body assuming the roles of both player and instrument, allowing for spontaneous electric hambone solos or even collaborations with other musicians in a band setting.
In order to make a pair of DrumPants, you need:
- A MidiTron to convert drumming signals to MIDI.
- A General MIDI instrument and amplifier and speakers (I gutted my cheap Yamaha PSR-200 keyboard).
- Cases, battery holders, batteries, circuitboard, 10 10k, 2 470k and 4 100k resistors, 2 0.1uF, 2 0.01 uF, 2 1000pF capacitors, 2 IN4148 diodes, 2 555 timer IC chips, 2 piezo buzzers, conductive fabric, safety pins, other stuff...
- Pants (I used some HUGE Dickies shorts to facilitate easy-access drumming.)
Taking Apart the Keyboard
You'll need a MIDI instrument to play the drum sounds. The easiest way is to take a cheap MIDI-capable keyboard and gut it, then place all the guts in a smaller box so you can carry it around with you in a backpack.
Once you have your MIDI drum synth, you need to hook up the MidiTron to the different sensors. The easiest way to make a sensor is to have a ground wire connected to the glove, and the sensor wire on the pants hooked up to the MidiTron (as active-low, meaning you must put a 10k resistor between the sensor wire and +5v.) I found ribbon cable to be very helpful here.
You will also need to debounce the sensors to remove extra drum hits. An easy kludge is to put a 0.1uF capacitor between each MidiTron terminal and ground.
Piezos as Acoustic Triggers
The piezos are used as acoustic toe-triggers for the kick drum (can't live without that double bass!). The circuit used to hook them up to the MidiTron is a bit more complicated (thanks to Peter Elsea for the circuit diagram):
Bringin' it Home
Once the sensors are connected, put everything in boxes as separate modules. Then connect the pants to the MidiTron, the MidiTron to the MIDI synth (Yamaha), turn everything on and start whalin'!
For less-mobile performances, you could skip the portable Yamaha and hook the MidiTron directly up to a computer. Then you can use Max/Jitter to play drum samples and trigger visualizations on a huge screen. You could also connect a MIDI drumset in between the pants and the computer, if you don't want to deal with sampling in Max (I didn't. Yay Procussion!).
I programmed a quick Jitter patch that creates randomly colored spheres in random sizes at random places on the screen and twirls them around. Due to the lack of hardware in my laptop and the general lack of OpenGL speed in Jitter I programmed the spheres to explode and disappear in a white cloud of smoke like ninjas every time I hit the crash cymbal. This way the spheres won't build up and slow your framerate.
Note that in OSX 10.3, the glcolor command doesn't work and you must supply a glmaterial and corresponding lighting to color the spheres. In OSX 10.4, the opposite is true and you must use the glcolor command or all you get is grey. Weird.
Download the Max/Jitter Visualization patch (7KB Max Binary for OSX 10.4)
The Future of DrumPants
Ideally, a cyborg needs a type of virtual proprioception of its artificial parts. With any cybernetic interface, a question of feedback comes in: how does the user know where to hit? A visual response when the user triggers a drum, like a perimeter of colored LEDs outlining the hit area, would offer spatial as well as temporal feedback, bringing the virtual drums further into reality.
For the sensors, patches of conductive fabric spread over the legs will offer a greater hit area than the safety pins. Connecting them with snaps is convenient and would make it easy to replace a worn or torn sensor patch. This will help overcome everyday drummer abuse.
It would also be fun to employ a set of metal drumsticks for more precise drumming. Since the drumsticks are conductive, holding them with the gloves is just as effective as the gloves themselves.
As for the software, I plan to make a sequence trigger-system, so you could activate a melody line by hitting a certain sensor, or perhaps a bass line could be articulated through sequential kick drum hits.
Also, the visualizations should be improved. I was going to add effects to the basic spheres, but as it turns out rendering OpenGL to a Jitter matrix is extremely slow, making anything but the basics pretty much impossible. Perhaps a more spatial visualization that virtualizes locations of specific drum sounds would be more interesting, or going the other way with a completely abstract connection between drum hit and visual effect would be in order (like a movie playing that was subtly warped by each cymbal crash or something).