Go Down

Topic: MIDI Keyboard Encoder - Arduino Piano/Keyboard (question) (Read 37595 times) previous topic - next topic


It seems its too big a task for you, as you said yourself...So why dont you start with simpler things instead of expecting someone to do it for you ?!?
Above you have enough information and examples to guide you in your quest... But problem is you dont have the knowledge !! So, start researching and start doing things by steps !! You will get there in the end !!
No need to give up !!
10 LET Loop=Infinite
20 GO TO 10


Aug 31, 2012, 10:45 pm Last Edit: Aug 31, 2012, 10:48 pm by xray303 Reason: 1
I would say the same as iyahdub, start with very basic thing and only after that, try to integrate more difficult ones.
It will be very difficult to do this kind of project if you can't blink a led or read a port of the arduino.

So firstly try to connect a switch to a arduino port and a led on another port, then try to light the led when pressing the button (using arduino code), i know it looks ridiculous but you will learn how to read a port and write on another.
When you will be more familiar with arduino coding, try to use your switch matrix with the keypad  library to light up few leds.
After this you can also try to use the midi library with one switch. (try to do a Midi Noteon using this switch).
When you manage to do all these mini projects, you will abl to combine all theses and finish your project.

What i'm trying to say is: try to split your project into smaller separate part, and do them one after one.

And don't forget .. google is your friend ..

and to help you a bit on midi lib : http://little-scale.blogspot.ch/2007/06/arduino-midi-out-example.html


Thanks to everybody for your advice I'll get down to bussiness soon!


I built a MIDI controller with an old organ keyboard, an Arduino and two hc595 shift registers.  It is documented in my blog (it's written in french, but maybe the sketch and schematics will be of some help?)

I read French (I live in France) and my native language is English. If you are interested to have parallel French and English versions of those Arduino MIDI blog posts, I would be happy to translate them for you.


I'm about to start a similar project and although there no guarantee it will be finished any time soon, I will bookmark this topic so I can add a link when I have completed the necessary information gathering...

The project relates to building a basic midi keyboard (61 keys or so), generating on/off, velocity and possibly aftertouch data... Note, I won't use a diode matrix for keyboard scanning, probably something more on the lines of a common bus (polled configuration)... Anyway, I thought I mention it in case you loose interest...

I still have to determine what is necessary to use uno in midi mode, believe I need to reprogram 16u2 and a few other bits and pieces...


I'm looking forward to seeing your project! Thanks for the reply!


Nov 05, 2012, 11:58 am Last Edit: Nov 05, 2012, 12:06 pm by DuaneB Reason: 1
No midi in this on going project of mine, but similar idea using a cheap keyboard -

EDIT - post has been updated a lot - so not a repost. Code is still in need of a tidy up before I publish it, but I can send it to anyone who wants to try it.

Current features are - arpeggio record and play back with adjustable speed, 4 waveforms and transpose


Duane B


Of course, you can do synthesis on PC, there are open source / free software available on-line

Magician, I spent hours looking for something like that for my project but did not find anything satisfactory.
Closer thing I found is VMPK: http://vmpk.sourceforge.net/
What do you recommend? I am looking of something "Arduino friendly".....

There are three kind of people in the world: Those who can count, and those who can't


OK guys I am wanting to do something similar to what's already been discussed. Basically I have built myself a 4-keyboard (3 manuals and one pedalboard) organ from old 70s analogue organs. There are also 40 tabs (switches). It kind of works as it is but it's nothing great, and the 40 tabs aren't connected to anything at all yet.

So I'm thinking about ignoring the analogue stuff and simply using the keyboards and tabs to generate midi signals, which is not such a big deal I can do keyboard scanning as already discussed, along with debouncing of course, plus I'm capable of reading the midi spec and generating midi protocol - although if I can find a library to do it for me, I don't mind at all!

But I don't really want a midi hardware interface because it's too slow: I want midi over USB. That's the only bit I know nothing about. I suppose I need a library like V-USB but in these forums I've read comments like "Implementing USB within the resource limitations of the these microcontrollers is "non-trivial"", and suggestions that it's best to use a second microcontroller purely for the USB, and that even the V-USB library is still "too complicated". So any pointers greatly welcomed.


Nov 16, 2012, 01:03 pm Last Edit: Nov 16, 2012, 01:10 pm by Nantonos Reason: 1
The Arduino-compatible Teensy 2.0 and Teensy 2.0 ++ boards have native USB-MIDI. They show up as a class-compliant USB MIDI device and your OS will use it's built-in driver to talk to them. Also, MIDI over USB is faster (so, lower latency) than traditional current-loop DIN MIDI.

The comments about matrix scanning and diodes on your key matrix still apply. Probably useful to tread how a MIDI keyboard works and this DIYAudio forum posting.

So far, velocity sensitivity and channel aftertouch have not been mentioned - do your organ manuals have those?


Hi All,

I thought it might be interesting for some of you. I've wrote a step by step tutorial with schematics / breadboard and source for Arduino on how to convert a Piano toy into a MIDI keyboard:


Would be glad to know if it was helpful to anyone.




This would probably be easier for your needs.

Looks good but not easier at all - definitely require more effort. It has nothing to do with Arduino - different platform altogether.


Hi All,

I've added Velocity sensitivity and Aftertouch to my earlier project.

Could be of use to someone: http://www.codetinkerhack.com/2013/01/how-to-add-velocity-aftertouch-midi.html


Go Up