logo

Live Production Software Forums


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

Notification

Icon
Error

Options
Go to last post Go to first unread
clafarge  
#1 Posted : Friday, April 17, 2020 10:45:18 AM(UTC)
clafarge

Rank: Advanced Member

Groups: Registered
Joined: 5/27/2017(UTC)
Posts: 77
Man
United States
Location: Greater St Louis Area

Thanks: 64 times
Was thanked: 20 time(s) in 13 post(s)
I'm in the odd possession of being a programmer who is faced with scripting in vMix, and hitting a brick wall in assessing the scope of variables and flexibility of the environment.

My first and most important question is: do I have access to variables of GLOBAL scope? When I press a button on my controller, can it execute a script to populate a list of global scope with input info for a given number of inputs? is there a single example of code that I can see that sets and evaluates global variables?

This was intended for DWAM (Guillaume), but his inbox is over-limit ;). Let's not kill the guy with questions, shall we?!?

My thought is that I could create a pair of MultiViews that can be dynamically adapted to:
  • any number of inputs between 1 and 10/12 (assuming inputs 1 through 8/10 are participants between either SRT or vMixCall).
  • a given input could be designated as "Host",
  • a given input or none (also read as "logo" or "hashtag") can be "Guest",
  • and the remainders can be "Panel" inputs, to be arranged using some simple math to be positioned along the bottom of the screen.
  • MultiView A would be the focus for the majority of the time.
  • MultiView B would be the transitional input in between changes.
  • When Guest is changed from [none] or [current guest] to a new guest input (likely using midi input):
    • Multiview B would be updated to move the correct input into the "guest" position, and
    • an assigned "placeholder" (likely a logo) would be moved into its location,
    • MERGE transition from the current input to MultiView B
    • make the exact same changes to MultiView A
    • CUT to MultiView A (with no noticeable change)

This solves a problem where I currently use 28 x-keys and 28 Inputs (21 Multiviews and 7 vMixCall inputs) to control for only 10 (2 multiviews and 8 vMixCall inputs) variations of participants: 5, 6 and 7-person groups.

Does this make sense? Am I barking up the wrong tree?

Many thanks for your thoughts.

Best,

Chad
doggy  
#2 Posted : Friday, April 17, 2020 5:03:49 PM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,057
Belgium
Location: Belgium

Thanks: 283 times
Was thanked: 916 time(s) in 755 post(s)
The XML API info is your best bet to use
dmwkr  
#3 Posted : Friday, April 17, 2020 7:26:55 PM(UTC)
dmwkr

Rank: Advanced Member

Groups: Registered
Joined: 2/23/2019(UTC)
Posts: 509

Thanks: 62 times
Was thanked: 118 time(s) in 107 post(s)
I've learned a lot from doggy and especially his Scripting for dummies thread (Thanks again!), and I think I also picked up from him that you can pull text from a title and use it for other purposes. I can't get my head around the XML API yet, so here is another idea (disclaimer - I'm not a programmer and will see pitfalls only when I stand right before them): You could use a title input with 7 fields (guest, panel1, panel2... panel6) as a "variable container" and put the corresponding input numbers of your call inputs into the fields, and additionally create a "short-time virtual input".

- Multiview A is live
- Update the guest and panel fields in the title via one of seven shortcuts
- Start Script:
* create virtual input of Multiview A
* cut to virtual input
* get input numbers for guest and panels from title input
* set them to multiview overlays
* merge to Multiview A
* close virtual input
doggy  
#4 Posted : Friday, April 17, 2020 8:18:39 PM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,057
Belgium
Location: Belgium

Thanks: 283 times
Was thanked: 916 time(s) in 755 post(s)
Is what i do lot. Using hidden title textblocks to hold "variables" especially from datasources but sometimes the api xml.
DWAM  
#5 Posted : Saturday, October 3, 2020 3:38:54 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)
Sorry Chad, I just found your post a few minutes ago.
Not sure you still need help for this one, anyway with Doggy and dmwkr, you were in good hands...

Your post shows how important Dynamic Inputs will be in vMix 24. Can't wait it's released especially with these Covid times when we have to deal with so many vMixCalls inputs, multiviews layouts and countless shortcuts to produce virtual shows. I hope Martin will deliver soon, vMix 24 would be helpful right now ! My Akai Mini cannot cope with the situation any longer and even with vMix UTC and Panel Builder at the rescue, things are getting way to complex to handle, we need an easy way to reduce shortcuts programming and project operating !!!

Bien à toi
Guillaume
clafarge  
#6 Posted : Saturday, October 3, 2020 7:10:28 AM(UTC)
clafarge

Rank: Advanced Member

Groups: Registered
Joined: 5/27/2017(UTC)
Posts: 77
Man
United States
Location: Greater St Louis Area

Thanks: 64 times
Was thanked: 20 time(s) in 13 post(s)
No worries, DWAM! I've tabled the project to pay attention to day-job matters, but have been able to use text input fields to store variables that I care about for other needs.

I can't wait for Version 24... and Dynamic Inputs will be very interesting when released... I'm withholding excitement for when I can see their function "in anger".

I maintain that we need a reliable and efficient method to GET in addition to SET (which is already quite simple for existing elements, but not for our own objects/references). I know I'm in good company in this forum with you, and that we've all experienced times when it'd be so nice to simply code the way we code in life and not have to build functionality from bubblegum and toothpicks :).

Best,

Chad
tomGix  
#7 Posted : Friday, March 25, 2022 7:34:23 AM(UTC)
tomGix

Rank: Newbie

Groups: Registered
Joined: 1/16/2021(UTC)
Posts: 6
United States
Location: Dublin

Thanks: 1 times
Was thanked: 1 time(s) in 1 post(s)
Originally Posted by: doggy Go to Quoted Post
Is what i do lot. Using hidden title textblocks to hold "variables" especially from datasources but sometimes the api xml.


Hi Doggy, Are you somehow posting text into data sources or the API XML using scripting in vMix.

I am trying to do something relatively simple, allowing the operator to intentionally pan/zoom the live camera vs the one in preview using the same keys. But I need to preserve a state change, ideally through a global variable.

Thanks!
doggy  
#8 Posted : Friday, March 25, 2022 8:54:33 AM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,057
Belgium
Location: Belgium

Thanks: 283 times
Was thanked: 916 time(s) in 755 post(s)
Originally Posted by: tomGix Go to Quoted Post
Hi Doggy, Are you somehow posting text into data sources or the API XML using scripting in vMix.


No

Quote:
I am trying to do something relatively simple, allowing the operator to intentionally pan/zoom the live camera vs the one in preview using the same keys. But I need to preserve a state change, ideally through a global variable.

Thanks!


Asmentioned before one can use a title textfield to hold a global variable but since v24 also a DynamicValue. check the "scripting for dummies" post
Writing values to a txt file or alike is also an option

tomGix  
#9 Posted : Friday, March 25, 2022 9:33:42 AM(UTC)
tomGix

Rank: Newbie

Groups: Registered
Joined: 1/16/2021(UTC)
Posts: 6
United States
Location: Dublin

Thanks: 1 times
Was thanked: 1 time(s) in 1 post(s)
Thanks, I feel stupid now but I have been away from programming and even scripting in vMix for a while.

The answer was right there and I missed it.

Tom
Users browsing this topic
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.