MIDI Shield for Arduino
Send or recieve MIDI signals from your Arduino board using this MIDI Shield. Fits directly on top of the board, fully assembled, no extra wiring necessary.
Categories
Newsletter
Send or recieve MIDI signals from your Arduino board using this MIDI Shield. Fits directly on top of the board, fully assembled, no extra wiring necessary.
With the MIDI shield, you can add the power of the MIDI protocol to your Arduino projects. MIDI protocol and asynchronous serial interface has many similarities, so users can use the micro-controller UART pin to send MIDI event information. This is a MIDI shield which allows Arduino like boards to receive and send MIDI messages. The shield allows direct wiring of up to 5 piezzo sensors and a keyboard (with buttons and serial resistors) making it ideal for drums projects.
Sample Arduino Code:
/*
MIDI note player
This sketch shows how to use the serial transmit pin (pin 1) 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:
* digital in 1 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.
*/
void setup() {
// Set MIDI baud rate:
Serial.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) {
Serial.write(cmd);
Serial.write(pitch);
Serial.write(velocity);
}