38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
| #include <MIDI.h>
 | |
| 
 | |
| MIDI_CREATE_DEFAULT_INSTANCE();
 | |
| 
 | |
| void setup()
 | |
| {
 | |
|     pinMode(2, INPUT);
 | |
|     
 | |
|     MIDI // chaining MIDI commands - order is from top to bottom (turnThruOff,... begin)
 | |
|         .turnThruOff()
 | |
|         // using a lamdba function for this callbacks
 | |
|         .setHandleNoteOn([](byte channel, byte note, 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.
 | |
|             })
 | |
|         .setHandleNoteOff([](byte channel, byte note, byte velocity)
 | |
|             {
 | |
|                 // Do something when the note is released.
 | |
|                 // Note that NoteOn messages with 0 velocity are interpreted as NoteOffs.
 | |
|             })
 | |
|         .begin(MIDI_CHANNEL_OMNI); // Initiate MIDI communications, listen to all channels
 | |
| }
 | |
| 
 | |
| void loop()
 | |
| {
 | |
|     // Call MIDI.read the fastest you can for real-time performance.
 | |
|     MIDI.read();
 | |
| 
 | |
|     if (digitalRead(2))
 | |
|         MIDI // chained sendNoteOn commands
 | |
|             .sendNoteOn(42, 127, 1)
 | |
|             .sendNoteOn(40, 54, 1);
 | |
| }
 |