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/
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!
LikeLike
Hey, that’s awesome! Please send me some pictures of this in use, I’d love to see how you are using it at your church. You can email me, jadams AT fellowshipgreenville.org. Thanks!
LikeLike
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:
https://pastebin.com/Y2ekdtz3
Notice the weirdness of my LED, GPIO.LOW turns them on, GPIO.HIGH turns them off due to it being a common anode type.
LikeLike
If you don’t mind, let’s move the conversation to email so we can more easily send transfers. Send me your whole script and I’ll take a look!
LikeLike
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.
LikeLike
At such a nice price, too! 🙂
LikeLike
Ok I am SO CONFUSED. I have to install Talky Arbiter AND Blink listener master?
LikeLike
Yes. Tally Arbiter is a server that you run that collects the tally data from your sources like your ATEM, tricaster, etc. Then you install the blink(1) listener (or any of the other provided listener clients) onto the remote devices that you want to receive tally data from your Tally Arbiter server.
LikeLike
Ok ok ok I’m coming along on this journey…
So the readme file in Tally Arbiter is the instruction I need to set up on the Mac that’s connected to my ATEM switcher.
The Blink Listener Master is what I do to the Raspberry Pi. Then put the Ip of the server AKA my Mac.
If I set up my raspberry pi with the software from their website, will all the instructions still work? Do I have to use Balena?
Also – could the listener also be the server? What’s keeping it from just seeing the IP of my switcher?
Thanks so much! This is literally saving us thousands…
LikeLike
You don’t have to use Balena Etcher if your pi already has an OS. You just need python3 to run the blink listener. You can run a Tally Arbiter listener client on the same computer as the Tally Arbiter server, but you still have to have the server running. Glad my hard work to create this free software is saving you money!
LikeLike
Got it! Thanks for the help!
LikeLike
Got it! Thanks for the help!
Is there a way to automate the server starting at boot, and still have listener automatically start? I’m trying to set it in rc.local but if I make the server automatically start, it’s not giving enough time for the listener to connect…
LikeLike
Try making rc.local sleep for a few seconds before launching the listener client script. sleep(10) for example.
LikeLike
That worked! But when I boot straight into terminal, it’s saying “tally data received” a million times over in blue font and not letting the listener activate.
When I boot into desktop mode it works great! Just gets stuck a little here and there…
Is that to be expected?
LikeLike
It’s probably not a million times. Tell me more about your setup. What source types are you using? Try disabling your source and then connecting your listener client if you want to see that in the console log.
LikeLike
I’m using Blackmagic atem television hd. If I unplug the ATEM from the network, it stops the constant tally data updates, and I can start the listener.
But I’m expecting to turn these off and on every week…
When I say a million – I mean it’s like a constant barrage of lines – I can’t type anything – it’s just continual lines of tally data.
LikeLike
Are you running the server with pm2?
LikeLike
I’ll have to check when I’m back at church! Thanks!
LikeLike
Christopher, did you get everything working? If not, feel free to reach out to me via the contact form and I can help.
LikeLike
I Can’t Make it work with my phone, how do I use it as a tally light?
LikeLike
It looks like you’ve commented multiple times here as well as on my YouTube channel. I’ll answer you once here and reference that answer on YouTube as well.
LikeLike