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.
[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.
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.
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.
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.
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.
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.
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).
Best Paper Award, ICMC 2022