Arduino_STM32/examples/Communication/MIDI/Midi.ino

52 lines
1.3 KiB
Arduino
Raw Normal View History

/*
MIDI note player
This sketch shows how to use Serial1 (pins 7 and 8) to send MIDI
note data. If this circuit is connected to a MIDI synth, it will
play the notes F#-0 (0x1E) to F#-5 (0x5A) in sequence.
The circuit:
* Pin 7 connected to MIDI jack pin 5
* MIDI jack pin 2 connected to ground
* MIDI jack pin 4 connected to +5V through 220-ohm resistor
Attach a MIDI cable to the jack, then to a MIDI synth, and play music.
created 13 Jun 2006
modified 2 Jul 2009
by Tom Igoe
http://www.arduino.cc/en/Tutorial/MIDI
Ported to the Maple 27 May 2010
by Bryan Newbold
*/
void setup() {
// Set MIDI baud rate:
Serial1.begin(31250);
}
void loop() {
// Play notes from F#-0 (0x1E) to F#-5 (0x5A):
for (int note = 0x1E; note < 0x5A; note++) {
// Note on channel 1 (0x90), some note value (note), middle
// velocity (0x45):
noteOn(0x90, note, 0x45);
delay(100);
// Note on channel 1 (0x90), some note value (note), silent
// velocity (0x00):
noteOn(0x90, note, 0x00);
delay(100);
}
}
// Plays a MIDI note. Doesn't check to see that cmd is greater than
// 127, or that data values are less than 127:
void noteOn(int cmd, int pitch, int velocity) {
Serial1.print(cmd, BYTE);
Serial1.print(pitch, BYTE);
Serial1.print(velocity, BYTE);
}