52 lines
1.6 KiB
C++
52 lines
1.6 KiB
C++
#include <MIDI.h>
|
|
|
|
MIDI_CREATE_DEFAULT_INSTANCE();
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
// This function will be automatically called when a NoteOn is received.
|
|
// It must be a void-returning function with the correct parameters,
|
|
// see documentation here:
|
|
// https://github.com/FortySevenEffects/arduino_midi_library/wiki/Using-Callbacks
|
|
|
|
void handleNoteOn(byte channel, byte pitch, byte velocity)
|
|
{
|
|
// Do whatever you want when a note is pressed.
|
|
|
|
// Try to keep your callbacks short (no delays ect)
|
|
// otherwise it would slow down the loop() and have a bad impact
|
|
// on real-time performance.
|
|
}
|
|
|
|
void handleNoteOff(byte channel, byte pitch, byte velocity)
|
|
{
|
|
// Do something when the note is released.
|
|
// Note that NoteOn messages with 0 velocity are interpreted as NoteOffs.
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
void setup()
|
|
{
|
|
// Connect the handleNoteOn function to the library,
|
|
// so it is called upon reception of a NoteOn.
|
|
MIDI.setHandleNoteOn(handleNoteOn); // Put only the name of the function
|
|
|
|
// Do the same for NoteOffs
|
|
MIDI.setHandleNoteOff(handleNoteOff);
|
|
|
|
// Initiate MIDI communications, listen to all channels
|
|
MIDI.begin(MIDI_CHANNEL_OMNI);
|
|
}
|
|
|
|
void loop()
|
|
{
|
|
// Call MIDI.read the fastest you can for real-time performance.
|
|
MIDI.read();
|
|
|
|
// There is no need to check if there are messages incoming
|
|
// if they are bound to a Callback function.
|
|
// The attached method will be called automatically
|
|
// when the corresponding message has been received.
|
|
}
|