Releases: DatanoiseTV/midi2-ump-net-esp-idf
Release list
v0.3.0 - Client + Host roles
The endpoint can now act as both a Network MIDI 2.0 Client and Host on a single instance.
Added:
- Client/initiator role: midi2_net_host_connect() / midi2_net_host_disconnect(). Full outbound handshake (Invitation with repeat/timeout; Invitation Reply Accepted/Pending/Auth/UserAuth) and client-side SHA-256 authentication.
- act_as_host config flag for a Client-only endpoint (no mDNS advertising, rejects inbound Invitations).
- Demo option to also connect out as a Client.
Fixed:
- Outbound IPv4 sends on the dual-stack IPv6 socket now use IPv4-mapped addresses (::ffff:a.b.c.d).
Verified on ESP32-P4 over Ethernet: connects out to a remote Host (Invitation accepted, session established, UMP exchanged) while concurrently serving as a Host.
v0.2.0
Adds a complete UMP message API in midi2_ump.h covering every UMP message type (MIDI Association M2-104-UM v1.1.2):
- Utility (NOOP, JR Clock/Timestamp, Delta Clockstamp)
- System Common (MTC, Song Position, Song Select, Tune Request) and System Real Time
- MIDI 1.0 Channel Voice (full set)
- MIDI 2.0 Channel Voice (full set incl. RPN/NRPN, relative RPN/NRPN, registered/assignable per-note controllers, per-note pitch bend, per-note management)
- SysEx7 and SysEx8 multi-packet builders
- Flex Data (Set Tempo / Time Signature / Key Signature, UTF-8 text/lyric, generic builder)
- UMP Stream discovery requests, Device Identity, Start/End Clip
Plus a generic builder per family, a unified midi2_ump_parse() decoder, and a midi2_ump_iter_next() stream iterator. All encodings verified byte-exact against the spec via a host test (54/54). Backward compatible with 0.1.x.
v0.1.1
Confirms end-to-end macOS interop on an ESP32-P4-Nano over Ethernet: Bonjour discovery, the Network MIDI 2.0 session handshake over IPv4 and IPv6, UMP Stream endpoint/function-block discovery, and UMP exchange through the resulting MIDI port. Documentation-only change over v0.1.0.
v0.1.0
Initial public release of the Network MIDI 2.0 (UDP) Host transport for ESP-IDF.
Implements MIDI Association M2-124-UM v1.0 (Host role): session protocol (Invitation/Accept, optional SHA-256 auth, Ping, Bye, NAK, Session Reset), UMP Data with sequence numbers, Forward Error Correction and Retransmit, mDNS _midi2._udp discovery, and a UMP Stream endpoint/function-block discovery responder so the endpoint enumerates as a MIDI port. Dual-stack IPv4/IPv6.
Includes an ESP32-P4-Nano demo (Ethernet, IP101 PHY) and an on-device loopback self-test.
Verified: builds for ESP32-P4 and ESP32-S3 on ESP-IDF v6.0 (no warnings); loopback self-test 14/14 on ESP32-P4; over Ethernet, Bonjour discovery, Invitation/Accept (IPv4 and IPv6) and byte-correct UMP Stream discovery confirmed from a LAN client and from macOS.