Brussels / 31 January & 1 February 2015


Orchestrating computer systems, a new protocol

Introducing ZOCP an orchestration protocol for live performances, rapid prototyping and the IoT

Trying to control multiple computers in live performances is a challenging task. Often computers intercommunicate using fixed or manually configured parameters. However when projects expand across many devices this is hard to maintain, especially in situations where parameters are prone to change. ZOCP is a new protocol which solves this problem by facilitating flexibility and autonomous configurations in an orchestrated environment.

In this presentation we present the ZOCP protocol which overcomes the situations mentioned below. The ZOCP protocol is designed with the following in mind:

  • KISS (Keep it simple and stupid): We want this protocol not be in our way and we want to be able to understand it easily.
  • Zero Configuration: The protocol should be able to handle most, if not all configuration by itself. There is no need for setting up specific parameters unless requested, aka convention over configuration.
  • Runs on anything TCP/IP: Since TCP/IP is the de facto standard for devices to communicate the technology should be able to run on any device that is able to talk TCP/IP
  • Open Standards: All used technologies, software, protocols should be freely and openly available.
  • Low latency, when needed
  • Reliability, when needed
  • Unintrusive debugging and monitoring

As artists embrace new technologies as an artistic medium, these technologies often provide artists with new methods for cooperation. Networking technologies are used frequently for these purposes. Internet has been a driving force behind the development of networking hardware and open standards for connecting any to device to any device. These technologies are now a commodity and thus available for anybody to use. However we see a rising need to be able to implement these technologies in a flexible adaptive manner without the explicit fixed configurations requiring manual configuration.

Open Sound Control (OSC) is a protocol developed for exchanging music performance data. OSC is often used as an alternative to MIDI, however, it has found its way to many use cases besides musical performances. We have found OSC to be an ideal de facto standard for connecting applications to each other in order to orchestrate them. However the flexibility of OSC tends to decrease exponentially when used in large configurations because of its hard-coded nature. This implies that many applications need to be instructed to use specific manual settings and agreements in order for applications to communicate. In large configurations containing multiple systems and multiple applications, this manual work is inflexible and error prone.

The current prototype is developed using the ZeroMQ framework. We will demonstrate the protocol in a setup with Blender, a game engine, an Urwid console monitor and a RaspberryPi.


Arnaud Loonstra