Interpreting MIDI input... seems off

FYI, your clearBuffer() function would be much faster as:

void clearBuffer(void) {
  memset(buffer, 0, sizeof(buffer));
  bufferLen=0;
}

--
The QuadRAM shield: add 512 kilobytes of external RAM to your Arduino Mega/Mega2560