Moin,
auch auf die Gefahr hin, Dir auf die Füße zu treten; ist Dir bewusst, dass Du für jeden gestarteten Ton (Note-on-Befehl) einen Note-off-Befehl senden musst, um die Wiedergabe zu beenden? Vielleicht habe ich auch nur keine Ahnung von C, aber für mich sieht es so aus, als würdest Du nur einen Note-on-Befehl schicken.
Gruß der Buchhalter