Make a MIDI USB device with the name you want using Arduino and Arduino compatible boards

If you want to make a MIDI USB device, I would advise you to use a Teensy as it is really well integrated. Teensy still today stay my first choice when I want to make a USB MIDI device. If you want to change your MIDI device name with a Teensy, you have an exemple sketch in the IDE and explanations here.

That said, you can use an Arduino with MIDIUSB library. Note that this library is only working with atmega32u4 based boards and ARM boards, so, that would mean Leonardo, Micro, LilyPad, Esplora, Due, Zero, YŚN, Beetle Arduino, Arduino pro micro (this one has lots of variants, with or without USB connector), Arduino Pico, Nerdonic Exen Mini, Adafruit Feather 32u4, Itsy Bitsy 32u4, Atmega32u4 Breakout Board, Adafruit Bluefruit LE Micro, Arduboy, Flora, Circuit Playground Classic, Bare Conductive Touch Board, Mojo v3, Fio v3, Qduino Mini, Dreamer Nano V4, LeoStick, WIOT Board, Papilio DUO, µduino, Duinobot, Tah, IMUduino, mCookied, Neutrino, to name a good few that might work! If you think of another, let me know!

Once you made your MIDI USB device, you will probably want to give it another name than the one automatically given when compiling. Here is how to do it. Here I have tested it for the Leonardo and it would be easy to adapt to another Arduino compatible board.

  • First download this and put it under /Users/username/Documents/Arduino/hardware/
  • Turn your Arduino IDE off
  • Open /Users/username/Documents/Arduino/hardware/musinou/avr/built.txt locate those lines:
    leonardomusinou.build.vid=0x2341
    leonardomusinou.build.pid=0x8031
    leonardomusinou.build.usb_product="Arduino Leonardo musinou"
    
  • Now you can change the usb_product by the name or your choice
  • Save and open the IDE. You have now to chose "Arduino Leonardo musinou" as board. Upload your code on the Arduino. Open your Audio MIDI setup or your DAW, and you will now have your chosen name as MIDI device name.

Well, if you have another board or if you have to change the name multiple times, or if there is a compatibility problem your your IDE version, here is what you have to do

  • Note that if you want to change the name multiple times, you most change vid and pid, as maybe 0x2340 and 0x8030, or whatever. Careful, this is not an advice if you want to sell a product, if you do, stop here and read all about USB devices. But if you do it for yourself, you could probably put whatever, and you will never clash with another of your USB devices. That said, it is possible, so, if it does, change it again. Once you do that, you can turn your IDE back on and upload your sketch again.
  • Now, whatever you want to make it for another board, or if you want to update this code (as this was done with Arduino 1.8.2) you have to go to /Applications/Arduino1.8.2.app/Contents/Java/hardware/arduino/avr/built.txt and copy from there whatever board you need, past it into /Users/username/Documents/Arduino/hardware/musinou/avr/built.txt and make the needed modification at vid, pid and usb_product. You need to to add arduino: on some parameters. Refer to the Leonardo exemple to find out which. Following that go to /Applications/Arduino1.8.2.app/Contents/Java/hardware/arduino/avr/bootloaders/caterina and copy from there the files you need. Now turn your IDE on again and upload
  • This was inspired by this Github thread and this one.
  • If you adapt end test this for another board, it would be nice if you could send it to me, I would gladly update this with more boards