Hi !
I have an idea in my head for a long time, I think time has come for me to try to explain it to you, vMix community, to request your support for this potential new feature.
I guess some of you know I try to use shortcuts and the API as much as possible to extend vMix capabilities and split the workflow and responsabilities over multiple computers/people. I also have a little knowledge in coding principles like the use of constants and variables to feed functions dynamically in a program or a script. Thus I came to the conclusion that it would be great to add such capacity to vMix shortcuts and its API.
Because it's difficult for me to explain this to you in english, let's start with an explicit example.
I'm working on a CC module using vMix Panel Builder as a test. I need to provide full CC controls for at least 8 cams, that means around 200 widgets (sliders, buttons, etc) for all CC commands... It's a lot of buttons, takes a lot of space and it's pretty stupid in fact 'cos it's not possible to use controls for the 8 inputs at the same time but it's rather one after another. That's also the reason I can't plan to use a Midi controller or X-Keys for this task. It would require far too much buttons and faders...
So obviously if we could use variables or dynamic inputs, it would be possible to first select an input number, set it as a variable and make the function buttons use this variable to be mapped to the pre-chosen input number.
Here's how I can think of this potential implementation in vMix
- Add a command "SetDynamicInput"
- Add this "DynamicInput" entry in the list of special inputs (next to ActiveInput/PreviewInput) in order to be selected in shortcuts, triggers, scripts and thirdparty applications like UTC and VPB.
Best would even be to have several (maybe 5 ?) Dynamic Inputs to be used simultaneously for different things: SetDynamicInput1, SetDynamicInput2, ..., SetDynamicInput5
Check the image below that shows how easy it would be to replace 200 buttons and widgets by just an input selector (here for 8 cams = 8 buttons) and the appropriate commands (only 25 widgets/buttons).
Each input button (on top) would set this Dynamic Input variable so that vMix would store it in its memory and make it available to the API > DynamicInput1 = GUID
Then each function widget would use this "DynamicInput1" as the input target for the command to be executed.
cc-module.jpg
(207kb) downloaded 26 time(s).I think it's enough explanation to get the general idea and the overall potential...
If I'm thinking right, I believe we need 3 types of variables/dynamic entries in vMix:
- Input Variables (DynamicInput1-5) to dynamically map inputs to functions
- Function Variables (DynamicFunction1-5) to dynamically map functions to shortcuts/buttons/widgets (a single button can be used for multiple purposes, like the AUTO button in traditional control panels for example)
- Numeric Variables (DynamicValue1-5) to dynamically set numeric values to functions (durations, overlay indexes, etc...)
I have started to think about this long ago and see a lot of potential use cases. Main advantage would be to drastically reduce the number of shortcuts/buttons/widgets required when using Midi controllers, X-Keys, third-party apps, as well as any code driven logic, externally or even in internal scripts. The use of constants and variables is the very base of any programming language when it comes to feed functions, which is exactly how vMix works internally... Unfortunately so far vMix functions are only static for us...
I also believe this Feature Request could be an answer for another Feature Request that many of us support : the one about MODIFIERS (use of CTRL, SHIFT, etc...). > a single button could be used for multiple commands.
If you use shortcuts or scripts in vMix, if you use Midi or X-Keys controllers or Skaarhoj devices, if you use third-party softwares like UTC or Panel Builder or Android/iOS apps like Seth's vMix Virtual Control Surface for Ipad, I truly believe this feature can be a game changer for so many things in Vmix. So please, give it full support with your +1. (I also accept +100 and +1000!)
And feel free to ask any questions for more explanations or details. I know it seems a little technical at first view, but it's very simple in fact!
Thanks!
Bien à vous
Guillaume, aka DWAM