Sending MIDI up the USB using Arduino

24.9k views Asked by At

I'm interested in making an Arduino based MIDI controller to talk to my computer. Looking at other examples of Arduino MIDI (for example, MIDI Output using an Arduino), they all seem to wire up a dedicated 5 pin DIN. Which makes sense as this is the original cable to connect keyboards, expanders and sequencers together.

However, I want to send MIDI to my PC. A 5-pin DIN is just going to have to be plugged into a conversion box which connects to my PC via USB. And I already have a USB cable to connect my Arduino to my PC. So why can't I just use this?

I'm assuming what would stop me is that these conversion boxes all come with drivers which know how to handle the signal coming in over USB. Whereas, say, a virtual synthesizer on my computer wouldn't expect or know how to handle raw bytes coming in via the serial port. So is there a standard or free equivalent to these drivers that I could use for my own project? Or, if not, what would it take to write one? Where could I find out more about this?

4

There are 4 answers

0
RngTng On

You may want to use checkSpikenzielabs Serial - MIDI Converter. It looks exactly what you're looking for. It converts incomming serial data to MIDI data. So on the Arduino side, just send serial data as usual, and receive MIDI data on PC side.

0
Xulio Coira On

We've developed an OSHW Arduino Shield for that http://openpipe.cc/products/midi-usb-shield/ Source code and schematics available. Hope it helps!

0
vincent On

We built some module to make your own Midi device easily just have a look e-licktronic

We use Hairless to convert Serial to MIDI it's a very simple software

0
Nate On

I found it was easier to just embed a cheap ($6) MIDI-USB interface right into my Arduino projects. Quick and Dirty Arduino MIDI Over USB explains how.

There are also some pictures of an old calculator I turned into an Arduino USB-MIDI controller in Calculator MIDI USB Controller.

I hope that helps.