Introduction: 1-Button MIDI Controller Tutorial

About: Musician, Educator, Music Tech Nerd!

There are a lot of tutorials for Arduino-MIDI controllers out there, this is a bare-bones walkthrough of how to get rolling with a simple button and potentiometer. I would have loved to have run across something like this when I was just starting out so I made this tutorial with the aim of helping out a "future me"!

This should allow a maker to be more free in their own design and synthesis of new musical instruments! Get weird with it!

Step 1: Materials

You will need the following:

-Arduino Pro Micro

-Momentary Button

-10k Potentiometer

-Hookup Wires

-Breadboard

-Arduino IDE

-MIDI_Controller.h

-DAW(Garage Band, Ableton, Soundtrap, etc.)

Step 2: Write the Code!

I walk through writing the code in the video link at the top of the page if you want to go through that in a step-by-step manner. If you just want to download the sketch and modify that I will include a link in this section.

The library I am using(and a huge fan of) is the MIDI_controller.h library. Here is a link to the github repository for it, many thanks to tttapa for creating the library and sharing it.

I have include some commented lines for expanding the controller. The aim is to establish a foundation for which you can make an instrument that really reflects you!

Step 3: Build the Circuit!

If you like pictures and know your way around a breadboard this method might resonate with you. I take you through the steps in the middle part of the video, but I will include some screenshots of the steps here for reference as well.

(1st picture)
Step 1: Connect Red hookup wire from "VCC" pin on Arduino to the "+" rail of the breadboard.
Step 2: Connect Red hookup wire from right-hand pin on potentiometer to the "+" rail on the breadboard.
Step 3: Connect Blue hookup wire from "GND" pin on Arduino to the "-" rail of the breadboard.
Step 4: Connect Blue hookup wire from left-hand pin on potentiometer to the "-" rail on the breadboard.
Step 5: Connect Blue hookup wire from one of the pins on the button to the "-" rail of the breadboard.

(2nd picture)
Step 1: Connect White jumper wire from "the other" pin on the button to pin "2" on the Arduino.

(3rd picture)
Step 1: Connect White Jumper wire from the middle pin on the potentiometer to pin "A0" on the Arduino.

(4th picture)
This shows the spacing and pin alignment of the potentiometer.

Step 4: Upload Code!

Select the "Arduino Leonardo" board from the menu and upload the sketch to the Arduino from the IDE and that is it!

Step 5: Connect to DAW

Since this device is programmed to be a MIDI device like any other you might not have to do anything fancy to have it play, but you may have to go into the "Settings" menu to tell the program to listen for the controller. I usually use Ableton but this time I decided to try in out with the web-based DAW "Soundtrap". I was a few clicks away from setting it up and once I selected "Arduino Leonardo" from the device menu it started responding perfectly.

Step 6: Finished!

The next step is yours to take! How will you take it to the next level? What kind of buttons will you use? 3-D printed enclosure? Post any questions in the comments and good luck!