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 Knee(Audio)Pads will consist of 6 pads and 2 control knobs distributed on the user's legs:
* 3 pads on the right knee, 1 for the thumb and 2 for the other fingers
* 1 pad and 2 knobs on the left knee
* 1 pad on the back of the right foot
* 1 pad on the front of the left foot

This configuration was created according to the way that I drum on my knees. My right hand is the one doing the more complex movements while the left one just keeps the beat, so the right knee pad has more pads than the left one. As for the feet pads, for some reason, I tend to use the back of my right foot and the front of my left foot when I play beats, so that's how I am setting up the pads.

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

The Knee(Audio)Pads are fully functional but there are a couple of differences with the original concept. First of all, there is only one control knob on the left knee (for pitch bend) instead of two, simply because I ran out of time before adding the second one to the circuit and coding its function. The second difference is that I did not use pressure sensors, but regular pushbuttons, on each pad. The reason for this is that I did not find adequate sensors for what I was trying to do. I needed sensors that were very sensitive, that had a fast response time, and most importantly, that were not too expensive. I could not find anything that met all three of these conditions, so I opted for pushbuttons. I don't think the difference would have been very noticeable with pressure sensors since the beats are played so quickly. In fact, it probably would have slowed down the processing, which would have slowed down the response time.

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

back

CC-GNU GPL
Knee(Audio)Pads is licensed under the CC-GNU GPL.