fbpx
Skip to main content

Network MIDI 2.0 (UDP) Overview


User Datagram Protocol for Universal MIDI Packets (aka Network MIDI 2.0) defines a standard way to connect MIDI devices (MIDI 1.0 and MIDI 2.0 protocol) via Ethernet and wireless LAN. The initial version was ratified by the MIDI Association and AMEI in November 2024.

The specification can be downloaded here:

https://midi.org/network-midi-2-0


Benefits of Network MIDI 2.0

Ethernet and wireless LAN  are suitable transports for MIDI. They complement, and can sometimes replace, established MIDI transports like 5-Pin DIN and USB MIDI.

Highlights:

  • Long distance
    • Ethernet cables can transmit data up to 100 meters (330ft) without any signal loss or degradation.
    • Wireless can reach up to 45m (150ft) with direct line of sight (actual distance depends on a number of factors)
  • Low latency
    • Typical latency on Ethernet is under 1ms. Wireless LAN latency depends on connection quality and technology, but typically under 5ms.
  • High bandwidth
    • 100MBit/s or more on Ethernet, 1MBit/s or more on wireless LAN
    • One cable/wireless link is enough for many logical connections
  • Ground isolation
    • On Ethernet, connections are electrically isolated, reducing the chances of electrical grounding noise issues.
  • Auto-Discovery
    • Can select devices to connect by name
  • Off-the-shelf parts and infrastructure
    • Standard cables (Cat5, Cat6, etc.), routers, switches, and components are readily available and cost effective
    • Many transports for audio already use Ethernet or IP-based protocols. Some of those are open standards (i.e. AES67) and some are proprietary. Being able to run MIDI 2.0 as a control protocol over the same links that run audio can greatly expand the use of MIDI 2.0.
  • Wireless MIDI 2.0 using Wireless LAN
    • The same protocol can be used on wired connections via Ethernet, and wireless connections on wireless LAN, also in mixed environments.
  • Logical connection setup (Session Management)
    • The user has full control over which device is able to send/receive MIDI with which other device (or application)
    • Connections can be changed without having to move physical cables.
    • Many MIDI streams (sessions) can be configured on the same cable
    • Simple security mechanisms available in Network MIDI 2.0 help prevent unauthorized access
  • Peer to peer connection is possible without the need to route data through a computer.
  • Software implementations do not require OS support

    Example of a networked MIDI studio:


    Who can take Advantage of Network MIDI 2.0?

    Every MIDI user can benefit of Network MIDI 2.0: it provides a bridge between MIDI 1.0 and MIDI 2.0 devices. 

    Although Network MIDI 2.0 is particularly well suited as a MIDI transport, other transports like USB-MIDI 2.0, and the good old MIDI 5-pin DIN, have their own merits. Therefore, Network MIDI 2.0 is just one more  transport for MIDI.


    Who’s In? Network MIDI 2.0 at NAMM 2025


    The first products which use this specification are starting to be released and will be featured at The MIDI Association booth 10302 at the front of Hall A at the 2025 NAMM show.

    Examples for announced or available products with Network MIDI 2.0:

    The MIDI Association will also host a presentation at the NAMM Show about Network MIDI 2.0, Thursday, January 23, 2025 1:00 PM.

    For more info, see here: https://midi.org/event-calendar/network-midi-2-0-udp-transport-specification


    Specification Details for Developers

    Which Devices and Applications can use Network MIDI 2.0?

    To add Network MIDI 2.0 in support to your device, the requirements are reasonably simple. First, there are the physical components (connector, transformer, …). Secondly, the software implementation needs to provide IP and UDP functionality, plus the implementation of the Network MIDI 2.0 protocol itself. The standard is designed with the goal that even systems with little memory will be able to implement the minimum required set of Network MIDI 2.0 features.

    Software applications can implement the Network MIDI 2.0 standard using OS provided APIs for IP and UDP functionality. However, we expect availability of general-purpose Network MIDI 2.0 connector applications, and OS components and APIs, so that most applications do not need to implement the Network MIDI 2.0 standard on their own. Remote MIDI devices may be used the same as locally connected MIDI devices.

    Version 1.0: Simplicity

    The first version of Network MIDI 2.0 was developed with the goal of providing an easy to use and easy to implement solution. Only essential features are specified. The specification is limited to Local Area Networks using wired Ethernet and wireless LAN. Data transfer uses UDP as the underlying protocol.

    However, the standard is extensible, so we may see updated specification versions with additional, backwards compatible, functionality.

    Three Sections

    The standard is divided into three sections:

    Section 1: Discovery

    • Who’s out there?

      Section 2: Session

      • Connection setup and tear down

      Section 3: Data I/O

      • Send and receive UMP

      Let’s start with a description of the first section.

      Section 1: Discovery

      The discovery allows a device (or application) to find other Network MIDI 2.0 devices (hardware or software applications) which are reachable via the network.

      User Friendly

      Discovery allows users to select MIDI device(s) to connect to by name. Imagine a keyboard with a display, where you have a list of synthesizers in your studio, and you just select the one you want to play… done!

      Using Established Standards

      Network MIDI 2.0 discovery uses the established standard mDNS with DNS-SD. This standard is also known as “ZeroConf networking” and as “Apple Bonjour”. This allows devices to advertise their MIDI 2.0 services using the publicly registered service type: “midi2”. This discovery allows  mDNS/DNS-SD devices to get the following information about a Network MIDI 2.0 device:

      • IP Address
      • UDP Port
      • UMP Endpoint Name*
      • Product Instance Id*

      *These properties are defined by MIDI specifications.

      Operating System Support

      Common operating systems already provide mDNS services for use by applications, so it is simple to add Network MIDI 2.0 Discovery to your implementation.

      Optional

      Network MIDI 2.0 Discovery is optional. But we highly recommend implementing it in your device. Otherwise, your users won’t be able to select your device by name!

      Some special devices may not need Discovery. For example, in some systems a device will need to be hard wired somehow (using a fixed IP address), where such auto-discovery wouldn’t make much sense.

      Section 2: Session

      The Session section is all about (logical) connections of Network MIDI 2.0 devices. The term Session is used here, because the word “connection” could mean many other things, too.

      The Session functionality is required for all Network MIDI 2.0 devices, because plugging an Ethernet cable into a network does not tell the device with which other MIDI device you want to be “MIDI connected”.

      Client and Host

      In Network MIDI 2.0 terminology, a Client starts a Session with a Host. A typical scenario is that the Hosts advertise their Network MIDI 2.0 services via Discovery, and the Client selects a Host, then starts the session with it. Of course, a single device can assume both Client and Host roles for different Sessions. In fact, we expect that most devices and applications will be both Host and Client (i.e. they’re discoverable, and they can initiate a Session).

      Session Commands

      The Network MIDI 2.0 Session specifies different Session Commands for starting a Session (Client), accepting a Session (Host), and terminating a running Session (both Client and Host).

      Under the hood, the Session Commands are plain UDP messages with a short, simple header which specifies which MIDI-specific Session Command is being sent.

      Authorization

      The two-step Session setup allows devices (in Host role) to ask the user to acknowledge an incoming Session request. This is useful for devices with public access, or where you don’t want random people to play your synth via the network.

      Authentication

      Additionally, the Session specification also provides mechanisms to secure a Session with a password or PIN for a successful Session initiation, or to provide a valid user+password combination.

      Note that the Authentication mechanisms currently provided in Network MIDI 2.0 only provide simple security and do not use any encryption. But they are simple to implement, and do provide a minimum level of security.

      These Authentication mechanisms are optional. But keep in mind that a Host may require Authentication: in that case, your Client will only be able to connect if it can provide the Host with a matching password or username + password. In general, though, we recommend that a Host can be configured to require Authentication or not. 

      Multi-Session

      The Network MIDI 2.0 standard allows very flexible session configurations. Examples:

      • One Client can connect to multiple Hosts
      • One Host can accept Sessions from multiple Clients
      • A device can use multiple Client instances for multiple Sessions to the same Host
      • A device can also have multiple Hosts, e.g. for separate logical units (although, because we’re sending UMP, separate Groups can be used for that).

      Handling Command Packet Loss

      Because UDP does not guarantee packet delivery, the Session protocol is designed to gracefully handle a lost Session Command. Most Session Commands (like the Invitation Command to request the start a Session) are repeated until a reply is received. During that time, the Command is pending, and can be terminated by the user, or if a time-out occurs (depending on the implementation).

      To further check that a remote Host is still alive, the Ping Command can be used. The remote Host will reply with the Ping Reply Command if it is still powered on and connected to the network.

      Section 3: Data Transmission

      The third section of the Network MIDI 2.0 specification is all about sending and receiving MIDI messages in the Universal MIDI Packet data format (UMP). As you know, UMP can contain messages in MIDI 1.0 protocol and in MIDI 2.0 protocol.

      Session Established: Can Send and Receive UMP

      Once the Session is established, both Host and Client can send and receive UMP, where the full UMP feature set is available. The Network MIDI 2.0 layer is agnostic to the UMP contents: any UMP packet will be transmitted. The Network MIDI 2.0 layer never creates or consumes UMP messages, and there is no need for the (deep) inspection of the UMP data.

      Multiple Commands per UDP

      For sending UMP, the UMP Data Command is used. Because it uses the same header as Session Commands, you can mix and match Session Commands with UMP Data Commands in one UDP packet for efficient transmission. The flexible Command allows multiple UMPs in one UMP Data Command, and multiple UMP Data Commands per UDP packet.

      Data Integrity: Sequence Number

      Every UMP Data command has a sequence number. It allows receivers to detect:

      • out-of order packets
      • missing packets
      • duplicate packets

      Data Integrity: FEC

      Forward Error Correction (FEC) is a simple mechanism to recover from occasional loss of a packet. Remember, UDP does not guarantee delivery of packets…

      The idea of FEC is that when a sender sends UMP data in a UDP packet, it routinely includes the two most recent UMP Data Commands in the same UDP packet. So from the point of view of the receiver, if one UDP packet gets lost, the receiver will get the missing UMP with the next UDP packet. Receivers, on the other hand, always discard UMP Data Commands with a sequence number they have already processed. Because the FEC Data Commands have previous sequence numbers, receivers will usually ignore the additional FEC Data Commands.

      Because FEC has very low requirements for both senders and receivers, it is highly recommended that all devices implement FEC.

      FEC can also be combined with the following mechanism for even higher data integrity.

      Data Integrity: Retransmit

      If the local device discovers a missing packet (and FEC does not fix it), a Retransmit can be requested from the remote device. If the remote device keeps a Retransmit buffer, it can resend the missing packet. Otherwise, it notifies the local device via a Retransmit Error Command that the buffer does not contain the missing packet.

      Retransmit functionality is optional for both sending and receiving side. If a device does not keep a retransmit buffer at all, it will respond with a NAK Command when it receives a Retransmit request. That’ll let the other device know that there is no point in further trying Retransmit.

      Ethernet Packet Format for Network MIDI 2.0


      Possible Future Plans

      The MIDI Association has tried to keep the standard simple. To better clarify the scope of the current version, here are a few features that are not in the initial version but might be added in future expansions of the specification. 

      Encryption

      Network MIDI 2.0 does not provide any encryption of the UMP data (or of the Session Commands). If encryption is required, it can be configured on a lower layer, for example with a VPN or an encrypted tunnel. This is currently outside the scope of the Network MIDI 2.0 standard.

      Clock or Synchronization

      In the first version, the Network MIDI 2.0 standard does not define any mechanism for time synchronization.  Clock and synchronization mechanisms are available on the UMP layer, e.g. JR Timestamps or MIDI 1.0 clock.

      Remote Session Management

      Version 1.0 of the Network MIDI 1.0 standard defines Session management between pairs of devices (“device A with device B”).  Remote Session management would allow device A to tell device B to initiate a Session with device C. Such functionality would be useful  for central studio and stage management.

      There is no defined method to do this at this time, but the MIDI Association sees a lot of value in remote Session management and may add it to the standard in a future revision.


      Interested in adding Network MIDI 2.0 to your products

      We’d love to hear from you if you’re interested in adding Network MIDI 2.0 to your product, or if you have any comments!

      The MIDI Association is working on a series of articles for assisting you with the implementation of the Network MIDI 2.0 standard into your product. You can sign up to receive notifications here:

      https://midi.org/individual-membership-app