Knee(Audio)Pads
electronic drums for the average man
concept
The Knee(Audio)Pads are knee pads made for people like me, who are always drumming and playing beats on their knees. This device is a wearable MIDI controller, so the beats played can be mapped to a set of sounds on the computer and the user can make a variety of different songs and percussion effects in a much more natural way than using a keyboard controller or finger pads.
initial ideas
The pads will be made out of pressure sensors, so that the user can send a note and a velocity signal to the computer at the same time. The harder you hit the pad, the louder the sound will be. The knobs will be made out of potentiometers and will be used to control general factors of the signal, like pitch bend and modulation. All the feeds will be connected to a Basic Stamp from the Knee(Audio)Pads, which will then convert them to MIDI signals to be sent to a computer, where the user can configure a drum set or any other instrument in the music creation software of his/her choice.
current status
production details
Building the Knee(Audio)Pads was a lot easier than I expected it to be. There were a few surprises, like having to buy a MIDI interface to integrate in the circuit because I could not send the MIDI signals directly from the stamp to the computer through a USB port. Apart from that, everything hardware-wise was pretty simple; it's just buttons and resistors and a lot of wire. As for the pad themselves, I quickly realized that I cannot sew for my life and I was lucky enough to get help from Christine Meimari (my mother), who did most of it.
On the other hand, thinking of the algorithm and writing the code was not very straightforward. The biggest challenge was getting many sounds to play simultaneously. The stamp cannot multitask, so I had to simulate a threaded environment using a lot of GOTOs and booleans. The way it works is that each possible note has flags that indicate if its pad has been pressed, if it's playing right now and how much time is left for it to play. Everytime a pad is pressed, the note is set to ON and the program goes back to check if more pads have been pressed. It also keeps checking if playing notes are ready to be turned OFF and turns them OFF when it's time. Finally, it also checks if the pitch bend knob has been turned so that it can send the appropriate signal. All these subroutines require a lot of variables, and I actually ran out of space in the EEPROM. I was able to reduce the number of variables and assign them to smaller types (e.g. NIB instead of BYTE), and it works fine now. I just don't think I'll be able to add many more features, and that's partly why I did not really bother adding the second control knob.
further developments
I will definitely keep working on this project until I get something very close to my original concept. It is the first physical computing project that I make that is so successful, so it would be a shame to stop at this point. Here are a few tasks that have to be done to achieve this goal:
* Find a way to attach all the components together in a neat, tidy, and aesthetic package
* Make the pitch bend algorithm more reliable
* Optimize the code so that it runs faster and can accept more features
* Add another knob for modulation (or any other control)
* Do more research on pressure sensors until I find an adequate type for
the pads
* Make sturdier pads with a bigger "live" surface
Knee(Audio)Pads is licensed under the CC-GNU GPL.