Open Switcher Control

Open Switcher is a control application for the Blackmagic Design ATEM video switchers. These are normally controlled with the propriatary Windows or Osx application over a network connection. In some cases it's also possible to control these switchers using hardware buttons but that doesn't expose the full functionality of these mixers.

Switcher Control is a re-implementation that aims to be as close to the supported features of ATEM Software Control as possible. Getting to 100% compatabilty would be quite hard since it exposes quite a lot of extra functionalities for specific models of mixers which would be technically difficult to implement or hard to do due to lack of access to the more expensive hardware.

Implemented features

Layout editor

The layout editor lets you quickly position upstream and downstream keys. For upstream keyers the DVE transform can be controlled and for the downstream keys only the masking can be set.

The squares on the edge of a keyer allow resizing one or two of the parameters of the DVE position and size. The rectangles on the edges control the masking values for the keyer and with the square in the center the whole key can be moved around.

When ctrl is held when dragging the center square the source of the key is moved while the bounding box on the output is kept the same as much as possible by doing the inverse manipulation on the masking edge.

AUX bus control

On the output panel the aux output control exposes a few extra options not present in the official ATEM software.

The "Show as bus" option makes an AUX output appear as an extra bus beside the normal program and preview bus. This allows quickly controlling the video output for that AUX bus without having to manipulate the bus with a dropdown.

The "Follow audio monitor bus" feature makes an AUX output act like a monitor bus for the audio mixer page. Not all ATEM devices have an audio monitor output and this allow using an SDI audio de-embedder to get something close anyway. This has the downside of not working with any sources on the audio mixer that cannot be routed to an AUX like analog audio inputs.

Connection options

The connection dialog in OpenSwitcher has a few extra features over the normal one. It shows the IP address and firmware version of the hardware in the local network in a single view and lists connected USB hardware when available.

The proxy option lets you connect to an OpenSwitcher proxy server. The proxy module can run headless on something like a raspberry pi and provides a TCP version of the protocol that adds authentication and multiplexing on top of the base protocol.

With the proxy protocol it's possible to easily control atem hardware remotely in a more secure way. With only a single open port it's possible to control an unlimited amount of hardware. This is a great alternative to having VPN connections set up for tunneling the UDP lan protocol from the official software. The proxy protocol can also be used over a VPN for extra security ofcourse.

Installation

OpenSwitcher is packaged in various Linux distributions:

Distribution GTK Application Python library
Alpine Linux openswitcher py3-pyatem
Archlinux openswitcher-git openswitcher-git
Debian 12+ openswitcher python3-pyatem
Ubuntu 23.04+ openswitcher python3-pyatem

Switcher Control can be installed from source or as flatpak. Flatpak installation:

Install Flatpak (experimental) Install Flatpak (stable)

The experimental branch includes every feature as soon as it's done and the stable branch gets the new versions after the new version has been verified to work in production.

$ flatpak remote-add openswitcher https://flatpak.brixit.nl/brixit.flatpakrepo

# For the experimental builds:
$ flatpak install https://flatpak.brixit.nl/switcher.flatpakref

# For stable builds:
$ flatpak install https://flatpak.brixit.nl/switcher-stable.flatpakref
            

Windows test builds

There are experimental windows builds now. These can be downloaded from this Github release page: github.com/MartijnBraam/pyatem-win/releases

Development

Development for this application happens on Sourcehut and Matrix: