This code turns the onboard PC13 LED of the STM32 Blue Pill on when a MIDI NoteOn message is received and turns the LED off when a MIDI Noteoff message is received. It’s my preferred way to confirm that a MIDI circuit is working. It relies on the Arduino MIDI Library.
#include <MIDI.h>
#define LED PC13 // LED pin on Arduino Uno
MIDI_CREATE_DEFAULT_INSTANCE();
void doSomeStuffWithNoteOn(byte channel, byte pitch, byte velocity);
void NoteOff(byte channel, byte note, byte velocity);
void setup()
{
pinMode(LED, OUTPUT);
MIDI.begin();
MIDI.setHandleNoteOn(doSomeStuffWithNoteOn);
MIDI.setHandleNoteOff(NoteOff);
}
void loop()
{
MIDI.read();
}
void doSomeStuffWithNoteOn(byte channel, byte pitch, byte velocity)
{
// note on code goes here
digitalWrite(PC13, LOW);
}
void NoteOff(byte channel, byte note, byte velocity)
{
// note off code goes here
digitalWrite(PC13, HIGH);
}