Tom,
I have spent quite some time figuring this out. vMix is extremely flexible, so there are of course a great number of options to route and delay audio.
One of my main needs is to actualle be able to see the Main level meter, and listen to the audio in vMix before starting the streamer and/or recorder. Here is how I currently do it. There is one major drawback with that setup, which I will comment below.
I connect my External mixer to the PC via USB.
I add an Audio Input using the External mixer's "Microphone/Line USB" device. Make sure it's Audio is on (green button), and only goes to Main (not bus A or B).
(see also about "
Behringer USB noise")
To satisfy my main need, in Settings/Audio "Recording audio" is set to "vMix audio".
For Settings/Audio output:
- Master output: None
- Headphones: Speakers (or whatever goes to the PC's analog headphone out, allows me to listen in vMix)
- A: None
- B: None
I delay the Recording (100 ms) and External 40 ms, for streaming). Of course you have to adjust your delays to match your hardware.
This way I can mix external microphones on the External mixer and listen in vMix to what is actually recorder. Compared to listening in the mixer I get a slight delay in the headphones, which is OK as long as the producer does not have to speak in a mike, then it becomes annoying. In that case, I listen in the External mixer instead.
The main drawback with this is that Audio from video inputs and live feeds has to be mixed inside vMix. This works pretty well.
I have tried routing (video) Inputs audio out to the External mixer via an USB speaker device in the following way.
- Settings/Audio output set Bus A: USB speaker
- Inputs with Audio: Audio on, deselecting Master and selecting bus A
Unfortunately that Audio will not end up in sync, due to the delay set for recording/streaming.
In my view, the only way this can be compensated for is if vMix had functionality for delaying the video in the Players.
Not sure if this helps, but maybe you get some ideas.