Introduction: USB Midi Foot Pedal and Drumkit

This is a midi foot pedal.
It has a whole bunch of features and is expandable for even more.
The main features are set in three modes.

Mode 1. Midi control assignments. I use these in Logic to do anything from using mobius as a loop pedal to controlling a range of guitar effects or start/stop/record buttons... Logic is easy to assign.

Mode 2. Midi note assignments. I've set this up in the Key of C 7. The buttons produce bass notes which I wanted so that I could play bass tones along to my music, but it could be coded to any key. I gave it the 7th note because, well, I had an extra button and it seemed a good use of it.
I also programmed a button to transpose the key up, a button to transpose the key down, and a button to make it a minor key. The key that it is changing to shows up in the serial monitor. Smart people could find a way to get it writing that on a screen.

Mode 3. Drum kit. I once owned an electronic drum kit and one of the pads was broken so I opened it up to have a look. To my surprise, I found that it was incredibly simple. Basically a piezo buzzer attached to a jack. So I created inputs for some piezo drums because I had some spare Analog inputs on the teensy and I had since sold my electronic kit.

I'm not going to go into a heap of detail with this tutorial, but I am going to refer you to a bunch of amazing tutorials on these ideas to help you find your own style when creating your controller.

The first reference goes to this guy who tells you everything you need to know about teensy, arduino coding, soldering and a whole heap more in his incredibly detailed instructable.

This guy had the same idea as I did and he made himself a cool pedal that is well worth exploring.

Step 1: Make a Plan and Explore

The first thing you want to get doing before making a pedal is to explore what you want to control and how you want to control it.

Put quite simply arduino code works pretty much like this:
If (this thing happens) {do this thing;}
and the possibilities are quite endless. You could have flames shooting out from under you every time you pushed a button if you wanted. You could control your effects with anything from the amount of alcohol in your breath to the color of the stripes on your socks.

You just have to plan it, buy the components and study how they each work. They don't have to control midi either, you can control anything from the lights in your house, to the stereo in your car. You just need a plan, the code, and the parts.

I wanted to make a midi pedal because I wanted to be able to control guitar effects and mobius looper in logic.

Step 2: Figure Out How You Want to Do It

This is my plan.
I've drawn it all up so that I remember what pins are attached to what buttons and I don't get incredibly lost in the process.

I bought a teensy and I made a bunch of buttons out of dowel by attaching ground to a metal plate and attaching pins to a screw on the bottom of the dowel. I had an elastic band pull the dowel back up and I had made 8 momentary pushbuttons out of junk. (I later replaced them with real ones because they were a little unreliable). The whole project grew from there.


Then I started searching about for sample codes that I could try on simple things. At the start, making a button write "hello" in the serial monitor is amazing. It gets addictive as you go further.

The key with any extravagant idea is to start with the big idea in mind and take the small steps first.
Try a code that is easy and test all your buttons to see if they work.
Try a each one, if one button behaves differently to the others when it's all the same code and just a different input, check your wiring.

Step 3: Coding

This depends where you want to go with it, but I've decided to upload my code for you so you can play about with it. It takes a friggen long time to get it right. So give yourself some grace. Also, most of the code is in sections, so chop it up and use what you want. Chuck out the rest.
It's awfully long and awfully messy, so feel free to give me some good tips on how to improve it.



Step 4: Credits

For more info, check out these links, they were helpful for me:
Teensy Monster - Incredibly helpful info on everything else you need to know
Teensy Foot Pedal - Another idea on how to do this
Electronic Drumkit - For all the drum kit info
Mobius - This is an awesome program
Arduino Teensy - The best Arduino board for USB MIDI