Separate audio channels in OBS recordings using VB-AUDIO cables and optimise VoiceMeeter to have minimal latency

Nathanial
8 min readAug 27, 2020

--

Ever wanted to output audio of an application to multiple devices without any additional latency? Looking for a solution to separate audio channels of your OBS recordings? Or maybe you just want to play royalty free music in the background of your stream whilst you rock out to your favourite tunes without getting demonetised.

This tutorial will go over the configuration of VoiceMeeter and OBS as well as other built-in windows audio management tools you might not have even known about. Bare in mind OBS is a completely optional part of this tutorial but I will include it for anyone looking to configure it with VoiceMeeter for streaming/recording.

Software required for tutorial:

  • VoiceMeeter (I use banana which is free but if you have more/less audio inputs, potato or the basic version will work fine)
  • OBS (For recording of applications/streaming)
  • VB-CABLE virtual audio cables, (I also purchased the A+B cables for more inputs)

Why would you want to do this?

Streaming has recently picked up a lot of attention due the quarantine restrictions around the world, if you wish to enter the world of streaming then having a good audio setup is one way that might help you gain followers more quickly.
Another feature you could use this setup for is creating clips on a youtube channel if you so desired. Having the ability to toggle on/off your background music, VOIP software in the edit is an essential tool that will make your edits cleaner and more professional.
Also VoiceMeeter allows you to output the same audio of an application to multiple outputs without any additional hardware!

The configuration

For the sake of making this easier to follow i’m sectioning the various configurations of each software into their own groups

VB-AUDIO cables

This is a super handy piece of software that allows you to channel the output of an audio application to a specific virtual audio device and the output will come through the input device of the same cable. This means that you can use it to separate various applications emitting audio. I use the base cable with A+B for additional configuration. You can download them here: https://www.vb-audio.com/Cable/
Once installed, all you have to do is restart and the devices should appear in your audio device manager.

Widows Audio Mixer

With the 1803 windows update, a new audio mixer was added to the windows sound configuration settings which allows you to set a specific output device for any application emitting audio

If you output the audio to an audio cable input it will redirect the sound to the output of the same cable, where you can select that cable in voicemeeter/obs and start using it in your system.
It is this time I would also recommend setting your master audio device in windows to the VoiceMeeeter Input (VB-Audio VoiceMeeter VAIO) Device. This will make any application that isn’t explicitly set to output to an audio cable output to this channel.

VoiceMeeter

Whilst it might look intimidating at first, when you look closely you will notice it’s really not that complicated. At the top right you have you master audio outputs (A1, A2 and A3). I have A1 configured to the WDM driver of my headphones and A2 to the WDM driver of my speakers.
WDM stands for Windows Driver Model and is a built in audio driver for audio devices. It is best to use WDM for the master outputs as you will see in the optimisation section of this tutorial.

I have 3 virtual audio inputs labelled “VOIP, Edge Sound and Spotify”. These each run on their own audio channels using VB-AUDIO cables. You could very well have different applications and names going to these cables but this is how I have it configured for my streams. Here you can toggle on and off A1/A2/A3 etc for the output channels of this audio stream and adjust volume etc.

OBS

The configuration of OBS gets a little more complicated but i’ll try to be as concise as possible. I am assuming you have already setup your OBS for streaming in which case this tutorial isn’t really concerned with how you have you video capture setup, as it is the audio configuration.

In Settings->Audio>Devices: Make sure your input devices as configured to the correct cable inputs you wish to use in your stream. In this case I have two additional inputs from CABLE-B Output and CABLE-A output for VOIP and Music. Also take the time to toggle the check boxes in the Output>Recording tab for how many devices you plan to use.

With your devices selected head over to the main OBS window and right click any audio device and select “Advanced Audio Properties”
Here you can select which tracks to have what inputs in the recording. I like to have track 1 set to the master output which contains all the sources. You can then assign tracks 2,3,4,5 and 6 to have their own audio devices with the check boxes on the right. This is also a good time to give a name to each of your devices in the mixer panel.

This is also a good time to rename your devices for easy identification.

Next go to Settings->Output->Audio and configure your tracks to have a name and set the bitrate of each of them to 320, (these don’t correspond with your audio devices in the previous image but correspond to the audio track label in the actual video file). You’ll want to have these match the name of your inputs in the image above.

Optimisation

This is an important section of the tutorial and will help cut back on latency introduced by using voicemeeter. The first thing you should ensure is that all your devices are using the same bitrate. You can set the Preferred Main SampleRate in the System Settings panel of voicemeeter. I am using 48Khz because it is the lowest bitrate that all my devices support. I have also toggled the Engine Mode to Swift and WDM Input Exclusive Mode to Yes. (This means that all your master outputs must be on the WDM driver to work)

Buffering

This is an important part to get right, the buffer allows an audio device to cache the data it needs to play the next part of the audio. Obviously having a larger buffer WILL increase latency so it’s important to get this as low as possible. I recommend not using any virtual/hardware inputs on the WDM driver and leave it exclusively to the outputs of A1/A2/A3 etc. I have found that a buffer of 160 does not distort the audio at all and decreases the latency to almost none. Having a lower buffer could result in audio distortions or artifacts, so if you start experiencing these then raise the buffer.

With the main SampleRate selected and the rest of the panel configured, head over to your audio devices and make sure that all the device you plan to use in voicemeeter are set to the same bitrate. This includes your master output devices such as your headphones/speakers.
If you right-click properties on the devices you will see an advanced tab, from here set the device bitrate of all of the input and output devices that you will use in voicemeeter to the same bitrate you have selected in the preferred main sample rate of voicemeeter. In this case it is 48Khz. I also used 24 bit on the devices where it was available, for the input/output cables I made sure that the bitrate matched on both devices. If your device doesn’t support 24 bit don’t worry, the bitrate is more important to have matched. If any devices you plan to use don’t support 48Khz, I would recommend lowering all your devices to the lowest bitrate they all support.

CABLE-A input, CABLE-B input and CABLE input bitrate must all be the same, in this case I am using 48Khz. Make sure you do this to both the input and output devices!

Conclusion

Once you have this audio setup configured properly, shouldn’t experience any additional latency overhead. I have tested this by firing up osu! and test playing a few maps. I have over 4000 hours in this game and I am very sensitive to audio latency which could reduce accuracy by a lot. I am glad to say that if you have configured it as I have in this tutorial you shouldn’t experience any additional latency overhead. This could be different on your computer though so if you do, try setting the master VAIO buffer to something lower than 7168. I currently have it on 2048 and it’s working great.

EqualiserAPO

The best part I love about this setup is the ease of integration with EQs such as EqualiserAPO. I am slightly deaf in my right ear and enjoy using an EQ to boost volume so it’s balanced for me. This works better in an EQ than the windows balancer because it doesn’t forget your settings when you change volume and it doesn’t turn down the volume of the other side to compensate.
To get it working with EqualiserAPO all you have to do is open the configurator.exe and select the output A1 or whatever device you want to be enabled. Restart and then everything should work. If you start experiencing any audio stuttering or clipping, try increasing your WDM buffer or unselecting/reselecting the device in the configurator.

Thanks for getting to the end of this article, if this helped you in any way please let me know and/or like this article. If you want more from me I might be writing new articles about 3d graphics soon.
For now you can follow me on twitter at @whosboo_ and watch me on twitch at twitch.tv/b00_
Cheers

--

--