Go Down

Topic: Serial/MIDI problem (Read 807 times) previous topic - next topic


I have a fairly big MIDI converter program that doesn't work quite right.
This stripped down code has the same problem:
Code: [Select]

int ledPin =  13;
int trigger = 3;

void setup()   {                
 pinMode(ledPin, OUTPUT);
 pinMode(trigger, OUTPUT);

 digitalWrite(trigger, HIGH);

 // Serial port as MIDI

void loop()                    
 while (Serial.available() > 0)
   byte in = Serial.read();
   if (in == 0x90)  // 90 = keydown midi channel 1

void doTrigger()
 digitalWrite(ledPin, HIGH);
 digitalWrite(trigger, LOW);
 digitalWrite(ledPin, LOW);
 digitalWrite(trigger, HIGH);

Wait for a key down and the just flip the pin and the LED for 1ms.

It works IF I hit the keys on my MIDI keyboard fairly slow to normal, speeding it up just a little, not anywhere near fast, it doesn't trigger.

I looked at the MIDI sent in a MIDI-monitor, nothing strange there.

Any suggestions?


Martin Gerken

BTW: you will not see the LED blink if it's ON for only 1 ms. (sorry, no idea for your primary problem)


I actually see the LED flash, and the trigger is connected to my Synth so I can also hear when it's working.


Are you sure you are not sending a lot of other information from the MIDI keyboard?, like polyphonic aftertouch, and all that stuff, so you are flooding your serial connection ?

Just a shot in the dark .-)


Jul 02, 2010, 05:20 pm Last Edit: Jul 02, 2010, 05:21 pm by frax Reason: 1
No aftertouch but my keyboard sends out a 0xfe (Active sense) frequently, i'd say about 4 each second.
I still think there would be plenty of time to receive and process midi messages without loosing any key downs.


Im out of ideas, anyone?

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131