Problema lettura MIDI IN

Ciao a tutti!
Ho bisogno di leggere attraverso arduino dei messaggi midi ricevuti da una tastiera musicale. Arduino riesce a leggere i messaggi in ingresso,ma c'è un problema: non li legge correttamente. Ora mi spiego meglio! In pratica,appena premo un tasto sulla tastiera musicale,arduino mi legge tutti e 3 i messaggi corretti ( Ovvero il comando,la nota e la velocità),ma appena rilascio il tasto non mi legge tutti i messaggi,ovvero ho uno zero o un altro valore in uno dei 3 messaggi ricevuti.Se invece tengo premuto il tasto per qualche secondo e poi lo rilascio,i messaggi sono tutti corretti. Come posso ovviare a questa situazione? grazie a tutti!

PS.Utilizzo il mega2560 in modo che posso utilizzare una seriale per il midi ed una per leggere dal pc cosa fa la scheda,e la seriale che comunica col pc ho provato a settarla sia a 9600 baud che a 115200.

Vi posto il codice di prova che sto utilizzando

byte cmd=0;
byte nota=0;
byte vel=0;


void setup(){
pinMode(13,OUTPUT);
digitalWrite(13,LOW);
Serial.begin(115200);
Serial1.begin(31250);    // MIDI baud rate
}

void loop(){

  if(Serial1.available()){
   cmd=Serial1.read();
  // nota=Serial1.read();
   //vel=Serial1.read();
   if(cmd==248 || cmd==254){;}          // se il messaggio è 248(clock) o 254 (active sensing) non faccio nulla
   else{
   
   
   Serial.println(cmd,DEC);
  /* Serial.print(" ");
   Serial.print(nota,DEC);
   Serial.print(" ");
   Serial.print(vel,DEC);
   Serial.println();*/
      
      }
    }
    
  }

Tu leggi sempre 3 volte dal Midi, ma non tutti i comandi inviano 3 byte.
--> http://www.istitutobellini.cl.it/file.php/1/Master/Informatica_Relandini_2012/protocollo_MIDI.pdf
--> Arduino Playground - MIDILibrary

Ciao e grazie per la risposta!
Si hai ragione ma io sto facendo solo delle prove con noteOn e noteOff,che hanno 3 byte. Volevo utilizzare la libreria midi che mi hai linkato ma sul mega ho l'ingresso midi sulla Serial1,quindi non posso utilizzarlo perchè credo che quella libreria utilizzi solo la seriale "base". Avresti per caso qualche idea su come posso risolvere? grazie mille!

Apri il file MIDI.h e modifica la seriale in Serial1

#define USE_SERIAL_PORT         Serial      // Change the number (to Serial1 for example) if you want
                                            // to use a different serial port for MIDI I/O.

Si l'avevo appena visto anche io! Grazie mille per l'aiuto!