rse / vmix-issues

Tracking Issues of the vMix Video Mixing Application
MIT License
0 stars 0 forks source link

Improve the VB.Net Scripting Facility #26

Open rse opened 2 years ago

rse commented 2 years ago

The vMix VB.Net scripting facility is the only possibility to extend vMix from itself. Unfortunately, it has many limitations (see "Issue References"). It should be improved by adding script autostarting, add script arguments, add functions, provide full input state/information, allow meta-information be attached to inputs, provide more global information exchange variables,

Issue Reference: #10 #12 #18 #19 #20 #21

Vendor Response: "The Scripting feature in vMix is designed to support simple scripts and execute simple functions in vMix, it is not meant to accommodate advanced scripts or highly sophisticated and/or specialized usages."

celilo commented 5 months ago

Vendor Response: "The Scripting feature in vMix is designed to support simple scripts and execute simple functions in vMix, it is not meant to accommodate advanced scripts or highly sophisticated and/or specialized usages."

I'm only addressing the request to pass a parameter to a script via the web api.

Adding the ability to pass a parameter to a script is not particular sophisticated; it is the basis of the web API. More importantly, it reduces the number of shortcuts that must be maintained in vMix. I send MIDI commands to utilize shortcuts so that an action may be taken upon selecting an input. Each MIDI command triggers two shortcuts; the first sets a dynamic value (essentially the input) and the next calls the script that requires the value of the input. I'm not even sure if multiple shortcuts using the same MIDI sequence is supported, or if it's just luck that the shortcuts are triggered sequentially.

I'm using many PTZ presets in vMix, so I need to set up and maintain 81 shortcuts, which requires a lot of effort. If I could pass a single parameter to a script, I could reduce my shortcuts to 2. It would also allows me to utilize the web API vs MIDI, which is far more clear and maintainable.

In my case, the application calling the web API does not have the ability to make multiple API calls in a single action. Even if it could, a vMix script is the proper place for this to reside, because access to vMix states is available there. At this point, I can only use MIDI and a ton of shortcuts to meet my need. I see no way to replicate this using the API functionality, but perhaps, I am overlooking functionality that would make this possible. My current option is to build middle-ware, which seems quite excessive to achieve what would otherwise be a very simple task.

From my perspective, allowing a parameter to be passed maintains the goal of keeping vmix scripting simple by eliminating the need for more advanced programming.