URGENT! Dynamic macro name in Companion for TriCaster TC1 - possible workaround?

williejan

New member
We use Bitfocus Companion 4.3.4 together with Stream Decks to control our TriCaster TC1.

I have created a number of dynamic Expression Variables in Companion that automatically build the correct macro name based on the currently selected camera and preset.

For example, depending on the active camera and preset, the Expression Variable may contain a value such as: SAVE_PRESET_C01P01

This exactly matches the name of an existing macro on the TriCaster.

The problem is that when I use the TriCaster → Run custom macro action in Companion, the Macro Name field only allows me to select a macro from a predefined dropdown list. It does not appear to support variables or dynamic text input.

My question is:
  • Is there any way to execute a TriCaster macro by its name through TCP, HTTP, the TriCaster API, or another protocol, so that Companion can pass the macro name dynamically?
  • Is there perhaps another Companion action that supports this, instead of Run custom macro?
If that is not possible, could this perhaps be achieved through DataLink or another mechanism?

For example, I could trigger a fixed macro called PRESET_SAVE, and that macro would somehow read a text value (for example SAVE_PRESET_C01P01) from an external source or variable, and then execute the TriCaster macro whose name matches that text.

In other words, I am looking for a way to execute a macro by a dynamically generated name, instead of selecting it from a fixed list.

Has anyone found a practical workaround for this?

Any creative ideas would be greatly appreciated!

Best regards,
Williejan
 
Last edited:
In addition to my post, I tried the following steps:

In TEST01, I created a macro called RUN_PRESET_SAVE that has the shortcut "play_macro_byname", with the value "SAVE_PRESET_C01P01", which works like a charm. When I run the macro RUN_PRESET_SAVE it executes the macro "SAVE_PRESET_C01P01". So this step is successful.

Then in DataLink I created a key called "SAVE_PRESET" with the value "SAVE_PRESET_C01P01" (see screenshot TEST02A).
In the macro "RUN_PRESET_SAVE" I changed the value from "SAVE_PRESET_C01P01" to %SAVE_PRESET% which should read the value "SAVE_PRESET_C01P01" from the DataLink variable "SAVE_PRESET" (see screenshot TEST02B).

Unfortunatly this doesn't work. Is there someone who can tell me if the value field %SAVE_PRESET% is incorrect to read the value from the SAVE_PRESET field in DataLink? If so, what is the correct syntax?

Best regards,
Williejan
 

Attachments

  • TEST01.png
    TEST01.png
    850.7 KB · Views: 4
  • TEST02A.jpg
    TEST02A.jpg
    41.7 KB · Views: 4
  • TEST02B.png
    TEST02B.png
    853.4 KB · Views: 4
@kanep could you please help here?

If you can't pull the value of the SAVE_PRESET variable from DataLink, do you have any suggestions for a workaround? If so, please give me screenshots or a "dummy" explanation, because my skills are not so good on this.

THANKS in advance!
 
Since everyone (and everything I could find) seems to indicate that it is not possible to read dynamic DataLink values inside a TriCaster TC1 macro, I started looking for an alternative solution, which I found.

I discovered that it is possible to trigger a TriCaster macro directly over the network using the following shortcut:


That turned out to be exactly the solution I was looking for.

I created a separate macro for each camera-preset combination. For example, to save Camera 1 - Preset 1, I created a macro named:

SAVE_PRESET_C01P01

and continued the naming convention for all presets:

SAVE_PRESET_C01P02
SAVE_PRESET_C01P03
...

Next, I created two buttons in Bitfocus Companion: one for saving the preset of the camera currently in Preview (PVW) and another for the camera currently on Program (PGM).

Because Companion keeps track of which camera and preset are currently active on both PVW and PGM, I can read those variables and use Expression Variables to dynamically generate the correct macro name.

Finally, the button executes an HTTP GET request with the following URL:


(where TRICASTER-IP is the IP address of the TriCaster).

The Expression Variable automatically resolves to the correct macro name (for example, SAVE_PRESET_C01P01), and the TriCaster executes the corresponding macro immediately.

Everything works perfectly!

Hopefully, this workaround will help someone else who is trying to execute TriCaster macros dynamically from Companion.
 
Last edited:
Back
Top