derpeter, danimo

This is a tallylight and intercom solution designed to be used with voctomix
  • voctolight: reconnect automatically when voctocore is restared
  • find PTT buttons to be mounted on the tripod handle
  • [Thorti] Unterschiedliche Configs für Tallycom (Kamera vs. Mischer/VOC-Office). Kamera= LED leuchtet, wenn Cam in Verwendung; Mixer/Office= LED leuchtet, wenn jemand im Channel spricht
  • [Thorti] Möglichkeit für SaalAV-Mensch in mehreren Räumen gleichzeitig zu hören, aber nur in einem zu sprechen, um z.B. im Kanal zwischen Kamera/Mischer zu agieren und gleichzeitig im VOC-Channel erreichbar zu sein.
  • [Thorti] Beltbak-Lösung für mobil mit WLAN (Halterung mit Gürtelklammer?). Stromversorgung via Powerbank.

The pi (3) can either use its build in wifi with the a wifi provided by the wrt or in case of congress could also use the WPA2-enterprise network. Alternative ethernet can be used

The current hardware is a Raspberry Pi 3, we need evaluate if the intercom part also works stable with an older pi.

  • 1x RPI 3 ca 35€
  • 1x RPI Case and power suppply + flash mount 10-20€
  • 1x SD Card ~10€
  • 1x LED + Resistor ~2€ (for voctolight)

as it has turned out, the logitech headsets are not suitable for live envirenments. Therefore we looked into other options

prototype alpha

current inventory

Our JVC Cams run on 12V and the Panasonic on 7,5V, therefore we have a step-down converter which provides 5V for the tallycom.
We use a LM2596S DC-DC stepdown converter which has an input voltage range from 1,5 - 35V and can provide up to 3A.
This should work with most other cams to as long as you are not to close to 5V.

voctolight is a tellylight part of this project. It listens on the voctomix control channel.

The code is developed in the voctomix repository in the exemple scripts dir.

To get started you need a LED and a resistor. For a normal red LED this would be 330Ohm. Connect the LED with its + to pin 11 and with its - to GND (pin 6)


ssh voc@
cd /opt/voctomix/release/example-scripts/voctolight/
vim config.ini 
sudo systemctl restart voctolight.service 

The new version of the tally software uses all three colors of the LED:

  • red indicates the source being live
  • green indicates the source being in preview (pending support in Voctocore)
  • blue indicates a loss of connection to the Voctocore host

It shares much code with the Voctoknopf software and is therefore hosted in the same repository. Installation works as follows:

$ git clone
$ scp -r voctoknopf/src voc@
$ ssh voc@
~ $ cd tally-src/
~/tally-src $ make all-tally
~/tally-src $ sudo make install-tally
~/tally-src $ sudo vim.tiny /etc/tally.conf
~/tally-src $ sudo reboot

When replacing the old software with the new one, don't forget to disable the old ‘voctolight’ service before rebooting.

Once installed, the configuration can be changed as follows:

$ ssh voc@
~ $ sudo vim.tiny /etc/tally.conf
~ $ sudo systemctl restart tally

For more documentation, see

To get a audio connection between mixer and camera operator we run a command line mumble client on an rasperrypi 2/3 connected to an USB Headset. For small events, this client connects to a mumble server on the voctogui laptop (or the cube / minion); for bigger event to, a central one running in the server case. Another option would be SIP, but mumble seems to better fit the requirements.

The mixer operator should be able to use push to talk with the keyboard of the mixer or an button in the UI. The camera operators should be able to use the button on the headset for push to talk.

  • It could be useful to let the mixer operator to switch the behavior of all clients to open mic.
  • operator should be able to listen to all rooms in a common channel
  • LED / Notification device for the voc office
  • Visual Call: LCD / LED notification for mention / call


c.f. and

To change the configuration edit `/etc/systemd/system/mumble.service`

TODO: check/fix systemd unit – workaround: run manually inside of screen

Does not



You need to edit `/usr/share/alsa/alsa.conf` and change `defaults.ctl.card 1` and `defaults.pcm.card 1`


This is based on a RasPi 3 and Raspian:

First, create /etc/asound.conf with the following contents:

pcm.!default {
    type plug
    slave.pcm {
        @func getenv
        vars [ ALSAPCM ]
        default "hw:Headset"

This will map the Headset to be the default sink/source for audio. This app is written in Go, so we need to install go first, plus a few dependencies written in C, which we pull in via APT. They handle sound and opus encoding respectively:

cd ~
# Get golang for ARM: (get go?.?.?.linux-armv6l.tar.gz)
tar xvfz go?.?.?.linux-armv6l.tar.gz
apt install libopus-dev libopenal-dev
export GOPATH=$HOME/gocode

Next, we can build barnard, a gui-based client, that you may want to run in a screen session for production purposes.

~/go/bin/go get
~/go/bin/go compile #set GOARM=7 to get ARMv7-optimized code
strip ~/gocode/gocode/src/
sudo cp ~/gocode/gocode/src/ /usr/local/bin/barnard

# (exported.pem is the cert exported from the official mumble client as exported.p12,
# and then run thrugh "openssl pkcs12 -in ~/exported.p12 -out ~/exported.pem -nodes"
barnard server=""  -username=cam1 -insecure=true -certificate=exported.pem

GUI shortcuts: F1 mutes/unmutes on a protocol level, F10 quits.

  • projects/tallycom.txt
  • Last modified: 2020/12/11 02:03
  • by eric