Many of you might already have heard of a way to digital mix and control audio for your streaming software, by using the infamous Voicemeeter Banana. And if you haven't heard of it yet, well don't let the name deceive you as this is probably a whole step up for you in controlling audio for your stream. Going for a basic but rather advanced setup to be used with OBS Studio or Streamlabs OBS. Step by step I will try to explain in this guide the setup from first recovering your desktop audio to then using the programs virtual audio outputs into OBS and even make sure you still can use Discord or other VOIP programs. Voicemeeter is donationware which means it is free to be used but you can give it a donation if you like the application and want to support the development, which after this and using it you definitely will think about it!
Digital Mixing requires CPU cycles to mix and apply digital audio conversion and possible audio effects. Be warned that using Voicemeeter on a heavy loaded system, eg by a game or using x264 encoding, that Voicmeeter might be desynced or doesn't get enough time to proper handle audio and crackling occurs. When this happens you can Restart Audio Engine from the Menu of Voicemeeter or if that does not work, completely restart Voicemeeter. Also later on in this guide, for more advanced control or options, additional virtual audio cables can be installed via other software, but each cable added or created also requires CPU to properly transfer audio sample data from one application to another.
Also once you setup your audio routing schematic with Voicemeeter in the center, you want to keep Voicemeeter always running, even if you are not streaming and all your volume control henchforth will be done in Voicemeeter, once everything is properly setup. Else you will be changing settings back and forth between streaming sessions and normal computer sessions. Luckely you can set Voicemeeter to run at startup via the Menu.
Start by downloading the latest version of Voicemeeter Banana from the offical website and install it. Please do listen to the reboot request as it is needed to properly startup the virtual input and output cables that come with this application, two of each. For starters we leave everything on default values. After reboot, open the Windows Sound Settings and select VoiceMeeter Input (VB-Audio VoiceMeeter VAIO) as your default output device and make sure that the output volume is set to 100 for maximum recording volume.
Now if you were playing any audio you will not hear it anymore, as the audio is now received by Voicemeeter. So let fix this up and by heading into Voicemeeter and set hardware output A1, by clicking A1▼ found in the upper right of Voicemeeter, to your headset or speakers whatever you normally use as default output device. Now the last thing to do is to pass the received desktop audio to this hardware output by simply highlighting ▶A1 under the Voicemeeter VAIO virtual input strip. You are able to hear desktop audio again like normal, but now you can control the input levels and output levels seperatly, within one application.
In Windows 10 you can easliy reach the Windows Sound panel by right-clicking on the speaker icon in the system tray and selecting Sounds.
To capture desktop audio in OBS Studio or Streamlabs OBS we are going to use the first virtual output B1 of VoiceMeeter Banana. Open up the Audio Settings in either OBS Studio or Streamlabs OBS and first Disable "Desktop Audio Device" as it will not be used. Instead under "Mic/Auxilary Audio Device" select VoiceMeeter Input (VB-Audio VoiceMeeter VAIO) and press Apply or Done and close the settings window. Now as with your headphones if you are playing audio on your computer you will not see any activity yet on the audio level meter of the desktop audio.
In VoiceMeeter Banana you want now highlight ▶B1 under the Voicemeeter VAIO virtual input strip, the same as you did for your headphones and you will now see activity on the audio level meter for desktop audio in OBS Studio or Streamlabs OBS, while you are also still hearing the audio!
With Voicemeeter we can now control what audio goes into OBS Studio or Streamlabs OBS by simply enabling B1 on an input strip and the volume we send by adjusting the B1 output strip. In the image above you see I have set the
volume of B1 around -15dB so that 0dB sound on desktop hits -18dB max in OBS, so we have enough room for adding a microphone to have a clear distinction between voice and audio. It is recommended to rename the "Mix/Aux" audio
VoiceMeeter B1 for clarity which you can do by right-clicking on the audio level meter and selecting "Rename".
If you do not have a surround sound setup or prefer stereo sound over virtual surround you can skip this step.
With Voicemeeter it is also possible to receive and hear surround sound channels for those that prefer that over proper positional stereo. First you need to set that Voicemeeter has a surround audio setup by opening the Windows Sound playback devices, selecting VoiceMeeter Input and then click the Configure button. Select what you want to use, and keep full-range speakers selected. Now if you right-click the device and test, you will see each channels level meter go up on the Voicemeeter VAIO input strip and the A1 output strip, and you should hear the representing channels.
One thing is left to do, and that is to make sure that OBS Studio or Streamlabs OBS is only receiving stereo, so you want to downmix output B1. Click the blue text button reading Normal mode so it changes to MIX DOWN A or MIX DOWN B. Keep in mind that using downmix will raise the volume slightly, so make sure you are not clipping the audio in OBS Studio or Streamlabs OBS when playing loud audio, by lowering the output volume B1 slightly. MIX DOWN A mixes rear and side speaker out of phase to simulate surround effect in stereo, where MIX DOWN B does this in phase, for both the center channel is mixed 70% onto the left and right channel.
Instead of adding your microphone directly in OBS Studio or Streamlabs OBS as "Mix/Auxiliary Audio Device 2", this guide will let also the microphone go through VoiceMeeter Banana to use some of the build-in filters and effects. So the first thing to do is add your microphone you use as HARDWARE INPUT 1, by simply clicking on HARDWARE INPUT 1 and select your microphone. You might want to highlight mono to mixdown your left channel onto the right channel if your microphone is actually mono, which most of them are.
Now normally with analog mixers you want to hear your own voice back but due this being a digital mixing application you get (slight) audio delay between when you speak and when you hear it back, but you can still highlight
A1 on the "microphone" input strip to patch it to your headphones or speakers so you can verify the microphone. Continuing the setup, highlight ▶B2 under the microphone HARDWARE INPUT 1
strip to patch this microphone signal to Voicemeeter's second virtual output. This is, unless you installed one or more virtual audio cables, your last virtual output that can be used in other applications. Open up the audio
settings in OBS Studio or Streamlabs OBS and select for "Mic/Auxilary Audio Device 2" VoiceMeeter Aux Output (VB-Audio VoiceMeeter AUX VAIO) to receive this output. Just as with the desktop audio it is
recommended to rename this new audio capture to
VoiceMeeter B2 for clarity.
You can now also use the build-in "Compressor" and "Gate" for your microphone and/or apply an effect to it via the "INTELLIPAN". Right-click on it to change modes and double-click to reset the effect.
If you followed the guide so far, you microphone is already setup in Voicemeeter Banana and being output on a dedicated virtual output cable, B1. To use this, in voice communication program, like Discord, select VoiceMeeter Aux Output (VB-Audio VoiceMeeter AUX VAIO) as the input device. Now the used voice communication program is using the microphone signal provided and passed through by VoiceMeeter, and includes additional filters and effects.
Now for you to hear other people talking in the used voice communication program, and to seperate this from the desktop audio to have seperate control, you want to use the second available virtual input of VoiceMeeter Banana. In your used voice communication program, select as output device VoiceMeeter Aux Input (VB-Audio VoiceMeeter AUX VAIO). In Voicemeeter Banana you want to highlight ▶A1 under Voicemeeter AUX virtual input stip, so received voice audio is being passed to your headset. Now the power of Voicemeeter Banana comes again apparent, as now you hear received voice audio from your used voice communication program, but your stream does not.
In the image above you can see I have lowered the total desktop audio audio by 10dB so I could hear the VOIP audio properly as well compared to the game audio. As a result you want to raise the audio send to the streaming software by an equal amount and in this case it is 10dB resulting -5dB up from -15dB as set prior.
In the event you want to have your stream hear the received voice audio as well, you simply to highlight ▶B1 to mix it with the desktop audio for the stream. The reason you cannot mix it with B2 is, that it is also used by your used voice communication program so other users, you are on voice communication with, will hear themself again through you. To further seperate received voice audio from desktop for your streaming software, will require an additional virtual audio calble, which more about this will be described in advanced routing guides.
You can install multiple virtual audio cables on your computer to expand the functionalty of your hardware inputs to become virtual inputs. Multiple software are available like VAC (Payed $25 - unlimited cables) or from the developer of VoiceMeeter Banana CABLE (1 cable free - 2 more "donationware"). For the sake of this guide we will be using CABLE from VB-AUDIO so first download and install this, it is recommended to reboot your computer afterwards.
After installing and rebooting open VoiceMeeter Banana and select under HARDWARE INPUT 2 the following "device" CABLE Output (VB-Audio Virtual Cable). If you have more virtual cables installed you obtained by donating to VB-AUDIO then you can use HARDWARE INPUT 3 as well with the "device" CABLE-A Output (VB-Audio Cable A). If you are in need of more speration you can remove the microphone input as set up by following this guide and use it directly in the software you need it, this opens then up another hardware input for which you can use CABLE-B for if you have obtained that.
Now you have one, two, or three extra "playback/output" devices available you can use in other applications to send the audio to, which would be CABLE Input, CABLE-A Input, or CABLE-B Input. Once that is set up the audio will then go via the virtual audio cable into Voicemeeter Banana where you then can patch this to your headset by highlighting ▶A1 and/or to the stream by highlighting ▶B1 under the Hardware input strip you are using.
As it might now become complicated what input is going to be used for that application or function you can give the inputs a name, by simply right-clicking on the current name. You can see an example of the result in the image posted above where I already made use of this.
Since Windows 10 1803 (April 2018) you can enforce the output device that an application needs to use, without relying on complicated or unstable 3rd party audio routing applications to enforce an output. Start by opening the Windows Sound Settings, by right-clicking the speaker icon in the system tray and select "Open Sound settings". Then scroll down till you see "App volume and device preferences" which you need to click on.
In here you have various options per application to enforce an output or even the input device. For this example, we can enforce Spotfy to one of our virtual audio cables that is used as hardware input and we can also enforce the streaming software sound output, for example all alert audio or a ChatBot Song Request to a separate output to have the volume seperately controlable.
If an application is not listed then make sure it is playing some audio.