Skip to content

Releases: brenapp/tm-switcher

TM Switcher v1.8.1

15 Jun 00:21
Compare
Choose a tag to compare

This release is a patch release that upgrades the DWAB credentials for the new season.

What's Changed

  • Upgraded to include credentials for the new season
  • Adds a check to notify users if they are running an out-of-date version and prompts them to download the update.

Full Changelog: v1.8.0...v1.8.1

TM Switcher v1.8.0

07 Mar 03:53
Compare
Choose a tag to compare

This release implements a new feature that allows Event Partners to associate specific Display Modes with OBS Scenes or ATEM programs. This would allow you to configure an Alliance Selection scene that gets switched to whenever the audience displays changes to alliance selection.

What's Changed

  • Support audience display associations by @brenapp in #33

Full Changelog: 1.7.4...v1.8.0

TM Switcher v1.7.4

06 Jan 15:21
Compare
Choose a tag to compare

What's Changed

Minor release to update audience display automation timing.

See #31

TM Switcher v1.7.3

08 Dec 05:50
Compare
Choose a tag to compare

This release is compatible with Tournament Manager v2023_24.2.5

Changes:

  • Improvements to file name when recording matches.
  • #28: Improvements to timestamp file output. The format is now:
Timestamp,Recording Time,Stream Time,Scheduled Time,Match,Team 1,Team 2,Team 3,Team 4
  • #25: Improvements to the sequencing of audience display options to play with Tournament Manager's automatic queueing system.

Full Changelog: v1.7.2...v1.7.3

v1.7.2

05 Dec 06:08
Compare
Choose a tag to compare

This is a minor compatibility update to support the new Client API system introduced in the latest beta of Tournament Manager.

This version supports the latest mainstream release of Tournament Manager.

Updates

Support Client API Key. In Tools > Options > Web Publishing Tournament Manager now outputs an API Key that integrations must supply when connecting to a local TM instance. You must enter this value into the VEX TM API Key field when configuring TM Switcher to connect successfully.

Field Associations Improvements (#21) - If there is an OBS Scene (or ATEM input) that has the same name as a field name, TM Switcher will highlight that choice as the default. Thanks for the suggestion @paulsp!

Full Changelog: v1.7.0...v1.7.2

v.1.7.0 Beta Release

01 Dec 02:38
0c70ee2
Compare
Choose a tag to compare
v.1.7.0 Beta Release Pre-release
Pre-release

This is a beta release of TM Switcher to include compatibility for an upcoming public release of Tournament Manager. The purpose of this beta release is to allow experienced Event Partners to test the switcher with the current beta version of Tournament Manager to verify workflows for their official events.

TM Switcher will automatically manage robotics competition livestreams that use VEX Tournament Manager. It has been used successfully at dozens of events, including the Kalahari Classic Signature Event, Northeast Wisconsin VRC Showdown, Speedway Signature Event, Haunted Signature Event, and numerous state championships across multiple seasons.

TM API

In the latest public beta for Tournament Manager, DWAB released an official API that allows third-party developers to integrate their software with TM. You can read more about the API in the REC Foundation Knowledgebase. I am very appreciative of all the engineering effort DWAB put in to ensure that third-party integrations can continue to exist.

Currently, the API is only available in the beta version of Tournament Manager. Event partners can obtain the beta from the private section EP subforum on the VEX Forum.

The API must be enabled before it can be used. You can enable the API in Tools > Options > Web Publishing.

The main reason I am releasing this now is so all Event Partners get the opportunity to test the switcher in their workflows ahead of the production release of the API. Please let me know if you encounter any issues with the switcher!

What's Changed

Migrated to use the new public TM API. Currently, the API is only available in the beta build of Tournament Manager available on the forum.

Better Error Handling. TM will now handle situations where it disconnects from either OBS or TM a little better, trying to reconnect.

Significantly improved logging functionality. TM Switcher now maintains a fairly extensive log file, which will prove to be very helpful for diagnostics

Full Changelog: v1.6.2...v1.7.0

v1.6.2

19 Jul 22:01
Compare
Choose a tag to compare

This is a compatibility release for VEX Tournament Manager v2023_24_1.1

⚠️ Currently, tm-switcher does not support VEX Tournament Manager v2023_24_2.0. Follow this issue for more information.

Changes:

  • Compatibility Updates switching to use the new protobufs-based API introduced in the latest version of TM
  • Removes support for Audience Display Automation
  • Match Recording Updates for OBS. Fixes #14 which caused unexpected recordings for timeouts, and better labels recordings with the division and match number (see below)
2023-07-19_16-43-56_Division_A_QUAL_1.mp4

Notes For Mac OS

Based on user feedback, I created a version of the switcher integrated with a built-in terminal emulator that should be significantly more approachable for most users. Download the appropriate dmg for your platform and drag the application to your Applications folder.

As I am not a member of the Apple Developer Program, this application is self-signed, which MacOS marks as unsafe. To run the application, right-click on the app and click "Open" do not double-click.

v1.5.0

15 Apr 04:11
d1dbb8c
Compare
Choose a tag to compare

This release includes a number of new features that greatly improve the usability of the switcher:

  • ATEM Support. Now you can connect and control ATEM devices over the network! Note that due to a quirk in the protocol, connections over USB are not supported. You will need to network your switcher to control it. See the section in your user guide for more information about controlling ATEM devices over the network.

  • OBS Control Optional. To support situations where users just want display automation or ATEM support, connecting to OBS is now optional

  • Local Recordings. You can now configure the switcher to start and stop recording at each match.

  • Updated CSV output to include participating teams in each match

Full Changelog: 1.3.0...v1.5.0

v1.3.1

16 Sep 21:43
Compare
Choose a tag to compare

This release is a minor update to ensure compatibility with the new integrated OBS Websocket in OBS Version 28.

Changelog

  • Upgrade to obs-websocket-js@5.0.0 to support the new integrated websocket control. #8
  • Fixes a bug where match timestamps can't be saved on windows #7

This release drops the requirement to have the OBS plugin installed. You should use the integrated websocket control in OBS Version ^28

v1.2.1

17 May 22:15
Compare
Choose a tag to compare

tm-obs-switcher

tm-obs-switcher is a small tool that attempts to automate many live stream management capabilities for robotics events that use Tournament Manager and Open Broadcaster Software.

New This Release

  • Multi-Division Support. tm-obs-switcher now properly handles events with multiple fieldsets and multiple divisions. Thanks to Clint Matlack from the Kalahari Signature for reporting this

  • Audience Display Automation. Depending on the state of your tournament, show different audience display modes automatically.

  • Match Timestamp Recording. Record the time in the stream at which each match starts to a file, which can be included in the steam description

  • Better Error Handling. Especially on Windows, the program would immediately exit upon encountering an error. This made debugging errors much more annoying. Errors also come with additional diagnostic information.

Audience Display Automation

This release brings a few options to automate the audience display for the fieldset being controlled. Each automation can be individually enabled, to allow you to customize the level of automation present at your tournament. Audience Display Automations include:

  • Show intro upon match queue. Switch Audience Display to Intro when a match is queued up.

  • Prevent switching audience display when in-match. Send a signal to change the audience display to "In-Match" every second while matches are running

  • Show saved score 3 seconds after the match ends. Switch audience display to Saved Score 3 seconds after each match ends. This feature is disabled once you switch the display to Elim Bracket or Alliance Selection

  • Show Qualification Rankings after every 6th match. Switch audience display to Rankings 3 seconds after every 6th match ends. This feature is disabled once you switch the display to Elim Bracket or Alliance Selection

Match Timestamp Recording

tm-obs-switcher will now produce a CSV file with information about each match as it is started. The intention of this feature is to allow you to easily add chapter markers to the VODs of your streams. The file is located in your Operating Systems temporary directory.

image

Right now the file includes the match name (like R16 4-1), the timestamp it was started in, and the OBS Time (time marker for the stream). This file should be fairly easy to copy-paste to create chapter markers for each match.

Better Error Handling

Instead of immediately exiting when encountering an error, the program will wait for user input. This gives you the chance to read the error before the window closes, especially on Windows.
image

Requirements

OBS WebSocket Plugin 14. Required to programmatically control OBS

Install

  1. Install the WebSocket plugin in OBS
  2. Head over to the releases page and download the latest version for your platform. Alternatively, you can clone the repository and run the code from source.
  3. Unzip the executable, and run!

Run From Source

If you don’t want to run from the precompiled executable, you can alternatively
run this program from the source code. This requires you have the following
software installed:

  1. Clone or download this repository
  2. In a terminal window inside the cloned source, run the following commands:
npm install
npm run-script build

To run the program, enter the command:

npm run-script run