Live Production Software Forums

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



Go to last post Go to first unread
#1 Posted : Saturday, November 20, 2021 3:49:03 PM(UTC)

Rank: Newbie

Groups: Registered
Joined: 11/20/2021(UTC)
Posts: 2

Thanks: 2 times
Hi folks,

Relatively new to vMix and looking for some advice here. We'll be doing a production that will consist of live talk (using vMix Call) and prerecorded videos. I've got a multiview set up with all 7 of the vMix Call callers plus one local camera, but I'd love to be able to cut to individual callers without the other callers and my own mic being muted. I know I can disable automatic audio mixing, but I'd love to not have to mute everyone again when we go to a video.

I've set up Bus A as the master audio at a lower level, which feeds into Bus B which is our "green room" audio for us to talk while a video is playing. Is there a simple way to be able to cut from the multiview to individual cameras without muting the other callers, but which will still mute us all to the master (but not bus B) when we go to a video? I hope this makes sense.

Thanks in advance!
Poppa Monsoon  
#2 Posted : Saturday, November 20, 2021 7:40:06 PM(UTC)
Poppa Monsoon

Rank: Member

Groups: Registered
Joined: 7/14/2020(UTC)
Posts: 26
United Kingdom
Location: Warwickshire

Thanks: 1 times
Was thanked: 1 time(s) in 1 post(s)
Hi, James

There may be a couple of potential workarounds that might fit. Both of which I currently use across shows.

You could look at purchasing an Elgato Streamdeck controlller running Bitfocus Companion software which when connected up to vMix offers a vast range of controls, such as the ability to mute individual channels that you need here, at the touch of a button with feedback to show status

You could also look into the shortcut and scripting side of vMix itself which allows you to create or automate multiple functions to be either manually triggered or even automatically based on a situation or event - for example in this one, if all your videos were in a list, you could have it so it could switch off all mics to particular busses anytime the VT list is live and re-route them back to those busses when taken off live. (There are obviously issues here should you have a VT where for example, someone wants to talk over it, so as is always the caee, and solution should be approached with all potential outcomes in mind)

I would personally look at the Elgato Streamdecl option, coupled with Bitfocus Companion to run on it - to start with you would not even need a physical controller as you can run a virtual one on your screen

Finally, I would recommend downloading and running the 'vmix audio matrix app' (link below) which gives a much clearer view of audio routing as and then you go down the multiple busses approach.


Hope this helps a bit, but if you need anything more specific, do feel free to message me directly.

Best regards

thanks 1 user thanked Poppa Monsoon for this useful post.
jamesfdcampbell on 11/23/2021(UTC)
Chris Daum  
#3 Posted : Sunday, November 21, 2021 10:18:29 AM(UTC)
Chris Daum

Rank: Advanced Member

Groups: Registered
Joined: 11/20/2020(UTC)
Posts: 46

Thanks: 12 times
Was thanked: 3 time(s) in 3 post(s)
you may use a "Talk Back", and a "Show" script for each caller

first define the audio busses (example)
A - Show output
Solo - Talk Back bus (single Caller)
B - conference bus
C - Show listen Bus (that´s where the master audio feed belongs to)

situation all callers are on Talk Back and Talking to you and one another (what a mess...)
Call 1 ... x AudioSource Bus B, AudioBusOn Bus B

situation one of the callers(1) enters the show
Call 1 AudioSource Bus C, AudioOn A

Would look like:

Api.Function("AudioBusOn", Input:=1, Value = "A")   '//or Api.Function("AudioBusOn",1,"A")
Api.Function("AudioBusOff", Input:=1, Value = "B")
Api.Function("VideoCallAudioSource", Input:=1, Value = "BusC")

or you could define some arrays and work with for loops

dim func() as String = {"AudioBusOn","AudioBusOff","VideoCallAudioSource"}
dim paramShow() as String = {"A","B","BusC"}
for i as Integer = 0 to 2 '3 Values in array = 3 steps
Api.Function(func(i),1, paramShow(i)

disadvantage of both methods is all variables have to be defined in each script...
But once you have the script(s) you can modify them to your needs...
thanks 1 user thanked Chris Daum for this useful post.
jamesfdcampbell on 11/23/2021(UTC)
#4 Posted : Tuesday, November 23, 2021 5:23:42 AM(UTC)

Rank: Newbie

Groups: Registered
Joined: 11/20/2021(UTC)
Posts: 2

Thanks: 2 times
Thanks folks! I've already got a Stream Deck so I'll start with Bitfocus Companion and go from there, it sounds like it may work well!
#5 Posted : Tuesday, November 23, 2021 11:31:59 PM(UTC)

Rank: Advanced Member

Groups: Registered
Joined: 2/23/2019(UTC)
Posts: 68
United Kingdom

Thanks: 8 times
Was thanked: 12 time(s) in 11 post(s)
Could you send the vMix calls to bus A for the show and Bus B for green room. Then, when playing a video, you just remove bus A from Master (could be done by triggers on the video clips).

Apologies if I'm missing how you work now and what you want to achieve.
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.