Device Control

Allows an Arduino board with USB capabilites to act as a MIDI instrument over USB.

Go to repository


This library is compatible with the avr, sam, samd architectures so you should be able to use it on the following Arduino boards:

Compatibility Note

Note: while the library is supposed to compile correctly on these architectures, it might require specific hardware features that may be available only on some boards.


To use this library, open the Library Manager in the Arduino IDE and install it from there.


These library allows any microcontroller with native USB capabilities (atmega32u4 based boards or ARM boards) to appear as a MIDI peripheral over USB to a connected computer.

The library is compatible with PluggableUSB-ready cores (AVR core > 1.6.8, SAM core > 1.6.4, SAMD core > 1.6.1)

The library exposes the following functions

midiEventPacket_t read(void);

void sendMIDI(midiEventPacket_t event);

void flush(void);