Skip to content

gisogrimm/ovbox

Repository files navigation

ORLANDOviols Consort box (ovbox)

The ovbox is a remote collaboration box developed by the ensemble ORLANDOviols primarily to allow rehearsals during the lockdown due to Covid19 pandemia. This box is completely built upon open source software and open or standardized hardware.

consortbox

We are contributing to the digital stage project. It is our aim to achieve full compatibility of the ovbox with the digital stage system. See also the (ov-client)[https://github.com/gisogrimm/ov-client), which is the base of the digital stage and ORLANDOviols audio render client.

Installation instructions

For installation instructions see file INSTALL.md.

Once your installation is ready you may create an account at box.orlandoviols.com.

User manual

A user manual for the complete system can be found on the wiki.

Tested hardware components

Here are the shopping lists we use - obviously these can be obtained from any electronics/music store. These are just recommendation, other hardware may also work or perform even better:

Raspberry Pi etc.: Reichelt (approx. 67 EUR)

Or from berrybase: microSD card, network cable, power adapter, case and Raspberry Pi 4B

Sound card, mic, etc.: Thomann (approx. 209 EUR)

We can highly recommend the Focusrite Scarlett 3rd gen sound cards, e.g., Scarlett solo or Scarlett 2i2 - these sound cards achieve by far the lowest delays (see below). The microphones from the studio pack have a bad shielding design and should be used with care.

Raspberry Pi 4B (recommended), Raspberry Pi 3B+, Linux PC with current Ubuntu LTS (20.04, 18.04, 16.04)

Scarlett Solo (recommended), TASCAM US2x2, Mackie Onyx 2-2, or any other class compliant USB sound card. We also tested the low-cost USB microphone 'Superlux E205U', which works, however, on the Raspberry it produces a clearly audible tonal noise due to low quality USB power.

basic condenser mic, headphones, cables

optionally: a small head tracking device based on MPU6050+ESP8266

Software components

Raspbian Linux operating system https://www.raspberrypi.org/downloads/raspbian/

jack audio connection kit (audio server) https://jackaudio.org/

zita-njbridge (network audio/adaptive resampler) https://kokkinizita.linuxaudio.org/linuxaudio/

TASCAR (virtual acoustic engine) http://tascar.org/

a self-written UDP tunnel and multiplexer (see folder udpmirror)

Performance

We use this box since April 15th 2020, almost every day. The software is optimized continouosly. With the current settings we achieve delays between musicians ranging from 40ms (optical fiber network/DSL) and 67ms (connection via mobile network), with a tolerable amount of dropouts. This delay contains the network transmission time, the jitter buffer (currently 14ms), and the delay of the audio hardware (currently 11ms). We connect 4-5 devices.

The device sends 16bit audio at 48 kHz sampling rate. The signal is rendered to headphones using virtual 3D audio. Streaming to platforms such as youtube is possible using a session on a PC, with OBS studio and other pro-audio software.

Architecture

On a central server (or one endpoint reachable from outside) the multiplexer/tunnel server roomservice needs to be running. This listens at a single UDP port. On the configuration/management server, a web based user interface is running. This server also runs a small database system, which stores device configurations and room settings. The boxes connect to this server, receive a configuration file, and start multiplexer client software ovboxclient to connect with the roomservice chosen in the web user interface. Now the boxes can receive UDP messages from the other participants sent to their client software. UDP messages sent to the local client are transferred to the roomservice. To minimize data manipulation, the packages are protected by a 32bit secret (but not encrypted).

At each endpoint, one intance of zita-n2j is started for each potential participant. One instance of zita-j2n is started on each box to stream the local audio to the other participants. The session management and audio mixing is performed in TASCAR.

The underlying adaptive resampling of zita-njbridge is described in https://kokkinizita.linuxaudio.org/papers/adapt-resamp.pdf.

A simple mixing interface is provided with node-js and some TASCAR extensions. This mixer interface can be opened from any html5-compatible browser in the same network as the ovbox, and is optimized for smartphone/touch use.

For a description of our "House of Consort" (a virtual building with lots of rooms to play music), see vision.md (this is not a vision anymore). If you would like to get access to our "House of Consort", please contact us via email.

udp tunnel tools

The tools roomservice and ovboxclient form the main communication protocol. They are essentially a STUN server and a TURN server, and provide a minimalistic session management.

peer-to-peer mode vs server mode

The roomservice / ovboxclient tools support connection via server or a peer-to-peer mode. In both cases the central server is needed for negotiation of the participants. peer-to-peer mode can activated at the client with the -2 flag. A mixed automatic switching between peer-to-peer mode and server mode based on the client behavior and statistics is currently under development.

hardware delay

See wiki for a list of tested sound cards an their delays.

About

ORLANDOviols consort box

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published