logo

Live Production Software Forums


Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

4 Pages123>»
Options
Go to last post Go to first unread
DWAM  
#1 Posted : Thursday, October 18, 2018 7:04:00 PM(UTC)
DWAM

Rank: Advanced Member

Groups: Registered
Joined: 3/20/2014(UTC)
Posts: 2,721
Man
France
Location: Bordeaux, France

Thanks: 243 times
Was thanked: 794 time(s) in 589 post(s)
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 25 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
thanks 9 users thanked DWAM for this useful post.
monamiga on 10/18/2018(UTC), stevespaw on 10/19/2018(UTC), Ario on 10/28/2018(UTC), Amokka on 11/19/2019(UTC), avsoundguy on 5/23/2020(UTC), David_in_Philly on 5/24/2020(UTC), eduardocfs on 5/30/2020(UTC), ClementN on 10/18/2020(UTC), Gert Roscam on 12/6/2020(UTC)
robdier  
#2 Posted : Thursday, October 18, 2018 8:49:31 PM(UTC)
robdier

Rank: Newbie

Groups: Registered
Joined: 11/9/2016(UTC)
Posts: 6

Was thanked: 2 time(s) in 2 post(s)
A great idea

+1 for me.

This sounds a lot like how the guys from Skaarhoi do this with the PTZ-Fly i'm using and all the other stuff they make.
DWAM  
#3 Posted : Thursday, October 18, 2018 8:57:31 PM(UTC)
DWAM

Rank: Advanced Member

Groups: Registered
Joined: 3/20/2014(UTC)
Posts: 2,721
Man
France
Location: Bordeaux, France

Thanks: 243 times
Was thanked: 794 time(s) in 589 post(s)
Exactly! That's also how most (like BMD, Roland, Ross, etc...) switchers and control panels work when it comes to assigning specific media or functions to buttons.
For example, the AUTO button in ATEM switchers can be assigned any transition effects.
DWAM  
#4 Posted : Thursday, October 18, 2018 9:24:30 PM(UTC)
DWAM

Rank: Advanced Member

Groups: Registered
Joined: 3/20/2014(UTC)
Posts: 2,721
Man
France
Location: Bordeaux, France

Thanks: 243 times
Was thanked: 794 time(s) in 589 post(s)
Here's another visual example that illustrates very clearly what I'm talking about

Let's say I want to be able to switch 8 inputs using several transitions effects anytime. vMix counts 20 different transitions.
So if I want to create a shortcut (or a button) for each possibility, that's 160 shortcuts.

This screencap below shows what it'd look like in vMix Panel Builder. It's impossible to use 160 buttons so I sticked to 64 (the same as an Akai APC Midi controller for example)

dynamic-shortcuts_demo01.jpg (277kb) downloaded 5 time(s).

As you can see, we're rapidly filling all the space with a limited number of functions. Besides all those buttons will be used very few times in a normal production so it's a real waste.

Now let's use the Dynamic logic I'm talking about :

dynamic-shortcuts_demo02.jpg (228kb) downloaded 7 time(s).

With only 34 buttons (instead of 64 - twice less) we now have 144 transition possibilities (twice more) for any of the 8 inputs that we can use anytime !!! The workspace is still pretty much empty so we can add a lot more functions and triggers for many things.

How does it work?

By default the PROGRAM row uses CUT to switch inputs.
When you want a FADE or any other transition effect, just click it in the "Transition Selector" and then press the input button you want to switch to in PROGRAM row. That's it!

PS : there's a little error in the 1st image - twice the MERGE transition - Anyway this doesn't change anything!
MartLeib  
#5 Posted : Thursday, October 18, 2018 11:29:06 PM(UTC)
MartLeib

Rank: Advanced Member

Groups: Registered
Joined: 2/23/2017(UTC)
Posts: 189
Estonia

Thanks: 1 times
Was thanked: 52 time(s) in 42 post(s)
The last thing is already possible.

You get all inputs and their keys from 127.0.0.1:8088/api

Your "Dynamic Transition Selector" should save selected transition in variable. When you press "auto" use Fader etc. you recall Web API with that variable:
127.0.0.1:8088/API/?Function=SelectedDynamicTransition&Input=21b32e53-a4e4-4eb4-970a-4a2bd2548f21&Duration=500

No idea about how to implement it in Panel Builder. In my own software, it's easy
Yannick  
#6 Posted : Thursday, October 18, 2018 11:30:03 PM(UTC)
Yannick

Rank: Advanced Member

Groups: Registered
Joined: 9/12/2017(UTC)
Posts: 37
Location: Germany

Thanks: 2 times
Was thanked: 10 time(s) in 9 post(s)
Hello DWAM,

I think the behaviour is already possible to achieve when your interface accesses vMix through the API.
I am building my own Midi Controller, that uses exactly this.
You can check out the threat here:
Midi Controller

There are two ways to achieve this behaviour in a custom controller.
My first attempt was to use Midi as communication interface.
In my case the "Select/Preview" Button will select for which channel the color correction and audio control settings of the controller will be applied.
The custom code on my controller will then output different notes depending on which channel was selected previously.
So for example when channel 1 is selected the Button "Send audio to Bus M" will send the note 100 and the same button will send the note 142 when channel 8 is selected.
This works quite well, the only problem is, that you will still have to set up all the shortcuts and activators in vMix.
In my case this would lead to hundreds of shortcuts.

To avoid this im currently channging the controller to access the API.
This way the controller itself will change the API command dynamically depending on what channel is selected.
The same example as before:
When channel 1 is selected the controller will send this command when the button is clicked
http://127.0.0.1:8088/api/?Function=AudioBus&Value=M&Input=1
When channel 8 is selected the command changes to:
http://127.0.0.1:8088/api/?Function=AudioBus&Value=M&Input=8

So, the possibility to do it is already there if the code of your controller can be modified to work this way.
mburel1980  
#7 Posted : Thursday, October 18, 2018 11:30:24 PM(UTC)
mburel1980

Rank: Advanced Member

Groups: Registered
Joined: 6/29/2016(UTC)
Posts: 101
Location: Luxembourg

Thanks: 48 times
Was thanked: 14 time(s) in 12 post(s)
+1
BETech  
#8 Posted : Thursday, October 18, 2018 11:33:01 PM(UTC)
BETech

Rank: Advanced Member

Groups: Registered
Joined: 5/18/2015(UTC)
Posts: 150
Location: Australia

Thanks: 81 times
Was thanked: 109 time(s) in 71 post(s)
One additional feature would be a Shortcut and API call to Open the Input Settings (cog-wheel) dialogue. When you open the Input Settings, and select Colour Correction, all the parameters are available, with a preview of the actual Input. Further, if you open any other Input Settings, the Settings dialogue will by default display the Colour Correction as well. This allows the Operator to perform colour correction for each of the camera inputs with just a simple push of a button on a midi controller, X-Keys or similar device.

UserPostedImage

There you can also set the waveform/vectorscope as well the camera video for the camera control operator.

Shortcut example:
SelectInputSetting Open Input Settings according to value Input = 1-1000 Input

API Example:
http://127.0.0.1:8088/API?Function=SelectInputSetting&Input=1
http://127.0.0.1:8088/API?Function=SelectInputSetting&Input=1000

Then, an application can be wriiten with the appropriate logic to switch no only the vMix Settings for each Camera Input, but also the Midi routing as well for an external controller.

Similar to the my CCU Controller Post from a year ago.

UserPostedImage
thanks 3 users thanked BETech for this useful post.
richardgatarski on 10/19/2018(UTC), stigaard on 10/20/2018(UTC), Amokka on 11/19/2019(UTC)
Yannick  
#9 Posted : Friday, October 19, 2018 12:19:30 AM(UTC)
Yannick

Rank: Advanced Member

Groups: Registered
Joined: 9/12/2017(UTC)
Posts: 37
Location: Germany

Thanks: 2 times
Was thanked: 10 time(s) in 9 post(s)
Hello BETech,

For the request about the shortcut to open the input settings window I have already started a feature request some time ago.
Please +1 there.
Shortcut Input settings
DWAM  
#10 Posted : Friday, October 19, 2018 12:20:04 AM(UTC)
DWAM

Rank: Advanced Member

Groups: Registered
Joined: 3/20/2014(UTC)
Posts: 2,721
Man
France
Location: Bordeaux, France

Thanks: 243 times
Was thanked: 794 time(s) in 589 post(s)
@MartLeib
Quote:
No idea about how to implement it in Panel Builder. In my own software, it's easy


My point is to bring this feature to vMix natively, not just in Panel Builder. I know it can be done with any third party software (I have my own scripts that use this). But the idea is to bring this for "vMix Shortcuts" (thus the API) so that it can be done in vMix and a single keyboard for example or in internal triggers. If vMix can do it internally, then it will benefit to all controllers, to all applications, not just some specific ones...

@Yannick
Quote:
I think the behaviour is already possible to achieve when your interface accesses vMix through the API.
I am building my own Midi Controller, that uses exactly this. There are two ways to achieve this behaviour in a custom controller.


Same answer as above! You are not addressing the topic: it's about bringing this feature to SHORTCUTS in vMix (thus the API) so that ANY controller (from the keyboard to all the other solutions) can use it or ANY software solution. I'm not talking about custom controllers, I'm talking about vMix !!!

@BETech
My FR does not relate to CC. I only used CC as an example among hundreds of other possible examples.
Point is to bring dynamic logic to ANY input, ANY function and ANY value in vMix.
The additional feature you're requesting here should be addressed in another FR post (unless it is already) as it does not relate at all to this topic.
Furthermore, I precisely want to avoid the opening of dialogues in vMix for Live CC, so that the director is not annoyed by them when the technician in charge of CC does its job.
DWAM  
#11 Posted : Friday, October 19, 2018 12:24:41 AM(UTC)
DWAM

Rank: Advanced Member

Groups: Registered
Joined: 3/20/2014(UTC)
Posts: 2,721
Man
France
Location: Bordeaux, France

Thanks: 243 times
Was thanked: 794 time(s) in 589 post(s)
To be perfectly clear (for those who don't read carefully), this FR is about vMix SHORTCUTS !!!

I only illustrated it with Panel Builder 'cos it's VISUALLY EXPLICIT (at least more than internal shortcuts used with keys on my keyboard)
Yannick  
#12 Posted : Friday, October 19, 2018 12:36:00 AM(UTC)
Yannick

Rank: Advanced Member

Groups: Registered
Joined: 9/12/2017(UTC)
Posts: 37
Location: Germany

Thanks: 2 times
Was thanked: 10 time(s) in 9 post(s)
Hmm, I´m kind of surprised that you are unhappy with the workaround solutions we provided to you.
Aren´t you the one who shuts down a lot of feature requests with the argument that a functionality is already implemented in vMix when you use a workaround...

I understand what your point is, but I´m not sure if it is possible to add this feature in a way that doesn´t cause a lot of confusion.
So in my opinion it´s better to further do the dynamic addressing of inputs externaly through the api.
thanks 1 user thanked Yannick for this useful post.
Ittaidv on 10/20/2018(UTC)
DWAM  
#13 Posted : Friday, October 19, 2018 12:58:37 AM(UTC)
DWAM

Rank: Advanced Member

Groups: Registered
Joined: 3/20/2014(UTC)
Posts: 2,721
Man
France
Location: Bordeaux, France

Thanks: 243 times
Was thanked: 794 time(s) in 589 post(s)
I don't shut down FR Yannick. I may express a negative "opinion" sometimes but most of the times, I just try to indicate alternate ways to achieve the same results.

What your suggesting here is not really a workaround as it relies on a specific equipment and it only answer partially to the overall scope I'm trying to cover here. My point is to bring this feature to vMix for the benefit of the ENTIRE ecosystem. If you can do this with a basic keyboard with simple shortcuts or internally with triggers, it's not the same thing as controlling it from YOUR midi controller. However YOUR midi controller could use it too. Does your Midi Controller improves in any way how a trigger can work in vMix ? I guess not...
thanks 1 user thanked DWAM for this useful post.
Amokka on 11/19/2019(UTC)
DWAM  
#14 Posted : Friday, October 19, 2018 1:12:06 AM(UTC)
DWAM

Rank: Advanced Member

Groups: Registered
Joined: 3/20/2014(UTC)
Posts: 2,721
Man
France
Location: Bordeaux, France

Thanks: 243 times
Was thanked: 794 time(s) in 589 post(s)
@BETech
Quote:
I can assist with something external to vMix


Thanks but I don't need help for this "externally" of vMix. I have used this long ago in my own scripts. I just would like vMix to adopt this "dynamic" behaviour "internally", precisely, as you stated, because it's a very familiar and common way of handling things with traditional switchers, control panels, sound consoles, effects generators and so on...

I believe that with the 3 types of variables I indicated, ANYTHING in vMix could be dynamic in terms of shortcuts, triggers and ANYTHING else through the API. It would save a lot of time when it comes to programming advanced stuff, it would save a lot shortcuts/keys/buttons/widgets, thus space.

The best way to describe it, imho, is : less shortcuts for more features!
thanks 1 user thanked DWAM for this useful post.
Ario on 10/28/2018(UTC)
stevespaw  
#15 Posted : Friday, October 19, 2018 1:22:18 AM(UTC)
stevespaw

Rank: Advanced Member

Groups: Registered
Joined: 3/12/2015(UTC)
Posts: 480
Man
Location: Kansas City, MO USA

Thanks: 149 times
Was thanked: 75 time(s) in 57 post(s)
+1 +1 +1

Yes Yannick, you can do this with 3rd Party apps (I use Ross Dashboard for my work).

But DWAM suggestion is very powerful, because you could use this with just the scripts built in to vMix. All of my shortcuts are now powered by scripts.

It would be a way easier way to use hardware devices without the "man in the middle".

This would be AWESOME.

Steve
thanks 1 user thanked stevespaw for this useful post.
DWAM on 10/19/2018(UTC)
avsoundguy  
#16 Posted : Friday, October 19, 2018 1:26:33 AM(UTC)
avsoundguy

Rank: Advanced Member

Groups: Registered
Joined: 10/26/2016(UTC)
Posts: 79

Thanks: 189 times
Was thanked: 12 time(s) in 11 post(s)
+1
Streamevent  
#17 Posted : Friday, October 19, 2018 2:31:08 AM(UTC)
Streamevent

Rank: Advanced Member

Groups: Registered
Joined: 8/18/2013(UTC)
Posts: 43
Location: Switzerland

Thanks: 1 times
Was thanked: 5 time(s) in 4 post(s)
I like it +1
edhorn  
#18 Posted : Friday, October 19, 2018 4:33:58 PM(UTC)
edhorn

Rank: Newbie

Groups: Registered
Joined: 10/19/2018(UTC)
Posts: 2
United States
Location: Metro Detroit

Thanks: 20 times
+1

Re: Dynamic Inputs for Shortcuts.
Having used numerous switchers, it would be far easier to expedite setup and streamline equipment carried for those that are mobile. Troubleshooting would be easier as well should a problem arise.
DWAM  
#19 Posted : Friday, October 19, 2018 6:41:24 PM(UTC)
DWAM

Rank: Advanced Member

Groups: Registered
Joined: 3/20/2014(UTC)
Posts: 2,721
Man
France
Location: Bordeaux, France

Thanks: 243 times
Was thanked: 794 time(s) in 589 post(s)
Thank you for your support Ross. You’re close but it’s even much simpler than that

With the very same use case : a CC module, with the CC interface I provided as an illustration for (it’s just an example)

On top you have 8 cams inputs > these are used with the SetDynamicInput1 function
Below are the CC controls > these use DynamicInput1 as the input number

Step one
- press any CAM Input, 3 for example > ?function=SetDynamicInput1&Value=3 (or GUID)
- now DynamicInput1 = Input 3 GUID. I know it and vMix knows it

Step two
- all the CC widgets are set to use DynamicInput1 as a target (instead of a pre-determined input number)
- if I move the Hue slider, it sends ?function=SetCCHue&Input=DynamicInput1&Value=0.36
- vMix gets the request and knows that DynamicInput1 is Input 3, so Hue for Input 3 is adjusted

That’s it!

Now if I select Cam5 input on top, DynamicInput1 will become Input 5 and any of the CC controls will trigger the appropriate CC command for Input 5 in vMix. And so on…

This illustrates how the DynamicInput variable works

For SetDynamicFunction/DynamicFunction, it’s the same principle but for Functions, not Inputs.

A simple use case would be when a single button can send different commands. This is quite what I illustrated in my second post in the thread for Transitions (I could have used an AUTO button too but with my principle it’s useless)

So we have a Transition Selector on the right side, this is Step 1 (using for example DynamicFunction3)
- by clicking any transition button, it sets the Function variable. If I click “Slide” it sends: ?Function=SetDynamicFunction3&Value=Slide
I know now that DynamicFunction3 = Slide. vMix knows it too. It’s set.

Step 2
- The Program row uses DynamicFunction3 as the command function for all buttons with regular input numbers
- If I switch to CAM4, it sends to vMix > ?function=DynamicFunction3&Input=4
- vMix gets the request, it knows that DynamicFunction3 is set for Slide so it slides Input4 to PGM

Step3
- Now I click CUT in the Transition Selector, DynamicTransition3 becomes CUT
- If I press CAM1, vMix will CUT to CAM1
And so on…

You see it’s real simple !

richardgatarski  
#20 Posted : Friday, October 19, 2018 6:44:59 PM(UTC)
richardgatarski

Rank: Advanced Member

Groups: Registered
Joined: 2/18/2014(UTC)
Posts: 1,811
Location: Stockholm

Thanks: 137 times
Was thanked: 292 time(s) in 246 post(s)
Quote:
If I'm thinking right, I believe we need 3 types of variables/dynamic entries in vMix:
- Input Variables (DynamicInput1-5)
- Function Variables (DynamicFunction1-5)
- Numeric Variables (DynamicValue1-5)

+1
Exellent idea and FR!
thanks 1 user thanked richardgatarski for this useful post.
DWAM on 5/24/2020(UTC)
Users browsing this topic
4 Pages123>»
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.