Skip navigation


  • Compatibility with different MIDI devices.
  • Handling of multiple MIDI devices at the same time (e.g. drum machine and synthesizer).
  • Handling of MIDI devices with multiple cables (e.g. USB to MIDI converters).
  • Ability to send MIDI commands to a device and receive MIDI commands from a device.
  • Notifications about insertion and removal of MIDI devices.
  • Small footprint

The emUSB-Host MIDI class enables the communication with any device that supports the MIDI protocol via USB as specified by the USB Implementers Forum.



About MIDI Class

The USB class protocol for MIDI was defined for mapping the MIDI protocol to USB, so that music playing and controlling devices can interact via USB. These music devices can be of any kind using the MIDI interface via USB, whether MIDI controllers, MIDI sequencers, drum computers, instruments, effect units, samplers, or synthesizers.

Application Examples for emUSB-Host MIDI



Effects Unit


Sample Applications Available

emUSB-Host MIDI playing a MIDI sequence on a synthesizer

SEGGER provides multiple examples with the MIDI class for emUSB-Host. One of the examples is playing a MIDI sequence through a connected MIDI synthesizer and displays, in real time, piano notes and accompanying lyrics on the display of an STM32F746G-DISCO board.

Another example converts a standard PC keyboard into a MIDI controller by applying the HID and MIDI classses. The MIDI controller is capable of controlling a synthesizer or other sound generating devices by sending commands via the MIDI interface on each keystroke.


Components required to use emUSB-Host MIDI:

  • emUSB-Host MIDI (Included in emUSB-Host PRO package)
  • emUSB-Host core (Included in emUSB-Host PRO package)
  • emUSB-Host target driver (One driver is included in emUSB-Host PRO package)
  • Real-time operating system (embOS or other)