Arduino USB


host vs device vs OTG

Pluggable USB vs Tiny USB
In 2015, Arduino added PluggableUSB support for most official Arduino devices
PluggableUSB supports more functionality for Arduino models with embedded USB
That functionality is typically incompatible with Tiny USB, and vice versa.
ARDUINODOCS MIDIUSB device control
Espressif supports ESP32 USB for Arduino via Adafruit's TinyUSB,
also used for mbed_rp2040, ArduinoCore-samd and Pico
EspTinyUSB USB composite device lacks MIDI support
STMicroelectronics' USB device Arduino support is relatively limited.
A Blue Pill composite USB device library for Roger Clark's Maple-based Arduino STM32
is incompatible with current Arduino STM32 device USB based on STM32Cube
USBLibrarySTM32 implements PluggableUSB API for STM32

Arduino USB connections

FortySevenEffects / Arduino MIDI Library
can read all MIDI channels, supports callbacks
and multiple MIDI interfaces, for mergers/splitters applications
depends on lathoub / Arduino-USBMIDI, which in turn
  depends on Arduino MIDIUSB, based on PluggableUSB.
  - MIDIUSB2 adds callback support to MIDIUSB
maintained by blekenbleu