USB midi interface protocol

I’m working on a module that contains some midi IO. Sending data via a traditional DIN-plug is straight forward using an arduino and I have a bit of experience with it. However this kind of data transfer is limited in respect to midi over USB. One of the things I’d like to add to my interface is that DAWs can recognize the interface. I have a few midi controllers that seem to be able to tell the DAW what their names are, or maybe the DAW asks the interface what its name is. Can anybody give me a few pointers to how this works / what kind of protocoll is used?

2 Likes

Could be using the MIDI 2.0 Capability Inquiry feature (MIDI-CI) that was released a couple years back:

(that link was flaky for me; in case it doesn’t work here’s a random article about MIDI-CI from 2018)

2 Likes

Notes & volts (on YouTube) has an excellent MIDI primer. (Sam has recommended it before).The "identification " is usually handled by the USB host controller but I’ve never altered on to name it. You could rename it in the hardware settings of your PC perhaps. Interested in future progress.

1 Like

For a generic Arduino, I just found this video that explains pretty clearly how to change the name of the Arduino USB interface.
Edit: This may only work for Arduinos based on ATMega32U4.

It seems a bit hacky and you have to undo the changes after you’re finished if you don’t want all your future Arduino USB interfaces to have the same name as your USB MIDI interface.

If you are using a Tensy processor, they have good support for USB MIDI interface renaming, described towards the bottom of this page:
https://www.pjrc.com/teensy/td_midi.html

2 Likes

“Name of this USB audio device” isn’t really the same thing as “MIDI device at the other end of this MIDI connection” but maybe the USB layer is good enough here.