Tally Arbiter 1.2 – support for newtek tricaster, GPO Output, and tsl 3.1 protocol conversion

A few weeks ago, I released some free tally light software to the community. I’ve had people checking it out and I am excited to be able to offer some more features!

Some highlights in the 1.1 release:

  • Overall performance improvements
  • Fixed an issue where Devices added during runtime did not obtain a proper initialization state and would not assign tally data properly until the server was restarted
  • Fixed an issue where Devices mapped to OBS Studio sources could not correctly be in both preview and program bus at the same time (when in Studio mode)
  • Better checking on Source connection states
  • TCP/UDP ports are now verified as in-use or reserved to help eliminate user errors
  • More verbose logging in the server console
  • All tally data received by all Sources is now sent to the Settings page (while open) for logging and diagnostic purposes
  • New Producer page; allows users to view all device states (tally information) without having the Settings page open. Created in dark mode for in-service viewing
  • Documentation added to Settings page to assist in initial setup and learning
  • OSC added as a Source type to trigger tally states
  • OSC added as a Device Action type (supports multiple arguments)
  • “Python” client renamed to “blink(1)” in preparation of other types of listener clients that may also use Python
  • Version is now displayed on the Settings page for diagnostic purposes

Now, I am releasing version 1.2! The highlights:

  • Newtek Tricaster support now included as a tally source type
  • OBS can now properly discern whether it is in preview or program
  • Support for TSL Clients – Tally Arbiter can now send all device states (derived and arbitrated from any source type) as TSL 3.1 (UDP or TCP) out by specifying a TSL Address for each Tally Arbiter Device. This can be used to drive UMDs and other tally receiving interfaces by acting as a protocol converter between all source types and TSL.
  • New Python listening client – GPO Output! Now you can trigger just about anything using the GPIO ports on a Raspberry Pi.
  • Bug fixes and UI improvements
  • More documentation and upgrade instructions

The biggest feature in this release is the new TSL Clients functionality. Tally Arbiter can now send out TSL 3.1 data to any number of connected devices any time a device changes state within Tally Arbiter. So, you can have, for example, a multiviewer of one switcher dynamically show whether a camera is in use on that switcher or a switcher of an entirely different brand/model by using Tally Arbiter as a protocol converter.

Here’s a video to show how the new TSL Clients feature works within Tally Arbiter and how to integrate it with a switcher like the Ross Carbonite. In this example, tally data is coming from both a Carbonite and a Blackmagic ATEM and the Carbonite multiviewer reflects that in real-time.

If you’d like to check out Tally Arbiter or learn more about it, check out the GitHub repository here: https://github.com/josephdadams/TallyArbiter/


  1. Man this is great!
    I actually just built a raspberry pi zero on saturday, but using an RGB led. I had modified your listener script (having never used python before), and it was so easy and straightforward. I’m sure I’ll still need to tweak your new code to fit my RGB.
    It’s cool to updates this quick! Very thankful, hopefully soon we’ll be using them at our church!


      1. Hello, not sure if this would be better via email or if this is fine. I don’t really know python, but your old code made enough sense that I got it modified to work with my RGB led off of the GPIO pins.

        Now I’m trying to get it to work with your new tallyarbiter_listener.py, and I can’t. I believe this is because of how my RGB Led is, but I’m trying (literally just guessing all over the place, editing the file and trying again until it works).

        So far, I got the “flash” button to work, it flashes twice green, and twice red after, but I can’t get it to follow preview/program bus.
        I’m not sure if you can help me with this custom code, but I’ll keep tinkering. It is proving difficult as I’m a novice programmer.

        This is a little excerpt of a code I was using to test the LED on my pi so you can understand how mine works:

        Notice the weirdness of my LED, GPIO.LOW turns them on, GPIO.HIGH turns them off due to it being a common anode type.


  2. Way to go Joseph. I am excited about the GPO Output. Thanks for your work getting the NewTek Tricaster support sorted out. This is by far the most flexible Tally solution available.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s