Lire des signaux MIDI

Salut,

Il te faut faire une machine d'état. ça ressemble à ça:

void loop(){
  static int state = 0;
  static byte note;

  byte b = Serial.read();
  if(b==0xF8) {
    // ignorer ou mesurer le temps pour synchroniser qqch
  }
  else {
    switch(state) {
    case 1:
      if(b==NOTE_ON) state = 2;
      // if(b==NOTE_OFF) state = ...;
      // ...
      break;
    case 2: // Attend la note
      note = b;
      state = 3;
      break;
    case 3: // Attend la vélocité
      byte velocity = b;
      // faire qqch
      state = 1; // retour à l'état initial
    }
  }
}

L'avantage avec le protocol midi (si mes souvenir sont bon) c'est que les commandes ont le msb à 1. Ce qui te permettrait
de simplifier cet exemple et de te resynchroniser sur une commande en cas de perte de donnée.