As my scripts for controlling vMix becomes more and more advanced I increasingly find that a smarter way to supplement the data that vMix's API provides would come in really handy. Smarter than my current workarounds.
For example, in many productions we often bring in remote guests via a "link". We can do that inside vMix via different Input types like Calls, SRT, NDI, and recently Zoom. Typically the use of those Inputs are for us the same, no matter the type of Input (triggers, audio management, layers, etc.). Thus we might Change one of the Preset's link Inputs type from NDI to Zoom. Consequently we cannot identify all our links by their type if we want to mute them in a script. Likewise, we might want to have one or more link Inputs sent to the venues projector when in Output - for those meant to function that way. Which ones? Choose by setting their custom attribute.
Another example, regarding us that tend to have a few "2-ups" (aka "supersources) with two layers used for a camera and powerpoint. One may be laid out for 4:3 ppts, another one for 16:9 and a third one for just 16:9 side-by-side. Now, if we need to switch to another camera, then Script search for Inputs where custom=ppt-combo and change the relevant layer assigned to the camera. This "physical" change is necessary in order for the tally to work. (Using a Mix Input to switch Camera Input does not work because the Mix does not bring the tally info).
Furthermore, the custom attribute could hopefully be implemented by third party solutions, like the Studiocoast vMix plugin for Bitfocus Companion. If so, it would be really useful to have valuable custom data for things like Button Feedback and Companion triggers.
I am pretty sure this Forums creative community could come up with other interesting uses. Or?
Now, a suggestion for how this Feature could be implemented in vMix.
Example:
http://127.0.0.1:8088/api/?Function=SetCustom&Input=Vivian&Value="LinkC"
Will via the API return:
<input key="3be91a88-d89f-4dcf-aaad-b4de81f21e56" number="10" type="Zoom" title="Vivian" shortTitle="Vivian" state="Running" position="0" duration="0" loop="False" muted="True" volume="33.36217" balance="0" solo="False" soloPFL="False" audiobusses="M,A,C,D,F" meterF1="0" meterF2="0" gainDb="7.999998" custom="LinkC">Vivian</input>
Also, cool but not necessary:
In the window displayed when a new Input is added, a "Custom" field where one might enter its content (left of the "Number" dropdown).
Thanks,
/richard