diff options
| author | Saulo VerĂssimo <[email protected]> | 2026-03-24 23:37:48 -0300 |
|---|---|---|
| committer | Saulo VerĂssimo <[email protected]> | 2026-05-12 11:07:44 -0300 |
| commit | bc8ce76ae800b312b4d3ef591cc42e8726e68d7f (patch) | |
| tree | fcfe1ba4521bb949fc976cc64cd689fe9d83e7aa /examples | |
| parent | 4e64f3e91cefab0993a837ac03476173eeeda854 (diff) | |
feat: add MIDI 2.0 Device class driver (USB-MIDI 2.0)
Add native USB-MIDI 2.0 Device class driver to TinyUSB. Implements the
USB-MIDI 2.0 specification with both Alt Setting 0 (MIDI 1.0 fallback)
and Alt Setting 1 (UMP native) descriptor support.
Driver features:
- UMP (Universal MIDI Packet) read/write with atomic message framing
- Protocol negotiation: Endpoint Discovery, Config Request/Notify,
Function Block Discovery (embedded in driver)
- Group Terminal Block descriptor via GET_DESCRIPTOR
- Alt Setting switch handler with endpoint re-arm
- Static allocation, no dynamic memory, ISR-safe
Build system:
- Register midi2d_* in usbd.c driver table
- Add TUD_MIDI2_DESCRIPTOR macros to usbd.h
- Add config defaults (CFG_TUD_MIDI2_*) to tusb_option.h
- Add midi2_ump_word_count() to midi.h (shared by Device and Host)
- Add midi2_device.c/h to family.cmake and CMakeLists.txt
- Add midi2_device.h include to tusb.h
All changes guarded by #if CFG_TUD_MIDI2 (default 0). Zero impact on
existing drivers and examples.
Tested: Raspberry Pi Pico (RP2040), Linux ALSA, Windows MIDI Services
Diffstat (limited to 'examples')
0 files changed, 0 insertions, 0 deletions
