Introduction: MIDI Controller With Keyboards

Picture of MIDI Controller With Keyboards

Today we're building the 400 key MIDI controller using an Arduino and computer keyboards!

For the budget conscious music producers out there, this project is a great way to build an inexpensive control board for your digital audio workstation.

Or if you're just a musician with an odd taste for instruments, this geeky looking device will surely give you some strange looks.

Step 1: Watch the Video!

Check out this quick video to see how this mega MIDI device translates to an instrument and for a run-through of all the steps below from start to finish.

Click here to watch on YouTube

Step 2: What We'll Need...

Picture of What We'll Need...

We're going to build a box that translates signals from multiple keyboards into standard MIDI out signals.

To do so, we'll need:

  • An Arduino (I'll be using the UNO, but any other variants will work fine)
  • 2 PS/2 ports (as many as you'd like, as long as there's enough digital pins on the Arduino for it)
  • MIDI female port
  • Cardboard
  • A 220Ω resistor
  • Perboard
  • Wires
  • Keyboards!

Where to buy

Soldering gear:

Testing gear:

Step 3: Prepare the PS/2 Ports

Picture of Prepare the PS/2 Ports

Push a piece of perfboard through the bottom pins of the PS/2 ports to make soldering easier.

Clamp the PS/2 ports in place and solder wires to the four pins of each of the PS/2 port that we need to access (they are the Vcc, Ground, Clock, and Data pins - see diagram).

Hot glue the PS/2 ports together.

Step 4: Prepare the MIDI Port

Picture of Prepare the MIDI Port

Push a piece of perfboard through the bottom pins of the MIDI port to make soldering easier.

Add a 220Ω resistor in series to the Vcc pin (see diagram).

Solder wires to the three pins we need to access (they are the Vcc, Ground and Serial pins - see diagram).

Step 5: Wire Up the Arduino

Picture of Wire Up the Arduino

Wire the PS/2 and MIDI ports to the Arduino as follows:

For the PS/2 ports:

  • Vcc pins goes to 5V
  • Ground to GND
  • Clock and Data pins goes to digital pins 4 to 11

For the MIDI port:

  • Vcc pin goes to the 220Ω resistor, then to 5V
  • Ground to GND
  • Serial to TX

Step 6: Upload the Arduino Program

Picture of Upload the Arduino Program

I've made the source code to this project open-source, so simply head over my GitHub to download the Arduino sketch:

Plug in the Arduino to the PC, open up the sketch in Arduino IDE, and upload the program to the Arduino.

Step 7: Make a Box

Picture of Make a Box

Cut out a cardboard box template that fits all the components.

I decided to expose the MIDI and PS/2 ports in the front of the box while the Arduino USB port through the back so that it can be USB powered or reprogrammed easily.

Hot glue the components into place.

Step 8: Close Up the Box

Picture of Close Up the Box

Close up the box with some PVA glue, and admire your work of art.

Step 9: Find Keyboards

Picture of Find Keyboards

Just for fun, I decided to attach three old keyboards together with some wood pieces and screws.

Attach two strap buttons, put on a strap, and we have a very unique "keytar" to go with our MIDI box.

Step 10: Plug It in and Give It a Test

Picture of Plug It in and Give It a Test

Plug in as many keyboards as you'd like and give it a test!

Watch the video to see the MIDI controller in action.


That's all I have for you today!

If you liked this Instructable, then perhaps you'll like some of my other projects!

You can check them out over at my YouTube channel.

New projects every Thursday! See you next week!


harrycool (author)2017-12-21

Is there any way to use USB Type B port instead of MIDI, cuz I already have an Uno and don't wanna waste anything. Plus, anyway to use it with an USB keyboard instead of PS/2?

SirQuintus (author)2017-09-21

So I know I got the circuit right and everything, I set up my MIDI program, and I can see that I'm getting a MIDI signal coming to my computer from the keyboard, but nothing is registering in my actual software. I've tried to do everything I can in the actual MIDI software but nothing is working. Is there something weird in the code that I need to change or anything?

roclish_rola (author)2016-12-17

the ps2 keyboards wont power up, I guess I messed up something with the code, cause I included the magicmusic library by selecting zip file, but when I copied the code from the link the magicmusic instructions are not colored i.e. the system is not detecting the instruction
those who sucessfully built this please help me out to figure out where i went wrong

I_O_STREAM (author)roclish_rola2017-03-05

i was having trouble with that too but when i went up to the top menu bar under the sketch tab there is an option called add file that i added all the stuff in the zip file except the readme and it complied for me

Amit0710 (author)2017-02-24

Roses are red,
Violets are blue
U are so funny,
And I like You????

roclish_rola (author)2016-12-19

you are using a mega uno arduino, what if I have uno R3

roclish_rola (author)2016-12-19

the ps/2 keyboards wont power up, I am using a clone arduino ;could that
be a problem?
Also you have have messed up the connections, first of all your diagram
shows connections from a ps/2 plug instead of ps/2 socket that you
demonstrated, also your code mentions the clock pin & data pin to be
different than that of your connection,
please clear out the confusion, I really need to build this

ngmacha (author)2016-04-30

Great project and good instructables, thank you Evan! I've built it too, though not without a bit of stumble - your diagram needs to clarify that the PS2 connectors are shown looking from the back of the female connectors, where the wires are soldered... I'm using the TurtleBeach MIDI-to-USB converter and the Universal Keyboard apps on the Windows 10 tablet, and everything works perfectly. Just a question: do you or anyone out there knows of the apps for SurfaceRT tablet that can play form MIDI port?.. That would be a perfect use for this abandoned but otherwise great tablet!..

Meglymoo87 (author)2016-04-29

Sweet! :)

DahaiP (author)2016-04-27

I like it.

One quenstion,

The connectors in circuit diagram are front view or back view?

WYLMAS (author)2016-04-19

Just wondering, is there any possibility to use Arduino's USB port to connect it as a MIDI device? It would be a great feature (obviously some more coding would be needed) as some of those cheap MIDI to USB adapters might have some unwanted latency. The one adapter I have (then connected to a MIDI keyboard) do have more latency compared to the USB MIDI keyboard (the one that is connected through USB and do not have MIDI port at all).

Why do I have this question? I've never had my hands on any of Arduino boards at all, therefore I don't know all of it's features.

szymex73 (author)2016-04-16

Is there an MIDI to USB converter that i can use with this? I don't have midi port unfortunately

WYLMAS (author)szymex732016-04-19

Probably those cheap MIDI to USB adapters found on ebay would do. I have one shipped from China and I've used it with an old Yamaha MIDI keyboard. Costed no more that £2. It should work with this project too, but you probably have to map it on the DAW yourself (I mean to map certain keys to do certain commands).

iratozer (author)2016-04-18

I am very impressed with your "Multi-Keybord" instrument.

Do you know of any way to take a graphic equalizer and send each filter section to an amplifier that will drive a speaker for each frequency range?

bob8898 (author)2016-04-16

Can you make a version that uses USB keyboards instead?

AndersJ3 (author)bob88982016-04-18

As Istarian wrote, there are USB to PS/2 adapters you can use if you have USB keyboards.

Istarian (author)bob88982016-04-17

That's not as simple as it sounds. For one, you'd need a USB host controller to be able to talk to your USB keyboards. Also, at minimum you'd probably have to write a USBDevice class that provided/exposed the same read/write/etc functions as PS2Device. I have no idea what level of difficulty is involved, but a USB host shield usually only provides one keyboard so you'd need a usb hub too in that case and I have no idea if those shields are compatible with hubs.

Alternatively, you might be able to use several USB->PS/2 adapters to convert the USB into PS/2.

JohnB432 (author)2016-04-17

Controllermate for mac can make any usb keyboard into a midi controller. It's incredibly versatile, very straightforwards, and costs about $20.

ZacharyG12 (author)JohnB4322016-04-17

Few comments on this:

First, that's $20. You can make this whole set up for a lot cheaper.

Second, usually with computers won't treat multiple keyboards as their own entities, meaning that you couldn't have the four-keyboard setup shown in this project.

Third, making things is fun, even if you're overcomplicating things

JohnB432 (author)ZacharyG122016-04-18

Of course. I'm just putting this out there so people know about it. It certainly opened up a whole new world to me. Controllermate supports multiple keyboards, you just gotta be sure you connect them in the same order every time. It also has 60+ 'building blocks' to choose from, including logic gates, making it incredibly intuitive and versatile. I just don't like being the only person I know pursuing jamtronica with Ableton and Controllermate.

ScottaBlanchat (author)JohnB4322016-04-17

Because mac is soooooo much better than a pc is ridiculous.

erysoft (author)2016-04-18

Tu as la grosse tête mon gars, je parle évidemment de ta prétention.

Sinon, çà ne sert strictement à rien, si ce n'est qu'à craner. De plus, tu pourrais expliquer comment fonctionne le protocole PS2, ainsi que le MIDI, ce serait plus instructif. As-tu prévu quelque chose pour le pitch ?

EvanKale, le bidouilleur bancal.

NoynonMayta (author)2016-04-18


Marethno (author)2016-04-16

very nice instructable, But where Do i plug in the midi out? PC midi Port?

ZacharyG12 (author)Marethno2016-04-17

You can find Midi to USB adapters online.

agis68 (author)2016-04-16

After the first en thousiasm i got a couple of questions

1.What software you run on your pc when you play the kbs

2. Where you connect the midi connector or you leave it to connect any extension midi keyb


agis68 (author)2016-04-16

AMAZING!!!!!!!!!!!!!!!! dude you gave me the subject to occupy myself for the next 3-4 weeks


agis68 (author)2016-04-16

AMAZING!!!!!!!!!!!!!!!! dude you gave me the subject to occupy myself for the next 3-4 weeks


Fathomlis (author)2016-04-14


jmuncher (author)2016-04-14

Excellent use of old keyboards! Any thought to using a PS/2 mouse sensor as an XY control?

PurplePeople (author)2016-04-14

A keytar with 312 keys! Bonus points for a expressions ripped from a kung fu B-movie.

About This Instructable




Bio: === === ===
More by EvanKale:Pokemon Card DoorGuitar Cajon Mod (Internal Snare)Ratchet Knob (Unidirectional mechanism)
Add instructable to: