Thursday, July 2, 2009

The worlds ugliest midi controller

Okay, this is my first electronic project. Maybe more practicing with the Dremel would have been better...

I needed a small midi device that I could put on my Nord Wave keyboard to control my Nord G2 Modular Rack on stage so I don't have to bring a computer to simply change the volume/change preset.

The arduino was a perfect fit for this since it can easily work with midi. The midi input is quite straight foward, a 6n138 octocoupler does the job. I took this advice and it worked perfectly: led midi controller. The arduino is pretty fast, I never lost a midi "byte" and it does repeat midi message without problems.

The only problem is that at first, I was trying to filter the midi message in the same function; if I got a midi 0x90 (note on) message, I was using

while ( Serial.available() == 0 );
byte2 =;
while ( Serial.available() == 0 );
byte3 =;

That solution didn't worked, I was loosing midi byte message and my filter process was waiting for a message that was already sent by the synth. The only solution I found is to process midi message with a buffer, so the Serial.available() was always executed in the arduino loop() function.

Now this code works. Now I really look amateur on stage.

source code