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
michaelthomasbrennan  
#1 Posted : 7 days ago
michaelthomasbrennan

Rank: Newbie

Groups: Registered
Joined: 3/10/2025(UTC)
Posts: 2
Man
United Kingdom
Location: Loughborough

Would it be worth creating a vMix Automation forum for those of us working specifically with vMix and automation rundown/production software. I'm working with Tinkerlist Cuez Rundowm and Cuez Automator and there are very specific issues that arise using vMix and Cuez together.

Plus integration with Dante and Stream Deck

Would anyone else be interested or would this be a forum where I'd be talking to meyself :-)

Michael
TJPerkins  
#2 Posted : 5 days ago
TJPerkins

Rank: Newbie

Groups: Registered
Joined: 2/10/2024(UTC)
Posts: 8
Man
Canada

Count me in! I can repost the scripting I've pieced together from everyone's input...
michaelthomasbrennan  
#3 Posted : 2 days ago
michaelthomasbrennan

Rank: Newbie

Groups: Registered
Joined: 3/10/2025(UTC)
Posts: 2
Man
United Kingdom
Location: Loughborough

Great - I'm very busy this week - but have time next week to document what Ive done here at the uni with configuring vMix and Cuez automator - I have loads more to do - dante - incoming calls etc...

It would be good to known what you are doing in more detail.

It would be good to to hear back from you
TJPerkins  
#4 Posted : 2 days ago
TJPerkins

Rank: Newbie

Groups: Registered
Joined: 2/10/2024(UTC)
Posts: 8
Man
Canada

My latest project is to automate a radio podcast…three hosts in the studio, each host has their own camera and mic inputs. I’ve set it up so that vMix automatically cuts between the cameras depending on who is speaking, with a built-in delay in case two people talk at once. I also want to add a lower third title with their name and Instagram handle from time to time, but I’ll save that for another post.

It’s worth noting that I haven’t been able to fully test it out yet (I’m in Vancouver and the show is in Toronto), but I’m hoping to at least have everything set up this week so I can give it a good workout. I will say that initial testing has been quite successful!

Here is the setup:
• 3 camera inputs, labeled CAM 1, CAM 2 and CAM 3
• 3 mics (labels aren’t important, but they’re MIC 1, 2 and 3)
• 3 audio bus inputs, labeled BUS A, BUS B and BUS C

The buses are how I turn the AutoTake on and off…sending the mics to the three Buses (Mic 1 to Bus A, etc) turns it on. This is so I can halt the AutoTake while adding a lower-third title.

Here is the scripting for AutoTake:
Code:
Do While True

dim BusALevel As String
dim BusBLevel As String
dim BusCLevel As String

dim VmixXML as new system.xml.xmldocument

VmixXML.loadxml(API.XML)

dim BusANode As XmlNode = VmixXML.selectSingleNode("/vmix/inputs/input[@title=""BUS A""]")
dim BusBNode As XmlNode = VmixXML.selectSingleNode("/vmix/inputs/input[@title=""BUS B""]")
dim BusCNode As XmlNode = VmixXML.selectSingleNode("/vmix/inputs/input[@title=""BUS C""]")

BusALevel = (VmixXML.SelectSingleNode("/vmix/audio/busA/@meterF1").Value)
if BusALevel > "0.05"
  API.Function("CutDirect",Input:="CAM 1")
sleep(5000)
End if

BusBLevel = (VmixXML.SelectSingleNode("/vmix/audio/busB/@meterF1").Value)
if BusBLevel > "0.05"
  API.Function("CutDirect",Input:="CAM 2")
sleep(5000)
End if

BusCLevel = (VmixXML.SelectSingleNode("/vmix/audio/busC/@meterF1").Value)
if BusCLevel > "0.05"
  API.Function("CutDirect",Input:="CAM 3")
sleep(5000)
End if
Loop


It’s worth noting that I also cranked the gain of the three busses all the way up, in case someone speaks quietly.

Many thanks go out to everyone who has helped me (voluntarily or otherwise) nail down the VB scripting!
TJPerkins  
#5 Posted : a day ago
TJPerkins

Rank: Newbie

Groups: Registered
Joined: 2/10/2024(UTC)
Posts: 8
Man
Canada

And as promised, here is how I handle the name titles:

• There is one title input with two lines of text for name and Instagram handle
• Text fields are assigned to a data source which uses a simple .csv file
• Depending on which camera is on Program, the script will:
o Pause the AutoTake (by turning off audio sent to Bus A, B and C)
o Change the Data Source to the correct host name/handle
o Add the Title for 4 seconds
o Take out the Title and wait another second
o Resume AutoTake

Using a Stream Deck anyone (most likely the main host or a producer) can hit the same button while anyone is talking and the correct name title will appear for that host.

Here is the code:

Code:
dim xml as string = API.XML()
dim InputActiveName as string = ""
dim activeinput as string = ""

dim x as new system.xml.xmldocument
x.loadxml(xml)

activeinput = (x.SelectSingleNode("//active").InnerText)
InputActiveName = (x.SelectSingleNode("//input[@number='"& activeinput &"']/@title").Value)

if InputActiveName = "CAM 1"
   API.Function("AudioBusOff",Value:="A",Input:="CAM 1")
   API.Function("AudioBusOff",Value:="B",Input:="CAM 2")
   API.Function("AudioBusOff",Value:="C",Input:="CAM 3")
   Sleep (100)
   API.Function("DataSourceSelectRow",Value:="CSV,Sheet1,2")
   API.Function("OverlayInput1In",Input:="4")
   Sleep (4000)
   API.Function("OverlayInput1Out")
   Sleep (1000)
   API.Function("AudioBusOn",Value:="A",Input:="CAM 1")
   API.Function("AudioBusOn",Value:="B",Input:="CAM 2")
   API.Function("AudioBusOn",Value:="C",Input:="CAM 3")

elseif InputActiveName = "CAM 2"
   API.Function("AudioBusOff",Value:="A",Input:="CAM 1")
   API.Function("AudioBusOff",Value:="B",Input:="CAM 2")
   API.Function("AudioBusOff",Value:="C",Input:="CAM 3")
   Sleep (100)
   API.Function("DataSourceSelectRow",Value:="CSV,Sheet1,1")
   API.Function("OverlayInput1In",Input:="4")
   Sleep (4000)
   API.Function("OverlayInput1Out")
   Sleep (1000)
   API.Function("AudioBusOn",Value:="A",Input:="CAM 1")
   API.Function("AudioBusOn",Value:="B",Input:="CAM 2")
   API.Function("AudioBusOn",Value:="C",Input:="CAM 3")

elseif InputActiveName = "CAM 3"
   API.Function("AudioBusOff",Value:="A",Input:="CAM 1")
   API.Function("AudioBusOff",Value:="B",Input:="CAM 2")
   API.Function("AudioBusOff",Value:="C",Input:="CAM 3")
   Sleep (100)
   API.Function("DataSourceSelectRow",Value:="CSV,Sheet1,0")
   API.Function("OverlayInput1In",Input:="4")
   Sleep (4000)
   API.Function("OverlayInput1Out")
   Sleep (1000)
   API.Function("AudioBusOn",Value:="A",Input:="CAM 1")
   API.Function("AudioBusOn",Value:="B",Input:="CAM 2")
   API.Function("AudioBusOn",Value:="C",Input:="CAM 3")

end if
Roy Sinclair  
#6 Posted : 32 minutes ago
Roy Sinclair

Rank: Advanced Member

Groups: Registered
Joined: 11/23/2020(UTC)
Posts: 196
United States
Location: Wichita

Thanks: 11 times
Was thanked: 26 time(s) in 22 post(s)
Originally Posted by: TJPerkins Go to Quoted Post
...

Here is the scripting for AutoTake:
Code:
Do While True
...
dim BusANode As XmlNode = VmixXML.selectSingleNode("/vmix/inputs/input[@title=""BUS A""]")
dim BusBNode As XmlNode = VmixXML.selectSingleNode("/vmix/inputs/input[@title=""BUS B""]")
dim BusCNode As XmlNode = VmixXML.selectSingleNode("/vmix/inputs/input[@title=""BUS C""]")
...



...



Why are these three lines in that script? You do not use any of the three variables created by those lines anywhere else in the script.
TJPerkins  
#7 Posted : 9 minutes ago
TJPerkins

Rank: Newbie

Groups: Registered
Joined: 2/10/2024(UTC)
Posts: 8
Man
Canada

Originally Posted by: Roy Sinclair Go to Quoted Post
Why are these three lines in that script? You do not use any of the three variables created by those lines anywhere else in the script.


That's a very good question...it's actually a bit of a Frankenscript, derived from previous experiments, so for all I know they're not needed.

HOWEVER...

I tried taking them out, and it somehow punched up another camera when no one was talking on it, even when AutoTake was temporarily suspended while I added a name title.

So for now I'm keeping those three lines in.


Here's another thought...is there a way to add time to the script, so that someone needs to speak for, say, a minimum of 2 seconds before it bothers cutting to that camera? I'm thinking it would be nice to "filter out" someone just saying a word or two (Yep, Uh huh, etc).
Users browsing this topic
Guest, nikosman88
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.