Skip to content

Releases: DatanoiseTV/midi2-ump-net-esp-idf

v0.3.0 - Client + Host roles

Choose a tag to compare

@DatanoiseTV DatanoiseTV released this 19 Jun 13:48

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

Choose a tag to compare

@DatanoiseTV DatanoiseTV released this 19 Jun 08:33

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

Choose a tag to compare

@DatanoiseTV DatanoiseTV released this 18 Jun 15:51

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

Choose a tag to compare

@DatanoiseTV DatanoiseTV released this 18 Jun 15:47

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.