Hi Freunde,
ich habe ein Problem.
Natürlich möchte ich mich erstmal kurz vorstellen, da das hier mein allererster Post in diesem Forum ist. Ich bin Player X, ein Launchpadder aus YouTube, bin 26 Jahre alt, programmiere gerne und mache auch sehr gerne elektronische Musik und Launchpadprojekte. ![]()
Nun möchte ich gerne auch ein paar Games für Launchpads schreiben, aber das Problem dabei ist, dass der Arduino Uno die eingehenden MIDI-Signale leider nicht richtig erkennt. Zum Anfang habe ich erstmal ein Sketch zum Testen geschrieben, bei dem das vom Launchpad Pro gesendete Signal genau so vom Arduino Uno wieder zurückgesendet wird, wie es empfangen wurde (sozusagen MIDI Thru), sodass immer die gedrückten Tasten leuchten, aber das tuen sie leider nicht.
byte statusByte;
byte dataByte1;
byte dataByte2;
void setup() {
pinMode(13,OUTPUT);
Serial.begin(31250);
}
void loop() {
if (Serial.available()) {
statusByte = Serial.read();
dataByte1 = Serial.read();
dataByte2 = Serial.read();
if (statusByte == 0x90) {digitalWrite(13,HIGH);}
delay(10);
Serial.write(statusByte);
Serial.write(dataByte1);
Serial.write(dataByte2);
}
digitalWrite(13,LOW);
}
Wenn man ein NoteOn-Signal sendet, müsste wie in diesem Video hier die eingebaute LED logischerweise auch kurz aufblitzen, aber die bleibt leider immer aus. Darum frage ich mich auch, wieso es im Video funktioniert. Hängt das etwa damit zusammen, dass er dabei einen Arduino Leonardo statt einen Arduino Uno benutzt? Ich hab's auch mal mit delays zwischen den Serial.reads probiert, falls die 3 Bytes der MIDI-Signale auch nicht schnell genug hintereinander gesendet werden und somit das Programm auch einfach so schon in die nächste Zeile springt.
Komisch an der ganzen Sache ist auch, dass der if-Teil bei einem NoteOn-Signal (0x90, 0x..., 0x7F) gleich 2 mal hintereinander vom Arduino Uno durchgeführt wird und bei einem NoteOff-Signal (0x90, 0x..., 0x00) nur einmal. ![]()
Leider hab' ich in dem Sketch für den Arduinoboy durch das Wirrwarr der ganzen Tabs die entsprechende mehr oder weniger hilfreiche Stelle zum Empfangen nicht gefunden (also wie es dort geschrieben wurde).
Kann mir vlt. jemand von euch helfen, wie ich das Sketch dementsprechend umschreiben muss, damit der Arduino Uno die eingehenden MIDI-Signale endlich mal richtig erkennt?
Vielen Dank schon mal im Voraus! ![]()