MIDI Note empfangen

Hallo zusammen.

Ich möchte gerne mit meinem Arduino Mega bestimmte Midi Noten empfangen. Ich habe mir dazu die Midi Library geladen. Bestimmte Midi Noten senden z.b. “MIDI.sendNoteOn(42,127,16);” geht schon mal.

Doch wie lautet der Code, um nur eine bestimmte Note zb. “(45,127,16)” zu empfangen und zu verarbeiten.

In diesem Beispiel habe ich einen Taster (S1) genommen, der bei tastendruck die Midi Note (42,127,16) ausgibt.

Jetzt möchte ich den Taster durch eine Midi Note (45,127,16) ersetzen, sodass bei Empfang von dieser Note, die Aktion “MIDI.sendNoteOn(42,127,16);” ausgeführt wird.

#include <MIDI.h>

MIDI_CREATE_DEFAULT_INSTANCE();

const int S1 = 9;

void setup()
{
    pinMode(S1, OUTPUT);
      
    MIDI.begin();     
}

void loop()
{
    if (digitalRead(S1)==HIGH)                
    {
      MIDI.sendNoteOn(42,127,16);
      delay(1000);
    }
  
}

Kann mir jemand Helfen? Bin absoluter Neuling… :slightly_frowning_face:

Schöne Grüße
Andy

http://arduinomidilib.fortyseveneffects.com/a00004.html

In diesem Beispielcode wird gezeigt, wie man die Callbacks einsetzt. handleNoteOn() wird aufgerufen, wenn eine NoteOn-Meldung eingeht, handleNoteOff() entsprechend für eine NoteOff-Meldung.

Bitte beachte, dass die Callbacks nicht allzu lange werden sollten, aber das ist bei Deinem einfachen Beispiel auch nicht notwendig. Die Callbacks werden nicht im Interrupt-Kontext ausgeführt, sondern in jenem, welcher MIDI.read() aufruft (normalerweise also loop() ).