O2: a networking protocol for music systems

Connecting computer music modules and programs to form systems using O2

See also Interactive Performance and particularly Sections Distributed Performance Systems, Soundcool, and “Aura as a Platform for Distributed Sensing and Control.”

Back to Bibliography by Subject


Dannenberg and Chi, “O2: Rethinking Open Sound Control,” in Proceedings of the 42nd International Computer Music Conference, Utrecht, September 2016, pp. 493-496.

ABSTRACT: O2 is a new communication protocol and implementation for music systems that aims to replace Open Sound Control (OSC). Many computer musicians routinely deal with problems of interconnection in local area networks, unreliable message delivery, and clock synchronization. O2 solves these problems, offering named services, automatic network address discovery, clock synchronization, and a reliable message delivery option, as well as inter-operability with existing OSC libraries and applications. Aside from these new features, O2 owes much of its design to OSC and is mostly compatible with and similar to OSC. O2 addresses the problems of interprocess communication with a minimum of complexity.

[Adobe Acrobat (PDF) Version]


Norilo and Dannenberg, “KO2 - Distributed Music Systems with O2 and Kronos,” in Proceedings of the 15th Sound and Music Computing Conference (SMC2018), Cyprus, 2018, pp. 452-456.

ABSTRACT: KO2 is a platform for distributed musical applications, consisting of the messaging protocol O2 and the signal processing language Kronos. This study is an effort to use O2 as a comprehensive communications framework for inter-process signal routing, including clock synchronization and audio. The Kronos compiler is exposed as an O2 service, allowing remotely specified programs to be compiled and run in near real-time on various devices in the network.

[Adobe Acrobat (PDF) Version]


Dannenberg, “O2: A Network Protocol for Music Systems,” Wireless Communications and Mobile Computing, vol. 2019, Article ID 8424381, 12 pages, 2019.

ABSTRACT: O2 is a communication protocol for music systems that extends and interoperates with the popular Open Sound Control (OSC) protocol. Many computer musicians routinely deal with problems of interconnection, unreliable message delivery, and clock synchronization. O2 solves these problems, offering named services, automatic network address discovery, clock synchronization, and a reliable message delivery option, as well as interoperability with existing OSC libraries and applications. Aside from these new features, O2 owes much of its design to OSC, making it easy to migrate existing OSC papplications to O2 or for developers familiar with OSC to begin using O2. O2 addresses the problems of interprocess communication within distributed music applications.

[Adobe Acrobat (PDF) Version] [Publication in Wireless Communications and Mobile Computing]


Dannenberg, “Scalable and Easy-to-Use NIME Networking” (Demo Abstract and Video), presented at New Interfaces for Musical Expression (NIME) Conference, online, 2022.

This is just an abstract for a demo at NIME. There was a full paper submission, which I preserved as a blog post here. Most of the content is presented formally in a more complete Computer Music Journal article (see below).

ABSTRACT: The O2 protocol extends the real-time messaging features of Open Sound Control with new capabilities including named services, discovery, clock synchronization and timed messages, reliable message transmission, and publish/subscribe capabilities. Recent work has extended O2 with a light-weight protocol to extend O2 capabilities to devices that lack a full implementation of TCP/IP. The new protocol, O2lite enables connectivity with small microcontrollers over Wi-Fi, web browsers over WebSockets, and even with threads that communicate through shared memory. O2lite makes a direct connection to a single O2 host process and and uses the host to provide service discovery and message routing. By off-loading functions to the host, O2lite is much simpler to implement and adaptable to many different transports and languages.


Dannenberg, “O2: Communication Middleware for Real-Time Distributed Music Applications,” Proceedings of the International Computer Music Conference 2022, 2022.

Best Paper Award, ICMC 2022

ABSTRACT: O2 is a communication protocol or “middleware” for real-time music applications. It features automatic discovery to simplify network configuration, clock synchronization, a reliable message option, and named services. A new version of O2 offering new capabilities is described. O2 now supports global discovery and communication, extending the previous version, which was limited to a single local area network. O2 can also deliver messages through shared memory allowing efficient lock-free communication with high-priority audio threads. Multiple styles of communication are facilitated in this new version, which supports taps to copy or “spy” on message streams. Taps can be used to implement publish/subscribe directly, and services also have writable properties that are eagerly pushed to peer processes for reading. Typical applications of O2 in creating computer music systems are described.

[Adobe Acrobat (PDF) Version]


Dannenberg, “Communication for Real-Time Music Systems: An Overview of O2.” Computer Music Journal, Vol. 45, No. 4 (Winter, 2022), pp. 7-19.

ABSTRACT Message passing between processes and across networks offers a powerful method to integrate and coordinate various music programs, offering software reuse, modularity and parallel processing. Networking can integrate components using different languages and hardware. O2 is a flexible protocol for communication ranging from the thread level up to global networks. O2 messages are similar to those of Open Sound Control, but O2 offers many additional features including discovery, clock synchronization, a reliable message delivery option, and routing based on services rather than specific network addresses. A bridge mechanism extends the reach of O2 to web browsers, shared memory threads and small microcontrollers. The design, implementation and application of O2 are described.

[Adobe Acrobat (PDF) Version]