<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinyusb.git/src/class/midi/midi2_device.h, branch xfer_isr_fallback</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/tinyusb.git/atom/src/class/midi/midi2_device.h?h=xfer_isr_fallback</id>
<link rel='self' href='http://cgit.235523.xyz/tinyusb.git/atom/src/class/midi/midi2_device.h?h=xfer_isr_fallback'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/'/>
<updated>2026-05-18T21:07:49Z</updated>
<entry>
<title>midi2: convert to raw Tx FIFO for better segmentation handling, add count to packet api</title>
<updated>2026-05-18T21:07:49Z</updated>
<author>
<name>HiFiPhile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-05-18T21:07:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=4baf1883c194c2c4b6fa30cc0c443ad6c83e0b19'/>
<id>urn:sha1:4baf1883c194c2c4b6fa30cc0c443ad6c83e0b19</id>
<content type='text'>
Signed-off-by: HiFiPhile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>midi2: drain pattern for RX FIFO</title>
<updated>2026-05-17T22:56:04Z</updated>
<author>
<name>Saulo Veríssimo</name>
<email>sauloverissimo@gmail.com</email>
</author>
<published>2026-05-17T22:56:04Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=b31e7cdbbedec4a3286700f3ec24bb63fd7c224f'/>
<id>urn:sha1:b31e7cdbbedec4a3286700f3ec24bb63fd7c224f</id>
<content type='text'>
Default RX/TX buffers to EPSIZE for both device and host. Document
drain-in-loop on ump_read; example device callback drains until
empty.
</content>
</entry>
<entry>
<title>midi2: scale device buffers with EPSIZE</title>
<updated>2026-05-17T16:07:21Z</updated>
<author>
<name>Saulo Veríssimo</name>
<email>sauloverissimo@gmail.com</email>
</author>
<published>2026-05-17T16:07:21Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=287096f7333aa10b6aaaf75337ccd3de9b06b95d'/>
<id>urn:sha1:287096f7333aa10b6aaaf75337ccd3de9b06b95d</id>
<content type='text'>
Match midi2_host pattern. Literal 256 underran HS endpoints (512B).
</content>
</entry>
<entry>
<title>midi2: per-interface weak callbacks for UMP Stream config</title>
<updated>2026-05-17T15:19:45Z</updated>
<author>
<name>Saulo Veríssimo</name>
<email>sauloverissimo@gmail.com</email>
</author>
<published>2026-05-17T15:19:45Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=4b729bfb9274af44f8edfba2134893a6889cfd03'/>
<id>urn:sha1:4b729bfb9274af44f8edfba2134893a6889cfd03</id>
<content type='text'>
Lets each instance return different NUM_GROUPS, NUM_FUNCTION_BLOCKS,
EP_NAME and PRODUCT_ID. Defaults fall back to the macros.
</content>
</entry>
<entry>
<title>midi2: peek 4 bytes for MT, restore 256 buffers</title>
<updated>2026-05-17T14:31:12Z</updated>
<author>
<name>Saulo Veríssimo</name>
<email>sauloverissimo@gmail.com</email>
</author>
<published>2026-05-17T14:31:12Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=5ac6346dd4980af75973e53dd130e7ee2a9af32d'/>
<id>urn:sha1:5ac6346dd4980af75973e53dd130e7ee2a9af32d</id>
<content type='text'>
MT is in byte 3 of the UMP word in LE memory, not byte 0. Buffers
at mps blocked RX xfer re-arm on partial packets.
</content>
</entry>
<entry>
<title>midi2: move config to class header</title>
<updated>2026-05-17T12:11:53Z</updated>
<author>
<name>HiFiPhile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-05-17T12:11:53Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=3f209e2a00538726992ba908fe905213c78a9f6e'/>
<id>urn:sha1:3f209e2a00538726992ba908fe905213c78a9f6e</id>
<content type='text'>
Signed-off-by: HiFiPhile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>midi2: reject UMP read/write API on alt setting 0</title>
<updated>2026-05-16T15:59:03Z</updated>
<author>
<name>Saulo Veríssimo</name>
<email>sauloverissimo@gmail.com</email>
</author>
<published>2026-05-16T15:59:03Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=0af0665ed65ef9574a4c3c2da83c1c502cb713de'/>
<id>urn:sha1:0af0665ed65ef9574a4c3c2da83c1c502cb713de</id>
<content type='text'>
Alt 0 carries USB-MIDI 1.0 32-bit Event Packets, not UMP words; calling
the UMP API there would misinterpret the stream. Expose MIDI_PROTOCOL_MIDI1
and MIDI_PROTOCOL_MIDI2 in the public header so applications can branch on
the negotiated protocol.

Ref #3571
</content>
</entry>
<entry>
<title>feat: add MIDI 2.0 Device class driver (USB-MIDI 2.0)</title>
<updated>2026-05-12T14:07:44Z</updated>
<author>
<name>Saulo Veríssimo</name>
<email>sauloverissimo@gmail.com</email>
</author>
<published>2026-03-25T02:37:48Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=bc8ce76ae800b312b4d3ef591cc42e8726e68d7f'/>
<id>urn:sha1:bc8ce76ae800b312b4d3ef591cc42e8726e68d7f</id>
<content type='text'>
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
</content>
</entry>
</feed>
