logo

Live Production Software Forums


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

Notification

Icon
Error

3 Pages<123>
Options
Go to last post Go to first unread
DWAM  
#21 Posted : Friday, October 19, 2018 6:41:24 PM(UTC)
DWAM

Rank: Advanced Member

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

Thanks: 145 times
Was thanked: 565 time(s) in 446 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  
#22 Posted : Friday, October 19, 2018 6:44:59 PM(UTC)
richardgatarski

Rank: Advanced Member

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

Thanks: 105 times
Was thanked: 193 time(s) in 161 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!
StepBackInTime_TV  
#23 Posted : Friday, October 19, 2018 8:01:27 PM(UTC)
StepBackInTime_TV

Rank: Advanced Member

Groups: Registered
Joined: 4/22/2016(UTC)
Posts: 73
Location: UK

Thanks: 3 times
Was thanked: 10 time(s) in 8 post(s)
+1
r@wisla  
#24 Posted : Friday, October 19, 2018 10:16:45 PM(UTC)
r@wisla

Rank: Advanced Member

Groups: Registered
Joined: 8/5/2013(UTC)
Posts: 278
Man
Location: Poland

Thanks: 28 times
Was thanked: 40 time(s) in 37 post(s)
+1
BETech  
#25 Posted : Saturday, October 20, 2018 2:55:37 AM(UTC)
BETech

Rank: Advanced Member

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

Thanks: 51 times
Was thanked: 83 time(s) in 57 post(s)
Guillaume. Could you compose a graphical representation of GUI interface for such features, and an overview of how the User may interact to set and use those variables with the Dynamic Inputs/Features/Values.

A workflow diagram perhaps. Clearly you can see this in your mind more accurately, rather than many of us trying to second guess your intentions.

It would be very helpful and appreciated.
DWAM  
#26 Posted : Saturday, October 20, 2018 4:01:18 AM(UTC)
DWAM

Rank: Advanced Member

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

Thanks: 145 times
Was thanked: 565 time(s) in 446 post(s)
I will try to, Ross... ok

Basically, in vMix, there should be a few more options :

- in the command list/dropdowns (anywhere where the command list is populated > shortcuts, triggers)
> SetDynamicInput1
> SetDynamicInput2
> SetDynamicInput3
> SetDynamicInput4
> SetDynamicInput5
> SetDynamicFunction1
> SetDynamicFunction2
> SetDynamicFunction3
> SetDynamicFunction4
> SetDynamicFunction5
> SetDynamicValue1
> SetDynamicValue2
> SetDynamicValue3
> SetDynamicValue4
> SetDynamicValue5

--->> maybe 5 entries for SetDynamicInputs, only 3 for SetDynamicFunction and 2 for SetDynamicValue would be enough... ???

- in the input list/dropdowns (anywhere where the input list is populated > shortcuts, triggers) so that we can select these user defined Dynamic Inputs
> DynamicInput1
> DynamicInput2
> DynamicInput3
> DynamicInput4
> DynamicInput5

- in the Function list/dropdowns (anywhere where the function list is populated > shortcuts, triggers) so that we can select these user defined Dynamic Functions
> DynamicFunction1
> DynamicFunction2
> DynamicFunction3
> DynamicFunction4
> DynamicFunction5

Regarding DynamicValues, I believe we just need a special syntax when we want to use them in fields where we can indicate numerical values for functions (like indexes or durations)
Something like [!DynamicValue1!] for instance.
For example, if I want to create a "dynamic shortcut" to send input1 as an overlay to a multiview, I need to write something like "3,1" in the Value field of the command.
Here we would write "[!DynamicValue1!],1" instead. Potentially it could even be "[!DynamicValue1!],[!DynamicInput1!]" if both the input # and the overlay # were dynamic...

The special syntax must be determined by Martin accordindly to his development framework constraints. So I can't really say... What I call a "special syntax" is like what we use to define times or durations when we use a clock or a countdown for example. There is a "code syntax" to use...

That's it for the vMix GUI. I think...

After that, obviously, the API must also reflect or report the Dynamic entries in the XML tree. Something like (in bold) :

Quote:

<vmix>
<version>21.0.0.56</version>
<edition>Pro</edition>
<inputs>
<input key="46779903-9125-4e12-b9c7-7740fe12b2bd" number="1" type="Blank" title="Blank" state="Paused" position="0" duration="0" loop="False">Blank</input>
<input key="9eb7da99-55b2-4731-ae01-8fffd712b605" number="2" type="Blank" title="Blank" state="Paused" position="0" duration="0" loop="False">Blank</input>
</inputs>
<overlays>
<overlay number="1"/>
<overlay number="2"/>
<overlay number="3"/>
<overlay number="4"/>
<overlay number="5"/>
<overlay number="6"/>
</overlays>
<preview>2</preview>
<active>1</active>

<dynamicinput1>1</dynamicinput1>
<dynamicinput2>12</dynamicinput2>
<dynamicinput3>6</dynamicinput3>
<dynamicinput4></dynamicinput4>
<dynamicinput5></dynamicinput5>

<dynamicfunction1>Fade</dynamicfunction1>
<dynamicfunction2>SetMultiViewOverlay</dynamicfunction2>
<dynamicfunction3></dynamicfunction3>

<dynamicvalue1>1</dynamicvalue1>
<dynamicvalue2>3000</dynamicvalue2>



<fadeToBlack>False</fadeToBlack>
<transitions>
<transition number="1" effect="Fade" duration="500"/>
<transition number="2" effect="Merge" duration="1000"/>
<transition number="3" effect="CubeZoom" duration="500"/>
<transition number="4" effect="Stinger1" duration="1000"/>
</transitions>
<recording>False</recording>
<external>False</external>
<streaming>False</streaming>
<playList>False</playList>
<multiCorder>False</multiCorder>
<fullscreen>False</fullscreen>
<audio>
<master volume="100" muted="False" meterF1="0" meterF2="0" headphonesVolume="100"/>
<busA volume="100" muted="False" meterF1="0" meterF2="0"/>
<busB volume="100" muted="False" meterF1="0" meterF2="0"/>
</audio>
</vmix>



And finally it would obviously be great to have activators for these Dynamic Entries...

Not sure it's graphical enough but at least it's written... I might have omitted something, I guess not... The only point I cannot visualize clearly in my head is this "special code or syntax" to use for DynamicValues, point which might be a little bit more problematic than what's required for DynamicInput1-5 and DynamicFunction1-5. Maybe not. Let's hope not...

Guillaume
stigaard  
#27 Posted : Saturday, October 20, 2018 9:16:01 PM(UTC)
stigaard

Rank: Advanced Member

Groups: Registered
Joined: 5/20/2015(UTC)
Posts: 320
Man
Location: Copenhagen, Denmark

Thanks: 219 times
Was thanked: 55 time(s) in 44 post(s)
+1 !

After reading the thread thoroughly a couple of times, I think I understand what Guillaume is asking for.
I have actually had the same thoughts as Guillaume.
I see the need for a "variables"-bank, which can be set on the fly. This is basically just a set of variables that each references to an input.

I had the need of this when I created a small MIDI application for motorized faders controlling audio for the inputs in vMix. I had 8 faders, and thereby able to control input 1 to 8. I wanted to use a button for previous page, and one for next page, enabling "paging" functionality. The feature that Guillaume wants, enables exactly this.

I ended up having my own set of variables that held information on the which page I was on. Can be seen demoed here: https://www.facebook.com...ideos/10216788255078632/ (perhaps you have to be a member of WOLS facebook group to see the video)

Conclusion - I find it very useful to have variable/dynamic input-references, lets say 8 or 12 variables. I though of naming them A, B, and so on, being easily able to distinguish them from the regular input numbers.
This enabled the option in the API to use ?Input=A (dynamic reference A).
As Guillaume stated, there of course need to be a shortcut to set these variables.
E.g. ?Function=SetDynamicInputA&Input=1 (or &Value=1 for selecting input 1 as dyn ref A).
Kelvin  
#28 Posted : Sunday, October 21, 2018 12:07:49 AM(UTC)
Kelvin

Rank: Advanced Member

Groups: Registered
Joined: 2/9/2013(UTC)
Posts: 219
Location: Katy, Texas

Was thanked: 35 time(s) in 35 post(s)
+1
DWAM  
#29 Posted : Monday, October 22, 2018 12:09:17 AM(UTC)
DWAM

Rank: Advanced Member

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

Thanks: 145 times
Was thanked: 565 time(s) in 446 post(s)
@Jens
Quote:
I though of naming them A, B

I always prefer to name variables with a number, so that it easily allows, in special circumstances, to add extra layer of "dynamic" logic. For example, with your own use case, and using a software that supports variables and operators:

Set bank = 0
SetDynamicInput<%row + 1%> = SetDynamicInput1
SetDynamicInput<%row + 2%> = SetDynamicInput2
...

Set bank = 8
SetDynamicInput<%row + 1%> = SetDynamicInput9
SetDynamicInput<%row + 2%> = SetDynamicInput10
...

Set bank = 16
SetDynamicInput<%row + 1%> = SetDynamicInput17
SetDynamicInput<%row + 2%> = SetDynamicInput18
...

It's a basic non functional example, but it would be impossible with letters. Such a way of coding is even more powerful as you would only need to update the "bank" variable.

Guillaume
liveteko  
#30 Posted : Monday, October 22, 2018 10:36:18 PM(UTC)
liveteko

Rank: Newbie

Groups: Registered
Joined: 10/22/2018(UTC)
Posts: 4
Sweden

Thanks: 2 times
Was thanked: 1 time(s) in 1 post(s)
+1
Cormac  
#31 Posted : Monday, October 22, 2018 11:47:56 PM(UTC)
Cormac

Rank: Advanced Member

Groups: Registered
Joined: 3/21/2016(UTC)
Posts: 70
Location: Belfast

Thanks: 9 times
Was thanked: 1 time(s) in 1 post(s)
Great work Dwam . I would love to see this it would make Color correction so easy and at your fingertips . +1
Cormac
spencerm24  
#32 Posted : Tuesday, October 23, 2018 3:11:36 AM(UTC)
spencerm24

Rank: Advanced Member

Groups: Registered
Joined: 9/23/2017(UTC)
Posts: 202
Location: Toronto

Thanks: 13 times
Was thanked: 7 time(s) in 6 post(s)
+1 Useful for all kinds of things including PTZ control, have one set of controls for multiple cameras.
DWAM  
#33 Posted : Tuesday, October 23, 2018 6:37:24 PM(UTC)
DWAM

Rank: Advanced Member

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

Thanks: 145 times
Was thanked: 565 time(s) in 446 post(s)
@Spencerm24 & Cormac

Yeah, absolutely! I truly believe it could be very useful for all kind of things by saving up a lot of shortcuts (thus space or buttons) and bringing a lot more flexibility for controlling vMix.
Streamverse.tv  
#34 Posted : Tuesday, October 23, 2018 10:43:28 PM(UTC)
Streamverse.tv

Rank: Advanced Member

Groups: Registered
Joined: 4/2/2016(UTC)
Posts: 31
Location: Austria

Thanks: 8 times
Was thanked: 1 time(s) in 1 post(s)
+1
Vuurmannetje  
#35 Posted : Wednesday, October 24, 2018 2:39:57 AM(UTC)
Vuurmannetje

Rank: Advanced Member

Groups: Registered
Joined: 5/14/2018(UTC)
Posts: 76
Location: Netherlands

Thanks: 2 times
Was thanked: 9 time(s) in 6 post(s)
I don't know if it's been mentioned yet, but there is currently a sort of workaround as well I just found out.

Its the move input shortcut. Depends a bit on your preset, but basically you can move an input to a specific input number. So what I'm doing for my media deck:

There's 4 media lists here
Media 1
Media 2
Media 3
Media 4

I can make controls for Input 17 with link to input number on, and then use the move input shortcut to move any of the 4 media decks into input 17. Any controls specific to the lists (I've got 4x select, up down pause play etc) I can turn off link to input number for those.

So assuming you don't have them going to outputs directly, this is a good temporary solution without needing API (and lets be honest, programming shortcuts is a lot easier then programming API if you're not into programming)

DWAM  
#36 Posted : Wednesday, October 24, 2018 5:13:40 PM(UTC)
DWAM

Rank: Advanced Member

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

Thanks: 145 times
Was thanked: 565 time(s) in 446 post(s)
@Vuurmannetje

Quote:
Its the move input shortcut


Yes, I also use this solution extensively and a few more workarounds.
However it only partially covers this feature request - when it comes to inputs - but not at all for functions or values.

Quote:
lets be honest, programming shortcuts is a lot easier then programming API if you're not into programming


This Feature Request is named "Dynamic Inputs & Functions for Shortcuts" so that it could be used very easily with Shortcuts.
However it would also be possible to use the API for those who prefer or need it.

Guillaume
Vuurmannetje  
#37 Posted : Wednesday, October 24, 2018 9:02:37 PM(UTC)
Vuurmannetje

Rank: Advanced Member

Groups: Registered
Joined: 5/14/2018(UTC)
Posts: 76
Location: Netherlands

Thanks: 2 times
Was thanked: 9 time(s) in 6 post(s)
Originally Posted by: DWAM Go to Quoted Post
@Vuurmannetje

Quote:
Its the move input shortcut


Yes, I also use this solution extensively and a few more workarounds.
However it only partially covers this feature request - when it comes to inputs - but not at all for functions or values.

Quote:
lets be honest, programming shortcuts is a lot easier then programming API if you're not into programming


This Feature Request is named "Dynamic Inputs & Functions for Shortcuts" so that it could be used very easily with Shortcuts.
However it would also be possible to use the API for those who prefer or need it.

Guillaume


Sorry I didn't write the API comment clearly haha. It was meant in support of your suggestion, because ofcourse yours is for a shortcut.
At least in terms of difficulty I don't think this function should be that hard to implement, and help people with controllers tremendously.

If I didn't +1 on my last post, count this as one.
Ario  
#38 Posted : Sunday, October 28, 2018 10:34:05 PM(UTC)
Ario

Rank: Advanced Member

Groups: Registered
Joined: 2/2/2015(UTC)
Posts: 61
Location: NL

Thanks: 73 times
Was thanked: 10 time(s) in 8 post(s)
+1
NHT  
#39 Posted : Friday, December 7, 2018 10:31:46 PM(UTC)
NHT

Rank: Advanced Member

Groups: Registered
Joined: 4/18/2016(UTC)
Posts: 176
Location: United Kingdom

Thanks: 25 times
Was thanked: 22 time(s) in 19 post(s)
+1
Quinton  
#40 Posted : Saturday, December 8, 2018 10:40:17 PM(UTC)
Quinton

Rank: Newbie

Groups: Registered
Joined: 1/13/2018(UTC)
Posts: 4

+1 from me also.
Didn't realise I needed something like this until today :)
Users browsing this topic
3 Pages<123>
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.