MIDI Keyboard Encoder - Arduino Piano/Keyboard (question)

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?)

Scanning the keyboard and displaying the result on the serial monitor:

And then sending out MIDI messages:

:~ Hmmmm... All those tutorials confused me... The last one seemed to be the best, but unfortunately it is in French and I couldn't understand what's going on! I downloaded the Keypad and MIDI Libraries and installed them, but I really need some guidance for the code. As I've already mentioned I couldn't figure it out... I suppose that the given codes in the links need to be modified in order to work with my switch setup, which by the way I've built. I used these switches ---> http://www.superdroidrobots.com/images/TE-044-000.jpg and I also used 1N4148 diodes just in case. I installed them on a wooden structure but there are not any keys yet. These will be made later. Anyway... I know that I asked for instructions, but that doesn't obviously work... So, would anyone be kind enough to write the code for me, or give me some clear instructions on how to write the code on my own (don't forget that I want the code to co-operate with the swtitch setup I made).
Sorry for being such a newbie, but I really need to complete this project.
Thanks in advance...

Come on.... Somebody! I' ve already invested money in this project. It would be such a pity if I gave up!

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 !!

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 : little-scale: Arduino MIDI out example

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

ypelletier:
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.

It would be great if you did so!

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...
Mike

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

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

Magician:
....
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".....

Thanks

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.

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.

:slight_smile:

Thanks,
JenShen

This would probably be easier for your needs.

2wice:
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: Code Tinker Hack: How to add Velocity sensitivity / Aftertouch to Piano toy midi controller

Thanks,
JenShen

SotosAle:
Come on.... Somebody! I' ve already invested money in this project. It would be such a pity if I gave up!

If you don't have any programming background, you are going to need to learn how to program.

I recommend taking Principles of Programming I, II, and III at a local State University, or buying a C++ book, reading every chapter, then doing the "homework" at the end of each chapter so you can learn to code. Those libraries are meaningless without programming ability.