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;
 | |
|         }
 | |
|     }
 | |
| }
 |