Problem mit MIDIUSB und flush

Hallo zusammen,

ich habe ein kleines Problem mit MIDIUSB. Ich habe hier ein Orgelbauprojekt. Im Zuge dessen habe ich 3 Manuale mit dem Arduino verbunden. Diese nutzen jeweils eine 8x8 Matrix. Soweit kein Problem. Es funktioniert also ohne Probleme die gedrückten Tasten zu erkennen und diese per Midi zu senden. Jedoch kommt es beim drücken mehrer Tasten gerne einmal dazu dass Midi Signale nicht gesendet wurden. Als Anhang habe ich einmal einen Auszug aus dem Programm angehängt, so könnt ihr es nachvollziehen.

Wenn eine Taste gedrückt wird, dann wird die passende Funktion aufgerufen. Also entweder keyPressedManual1 oder resetKeyManual1. Beim drücken mehrerer Tasten gleichzeitig (z.B bei einem Akkord) werden die Funktionen ebenfalls korrekt aufgerufen, aber die Midiinformationen gehen gerne mal unter. Bedeutet ein Tastendruck wird nicht gesendet oder ein loslassen. Nach einigen Stunden habe ich nach dem flush ein Delay eingebaut. Dieses löst nun das Problem.

Ich würde aber gerne mal eure Meinung dazu hören. Ist es möglich das ein zu "schnelles" senden der Daten zu Verlust führen kann, oder sehr ihr vielleicht irgendwo einen Grund den ich übersehe? Mit dem Delay gibt es wie gesagt keine Probleme.

Wäre es vielleicht besser die ganzen Informationen zu sammeln und einmal am Ende des Loops zu senden? Von der Latenz dürfte dies theoretisch keinen so großen Unterschied machen.

test.ino (2.9 KB)

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.