50 lines
1.4 KiB
C++
50 lines
1.4 KiB
C++
#include <MIDI.h>
|
|
|
|
MIDI_CREATE_DEFAULT_INSTANCE();
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
// This example shows the old way of checking for input messages.
|
|
// It's simpler to use the callbacks now, check out the dedicated example.
|
|
|
|
#define LED 13 // LED pin on Arduino Uno
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
void BlinkLed(byte num) // Basic blink function
|
|
{
|
|
for (byte i=0;i<num;i++)
|
|
{
|
|
digitalWrite(LED,HIGH);
|
|
delay(50);
|
|
digitalWrite(LED,LOW);
|
|
delay(50);
|
|
}
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
void setup()
|
|
{
|
|
pinMode(LED, OUTPUT);
|
|
MIDI.begin(); // Launch MIDI, by default listening to channel 1.
|
|
}
|
|
|
|
void loop()
|
|
{
|
|
if (MIDI.read()) // Is there a MIDI message incoming ?
|
|
{
|
|
switch(MIDI.getType()) // Get the type of the message we caught
|
|
{
|
|
case midi::ProgramChange: // If it is a Program Change,
|
|
BlinkLed(MIDI.getData1()); // blink the LED a number of times
|
|
// correponding to the program number
|
|
// (0 to 127, it can last a while..)
|
|
break;
|
|
// See the online reference for other message types
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|