or: How I Learned to Stop Worrying and Love Separating Audio
I’ll start out with a bit of a preface and warning: Everyone’s setup is different, so you’ll likely need to make further adjustments based on your environment, computer settings, what types of programs you have running, and more. That said, as someone whose experience with audio effectively was “these shiny buttons scare me” a few weeks ago, if I can do it, so can you. (I should also note that this is for Windows specifically – if you’re running on Mac or Linux, sorry, can’t help you on that at the moment.)
Why should I use separate audio sources?
Primarily because it gives you far more control over your audio sources! You’ll have much more direct control and a visual indicator of your microphone audio, Discord audio, and even sources that run through your default audio device, such as games and more. With Voicemeeter, you even have the ability to auto-duck, making it easy to automatically lower and raise audio based on another input, such as your own voice. No more worrying if a game is drowning out your voice!
Voicemeeter Potato will function as a software mixer, and will be core to balancing your audio sources.
VB-Cable Virtual Audio Device is just what it says on the tin – you’ll want this for Discord audio, if you use it for your streams.
Be sure to install these programs one at a time, and restart your PC after each install. Installing both at once, or not restarting, is likely to cause driver errors that will require a full uninstall of both programs to fix.
Getting Started – Windows Settings
Once you’re all set and sorted, there’s a few things you’ll want to do in Windows’ audio settings. Typically, the easiest way is to right click on your audio icon in the lower right, then select “Sounds” and click over to the appropriate tabs:
Right click VoiceMeeter Input and set as Default Device
Right click CABLE Input and set as Default Communication Device
Right click VoiceMeeter Output and set as Default Device
Right click CABLE Output and set as Default Communication Device
Now, at this point, you’re probably not going to hear any audio from your headphones or speakers, and that’s okay. We’ve just set Voicemeeter as the default audio output device – i.e. telling Windows to send audio to it – but we haven’t configured Voicemeeter to tell it where to send that audio it receives. We’re basically putting all the audio into a box and trapping it there. Now it’s time to let it out.
Note: I would not recommend renaming or changing the icons of these devices. Trust me, I’ve tried. For as powerful as Voicemeeter is, it gets real finicky real fast if you adjust the names or icons, and may report driver errors if you do. Typically the only easy way to fix this is to reinstall the program.
Getting Started – Voicemeeter Potato
When you start Voicemeeter Potato for the first time, it’s going to look something like this:
A bit intimidating, yeah? Don’t worry, the end result is going to look something like the below, and we’ll get you there in no time:
There’s a lot to cover here, but I’ll try to break it down by input and section. Let’s start with one of the most important parts – sorting out where Voicemeeter sends all that audio!
Setting up Hardware Outputs – Headphones, Speakers, etc.
We’re going to focus on two sections of Voicemeeter Potato for this: The upper right where it says “HARDWARE OUT”, and the first five sliders in the lower right that say “PHYSICAL” underneath them. These represent the physical output devices plugged in to your computer, such as headphones and speakers, and are represented by A1, A2, A3, A4, and A5.
In most cases, you probably only listen to your audio through one device. In the upper right, click on A1, then select your device from the drop-down list. You may see it a few times with a different audio driver listed in front, such as WDM, KS, MME, or ASIO. What each driver is is a bit beyond what we want to cover here today, but information on each is easy enough to find. While ASIO is generally preferred, it’s not always available, or in some cases a different driver may work better. If you notice issues with a driver such as delayed or tinny audio, try a different one!
If you have multiple audio devices, you can assign them to A2, A3, etc. in the same way. Each device’s audio, equalizer, and more will be controlled independently via the PHYSICAL slider at the bottom right of Voicemeeter, allowing you to control the level and other details of each device.
Slide A1 (or whichever PHYSICAL device you’re using) down a ways, then try playing audio through your desktop at this point. If all is well, you should hear audio through that device! If not, triple-check that Playback devices are set correctly in Windows as mentioned above.
Side Note: You can also name most inputs and sliders by right clicking on the name and and typing a new one in. If you right click on it and see a number, it likely means you’ve clicked on the slider, rather than the name.
Setting up Hardware Inputs – Microphone
This is fundamentally similar to how we set a Hardware Output earlier, but this time we’re using the larger sliders on the left.
Left click on “HARDWARE INPUT 1”, then select your microphone from the list. Again, you may have a few different drivers available; take some time to experiment and see which one works best for you. We can actually test this right now using some built-in features of Voicemeeter Potato!
Fine-tuning Your Mic Input
See how it says A1-A5 and B1-B3? Those correspond to the PHYSICAL and VIRTUAL outputs you see on the lower right side of Voicemeeter. The program should be sending everything to A1 and B1 by default, and assuming your regular listening device is set to A1, when you speak you’re likely to hear your own voice. There’s a couple of additional things we can fiddle with here to really make your voice stand out:
This controls some additional fine-tuning effects for the input – in this case, your microphone. You can adjust lo- and hi-pass effects, add a bit of brightness to give your voice a more bright, airy sound, or add some echo. You can right click on this panel for additional effects, such as modulation (basically special effects) and position (for 3D audio) but for the most part you’ll just want the main VOICE panel.
“Comp.” is short for “Compressor”, and can help level and improve sound. There’s way more to it than that, but there’s people who are better suited to explaining it in a variety of places online. More doesn’t necessarily mean better in this case!
“Gate” is your noise gate, cutting out sounds below a certain threshold, like background noise. This may take some time to adjust properly, but as a general rule, you’ll want to slowly turn it up until you stop seeing activity on your mic, while also making sure it’s not so high that your normal speaking voice doesn’t pick up.
You can also right click on the gauge on the left and set a Limiter by typing in a number. This prevents the audio source from going past a specific point, and can help prevent audio from being too loud or clipping.
At this point, when you’re happy with how you sound, click “A1” so that it’s no longer lit up – you should no longer hear yourself at this point – and click “B1” if it’s not on already. What we’re doing here is setting things up so that Voicemeeter is processing our audio with the tweaks we made above, then sending that audio to a virtual output that will be used later.
Setting up a Virtual Hardware Input – Discord
Now, if you use Discord regularly to talk to others during your streams, this is where things get interesting. Remember how we set up VB-CABLE as a virtual audio device earlier? This is where it comes into play.
First up, left click on HARDWARE INPUT 2, then select CABLE Output form the list. If you like, you can tweak this the same way as your microphone, add a limiter, and more. Once you’re done, make sure both A1 and B2 are lit up – this will send the audio output to both your physical listening device (A1) and a virtual output (B2) that we’ll use with OBS in just a bit.
Now, in Discord, go to Settings > Voice Settings and change your input and output devices as follows:
This sounds a bit counter-intuitive, but Input Device should be set to VoiceMeeter Output (VB-Audio VoiceMeeter VAIO), while Output Device should be set to CABLE Input (VB-Audio Virtual Cable).
This accomplishes two things: First, the audio that’s being routed from your microphone to VoiceMeeter will now be audible on Discord. Second, the audio that you hear from other people on Discord will now go through VoiceMeeter. You can use the Mic Test feature to make sure that both of these things are working.
Ultimately, this allows you finer control over Discord’s audio, and even more importantly, splits it into a completely separate source that can be adjusted independently of the default audio source!
Using Voicemeeter’s Virtual Inputs
We’ve covered most of the basics, but to squeeze a little extra out of what Voicemeeter offers, we can also use the additional inputs it creates to manage individual audio sources via these three sliders right here:
Based on how we set things in Windows earlier, all default audio sources should go to Voicemeeter VAIO (which I’ve renamed “Default” in my own setup). This will largely depend on how and why you want to further separate audio tracks. For my own purposes, I have foobar2000, a music program, set to output to Voicemeeter AUX, which outputs to both my wired headphones (A1), my wireless headphones (B2), and a virtual output (B3). This way I can hear my music normally while also manually adjusting it for streams.
Your mileage may vary on this front, as most programs don’t have the option to output to different sources other than the Windows default, though there are some third-party solutions out there that may help.
You can also adjust the audio for any currently-running programs. If you right-click on the list (you see Discord and Firefox up there), it’ll bring up a larger list of running programs. These settings are not persistent, so don’t rely on them as a way to balance audio across individual programs.
Setting Up Auto-ducking
This is where things start to get a bit advanced. You can use Voicemeeter to handle auto-ducking for you, meaning that when one source picks up on audio, such as your microphone, another source lowers, such as your default audio. If you’re familiar with setting this up in OBS, the idea is fundamentally the same, but it serves a slightly different purpose – this will lower the audio you hear on your own computer, as opposed to the audio on the stream.
If you’d like to set this up, go to the Menu in Voicemeeter, then select “Run MacroButtons on Voicemeeter start”. This should bring up a new window that’ll look something like this, minus the existing custom buttons:
Right click on a button to set a new macro. Here’s one I set up to lower both the default Windows device audio as well as music from foobar2000 when someone is speaking on Discord:
While you can directly copy this to see how it works, there’s a few things you need to keep in mind while setting up macros:
Strip refers to the vertical strip you see in Voicemeeter Potato, and starts at #0. Gain refers to how high – or low – the audio should be, fadeto is both what the gain should be set to and how long it should take in milliseconds, and the numbers in parentheses determine what their relevant commands do. Near the bottom, TRIGGER is Enabled, set to input #2, and has a few additional tweaks for when it should kick in and for how long.
In the above example, under Button ON / Trigger IN, I’m telling Voicemeeter to immediately change the gain to -8 to make those sources more quiet. Then, when I’m done talking, it changes the gain back to 0 over half a second.
It’s… confusing, I know. This is completely optional, but once you wrap your head around it, it can be incredibly useful.
Bringing it Into OBS
We’re finally here!
One of the big reasons to do all of this is so that you can have independent audio sources in OBS that make it much, much easier to monitor and adjust your audio settings so that they all play nice together. So let’s start by ripping the existing audio settings out of OBS.
This is, once again, going to sound counterintuitive, but we want to disable all of our Global Audio Devices in OBS. Voicemeeter Potato is handling our audio sources now, so we want to make sure OBS isn’t going to unintentionally double up on a source or effectively bypass all that work we put into Voicemeeter.
You might be wondering, at this point, where your audio should come from, since we just removed everything. This is where three kinds of Sources come into play: Audio Input Capture, Audio Output Capture, and Scene.
First, we’re going to want to set up a new Scene. This is going to be a unique Scene; it’s going to hold all of our audio, and that scene is ultimately going to be nested in other scenes.
So, first, make a new Scene, then, under Sources, add an Audio Input Capture and set it to VoiceMeeter Output (VB-Audio VoiceMeeter VAIO). If everything is set up correctly, this will be your microphone, which is being sent to the B1 virtual output in Voicemeeter.
Next, add an Audio Output Capture and set it to VoiceMeeter Input (VB-Audio VoiceMeeter VAIO). This should be your default Windows audio device, the same one that you’re hearing through A1 in Voicemeeter.
After that, add another Audio Input Capture and set this one to VoiceMeeter Aux Output. This is what you’d hear in Discord, and is what’s being sent to the B2 virtual output in Voicemeeter.
Optionally, you can set up one more Audio Output Capture for an additional program set to the B3 virtual output in Voicemeeter – in my case, this is what I use for music on stream.
When all is said and done, you should have a Source that looks something like this (with whatever naming scheme makes sense to you):
Since we removed all the audio sources from OBS, that leaves us with one more step – adding this Scene as a nested scene in other… scenes. Look, I can’t explain it better than this. Click over to the Scene you want to add audio to (which is, presumably, all of them), then, in the Source list, go to Add > Scene and add your newly created audio sources scene. Here’s what a typical scene looks like for me, for reference:
See the Nested // Audio Sources entry at the bottom? That’s in pretty much every scene I have set up!
There’s a hell of a lot more you can do with Voicemeeter Potato, and even more settings you can tweak in OBS. However, that should help you get a start on how to keep audio sources separated so that you can better balance them and take your stream audio to the next level!