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.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

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:

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!

Mine Mooder

2 People Made This Project!


  • CNC Contest

    CNC Contest
  • Make it Move

    Make it Move
  • Teacher Contest

    Teacher Contest

15 Discussions


2 years ago

Hi, I tried it with the Makey Makey v1.1, but it's sending MIDI-signals even if I just touch one cable. Without connecting to the other wire! It works fine when earth is connected to my body. This problem doesn't exist with the originial Makey Makey firmware.

Could you help me? I want to connect a foot switch to send a MIDI-signal, but at the moment it's not safe enough.


3 years ago

Hello guys , great to be here ,sorry I am kinda new , I like to build my own keyboard controller by using MakeyMakey, I have no idea where to start from , any help will be greatly rewarded appreciated and if you can help me build my own controller, I will make sure to take good care of you .. $$$

I leave my email :

For you to contact me , regarding my controller ..thanks.


3 years ago

Cool! Is there a way to press a "button" and cycle through different midi CC's? I am a drummer and I have the Makey Makey hooked to the rim of a tom, I trigger stuff touching the screws as I play :) I am wondering if I could cycle through different CC presets for each screw. Cheers!


3 years ago


I bought a makey makey, 2 weeks ago. Today I had this problem : sends many keys at the same time. I don't know why. Could you help me ? Thank you !

Does this works with the 1.2 version from Joylabz ? Because I can't connect to any port in the Arduino software, therefore i can't run your code... I have read that this version 1.2 is not an arduino anymore, so that could be the problem. IAm I all wrong ?

1 reply

Hi Vincent! I had the same issue, so I contacted JoyLabz and here is what they replied: "If you have a Makey Makey V1.2, this version does not have Arduino capabilities (please see our FAQ on the website for more details). Remapping is easily done in a browser by going to" Only the MakeyMakey 1.1 works with Arduino, which JoyLabz has stopped manufacturing. You may find it at Sparkfun. Cheers!


4 years ago on Step 5

Could this same process be used to recieve midi information, say to activate led lights when a midi note is hit?


4 years ago on Introduction

Hi, I've followed the instructions, reprogrammed the board and tested it out on max/msp, but now it seems that i don't need to earth the 'makey makey' to play a note is this normal?

1 reply

This is a bit strange, i'm currently not using it anymore, so i have no idea, but if you find a solution or explanation, feel free to post it here because more people seem to have this "problem". Thanks


4 years ago on Introduction

Thanks for the patch, great stuff. I have noticed (as the previous person) that if you are not grounded midi data is constantly generated. This becomes a problem for me when I have a lot of things connected. Is there any way around this? Thanks!


5 years ago on Introduction

what daw software did you use and do you have any examples of the makey makey modulating sound?


5 years ago on Introduction

What about latency? Is the latency better or worse than keyboard input? I'm using MAX/MSP's Midi input. I was going to just use keyboard, or joystick input to control it. It would be very nice if there was less latency for my midi controller prototype.

1 reply

Reply 5 years ago on Introduction

I haven't experienced any notable latency. Latency is most of the times caused by the soundcard i use.