[Noisebridge-discuss] How do I get midi messages from Arduino into a MIDI program, like Traktor?

Tymm Twillman tymmothy at gmail.com
Sun Jan 30 01:03:27 UTC 2011

Well there's a couple of ways to go about it.

Thing is, regular Arduinos (Diecimila, Duimilanove, Uno, ...) show up as USB serial ports, not USB Midi.  So here's a small load of approaches...

1) Roland has some software that folks use to convert, but I don't remember the name of it (sure a quick web search would find it).  This would have to be installed on any systems that would use the Arduino for Midi.  The Arduino needs to speak Midi over its serial port though -- not too hard; there are several examples on the Arduino Playground.  I also have a Midi stack for Arduino that I've put up on http://timothytwillman.com/itp_blog/?page_id=240 that a number of folks are using for Midi projects -- though there may be some issues with newest Arduino release that I haven't had time to straighten out (seems that the Arduino software now doesn't include some headers that they used to by default).

2) Another alternative is to use Max/MSP or Pure Data to act as an intermediary (I've done a number of projects sending / receiving Midi over the Arduino's serial port at a standard baud rate, and then using one of these to route the messages to/from the OSX system MIDI buses, mostly using the Midi stack mentioned above... that's how these: http://amorphicrobotworks.org/works/innerspace/index.htm http://amorphicrobotworks.org/works/growth/index.htm are controlled for example).

3) Another approach (the way I prefer for music) is to build or buy a Midi shield, and hook into a "real" USB to Midi adapter (e.g. MidiSport 2x2 -- you can find them sometimes on Craigslist, etc. for anywhere from $5-$50).  The main advantages here are the more "standard" driver support, and with good quality hardware / drivers you can decrease some of the extra latency that comes from cheapy USB Midi adapters (on top of Midi's already borderline crappy latency)... a little technical, but the way most USB serial adapters, and cheap Midi adapters send data over USB isn't great for minimizing latencies; professional hardware & drivers have been designed to do a better job at this.  Narbotic's Vox Box does this.

4(?) ) I've heard speak of some ways to get Uno's to show up as other USB devices, but I don't have one and haven't tried.  Since they use AVR chips as the USB Serial Converter,I suspect you upload new firmware to that chip... no clue difficulty on that.

5) Teensy's have a Midi profile that can be used in the newest Teensyduino releases.  This will make them show up as a USB Midi device.  I haven't played with it.  But the Teensy stuff is generally well put together, and I use 'em for other things all the time, mostly rapid prototyping and tiny embedded controllers. There's some disagreement / lack of clarity in just how well they fit an open source model (don't think they release assembly files for their boards, and might be some pieces of e.g. the bootloading software that they don't release, but haven't spent the full time to dig into it... and for me personally it's not that big of an issue... but it does bother some folks that they don't seem to match the open source model of the Arduino boards).

On Jan 29, 2011, at 4:31 PM, Michael Shiloh wrote:

> Although I'm pretty comfortable with Arduino, I'm not very plugged in to 
> the MIDI music control scene, although I understand the underlying 
> technology.
> Note that the word MIDI here refers only to the protocol. There is no 
> MIDI plug: it's MIDI over USB.
> One of my students wants to build a MIDI input device for Traktor, which 
> is a music manipulation program. The MIDI input is not a keyboard or 
> other musical instrument, but rather a generic set of knobs and sliders 
> that can be mapped to certain Traktor functions.
> I suspect this same mechanism is used by a wide range of music and other 
> programs, so that arbitrary control surfaces can be used to control 
> various functionality. (I think I've heard of a video editor working the 
> same way.)
> My student, Trevor, wants to use Arduino to build his control surface.
> I can handle the Arduino/sensor/USB side of things, but I'm mystified as
> to how to make it appear as a MIDI input to Traktor.
> Trevor showed me how you add new inputs (controllers) to Traktor, and
> there is a pulldown menu for manufacturer and model.
> I guess that when you buy an off-the-shelf MIDI control surface, it 
> comes with a driver that makes it appear to be a MIDI device, which the 
> application software can then attach to.
> These means that for any DIY device like Arduino, we must provide the 
> equivalent of this driver, that speaks the right protocol and convinces 
> applications like Traktor that it is a legitimate MIDI device.
> I'm sure that this software exists, and that it's free, but I have no
> idea what it's called, or where to find it, or, if I can write it, what 
> I should make it do.
> Any advice?
> _______________________________________________
> Noisebridge-discuss mailing list
> Noisebridge-discuss at lists.noisebridge.net
> https://www.noisebridge.net/mailman/listinfo/noisebridge-discuss

More information about the Noisebridge-discuss mailing list