Introduction: Miniature MIDI Keyboard
This Keyboard has a full octave of notes in button form, and can be connected to any DAW, like Logic Pro or Ableton Live. It's built around a Makey Makey Arduino board. There's no soldering required! The photos show an included knob and switches, but we'll be focusing on the playable keyboard here.
For this project you'll need:
1 x Makey Makey Arduino Board
1x 5v LED Light (optional)
1x Enclosure (optional)
Around 2 metres of shielded wire (or pins from the Makey Makey kit)
Around 30 alligator clips (included with Makey Makey kit)
Step 1: The First Key
For starters we're just going to hook up one key to get our head around the process.
The buttons will have two connections, one of which we'll connect to send signal to the MakeyMakey, and the other to earth the button. I used pins from the MakeyMakey kit in the D0 point on the board, and into the first earth point on the board, but you can use any of these earth points.
If the default sketch is loaded onto the MakeyMakey, you should see the green light flash on the board when you press the button.
Step 2: Extra Keys Using the Breadboard
Now we're going to prepare ourselves for hooking up more keys to the MakeyMakey.
We only have a limited amount of ground spots on our board, so we're going to use a breadboard for extra grounding. First on our breadboard, we need to make a connection from the 5V spot on our board to the A1 point on the breadboard. Adding a capacitor after this
We'll now take the pin we had from earth to the button, and put it from earth to the first spot in a row on the breadboard. This earths the entire row in the breadboard. See the second photo and the diagram for this.
We can now use a pin and alligator clip from any point on this same row to the button. This works exactly the same as it did on our last step, however we now have extra grounding points on the breadboard.
Step 3: All the Keys!
We now have to repeat the MakeyMakey > Breadboard > Button for grounding step and the MakeyMakey to Button for signal for all 11 buttons.
Each of the points we can connect to on the MakeyMakey is going to have a corresponding note. For a keyboard, my buttons were arranged in a chromatic order from C upwards. To match up with the code on the MakeyMakey, we should connect each button to the following point, so notes will be in order.
The D0 point on the MakeyMakey = C,
D1 = C#,
D2 = D
D3 = D#
D4 = E
D5 = F
Click = F#
Space = G
Left Arrow = G#
Up Arrow = A
Down Arrow = A#
Right Arrow = B
As you make each of these connections, don't forget to ground each button by connecting to an earth point on the breadboard (see the diagram which has one row completed). If you use up an entire row, we'll repeat what we did with another Earth point on the MakeyMakey, going into the first point in a row in the breadboard.
Step 4: Testing and the Enclosure
We're now going to test that each button is sending signal to the MakeyMakey. Make sure you have the default sketch loaded on your MakeyMakey, then when you press a button, a green light should illuminate until the button is released. If a button doesn't work, check that the grounding and signal pins and alligator clips are connected. If the light still isn't showing up, make sure no earthing pins or alligator clips are touching. You can use gaff tape to shield these.
For the enclosure, I used a small plastic effects pedal enclosure, and drilled holes in it. The button size is generally bigger than drill bits so in my case I had to drill a few holes to get them to fit.
Step 5: The Code
In this step we're going to use two programs, which are both free to download.
Once both of these programs are downloaded and installed, we're first going to run Arduino, and copy it into our assigned Sketchbook folder. This folder can be found by going into the Arduino preferences. Currently, the Makey Makey won't show up as an available board in Arduino, so we'll need to download the addon at the MakeyMakey website. After downloading this, we make a folder called "hardware" in our Sketchbook, and copy the download into there.
Now in Arduino, under Tools > Board, "Makey Makey" should show up as an option. Select this, and then in the Tools > Serial menu, select "/dev/tty.usbmodem". Arduino can now upload to the MakeyMakey. We're going to open the MakeyMakeyPlusMIDI sketch in the Sketchbook and make a few changes to it. Go into the "settings.h" tab in Arduino, and then we're going to remove:
KEY_UP_ARROW, // up arrow pad
KEY_DOWN_ARROW, // down arrow pad
KEY_LEFT_ARROW, // left arrow pad
KEY_RIGHT_ARROW, // right arrow pad
' ', // space button pad
MOUSE_LEFT, // click button pad
// female header on the back left side
'w', // pin D5
'a', // pin D4
's', // pin D3
'd', // pin D2
'f', // pin D1
'g' //, // pin D0
and replace it with:
j', // up arrow pad
'u', // down arrow pad
'h', // left arrow pad
'y', // right arrow pad
'g', // space button pad
't', // click button pad
'f', // pin D5
'd', // pin D4
'e', // pin D3
's', // pin D2
'w', // pin D1
'a' //, // pin D0
then hit the upload button at the bottom of the program to load it onto your MakeyMakey.
Step 6: Setting Up for Use in Ableton Live
For this step I'm going to demonstrate in Ableton Live. If you don't have Ableton and want a copy, you can get Ableton Live 'Lite' with a few restrictions for free at https://www.ableton.com/en/products/live-lite/
First in Ableton we'll go into the Options Tab and Enable Computer MIDI Keyboard. It's actually this step that converts what the MakeyMakey is sending into a MIDI signal for virtual instruments. Choose a virtual instrument from the panel on the left and drag it onto a track. Hit the MIDI arm function (the red button on the attached screen shot) and start pressing you buttons!
You'll have a full octave of keys to play on any Ableton or third party virtual instrument!