Fact-checked by Grok 2 weeks ago

RTP-MIDI

RTP-MIDI is a network protocol that specifies a (RTP) payload format for transmitting (MIDI) 1.0 messages over networks, supporting low-latency applications such as collaborative musical performances and MIDI content streaming while incorporating mechanisms for and timing synchronization. Developed by researchers John Lazzaro and John Wawrzynek at the , RTP-MIDI originated from a 2004 presentation at the on RTP payloads for MIDI, leading to its standardization by the (IETF) Audio/Video Transport working group in collaboration with the MIDI Manufacturers Association (MMA). The protocol was first published as 4695 in November 2006 and updated as 6295 in June 2011 to refine payload encoding, features, and with (SDP) for session management. 4696 provides non-normative implementation guidance, emphasizing its use in both interactive real-time scenarios and non-interactive streaming. Key features of RTP-MIDI include encoding all standard 1.0 commands into RTP packets with headers for MIDI data and optional recovery journals—sequences of prior commands that enable reconstruction of lost packets without retransmission, using policies like closed-loop or anchor recovery to balance and reliability. It supports up to 16 channels per stream, timestamp-based timing for (including MIDI Time Code), and multiple related streams via SDP parameters such as musicport for port numbering or ordered relationships. The protocol operates over or in or modes, integrates with Secure RTP (SRTP) for security, and is compatible with standards like , Downloadable Sounds Level 2 (DLS2), and MPEG-4 Structured Audio, making it suitable for low-bitrate music and audio/video . RTP-MIDI, often referred to as AppleMIDI in Apple's ecosystem, gained widespread adoption through native support in macOS and via the Core MIDI framework's Network Driver, which adds a proprietary session establishment protocol using for peer discovery and ports for control and data transmission. Other implementations include open-source drivers for Windows (e.g., by Tobias Erichsen), support in frameworks like , hardware devices such as Kiss-Box Ethernet interfaces, and libraries for microcontrollers, , and apps, enabling wireless over Ethernet and networks. While RTP-MIDI remains focused on 1.0, the MMA has introduced Network 2.0 as a UDP-based successor for enhanced bidirectional communication and 2.0 features.

Overview

Definition and Purpose

RTP-MIDI is a network protocol specification that encapsulates Musical Instrument Digital Interface (MIDI) messages within Real-time Transport Protocol (RTP) packets transmitted over User Datagram Protocol (UDP) or Transmission Control Protocol (TCP)/Internet Protocol (IP), enabling their transport across Ethernet and WiFi networks. This format supports the full range of MIDI 1.0 commands, including those for real-time performance data, synchronization, and control, while integrating with standard IP-based networking infrastructure to facilitate low-latency communication. The primary purpose of RTP-MIDI is to enable , bidirectional transmission of data between devices without requiring specialized hardware beyond standard network interfaces, thereby supporting collaborative music production, remote control, and live performances over networks. By leveraging RTP's timing mechanisms and optional recovery features, the protocol ensures reliable delivery suitable for interactive applications, such as synchronized ensemble playing or streaming content, while minimizing latency critical for musical timing. It addresses the limitations of physical connections, like DIN cables or USB, by allowing virtual "cables" over networks that mimic direct device linking. At its core, RTP-MIDI employs RTP for precise packet sequencing and timestamping to maintain MIDI event timing, RTCP for session control, feedback on , and stream , and a session-based that establishes persistent connections between endpoints. These components collectively provide resilience against network variability, such as or dropped packets, through configurable recovery journals and tools.

Key Features

RTP-MIDI enables low-latency transmission of MIDI data over IP networks by leveraging Real-time Transport Protocol (RTP) timestamps, which synchronize commands with precise timing relative to the RTP clock rate, typically set to ensure accurate playback in musical applications. Delta times encoded in the payload (1-4 octets) represent the interval between MIDI commands and the RTP timestamp, allowing for faithful reproduction of timing from sources like Standard MIDI Files. This real-time capability supports interactive performances where synchronization across devices is critical, with configurable modes for timestamp semantics such as asynchronous or buffered rendering. The protocol facilitates bidirectional, full-duplex communication through sendrecv sessions that emulate the simultaneous send-and-receive behavior of physical MIDI DIN cables, enabling interactive exchanges between endpoints without directional restrictions. Multiple streams can share a namespace, identified by unique synchronization source (SSRC) identifiers, which supports virtual port mappings for complex in applications like networked ensembles. This duplex nature ensures seamless integration with existing MIDI workflows, treating network connections as virtual cables. RTP-MIDI operates with over standard infrastructures, utilizing or / (or optionally /). is achieved through support for multiple endpoints in topologies or client-server configurations, where a central session can route data among numerous participants using unique SSRCs per stream and for group communications. This enables applications ranging from small duets to large-scale networked orchestras, with session descriptions via parameters defining transport details like versions and port assignments. The protocol's design accommodates varying network sizes without performance degradation in typical musical contexts. Error is provided by RTP sequence numbers for detecting and ordering packets, combined with journals that maintain a history of recent MIDI commands to reconstruct lost data without retransmissions that could introduce latency. Journals use checkpoint packets as anchors and include tools like recency bits for SysEx messages, employing closed-loop or anchor policies to balance reliability and flow. This mechanism ensures uninterrupted MIDI streams even under moderate , preserving the protocol's suitability for time-sensitive audio production.

History

Origins and Development

RTP-MIDI emerged from efforts in the early 2000s to transport Musical Instrument Digital Interface (MIDI) data over IP networks, addressing the constraints of traditional wired connections such as serial cables and USB, which limited mobility in music studios and live performances. Independent developers, notably John Lazzaro and John Wawrzynek at the University of California, Berkeley, initiated the project to encapsulate MIDI messages within Real-time Transport Protocol (RTP) packets, drawing on the RTP/RTCP framework outlined in IETF RFC 3550 published in 2003. This work was conducted in cooperation with the MIDI Manufacturers Association (MMA), aiming to enable low-latency, reliable MIDI transmission for network musical performances and remote collaboration among musicians. A pivotal milestone occurred in 2004 when Lazzaro and Wawrzynek presented "An RTP Payload for MIDI" at the 117th (AES) Convention in , introducing the core concepts of the payload format and its integration with IETF multimedia protocols like (SDP) and (SIP). This presentation built on earlier explorations, such as their 2001 paper "A Case for Network Musical Performance," which highlighted the potential for IP-based in interactive applications. The motivations centered on creating a robust solution for wireless over Ethernet and , mitigating through innovative recovery mechanisms like journals, while supporting both interactive real-time use and streaming content delivery. By 2006, the first draft specifications culminated in the publication of IETF RFC 4695, "RTP Payload Format for MIDI," formalizing the as a proposed standard under the Audio/Video Transport . This document detailed the packetization of MIDI commands, synchronization strategies, and error handling tailored for unreliable networks. Prior to this standardization, open-source aspects were evident in early prototypes shared among developer communities; for instance, in 2004, developer Tobias Erichsen encountered Lazzaro's draft and began experimenting with RTP-MIDI encapsulation, contributing feedback and creating initial implementations discussed on forums and mailing lists. These grassroots efforts fostered innovation before the protocol's broader adoption. The foundational RTP-MIDI specifications paved the way for subsequent commercial integrations, including Apple's implementation in 2005.

AppleMIDI Introduction

Apple introduced support for network-based MIDI transport in macOS 10.4 , released on April 29, 2005, under the name "Network MIDI." This implementation utilized Apple's protocol for automatic discovery of MIDI sessions on local networks, allowing multiple Macintosh computers to share data without additional hardware or drivers. The feature was built on the emerging RTP- protocol, which encapsulates messages within (RTP) packets to ensure low-latency transmission suitable for real-time music performance. A key innovation was the deep integration with Apple's Core MIDI framework, which abstracted the networking layer to appear as standard virtual ports within applications. This enabled seamless pairing and session management through intuitive interfaces reminiscent of device connections, simplifying setup for musicians. In technical documentation, the protocol became known as AppleMIDI, reflecting its proprietary extensions and the service type _apple-midi._[udp](/page/UDP) used for advertisement. The first public applications to leverage Network MIDI were Apple's 2.0 and 7, which were compatible with and supported the feature in macOS 10.4 Tiger. In 2010, support extended to iOS devices with the introduction of Core MIDI APIs in iOS 4.2, enabling wireless MIDI connectivity in mobile music apps. This driverless integration on Apple platforms significantly boosted RTP-MIDI adoption among consumer musicians, as it eliminated the need for specialized hardware interfaces and facilitated easy network-based workflows in popular software like , democratizing access to networked MIDI for home studios and education.

Evolution Toward Modern Standards

Following Apple's introduction of its proprietary session protocol atop the standardized RTP payload format in 2005, open-source initiatives emerged to broaden accessibility beyond macOS and ecosystems. The rtpmidid project, a daemon for sharing ALSA sequencer devices via , marked a key effort, with its initial beta release in April 2020 enabling network import and export of MIDI sessions. These developments facilitated informal through community-driven implementations, compensating for the lack of cross-platform native support in early adopters. While the IETF formalized the RTP payload for in RFC 4695 (November 2006), which defined packet structures and recovery mechanisms for real-time transmission, the protocol was further refined in RFC 6295, published in November 2011. Discussions on full protocol integration, including Apple's session management, did not yield additional RFCs due to the proprietary nature of those extensions. This left RTP-MIDI's session establishment reliant on reverse-engineered components in non-Apple environments, contributing to persistent challenges such as failures across operating systems, instability during OS upgrades, and difficulties in multi-device setups. Recent advancements, like the rtpmidid version 24.12 release in December 2024, addressed some issues by enhancing the MIDI router for improved session routing and stability in diverse topologies. The recognition of RTP's header overhead and complexity in resource-constrained devices spurred a transition to lighter UDP-based alternatives, prioritizing lower and simpler error handling. The MIDI Association advanced this shift with Network MIDI 2.0 (UDP), initially prototyped in 2023 and formally ratified in November 2024, which supports both 1.0 and 2.0 via Universal MIDI Packets while incorporating and absent in RTP-MIDI. At the NAMM 2025 Show in January, the Association unveiled initial implementations of Network MIDI 2.0, positioning RTP-MIDI as a foundational bridge to these 2.0 network extensions through layers.

Protocol Fundamentals

Packet Header Format

The RTP-MIDI packet format adheres to the (RTP) structure defined in RFC 3550, consisting of a fixed 12-byte RTP header followed by a MIDI-specific payload that encapsulates Musical Instrument Digital Interface (MIDI) commands and timing information. This design enables low-latency transmission of MIDI data over IP networks while supporting error recovery and synchronization. The payload type for RTP-MIDI is dynamically assigned from the range 96-127, as registered with the (IANA). The RTP header includes essential fields for packet identification, ordering, and timing, formatted in big-endian byte order:
FieldSize (bits)Value/Description
Version (V)2Set to 2.
Padding (P)1Typically 0; indicates padding if 1.
Extension (X)1Typically 0; indicates RTP header extension if 1.
CSRC Count (CC)4Number of contributing sources (usually 0).
Marker (M)1Set to 1 if the MIDI command section length is greater than 0.
Payload Type (PT)7Dynamic value (96-127) for RTP-.
Sequence Number16Monotonically increasing counter (initial value random) to detect .
32Reflects the sampling instant of the first octet in the RTP payload; clock rate specified in session setup (e.g., 1000 Hz for 1 ms resolution).
SSRC32Synchronization source identifier, unique per stream to distinguish sources.
CSRC ListVariable (0-15 × 32)Contributing sources, if CC > 0 (rarely used in RTP-).
Following the RTP header, the MIDI payload begins with a 1- or 2-byte header for native streams, which defines the structure of the enclosed data. The first octet contains bit fields: B (header length indicator, 1 bit: 0 for 1-octet header, 1 for 2-octet), J (recovery journal present, 1 bit), Z (delta time 0 present, 1 bit), P ( byte status for recovery, 1 bit), and the low 4 bits of LEN ( command section length in bytes, 0-15). If B=1, a second octet provides the high 8 bits of LEN (0-255), allowing up to 4095 bytes total, though practical limits apply due to network MTU. The command section, limited to 30 bytes, follows and contains a sequence of timestamped commands, each prefixed by a variable-length delta time (1-4 bytes, encoded in 7-bit units with continuation bits). If J=1, a recovery journal section (up to 52 bytes) appends for error correction. If the LEN field is 0, the payload is empty, forming a timing packet used solely for via the RTP . A representative byte-level breakdown of a basic RTP-MIDI packet with a non-empty (assuming no extensions, CSRC, or journal; first command is a Note On event) might appear as follows in (simplified for illustration, with RTP header in bytes 0-11, header in byte 12, and partial ):
  • Bytes 0-1: V=2, P=0, X=0, CC=0, M=1, PT=97 (0x61) → 0x8061
  • Bytes 2-3: Sequence Number (e.g., 0x0001) → 0x0001
  • Bytes 4-7: (e.g., 0x00002710 for 10000 at 1000 Hz) → 0x00002710
  • Bytes 8-11: SSRC (e.g., 0x12345678) → 0x12345678
  • Byte 12: Header (e.g., B=0, J=0, Z=0, P=0, LEN=4 → 0x04)
  • Bytes 13-16: Delta Time (e.g., 0 for immediate, encoded as 0x00) + Command (Note On channel 0, note 60, velocity 64 → 0x90 0x3C 0x40)
This structure ensures efficient encapsulation, with the total MIDI command section capped at 30 bytes to accommodate data while minimizing . RTP-MIDI integrates with RTCP for functions, such as sender reports that aid in estimation, though these are handled outside the data packet format.

Session Establishment and Management

RTP-MIDI sessions are established and managed using the (SDP) to negotiate transport parameters, media encoding, and stream configurations, typically in conjunction with signaling protocols such as Offer/Answer or declarative protocols like RTSP. SDP media lines (e.g., m=audio 5004 RTP/AVP 96) specify the RTP payload type, (e.g., 1000 Hz for 1 ms resolution or 44100 Hz), and attributes like a=rtpmap:96 rtp-midi/44100 for native streams. Additional format-specific parameters (fmtp) configure features such as mode (tsmode), journal policies (e.g., j_sec=1 for 1-second updates), and MIDI command subsets (e.g., cm_used=note-on, note-off). For related streams sharing a MIDI , SDP grouping attributes (e.g., a=group:FID 1 2) or the musicport parameter define identities or ordering. Sessions support or over (with recovery journals for loss resilience) or (without journals). Multiple concurrent streams per endpoint are possible, enabling complex topologies like splitting namespaces across streams with synchronized timestamps and shared SSRC values. Sequence numbers in RTP headers ensure ordering and loss detection, while provides for quality monitoring. Synchronization relies on RTP timestamps aligned across streams and periodic RTCP sender reports to maintain timing accuracy, with configurable parameters like rtp_ptime (packet duration) and guardtime (minimum inter-packet interval, often 0 ms for low latency). For teardown, standard RTP/RTCP mechanisms (e.g., BYE packets) release resources, though application-specific signaling may handle session closure. This SDP-based approach decouples session parameters from physical devices, allowing flexible virtual MIDI port mappings independent of underlying network transports.

Endpoint and Participant Roles

In RTP-MIDI, endpoints refer to any IP-capable devices that function as sources or sinks, such as controller keyboards, synthesizers, sequencers, or content servers, enabling the transmission and reception of data over s. Each endpoint is uniquely identified within an RTP session by a 32-bit Synchronization Source Identifier (SSRC) in the RTP header, which distinguishes multiple streams, and by a Canonical Name (CNAME) in RTCP reports, which provides persistent identification across sessions and detects SSRC collisions. These identifiers ensure that endpoints can participate in UDP-based sessions, where each stream typically encodes a single namespace comprising 16 voice channels plus system commands, though namespaces may be split across sessions using identical SSRC values for related streams. Participant roles in RTP-MIDI sessions are defined by their involvement in data flow and session dynamics, primarily as senders or receivers, with senders responsible for MIDI data into RTP packets, timestamping commands, and maintaining recovery journals to mitigate , while receivers detect losses, repair artifacts using those journals, and render the MIDI output. In session establishment, participants adopt temporary roles as initiator or acceptor: the initiator (e.g., SDP offerer) proposes connection parameters, while the acceptor (e.g., answerer) confirms or modifies them, after which roles become symmetric for bidirectional exchange. This dynamic is specified via SDP attributes such as sendrecv, recvonly, or sendonly. RTP-MIDI supports multiple participants through RTP mixing at a central point or by grouping multiple / streams, enabling configurations like ensemble performances where is distributed to several receivers via shared namespaces or coordinated sessions. Role flexibility allows endpoints to switch functions (e.g., from sender to receiver) across sessions without fixed hierarchy. Compared to physical , RTP-MIDI extends connectivity over networks using standard RTP ports, treating sessions as virtual channels for sources and destinations while leveraging timestamps for synchronization.

Apple's Session Protocol

Invitation and Connection Sequence

The invitation and connection sequence in Apple's RTP-MIDI implementation, known as AppleMIDI, begins with service discovery via , where participating devices advertise their availability using the service type _apple-midi._udp. This zero-configuration protocol allows devices on the same local network to discover each other without manual configuration, registering a control port (denoted as N) and an adjacent MIDI data port (N+1) for communication. AppleMIDI sessions via Bonjour are designed for devices on the same local network; connections across or subnets may require additional network configuration. Once a identifies a potential peer through , the initiator sends an INVITE packet, represented by the 16-bit command 'IN' (ASCII 0x494E), over the control port. This packet includes the protocol version (set to 2 in network byte order), a random 32-bit initiator token generated by the sender, the sender's 32-bit Synchronization Source Identifier (SSRC) for distinguishing RTP streams, and an optional NULL-terminated string for the initiator's name. If no response is received, the initiator resends the INVITE every second, up to a maximum of 12 attempts. The responder, upon receiving the INVITE, replies on the same control port with either an packet (command 'OK', ASCII 0x4F4B) to accept—copying the initiator's token and including its own SSRC and name—or a rejection via the NAK equivalent, the 'NO' packet (command 'NO', ASCII 0x4E4F), which omits the name field. Following successful control port , the initiator repeats the INVITE on the MIDI port to establish the data channel. The responder mirrors the response with or NO on the MIDI port, using the same field structure. Upon mutual acceptance, the initiator initiates using dedicated sync packets to align timestamps and compensate for network . These packets include the SSRC, a count field (starting at 0 and incrementing to 2 over three exchanges), and 64-bit timestamps measured in 100-microsecond units from the local system clock. The sequence computes a round-trip as ((timestamp3 + timestamp1) / 2) - timestamp2, enabling latency adjustment for subsequent RTP-MIDI data packets; this sync process repeats at least every 60 seconds to maintain the session. Rejection via NO terminates the attempt without further exchanges, and failed retries after 12 attempts prompt the initiator to restart discovery.

Synchronization Mechanisms

RTP-MIDI maintains timing alignment between session participants after connection establishment primarily through RTP timestamps embedded in packet headers and RTCP sender reports, which allow receivers to synchronize multiple streams from the same sender by correlating their timing fields. In Apple's implementation of RTP-MIDI, known as AppleMIDI, is further refined using CK () command packets, which exchange local clock values alongside RTP timestamps to compute timing offsets. These CK packets include up to three 64-bit timestamps in 100-microsecond units, enabling participants to estimate clock offsets for ongoing alignment. The basic offset calculation in this process derives from the difference between remote and local timestamps, normalized by the clock rate: \text{offset} = \frac{\text{remote_timestamp} - \text{local_timestamp}}{\text{clock_rate}} This formula provides a straightforward adjustment for drift, with more advanced NTP-like averaging (e.g., \text{offset_estimate} = \frac{\text{timestamp3} + \text{timestamp1}}{2} - \text{timestamp2}) used in initial exchanges and periodically refreshed every 60 seconds. Receivers apply these offsets to RTP timestamps to align incoming MIDI commands accurately. To mitigate network variability, RTP-MIDI employs an adaptive buffer at the receiver, which dynamically adjusts its size based on observed packet arrival times and sender timing consistency, typically ranging from 100 µs to 2 ms on low- LANs. This buffering smooths out without introducing excessive , ensuring MIDI commands are played out in the correct sequence and timing. Resynchronization is triggered by detected anomalies such as sequence number gaps in RTP packets or insights from periodic RTCP reports, prompting the receiver to realign its clock and buffer using the latest offset data. In AppleMIDI, periodic CK timing packets sent every 60 seconds allow for drift corrections during active sessions and maintain tight synchronization even under minor network fluctuations.

Journal Updates and Error Handling

In RTP-MIDI, the recovery journal serves as a key mechanism for mitigating packet loss by maintaining a structured history of recent MIDI events at each endpoint, enabling state reconstruction without relying on retransmission requests. The journal is organized into chapters that categorize MIDI commands—such as channel-specific notes (Chapter N), control changes (Chapter C), and system messages (Chapter Q)—and references a checkpoint packet via its RTP sequence number, allowing receivers to apply corrective actions like NoteOff commands for indefinite artifacts (e.g., stuck notes). This buffer captures the session state in an oldest-first order, supporting active, N-active, and C-active command types to prioritize essential recovery data. Journal updates occur dynamically as the sender appends new events to the journal after transmitting each RTP packet and trims older entries based on RTCP from the , which reports the highest successfully received number. These periodic RTCP sender and reports facilitate a closed-loop policy (the default), reducing journal overhead while ensuring sufficient history for loss ; for instance, checkpoints can be updated every 5 seconds to optimize size without compromising reliability. In AppleMIDI implementations, the journal always includes the recovery section (indicated by the J bit) and encompasses specific chapters like P ( change), C (), W (aftertouch), N (), T (timing), A (active sense), Q (), and F (SysEx fragments), while excluding others such as M, E, D, V, and X to streamline transmission. Packet loss is handled through gap detection in the 16-bit RTP sequence numbers (extended to 32 bits internally for rollover tracking), prompting the to execute recovery commands from the embedded in arriving packets; the S bit in headers further aids detection of single-packet losses. To prevent bandwidth overload, size is constrained by RTCP feedback and policy parameters (e.g., j_sec="recj" enables journaling, with limits on history depth), ensuring efficient operation over . This approach delivers reliable transmission comparable to but with lower latency and overhead, suitable for network musical applications.

Disconnection Procedures

RTP-MIDI supports both graceful and abrupt disconnection procedures to ensure reliable session termination and . In graceful teardown, a participant sends an RTCP BYE packet to signal its exit from the session, which includes an optional reason code to specify the cause, such as user disconnection or protocol errors. This packet is transmitted unreliably over the control channel, and upon receipt, the receiving peer acknowledges it implicitly by ceasing transmission and closing the RTP and RTCP ports associated with the session. In the AppleMIDI variant, this corresponds to the "End Session" command encoded as the two-byte sequence 0x4259 ('BY'), sent via the control port, mirroring the RTCP BYE structure while integrating with Apple's session management. For abrupt disconnections, such as those caused by failures or crashes, RTP-MIDI implementations detect inactivity through timeouts on control packets. Receivers for the absence of RTCP packets, including Sender Reports (SR), Receiver Reports (RR), and recovery journals, typically timing out after 5-10 seconds of silence to trigger automatic session closure and prevent indefinite resource holding or stuck MIDI notes. This aligns with the protocol's minimum RTCP transmission interval of 5 seconds for small sessions, allowing prompt detection without excessive delay. In AppleMIDI, the (CK, 0x434B) packets, sent approximately every by the session initiator, provide an additional heartbeat; prolonged absence reinforces the timeout-based disconnect. Upon disconnection—whether graceful or abrupt—implementations release resources by flushing any buffered MIDI events to avoid artifacts, deregistering the virtual MIDI ports created for the session, and updating the mDNS (Bonjour) service announcement to remove the endpoint from network discovery lists. AppleMIDI handles multiple concurrent sessions independently, ensuring that a disconnection in one does not propagate to others, with each session maintaining separate port pairs and state. Specific error conditions are conveyed via the BYE packet's reason field, a variable-length text string that may indicate "user disconnected" for manual terminations or "network failure" for connectivity issues, aiding in diagnostics and logging without requiring additional packets.

Advanced Protocol Features

MIDI Merging

In RTP-MIDI, the merging process occurs at the session receiver, where multiple incoming MIDI streams are combined into a single output stream to maintain compatibility with traditional MIDI 1.0 DIN cable merging standards. Receivers interleave MIDI commands from these streams based on their RTP timestamps, ensuring proper ordering and timing preservation across the combined output. This timestamp-based approach relies on RTP sequence numbers to detect and reconstruct packet order, preventing out-of-sequence delivery that could disrupt musical performance. The protocol does not include a native command for merging; instead, it is implemented through endpoint logic that processes streams identified by unique Synchronization Source Identifiers (SSRCs). A common use case for MIDI merging in RTP-MIDI is in professional studio setups, where multiple controllers—such as keyboards or sequencers—transmit data over a to feed a single or audio workstation, enabling collaborative music production without physical cabling. For instance, in musical performances, participants can share a session where incoming streams from remote devices are seamlessly integrated into the local receiver's MIDI namespace, supporting real-time synchronization via RTCP sender reports. Limitations arise from potential channel conflicts when multiple streams target the same MIDI channels, which can lead to artifacts like stuck notes if not managed properly. Senders mitigate this by partitioning streams—such as assigning distinct channels to separate RTP sessions—while receivers resolve duplicates through filtering based on sequence numbers and SSRCs, though the protocol recommends careful configuration to avoid indefinite issues. In AppleMIDI implementations, the Core MIDI framework handles this merging transparently at the system level, presenting the combined stream as a unified virtual MIDI port without requiring application-level intervention.

MIDI Splitting and Thru Functionality

RTP-MIDI supports splitting by allowing endpoints to replicate incoming packets across multiple active sessions, ensuring that data from a single source can be distributed to numerous destinations without loss of . This replication process preserves the original RTP timestamps embedded in the packets, which are crucial for maintaining timing accuracy and order of delivery across the network. The thru functionality in RTP-MIDI emulates the behavior of traditional physical thru ports, where incoming data is forwarded to additional outputs without alteration or processing, enabling seamless passthrough in networked environments. Within a single session, this occurs automatically as messages from one participant are duplicated and broadcast to all other connected devices, functioning as a virtual thru box. Implementation of splitting and thru relies on virtual MIDI ports created by the operating system's RTP-MIDI driver or dedicated router software, which handle the duplication and logic. For instance, endpoints can support to four or more outputs by participating in multiple concurrent sessions, with each session treated independently to direct replicated streams. This approach allows a single incoming MIDI stream to be fanned out across diverse network destinations, such as multiple hardware interfaces or software applications. At the level, RTP-MIDI provides no dedicated commands for splitting or thru; instead, these features emerge from the underlying multi-session management capabilities of the AppleMIDI session layered atop RTP. Endpoints manage replication by joining multiple sessions simultaneously, using session identifiers and assignments to segregate traffic without dedicated signaling. In networked setups, this functionality facilitates daisy-chaining of MIDI devices over Ethernet or , where intermediate endpoints can filter and replicate streams to downstream participants while preventing feedback loops through selective session participation and port isolation. This contrasts with MIDI merging, which combines inputs from multiple sources into a unified stream.

Distributed Patchbay Concept

The distributed patchbay concept in RTP-MIDI envisions the network as a flexible matrix of virtual MIDI cables, where endpoints dynamically connect and route data without physical interconnections. Devices advertise their virtual ports through on the _apple-midi._udp service, enabling session invitations that establish bidirectional streams. Each session functions as a virtual cable pair, supporting up to 16 such pairs per endpoint in typical implementations, allowing users to patch sources to destinations across the network as if using a traditional patchbay. This model leverages the protocol's UDP-based control and RTP payload channels to create on-demand connections, transforming scattered devices into an interconnected ecosystem. A key benefit of this approach is its for expansive setups, accommodating dozens to over 100 devices in environments by distributing logic across participants rather than requiring centralized hardware. It significantly reduces cabling complexity, as Ethernet or infrastructure handles long-distance transmission, supporting runs up to hundreds of meters without signal degradation. In contrast to MIDI 1.0 systems limited by daisy-chaining and single-cable constraints, RTP-MIDI's virtual patching minimizes setup time and physical clutter, making it suitable for mobile or venue-based applications. The enables this distributed patching through multi-session support, where a single can maintain concurrent connections to multiple peers using unique session and SSRC identifiers for isolation. Automatic discovery and invitation sequences allow ad-hoc reconfiguration, with data automatically merged from incoming sessions at the receiver or split to outgoing ones, building on endpoint-level operations like thru functionality. This facilitates seamless integration in heterogeneous networks, where devices join or leave without disrupting existing routings, provided the underlying topology remains stable. Representative examples include large-scale live performance networks, such as theater productions or setups, where a central control station dynamically routes from a conductor's surface to distributed sections across a venue, ensuring synchronized playback via redundant virtual paths. In such configurations, technicians can re-patch streams in —e.g., redirecting clock signals to backup devices—leveraging the protocol's timestamping for precise . Despite these advantages, the concept has limitations in highly complex topologies, often relying on a dedicated central router or device to aggregate and manage connections for stability and . The provides no native for simultaneous data streams from multiple sources, leaving resolution to endpoint merging logic, which may introduce variability in large scenarios without additional network optimizations.

Implementations

Desktop Operating Systems

RTP-MIDI support on macOS is provided natively through the Audio MIDI Setup utility, which has included network MIDI capabilities since OS X 10.4 . Users configure sessions via the MIDI Studio window, enabling driverless connections for up to eight concurrent RTP-MIDI sessions without requiring additional software. This built-in implementation leverages for discovery and supports seamless integration with Core applications, allowing MIDI data to be routed between networked Macs over Ethernet or . On Windows, the Windows MIDI Services framework, introduced in updates starting from 2023, enables multiclient access and enhanced 1.0/ functionality, including support for Network 2.0 () as of previews in 2025. However, RTP-MIDI requires third-party tools like rtpMIDI for protocol handling and network sessions. For bridging local applications to network sessions, tools like loopMIDI create virtual ports that interconnect with RTP-MIDI drivers, facilitating routing in workstations. Linux implementations rely on open-source daemons such as rtpmidid, whose latest version 24.12 (released December 2024) provides robust functionality with integration to the ALSA sequencer for sharing devices over networks. This daemon supports low-latency operation through JACK via its built-in router, enabling connections between local audio servers and remote peers without kernel-level drivers. Configuration occurs via command-line interfaces or INI files, emphasizing user-space operation for compatibility across distributions. coexists with emerging Network 2.0 support in distributions. Across desktop platforms, RTP-MIDI operates driverlessly in user space, promoting portability, though Windows and typically require applications like the rtpMIDI driver for Windows or rtpmidid for to establish sessions, contrasting macOS's out-of-the-box availability.

Mobile and Embedded Systems

RTP-MIDI has been natively supported on iOS devices through the Core MIDI framework since iOS 4.2, released in , enabling seamless integration with networks for transport without additional hardware. This implementation allows iOS apps to discover and connect to RTP-MIDI sessions, facilitating wireless control between iPhones, iPads, and other compatible devices. For session management and pairing, third-party applications such as MIDI Network provide user-friendly interfaces to view active connections, create sessions, and handle device discovery via , ensuring reliable interoperability with macOS or other RTP-MIDI endpoints. Similarly, apps like NetMIDI extend this capability by allowing iOS devices to join existing network sessions initiated from other platforms. On , RTP-MIDI support relies primarily on third-party libraries, as there is no built-in native implementation in the Android MIDI API, which focuses on USB and LE transports since Android 6.0. Notable libraries include nmj (Network MIDI for ), an open-source solution that enables RTP-MIDI compatibility with Apple's protocol for apps requiring network MIDI functionality. Apps such as Midi Connector leverage these libraries to provide RTP-MIDI sessions over , broadcasting devices via and supporting multiple connections, though limited to one free session without licensing. Native network MIDI enhancements remain prospective, with introducing MIDI 2.0 support for USB but deferring comprehensive network protocols like RTP-MIDI or the emerging Network MIDI 2.0 () to future updates as of November 2025. In embedded systems, RTP-MIDI operates driverlessly on Wi-Fi-enabled devices, leveraging lightweight daemons to bridge ALSA sequencers or other MIDI interfaces to the network. For instance, the open-source rtpmidid daemon on allows sharing local MIDI devices over RTP-MIDI, enabling the Pi to act as a session host or client compatible with and macOS endpoints without proprietary drivers. This setup supports headless operation, where the device auto-discovers peers via and maintains sessions over Ethernet or , making it suitable for compact music controllers or networked synthesizers. Mobile and embedded RTP-MIDI implementations face constraints from limited battery life and processing power, particularly on resource-constrained devices where continuous polling and correction can drain resources. To mitigate CPU overhead, optimizations such as reducing the of recovery journal updates—RTP-MIDI's mechanism for detection and retransmission—help lower computational demands while preserving low-latency performance. On battery-powered systems like smartphones or single-board computers, disabling or minimizing journaling intervals prevents excessive usage and generation, though this trades some resiliency for efficiency in stable . iOS 18, released in 2024, enhances accessory pairing via an allowing apps to offer AirPods-like setup for third-party devices, including potential controllers, while Core supports independent use of and RTP-. Hybrid setups may require apps to route between and network .

Software Libraries and Frameworks

Several software libraries and frameworks enable developers to integrate RTP-MIDI functionality into applications, providing for managing network sessions, transmitting MIDI data packets, and handling events across various programming languages and platforms. These tools abstract the underlying complexities, allowing for custom implementations in , , and environments. In , the rtp-midi library offers a comprehensive implementation of the RTP-MIDI protocol, supporting session initiation, listener roles, and integration with the standard javax.sound.midi for seamless MIDI I/O operations. This third-party library facilitates creating and joining RTP-MIDI sessions, as well as sending and receiving MIDI packets over , with built-in support for protocol journals to maintain during network disruptions. Developers can utilize event callbacks to process incoming MIDI messages in real-time, making it suitable for audio applications on JVM-based platforms. For JavaScript environments, particularly in browser and contexts, implementations like WEBrtpMIDI provide RTP-MIDI transmission capabilities, bridging web-based interfaces with network sessions. This library allows web applications to act as RTP-MIDI endpoints, receiving notes from connected sessions and forwarding them via RTP packets, often leveraging for peer-to-peer connectivity in browser scenarios. In , the rtpmidi package serves as both a session initiator and listener, enabling server-side applications to handle over networks with asynchronous event handling for efficient packet processing. Recent updates to the rtpmidi package in have enhanced compatibility with modern versions, introducing improved async support for better performance in concurrent streams. Cross-platform development benefits from libraries such as libRtpMidi, a portable C++ SDK compatible with Windows, , macOS, , and embedded systems, which exposes API calls for session creation, joining, and MIDI packet transmission/reception. For , the pymidi library implements RTP-MIDI and AppleMIDI protocols, allowing developers to build virtual network MIDI devices with features like event callbacks for real-time message handling. These frameworks typically include methods for error recovery via journals and support disconnection procedures, ensuring robust integration without delving into low-level protocol details. Brief references to OS-level integrations, such as using these libraries in desktop audio setups, highlight their role in extending native MIDI support.

Hardware Devices and Projects

RTP-MIDI has been implemented in various projects, particularly those leveraging embedded platforms for musical applications. One prominent example is the ecosystem, where the AppleMIDI library enables devices equipped with Ethernet shields or modules, such as or , to participate in RTP-MIDI sessions over networks. This library supports sending and receiving MIDI messages within RTP packets, facilitating the creation of wireless MIDI controllers and networked instruments without proprietary hardware. For instance, -based sketches can integrate RTP-MIDI with applications, allowing remote control of synthesizers or effects processors via Ethernet or , as demonstrated in community examples that connect devices to software like Labs' rtpMIDI for cross-platform compatibility. The MIDIbox project, an open-source initiative for DIY modular synthesizers, incorporates RTP-MIDI support through running on MIOS32-based hardware. This implementation utilizes the KissBox RTP-MIDI OEM board to transport data over Ethernet, enabling high-speed communication and integration with existing MIDIbox modules like sequencers and I/O expanders. Key features include automatic merging and splitting across multiple devices, connectivity between MIDIbox units, and compatibility with up to eight simultaneous sessions and 16 virtual cables, making it suitable for complex modular setups in live performance environments. In contexts, RTP-MIDI extensions over (AVB) and (TSN) provide deterministic low-latency transport, addressing the timing requirements of synchronized systems. AVB, standardized under , allows RTP-MIDI payloads to leverage reserved and precise time synchronization for pro audio workflows, reducing in networked MIDI streams compared to standard Ethernet. This approach has been explored in hardware designs that combine RTP-MIDI with AVB switches, enabling reliable MIDI distribution in larger installations while maintaining sub-millisecond bounds essential for applications.

Performance and Configuration

Latency Factors

Latency in RTP-MIDI transmissions arises from multiple sources, including processing at the application level, encapsulation within the stack, propagation through the network, and buffering to handle . These components contribute to the overall , which must be minimized for musical applications such as synchronized performances. Application processing introduces delay during MIDI message parsing and handling, particularly in digital audio workstations (DAWs) where incoming RTP-MIDI packets are decoded and routed to virtual instruments or sequencers. Latencies for this stage vary depending on , software implementation, and MIDI event complexity. The stack contributes additional overhead through and RTP encapsulation, where payloads are wrapped with headers, timestamps, and sequence numbers before transmission. This process adds that depends on the operating system's networking optimizations. routing forms a significant variable component, with each hop adding delay based on router processing and link speeds; in local area networks (LANs), this is often minimal for direct connections but increases with switches or gateways. environments exacerbate variability due to contention, signal , and retransmissions, which can disrupt precise timing in streams. End-to-end latency in RTP-MIDI over a typical LAN aggregates these factors, often resulting in delays that require adjustments like buffer tuning for applications needing tight synchronization with audio. This total can be conceptually expressed as: \text{Total latency} = \text{app\_time} + \text{stack\_time} + \text{network\_time} + \text{buffer\_jitter} where buffer jitter accounts for playout delays to reorder packets and absorb network variability.

Network Configuration Options

RTP-MIDI sessions utilize for RTP data transmission and RTCP control packets, with ports negotiated via ; examples in 4696 use port 5004 for RTP and 5005 for RTCP. To ensure low-latency performance, network administrators can apply (QoS) policies that prioritize RTP-MIDI's packets using Code Point (DSCP) markings in the . For real-time applications like RTP-MIDI, a common recommendation is to set the DSCP value to EF (Expedited Forwarding, decimal 46), which enables network devices to provide preferential treatment such as reduced delay and . This marking aligns with broader RTP guidelines for audio and control traffic, helping to mitigate congestion in shared networks. Firewall configurations must permit inbound traffic on the negotiated ports to support RTP-MIDI functionality. For wide-area network (WAN) access across NAT routers, configure port forwarding rules to map external ports to the internal device's IP and corresponding ports, ensuring bidirectional communication. On Windows systems, add exceptions in the Windows Firewall for the relevant UDP ports to prevent blocking of RTP-MIDI traffic. When deploying RTP-MIDI over wireless networks, prefer 5 GHz bands over 2.4 GHz to reduce from other devices and achieve lower , as the higher offers better signal-to-noise ratios in typical environments. Additionally, disable power-saving modes on client devices and access points, such as Wi-Fi Multimedia (WMM) power save or adapter sleep settings, to maintain consistent packet delivery without delays from doze cycles. For Linux-based systems implementing AppleMIDI compatibility, the avahi-daemon service provides mDNS/ discovery, enabling integration with tools like rtpmidid for bridging ALSA sequencers to network sessions.

Optimization Techniques

Optimization techniques for RTP-MIDI aim to minimize end-to-end in scenarios requiring precise timing, such as live performances or synchronized ensemble playing, by addressing network variability and processing delays. Jitter buffer tuning is a primary method to balance and reliability in RTP-MIDI receivers. On stable, low-jitter networks like dedicated LANs, buffers can be small to achieve low total , while higher-jitter environments may require larger buffers to prevent packet reordering issues. Implementations often include adjustable parameters allowing musicians to for robustness against fluctuations. Dynamic adjustment leverages RTCP reports, which provide statistics on inter-arrival jitter and , enabling the receiver to adapt buffer size in —for instance, shrinking it during periods of low variance to reduce delay. For sub-millisecond enhancements, RTP-MIDI employs timestamp interpolation and local clock to refine event timing beyond raw packet arrival. Senders apply RTP timestamps based on a constant , using for MIDI events to maintain uniform increments and minimize perceived even if packets arrive out of order. Receivers interpolate timestamps against their local clock, synchronized via NTP or PTP, to predict and correct for minor drifts, achieving timing accuracy within microseconds on low-latency links. Integration with (AVB) further bounds latency by reserving bandwidth and shaping traffic on Ethernet networks, guaranteeing maximum delays of 2 ms for Class A streams across multiple hops, which suits RTP-MIDI's UDP-based transport for deterministic performance. Software tweaks enhance RTP-MIDI processing efficiency, particularly on systems. Employing a kernel, such as , reduces scheduling latencies by prioritizing time-sensitive tasks, improving responsiveness for RTP-MIDI daemons like rtpmidid that bridge ALSA sequencers to network streams. In fallback scenarios using for reliability over lossy networks, disabling via the TCP_NODELAY socket option prevents small-packet buffering, cutting additional delays for interactive MIDI flows. Hardware aids focus on network infrastructure to suppress variability. outperforms by delivering consistent low latencies per hop, avoiding wireless . Dedicating VLANs for traffic enables QoS prioritization, ensuring RTP packets bypass non-critical data and maintain bounded delays in shared environments. Measured improvements demonstrate these techniques' impact: on high-performance WANs like CalREN2, optimized RTP-MIDI achieves median latencies of 2.1 ms without buffering, while AVB-enhanced Ethernet setups reduce total delays to under 1 ms across 7 hops in controlled tests.

Compatibility and Future Directions

Integration with MIDI 2.0

RTP-MIDI, originally designed for transporting 1.0 messages, maintains backward compatibility by encapsulating these payloads within its (RTP) packets, allowing seamless operation with legacy devices and software. While custom implementations or proposed extensions may allow RTP-MIDI to transport Universal MIDI Packets (UMPs)—the standardized container for both 1.0 and 2.0 messages—no official standard exists as of November 2025 for carrying enhanced 2.0 data over RTP-MIDI sessions. RTP-MIDI natively supports system exclusive messages, enabling transport of features like property exchange via (), which allows devices to query and configure capabilities such as relative controls for encoders, ensuring interoperability in mixed 1.0 and 2.0 environments. In implementations, the Windows MIDI Services update in 2025 bridges RTP-MIDI connections to ports through its UMP-centric architecture, translating incoming RTP payloads () to UMP format for native 2.0 processing and multi-client access. However, RTP-MIDI lacks native support for 's advanced timing and synchronization features, relying instead on application-layer conversions to approximate behaviors within its RTP-based clocking system.

Relation to Network MIDI 2.0

Network MIDI 2.0 (NM 2.0) is a UDP-based transport specification developed by the MIDI Association to enable the direct transmission of Universal MIDI Packets (UMPs) over networks, supporting both and protocols. Ratified in November 2024 and officially introduced at the , the standard simplifies network connectivity for MIDI devices via Ethernet and , with initial compatible hardware becoming available in 2025. Unlike RTP-MIDI, which relies on the (RTP) and Real-time Transport Control Protocol (RTCP) for packet delivery and feedback, NM 2.0 uses lightweight packets prefixed with a 4-byte "" signature, eliminating the additional headers and processing overhead associated with RTP/RTCP. This design prioritizes efficiency for local area networks, avoiding the session establishment and congestion control mechanisms inherent in RTP-MIDI. Key differences between NM 2.0 and RTP-MIDI include port allocation and discovery processes. NM 2.0 employs dynamic UDP ports, with hosts allocating a shared port for incoming connections and clients using unique ports per session, rather than RTP-MIDI's fixed port usage (e.g., 5004). Device discovery in NM 2.0 leverages multicast DNS (mDNS) with DNS Service Discovery (DNS-SD) for efficient peer detection on local networks, contrasting with RTP-MIDI's more involved session invitation and negotiation. Furthermore, NM 2.0 achieves lower latency—typically under 1 ms on Ethernet and under 5 ms on high-quality wireless LAN—due to its direct UDP approach and minimal session management, making it suitable for timing-critical applications without the buffering delays of RTP. Reliability is maintained through optional forward error correction (FEC) and retransmission requests, rather than RTP's continuous feedback loops. RTP-MIDI functions as a technology, providing for existing implementations and third-party tools, while NM 2.0 emerges as the MIDI Association's recommended standard for new developments. Although RTP-MIDI could theoretically encapsulate UMP payloads from NM 2.0, the added RTP complexity offers no advantages in modern, low-latency local networks, potentially hindering . In terms of , Microsoft's Windows MIDI Services update, released in preview on February 5, 2025, integrates full 2.0 support—including UMP handling and network transport capabilities—alongside continued RTP-MIDI compatibility, facilitating dual-protocol environments. NM 2.0 has seen early hardware integration, with synthesizers and infrastructure devices demonstrated at NAMM 2025, signaling its role in upcoming setups. The transition from RTP-MIDI to NM 2.0 positions the former for legacy systems and cross-platform bridging, while the latter is poised to dominate future MIDI implementations due to its simplicity, reduced overhead, and alignment with 2.0's Universal MIDI Packet framework. This evolution ensures seamless payload compatibility—such as UMPs for enhanced resolution and bidirectional communication—without requiring protocol overhauls in existing 2.0 integrations.

Transition Challenges and Adoption

One major challenge in transitioning from RTP-MIDI to Network MIDI 2.0 stems from compatibility limitations, as RTP-MIDI primarily supports MIDI 1.0 messages and lacks native handling for MIDI 2.0's Universal MIDI Packet (UMP) format, which enables advanced features like high-resolution continuous controllers and bidirectional communication. This requires gateways or converters to bridge full MIDI 2.0 functionality, potentially introducing latency or complexity in mixed environments. Additionally, developers and users must retrain on Network MIDI 2.0's discovery mechanisms, which differ from RTP-MIDI's session-based approach using Real-time Transport Protocol, as the newer standard employs simpler UDP-based peer-to-peer connections without built-in encryption in its initial version. Adoption of RTP-MIDI remains stable and dominant in MIDI applications, particularly within the where it is natively integrated into macOS and , contributing to a slow shift toward Network MIDI 2.0 despite the latter's ratification in November 2024. As of 2025, Network MIDI 2.0 device support has grown from zero compatible products in 2024 to several initial releases showcased at the , including interfaces from manufacturers like Bome, MusicKraken, and Kissbox. This gradual uptake is hindered by the need for OS-level updates, with third-party drivers still necessary for non-Apple platforms. To address these barriers, solutions such as drivers have emerged, exemplified by Microsoft's Windows MIDI Services Customer Preview released in early 2025, which provides backward compatibility for 1.0 devices (including RTP-MIDI via existing ) while enabling 2.0 support over network transports. Open-source converters and general-purpose connector applications further facilitate transitions by allowing RTP-MIDI sessions to interface with Network MIDI 2.0 endpoints, minimizing disruptions for legacy setups. Looking ahead, Network MIDI 2.0 is projected for broader implementation by 2027, with anticipated OS integrations from and Linux's ALSA enhancing its viability for low-latency, connections. Meanwhile, RTP-MIDI is expected to persist in embedded systems and legacy Apple-centric workflows, ensuring continuity for established users even as Network MIDI 2.0 gains traction for new 2.0 deployments.

Adoption and Use Cases

Companies and Projects

Apple has been the primary developer and provider of RTP-MIDI, originally known as Apple MIDI, integrating it into the Core MIDI framework since macOS 10.4 and 4.0. This enables seamless MIDI data sharing over Ethernet and networks through the Audio MIDI Setup application, where users can configure network sessions for connecting remote MIDI devices without additional hardware. The protocol's support extends to professional applications like , which leverages Core MIDI for network MIDI input and output. The open-source project davidmoreno/rtpmidid provides an RTP- daemon for systems, enabling ALSA sequencer devices to share over networks and import remote RTP- sessions via mDNS discovery. Maintained actively, it saw releases including version 23.12 in December 2024, supporting platforms like and for cross-platform networking. The Association references RTP- extensively in its documentation as the foundational IETF standard (RFC 6295) for transporting 1.0 over IP networks, serving as a precursor to the Network 2.0 specification, which builds on RTP principles for enhanced reliability and 2.0 compatibility. In the community, the official AppleMIDI library enables RTP-MIDI implementation on boards like and those with Ethernet shields, allowing users to send and receive packets over or Ethernet for custom networked controllers and devices. Community sketches utilizing this library support applications from simple MIDI bridges to full instrument interfaces. Notable deployments of RTP-MIDI include live sound reinforcement at festivals and events, such as the 2024 ILDA Awards-winning laser show , where RTP-MIDI was used alongside MTC to align varianced laser projectors with audio in performances.

Real-World Applications

RTP-MIDI enables remote collaboration among musicians by transmitting data over networks, allowing digital audio workstations (DAWs) to synchronize in across local area networks (LANs) or wide area networks (WANs). This capability supports virtual bands and distributed performances, where participants exchange musical gestures without geographical constraints, fostering creative workflows in home studios or global ensembles. In live performances, RTP-MIDI powers setups by signals to in-ear monitors, lighting controllers, and playback systems, eliminating the need for extensive cabling while maintaining . Musicians can trigger sequences and effects from various positions, enhancing and reliability during and concerts. Educational environments leverage RTP-MIDI for classroom networks that connect shared controllers, enabling instructors to stream live demonstrations to students' devices with minimal latency. This setup facilitates interactive lessons, where learners can mirror performances or collaborate on compositions virtually, bridging physical and remote music instruction. In professional audio production, RTP-MIDI integrates with Audio Video Bridging (AVB) systems in theaters, delivering low-latency MIDI routing for coordinated audio playback, lighting cues, and video synchronization. This combination ensures precise timing in complex installations, supporting seamless operation across networked devices in live venues. Emerging uses of RTP-MIDI extend to of Musical Things (IoMusT) applications, such as networked control of digital devices, where research as of September 2025 proposes enhancements like encrypted extensions to address security challenges in transmission for generation and remote interaction.

References

  1. [1]
    RTP Payload Format for MIDI - » RFC Editor
    ... Notice Copyright (c) 2011 IETF Trust and the persons identified as the ... command stream and then transcodes the stream onto an RTP MIDI stream. The ...
  2. [2]
    RTP MIDI: An RTP Payload Format for MIDI - John Lazzaro
    RFC 6295 normatively defines the RTP MIDI payload format. RFC 4696 is an implementation guide for RTP MIDI. The RFCs were developed in cooperation with the MIDI ...
  3. [3]
    RFC 4696 - An Implementation Guide for RTP MIDI - IETF Datatracker
    This memo offers non-normative implementation guidance for the Real- time Protocol (RTP) MIDI (Musical Instrument Digital Interface) payload format.
  4. [4]
    MIDI Network Driver Protocol
    ### Summary of MIDI Network Driver Protocol (AppleMIDI)
  5. [5]
    RTP-MIDI or MIDI over Networks
    RTP-MIDI is a protocol to transport MIDI messages within RTP (Real-time Protocol) packets over Ethernet and WiFi networks.Missing: explanation | Show results with:explanation
  6. [6]
    rtpMIDI | Tobias Erichsen
    The rtpMIDI-driver is a virtual MIDI-driver which allows DAW-applications to communicate via network with other computers.Missing: alternative proprietary<|control11|><|separator|>
  7. [7]
    Network MIDI 2.0 (UDP) Overview
    RTP-MIDI was created by independent developers to define a method to transport MIDI 1.0 messages. RTP-MIDI was published by IETF as an RFC in 2006. RTP-MIDI is ...Missing: explanation | Show results with:explanation<|control11|><|separator|>
  8. [8]
    RFC 6295: RTP Payload Format for MIDI
    This memo describes a Real-time Transport Protocol (RTP) payload format for the MIDI (Musical Instrument Digital Interface) command language.
  9. [9]
    RFC 4695 - RTP Payload Format for MIDI - IETF Datatracker
    Session Description Protocol RTP does not perform session management. Instead, RTP works together with session management tools, such as the Session ...
  10. [10]
    Share MIDI information over a network in Audio MIDI Setup on Mac
    ### Summary of RTP-MIDI Features in Audio MIDI Setup
  11. [11]
    RTP-MIDI – MIDI.org
    RTP-MIDI (RFC 6295)- is a IETF standard for sending/receiving MIDI 1.0 messages using networking protocols (Real-time Transport Protocol and Internet Protocol).<|control11|><|separator|>
  12. [12]
    [PDF] Convention Paper - John Lazzaro
    In this 117th AES conference paper, we present an overview of the RTP MIDI payload format. RTP. MIDI is a significant project to the AES commu- nity, because if ...
  13. [13]
    rtpMIDI History - Tobias Erichsen
    Those RTP-MIDI dissectors are now part of the standard-Wireshark-distribution since version 1.8. So now you can analyze the whole network-MIDI conversation ...<|control11|><|separator|>
  14. [14]
    Mac OS X Tiger: A Musician's Guide
    The name of the MIDI Networking Session is used as the name for the corresponding MIDI input and output ports in Core MIDI Applications, as seen here in Logic ...
  15. [15]
    [LAA] Initial rtpmidid release. 20.04 #stayathome
    Apr 6, 2020 · This marks the first rtpmidi release, the #stayathome edition. Beta version. It has minimal features and can be used on experimental setups to ...<|separator|>
  16. [16]
    davidmoreno/rtpmidid: RTP MIDI (AppleMIDI) daemon for Linux
    rtpmidid allows you to share ALSA sequencer devices on the network using RTP MIDI, and import other network shared RTP MIDI devices.Missing: evolution | Show results with:evolution
  17. [17]
    Troubleshooting RTP-MIDI Connections - iConnectivity
    Oct 22, 2021 · You've just troubleshooter a connection issue! Problem: RTP-MIDI ports won't connect even when interfaces are correctly networked. Solution.
  18. [18]
    The new Windows MIDI Services - Spring 2023 Update
    May 25, 2023 · Finally, for MIDI Association members, several companies, including Microsoft, showed their working Network MIDI 2.0 prototypes at the ...Missing: announcement transition
  19. [19]
    MIDI Association Intros Network MIDI 2.0 At 2025 NAMM Show
    Jan 26, 2025 · At the 2025 NAMM Show, the MIDI Association officially introduced Network MIDI 2.0 (UDP), a new standard that defines how to connect MIDI ...Missing: 2023-2025 RTP- transition
  20. [20]
  21. [21]
  22. [22]
  23. [23]
  24. [24]
  25. [25]
    RTP MIDI Networking: Pro Tips for Using Auracle X - iConnectivity
    Feb 10, 2025 · Starting with Port: 5004, each RTP connection gets assigned a sequential port number, going up by two every time. (e.g. Port: 5006, Port ...Missing: discovery 5353
  26. [26]
    The macOS MIDI Network Session Guide - Aud-iOS - WordPress.com
    Mar 23, 2018 · Essentially, MIDI Network Sessions utilize the UDP protocol, Apple's Bonjour service, and a customized implementation of RTP-MIDI. Together, ...Missing: introduction 2006
  27. [27]
    RTP MIDI - What is it and how to I use it? - iConnectivity
    Oct 10, 2024 · RTP-MIDI (also known as AppleMIDI) is a protocol to transport MIDI messages within Real-time Transport Protocol (RTP) packets over Ethernet and WiFi networks.
  28. [28]
  29. [29]
    None
    ### Summary of APPLEMIDI_COMMAND_SYNCHRONIZATION (CK Packets)
  30. [30]
  31. [31]
  32. [32]
  33. [33]
  34. [34]
  35. [35]
  36. [36]
  37. [37]
  38. [38]
  39. [39]
    rtpMIDI Tutorial - Tobias Erichsen
    Every Apple-computer based on OS X since “Tiger” (10.4) includes a network-MIDI driver as a standard system-component. You find the configuration of this ...Missing: 2006 | Show results with:2006
  40. [40]
    [PDF] rtp-midi integration guide for windows and mac os-x - KissBox
    We recommend you also to install the Bonjour client on your PC (available from Apple website), in order to get the “Bonjour Plug&Play” support on Windows. The ...
  41. [41]
    MIDI over Ethernet - Marvellous RTP-MIDI - iConnectivity
    Mar 1, 2018 · iConnectivity Ethernet-equipped MIDI interfaces use a system called RTP-MIDI (Real Time Protocol MIDI). This is a method of running MIDI over standard networks ...Missing: establishment | Show results with:establishment
  42. [42]
    Sending MIDI Over Long Distances via Ethernet - iConnectivity
    Nov 15, 2024 · This article walks you through setting up a redundant, network-based MIDI system using RTP MIDI with PlayAUDIO1U, ensuring consistent, reliable performances.Missing: AppleMIDI central peripheral roles
  43. [43]
    Announcing: Windows MIDI Services Customer Preview 1!
    Feb 5, 2025 · This SDK includes everything apps need to be able to use MIDI 2.0 and MIDI 1.0 through the service, with support for timestamps, message ...
  44. [44]
    loopMIDI - Tobias Erichsen
    This software can be used to create virtual loopback MIDI-ports to interconnect applications on Windows that want to open hardware-MIDI-ports for communication.Missing: bridging | Show results with:bridging
  45. [45]
  46. [46]
    Core MIDI | Apple Developer Documentation
    The Core MIDI framework provides APIs to communicate with MIDI (Musical Instrument Digital Interface) devices, including hardware keyboards and synthesizers.Missing: merging | Show results with:merging
  47. [47]
    MIDI Network - App Store
    Rating 4.6 (7) · Free · iOSMIDI Network enables you to manage your iOS device's MIDI connections with other devices on the network. MIDI Network displays: - active connections of your ...Missing: Setup | Show results with:Setup
  48. [48]
    NetMIDI - App Store
    Rating 3.6 (5) · Free · iOSThis app will allow you to connect your iOS device to Network MIDI (RTP MIDI) sessions. This can be used to connect iConnectivity iConfig to the iConnectMIDI 4 ...
  49. [49]
    Native MIDI API | Android Developers
    The AMidi API is available in Android NDK r20b and later. It gives app developers the ability to send and receive MIDI data with C/C++code.Missing: RTP- third- party<|separator|>
  50. [50]
    nmj - xmmc.de
    nmj. has in large parts become obsolete with the introduction of Android's native MIDI APIs in Android 6 (Marshmallow). While it still offers functionality ...Missing: Java library
  51. [51]
    [APP] [6.0+] [Giveaway] Midi Connector - A MIDI interface supporting ...
    Feb 20, 2023 · RTP-MIDI is also known as "appleMIDI" and can now be used with Android devices running this app. It will also broadcast your device on bonjour ...
  52. [52]
    MIDI | Android Open Source Project
    Starting in Android 13, MIDI 2.0 support is added to the USB transport. MIDI 2.0 is a newer MIDI standard defined in 2020. This protocol adds features such ...Missing: RTP- | Show results with:RTP-
  53. [53]
    How to install rtpMIDI on RaspberryPi or other Linux SBC
    Jun 28, 2024 · Here are the steps to install rtpMIDI on companion-pi (or any Linux SBC). After that, you should see rtpMIDI devices in the MIDI choices.Missing: 2025 ALSA JACK
  54. [54]
    [PDF] RTP MIDI : Recovery Journal Evaluation and Alternative Proposal
    The overall journal size is quite small ( smaller than the IP / UDP / RTP headers of 40 bytes ). The use of a classical checkpoint update every 5 seconds can ...
  55. [55]
    iOS 18 Expands Convenient AirPods-Like Pairing to More Bluetooth ...
    Jun 21, 2024 · Apple announced that iOS 18 and iPadOS 18 will let apps offer AirPods-like pairing for more Bluetooth or Wi-Fi accessories.
  56. [56]
    Bluetooth and RTP MIDI for iOS, Android and Web app
    May 11, 2025 · The objective is to easier Maestro's MIDI synthesizer functionality with this plugin, while also facilitating Bluetooth and RTP MIDI keyboard connectivity.
  57. [57]
    libRtpMidi - Tobias Erichsen
    Portable implementation of RTP-MIDI and Apple network-MIDI session protocol, compatible to Windows, Linux, macOS, iOS and embedded systems.Missing: cross- app
  58. [58]
    LeovR/rtp-midi: Java RTP-MIDI implementation - GitHub
    A Java implementation of the RTP-MIDI protocol. Usage. Currently this library can only be used as a RTP-MIDI session listener. Create a ...Missing: Android third- party
  59. [59]
    RTP MIDI Javax Sound MIDI - io.github.leovr - Maven Repository
    Java Specifications · JSON Libraries · Core Utilities · Mocking · Web Assets ... RTP MIDI Javax Sound MIDI. RTP MIDI Javax Sound MIDI. License, Apache 2.0. Tags ...
  60. [60]
    FlorianANAYA/WEBrtpMIDI - GitHub
    basically, WEBrtpMIDI transmits every MIDI note it receives to rtpMIDI sessions connected. It can also receive MIDI notes on a rtpMIDI session and transmit ...
  61. [61]
    mik3y/pymidi: Python library for building RTP-MIDI ... - GitHub
    A python RTP-MIDI / AppleMIDI implementation. You can use this library to build a network attached virtual MIDI device.Missing: header | Show results with:header
  62. [62]
    lathoub/Arduino-AppleMIDI-Library: Send and receive MIDI ... - GitHub
    AppleMIDI (aka rtpMIDI) for Arduino License: CC BY-SA 4.0. Enables an Arduino with IP/UDP capabilities (Ethernet shield, ESP8266, ESP32 ...
  63. [63]
    AppleMIDI - Arduino Documentation
    Jan 26, 2022 · AppleMIDI (aka rtpMIDI) is a protocol to transport MIDI messages within RTP (Real-time Protocol) packets over Ethernet and WiFi networks.
  64. [64]
    Arduino AppleMIDI and McLaren rtpmidi
    Aug 5, 2021 · With this sketch, you can use an Arduino to send and receive MIDI over Ethernet and WiFi. It is compatible with McLaren Labs' rtpmidi, so you can use it to ...
  65. [65]
    MIDIbox goes RTP-MIDI... - Design Concepts
    Jan 13, 2014 · (In two words, RTP-MIDI is transporting MIDI over IP networks, to take benefit from high speed from Ethernet, plus other new functionnalities ...
  66. [66]
    [PDF] Real Time Protocol (RTP) over LANs supporting 802.1 AVB, an ...
    Mar 1, 2009 · Once the local area network supports accurate time and latency/bandwidth reservations & traffic shaping, what's the minimum set of changes to ...
  67. [67]
    iOS UDP Server Message Processing Latency Too High ~35-40ms
    Sep 23, 2013 · The problem we're having is that RTP-MIDI is able receive and process messages around 20ms faster than our simple UDP server on iOS. We wrote 3 ...
  68. [68]
    Ideal pro rack mounted MIDI interface? - Page 2 - Gearspace
    Apr 24, 2024 · RTP MIDI is an ideal solution for this. I think the easy expandability plus support for long cable runs is why iConnectivity is so focused on it ...Hardware Synth Studio Design - Page 3 - GearspaceiConnectivity mioXL MIDI Interface - Owners here? - Page 33More results from gearspace.com
  69. [69]
    MidiGateway: Ethernet RTP MIDI interface
    RTP-MIDI technology allows to connect music stations through existing LAN infrastructure avoiding long MIDI cables. RTP-MIDI does not necessarily rely on ...<|control11|><|separator|>
  70. [70]
    Notes on Wireless MIDI - Tao of Mac
    May 23, 2021 · Latency on a well-tended, interference-free 5GHz Wi-Fi network ... MIDI on RTP and IP packets seems to work fine). Live routings from ...
  71. [71]
    avahi - mDNS/DNS-SD
    Avahi is a system which facilitates service discovery on a local network via the mDNS/DNS-SD protocol suite. ... Avahi is primarily targetted at Linux systems and ...
  72. [72]
    RTP and TCP based MIDI over IP protocols | Request PDF
    Jul 23, 2025 · We used two baseline simple and naïve TCP protocols, one with the Nagle algorithm disabled and one with the Nagle algorithm enabled. We want ...Missing: fallback | Show results with:fallback
  73. [73]
    Configuring Audio Video Bridging [Cisco Nexus 7000 Series Switches]
    Oct 10, 2024 · Audio Video Bridging (AVB) is set of standards that enable time-synchronized low latency streaming services on Ethernet networks, including ...
  74. [74]
    Universal MIDI Packet (UMP) and MIDI 2.0 Protocol Specification
    UMP can contain all MIDI 1.0 Protocol messages and all MIDI 2.0 Protocol messages in a single, common container definition with a payload format which is ...
  75. [75]
    MIDI 2.0 Universal MIDI Packet format (UMP) · Issue #535 - GitHub
    Jan 12, 2020 · One of the tools I have created is a RTP-UMP daemon, which allows to exchange UMP packets between different physical machines. About Windows API ...
  76. [76]
    Property Exchange – MIDI.org
    Property Exchange is a method for getting and setting data between two MIDI devices using MIDI-CI messages, sending JSON over System Exclusive.
  77. [77]
    [PDF] Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol
    Feb 20, 2020 · Universal MIDI Packet (UMP): The Universal MIDI Packet is a data container which defines the data format for all MIDI 1.0 Protocol messages and ...
  78. [78]
    [PDF] User Datagram Protocol for Universal MIDI Packets - SynthFood
    Nov 20, 2024 · User Datagram Protocol for Universal MIDI Packets. Network MIDI 2.0 (UDP). Transport Specification. MIDI Association Document: M2-124-UM.
  79. [79]
    Network MIDI 2.0: MIDI over Ethernet - Gearnews.com
    Jan 28, 2025 · At NAMM 2025, the Association officially launched the new Network MIDI 2.0 (UDP) standard, which was ratified in November 2024. Network MIDI 2.0 ...<|separator|>
  80. [80]
    Network MIDI 2.0 - MIDI Association
    Network MIDI 2.0 uses User Datagram Protocol to transport MIDI messages over IP networks, enabling MIDI devices to connect and exchange MIDI 1.0 and 2.0 ...
  81. [81]
    MIDI 2.0 news - Page 3 - Gearspace
    Mar 24, 2022 · For a device to claim that it supports MIDI 2.0 it must implement MIDI-CI. MIDI-CI Protocol Negotiation requires the device to use a transport ...
  82. [82]
    Logic Pro amplifies beat making on Mac and iPad with ... - Apple
    May 28, 2025 · Logic Pro for Mac requires macOS Sequoia 15.4 ... MIDI controllers with Logic Pro for iPad requires devices compatible with iOS and iPadOS.Missing: RTP- | Show results with:RTP-
  83. [83]
    Pro Audio Interfaces | MOTU.com
    Audio Interfaces with AVB ; 848. 28x32 I/O with 12x12 TRS analog, 64-ch mixing, DSP & AVB-TSN networking ; 16A. 32x34 I/O with 16x16 TRS analog, 64-ch mixing, DSP ...<|separator|>
  84. [84]
    Releases · davidmoreno/rtpmidid - GitHub
    Dec 15, 2024 · rtpmidid 20.07 comes with these new features: Compatibility with Apple RTP MIDI implementation: Mac OS and iOS. Improved stability. Basic ...
  85. [85]
    [PDF] 2024 ILDA Awards • Presented 27 September in Wrocław, Poland
    Oct 18, 2024 · The laser sequence is synchronized to audio using MTC and RTP MIDI. The varianced laser projectors are installed and aimed according to the.
  86. [86]
    TPi #286 March/April 2025 by Mondiale Media - Issuu
    Mar 7, 2025 · Various protocols operate across multiple VLANs, including Dante, RTP MIDI, OSC, and a show control layer running on AbleSet. The whole ...
  87. [87]
  88. [88]
    Teaching Music Classes Virtually | Fusion Academy
    Teaching music virtually can sound somewhat strange at first, but with the tools at our disposal like Pro Tools Cloud Collaboration, RTP-MIDI, and Zoom,
  89. [89]
    (PDF) Symbolic Musical Event Data For The Internet of Musical Things
    Oct 29, 2025 · ... Journal of. Engineering and Technology. [2] Apple (2016). MIDI Network Driver Protocol. ONLINE, Accessed 19/07/2024. [3] Bertini, D. (2025) ...