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.
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.
For installation instructions see file INSTALL.md.
Once your installation is ready you may create an account at box.orlandoviols.com.
A user manual for the complete system can be found on the wiki.
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
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)
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.
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.
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.
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.
See wiki for a list of tested sound cards an their delays.