Introduction: Makey Makey MIDI Controller
Makey makey is a microcontroller that acts as a keyboard when it's plugged into your computer. I reprogrammed it so that it sends midi notes. Why? Because when you use a keyboard to control things the window you're controlling has to be active all the time. With midi you can control multiple programs or synths at the same time. And it's widely supported.
It might be handy to check which program you want to control with you makey makey and make sure it can be controlled by midi.
!!! You'll need to have a serial to midi converter running in the background. If you don't like that stop reading. If you don't know what that means, keep on reading.
If you know a thing or two about arduino and midi you can just follow "the fastest way". Otherwise follow the easy steps.
The fastest way:
Download my code. Download arduino here and the makey makey addon for arduino here and install both. Upload the code to your makey makey. Download a serial to midi converter like hairless midi. Set up a virtual midi port (on windows you'll need a program like midi yoke). Start your serial to midi converter and select the makey makey as input and you virtual midi port as output. Start up a DAW and select your yirtual midi port as input. Done!
But we can also take things slowly.
Step 1: Arduino and the Makey Makey Library
Arduino is available here. Select the version for you operating system and download it. The installation is like any normal installation.
In order for arduino to communicate with the makey makey (which is based on the arduino leonardo) you have to install a library. The file you'll need can be downloaded here. You have to unzip this file. The folder you have now should have the name "MakeyMakey" (so if there's a date behind it rename it. This folder needs to be pasted into your sketchbook folder. This folder can be found when, in Arduino, you go to file -> preferences (on windows) or to arduino-> preferences (on mac). Go to this folder and paste the MakeyMakey folder. You've installed the library.
(want a different explanation: https://www.sparkfun.com/tutorials/388)
Step 2: The Code
The next step is to upload new code to the makey makey.
!! Warning when you upload new code the makey makey will not funtion as a keyboard anymore, until you upload the original code again. Which can be found HERE.
Open up arduino again. Go to tools->serial port a see what's in the list. Now plug in your makey makey and look what's new in the list. On windows this should be something like "COM" with a number. On mac this should be something like "/dev/tty.usbmodem" and some numbers. Select that port.
Go to tools->board and select "makey makey". If it's not there something went wrong. (help)
Now open the code "Makey_Makey_midicontroller_explained", the one i wrote for you. Press the upload button (the second button, the one with the arrow to the right). Arduino should show "Done uploading" when it's finished.
Your makey makey is now a midi controller.
About the code:
I've tried to explain most of the code in the file. Feel free to adjust it, if you, for example, want a different range. (hexadecimal code for that)
Step 3: Virtual MIDI Port
You're makey makey is sending midi messages to your computer but they need to be send to a midi port. So we'll create one:
Creating a virtual midi port on Windows:
You'll need to install a program like LoopMIDI or MIDI Yoke. This will do the job. Follow the instructions on that link to create a virtual midi port. (I've done this a long time ago so i don't know the exact way to do it anymore)
Creating a virtual midi port on Mac;
Go to applications->utilities and open "Audio MIDI Setup". Go to window->show MIDI window. Double-click on "IAC Driver" (standard it's red). In the new window you should check the box "Device is online" and you can press the "+" to make new ports (you can also rename them, which is handy).
Step 4: Serial to MIDI
We're going to send the serial data that the makey makey is sending to our computer to the midi port we've just created. I recommend hairless midi. Just install the program and open it.
On the left side there's a dropdown menu where you can select you serial port. Select your makey makey (USB IO Board). On the right side you can select midi ports. We're only gonna select a midi out port, the one we've created.
You can now try you makey makey (like you've always used it). Normally you should see the green 'light' next to the dropdown menu light up when you press or release something. You should also see messages like
"Serial In: Ch1: Note 60 on velocity 127"
Step 5: Using It
Now you should open up the program (like a DAW probably) you were planning to use your makey makey with. Select the midi port were hairless midi is sending data to, and you're good to go! The image shows which notes the makey makey is sending. The first C is actually C3, because i didn't like to only play low notes.
I hope you enjoy your makey makey midi controller. Let me know whatever you feel like!