Description: The SparkFun MIDI Shield board gives your Arduino-based device access to the antiquated, but still widely used and well supported MIDI communication protocol, so you can control synthesizers, sequencers, and other musical devices. The MIDI protocol shares many similarities with standard asynchronous serial interfaces, so you can use the UART pins of your Arduino to send and receive MIDI’s event messages.
The SparkFun MIDI Shield provides an opto-isolated MIDI-IN port as well as a MIDI-OUT port. The MIDI Shield can be mounted directly on top of an Arduino, connecting the MIDI-IN to the Arduino’s hardware RX pin and the MIDI-OUT to TX. Potentiometers are connected to analog pins 1 and 2, and can be used to control volume, pitch, tone or anything else you’d like. The shield also comes with three momentary push buttons, a reset button, and green and red stat LEDs. The RUN/PROG switch allows you to program the Arduino over serial without having to remove the shield.
This revision of the SparkFun MIDI Shield also adds several configurable features, such as converting the MIDI output to a MIDI thru, and the option to use a software serial port for MIDI, leaving the hardware serial for programming and debugging. It also buffers the output, making it compatible with the Arduino Pro without needing to circumvent the protection resistors on the serial TX and RX lines.
Note: The MIDI Shield does not come with all parts soldered on. Two MIDI connectors, two trimpots, and three pushbuttons are included with the product and will need to be attached by the end user.
Based on 7 ratings:
It worked pretty well. Am so happy with the product. I hope to do more business with sparkfun in Future
I used this for my Halloween project - a sidewalk keyboard. The MIDI shield made the music-making part easy. I didn’t think I’d use the pots and buttons but they came in handy, too, for controlling LED blink rates and MIDI program changes.
I bought this to create a little standalone MIDI arpeggiator using Brendan Clarke’s code found here: http://brendanclarke.com/2014/04/23/arduino-based-midi-sequencer/. It works great (I used the default jumper settings), and the shield was a very simple build. I have another Arduino that I use as a USB host for USB MIDI controllers (the controller’s USB output is converted to DIN MIDI via a non-Sparkfun MIDI shield). The controls on the Sparkfun could be really useful in that application, too.
I have purchased a number of Sparkfun MIDI Shields for a project I developed (https://cs.gmu.edu/~sean/projects/gizmo/). The Shield is unique in providing both an interface (two knobs, three buttons) and a MIDI In/Out, so it’s the best option for me. It does just what it says on the tin, and it’s easy to assemble and code for. But it has a number of deficiencies, which force me to give it less than a stellar review.
First off: the parts are low quality. The provided buttons are really spectacularly bad: from the start they are wobbly and easily mis-trigger, and in my experience they usually start going south after a mere 5000 presses each! Do not install these buttons: buy some better ones. The pots are pretty noisy: this is a problem because for MIDI applications you want at least 7 bits of reliable accuracy, and ideally 10 bits. With a combination of tricks I can squeeze maybe 8 bits out of them. Last, the MIDI ports themselves are a cheap, bendy plastic. Mine haven’t died on me yet, but I’m just counting the days. Sparkfun would do well to provide better quality parts for this kit.
Second: there are some unfortunate design flaws on the board. The board supports software serial, but that is basically worthless. MIDI applications are very timing sensitive (google for “MIDI lag”), and run at about 31K bps. Software serial cannot reliably support this, not if you’re planning on doing anything else on the board at the same time! An alternative would be to upgrade to an Arduino Mega, which has four UARTs, but so far as I can tell the shield cannot be moved to a different UART: you can disable MIDI via the PROG switch but you don’t have the option to shift it to some other RX/TX lines that could then be wired to some other UART on the Mega. You’re stuck sharing the UART with the USB chip or going software serial. Thus if you were planning on doing USB MIDI as well, you’re out of luck. Also I have no idea why the buttons are between the pots and the MIDI ports, making them hard to reach. Why in the world are the buttons not out in front?
If you need a MIDI shield with buttons and pots, this is your one and only option, besides going a more costly route such as that offered by e-licktronics. But it could have been a much better offering.
I use it on an Arduino Uno to connect a Roland PC-100 keyboard to a Roland CM-32L sound module. I would advise against changing the default hardware serial configuration. I tried software serial for MIDI but noticed dropped data, plus I almost destroyed the shield trying to desolder and change the jumpers back to hardware serial communications.
I got this for my son’s 15th birthday, he is really into MIDI stuff and python programming for MIDI, and arduino. I was amazed how fast he had this kit soldered up, we barely had finished the cake and ice cream and he had it attached to his m-audio keyboard and making sounds. Thanks for a great product.