or: How I Learned to Stop Worrying and Love Separating Audio
Stop me if you’ve heard this one before: “Does the game volume sound okay? Is it too loud? Too quiet? Can you hear me? Is [person on Discord] coming through?”
A common issues with setting up and maintaining livestreams is getting the audio balance right. I’ve seen lots of different solutions using OBS, either by using different add-ons (that tend to add other complications) or people passing around posts about the “correct” settings to use (which tend to only work for the person who posted it to start with). While these do technically work, they tend to add other complications, and don’t get at the root of the problem since you’re using OBS’ software tools, not a dedicated sound board or sound mixing software, to solve intricate audio issues. This guide will – hopefully – help you up your audio game, improve the overall presentation of your streams, and remove the mental stack of worrying if the audio sounds right because it’ll be consistent across everything you do regardless of what game you’re playing, what video you’re watching, or if you’re just hanging out with your audience.
I’ll start out with a bit of an extra warning: Everyone’s setup is different, so you’ll likely need to make some further adjustments based on your environment, computer settings, what types of programs you have running, and more. That said, as someone whose initial experience with audio effectively was “these shiny buttons scare me” a year ago, if I can do it, so can you. (I should also note that this guide uses Windows terminology and images specifically. Voicemeeter is also available for Mac, while Linux can try an alternative called Pulsemeeter.)
Why Should You Use Separate Audio Sources?
You’ll have direct control over audio sources and a visual indicator of your microphone audio, Discord audio, and even sources that run through your default or desktop audio device, such as games that don’t have specific output settings. With Voicemeeter, you also have the ability to add auto-ducking, making it easy to automatically, temporarily lower audio based on another input, such as your own voice or others speaking in Discord. No more worrying if a game is drowning out your voice or concerns if the game is too quiet!
There’s a lot more you can do with this, and it can be used well beyond streaming – for example, I also have auto-ducking on for my music so I can easily hear my friends when I’m chatting with them on Discord. There are lots of uses beyond streaming, and can help take pressure off of balancing audio when you’re using your computer for other tasks, too.
Voicemeeter Potato (Win / Mac) will function as a software mixer, and will be a core element to balancing your audio sources. (If you’re on Linux, check out a program called Pulsemeeter.)
Note: There are three versions of Voicemeeter: One simply called Voicemeeter, Voicemeeter Banana, and Voicemeeter Potato. If you’ve seen guides on YouTube and elsewhere about how to set up Discord audio, chances are you’ve seen Banana mentioned specifically. We’re using Potato as it’s the most feature-rich and provides additional inputs and outputs that may be useful once you’re familiar with how everything works.
VB-Cable Virtual Audio Device (Win / Mac) is just what it says on the tin. Virtual audio devices are stand-ins for physical devices that would plug into your computer, like a microphone. If you’ve heard the phrase / program “virtual audio cable” before, this is the same thing, a replacement for a physical device. If you need additional virtual audio devices, they’re available as donationware.
Be sure to install Voicemeeter and VB-Cable one at a time, and restart your computer after each install. Installing both at once, or not restarting, is likely to cause driver errors that may require a full uninstall of both programs to fix. Take the extra time to restart!
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. (Sorry, Mac / Linux users, I only have Windows on-hand to demonstrate.) 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
Important: Don’t rename or changing the icons of any virtual audio devices. Trust me, I’ve tried. For as powerful as Voicemeeter is, it gets real angry 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.
Now, at this point, because you’ve just installed Voicemeeter and changed a bunch of audio settings, you’re not going to hear any audio from your headphones or speakers. That’s by design. Since Windows is now sending audio to Voicemeeter, we need to tell Voicemeeter what devices to send that audio to so you can hear it.
Getting Started – Voicemeeter Potato
When you start Voicemeeter Potato for the first time, it’s going to look something like this:
A bit intimidating, but don’t worry, the end result is going to look closer to what you see below, and it should take half an hour, tops, to set up:
There’s a lot to cover here, but I’ll break it down by input and section. Let’s start with the most important part – sorting out where Voicemeeter sends all that audio so you can hear it!
Setting up Hardware Outputs – Headphones, Speakers, etc.
We’re going to focus on two sections of Voicemeeter Potato to start: The upper right where it says HARDWARE OUT, and the first five sliders in the lower right that say PHYSICAL underneath them. These represent physical output devices plugged in to your computer, such as headphones and speakers. You’ll also see any virtual audio devices you’ve installed listed here, too. These outputs, left to right, are represented by A1, A2, A3, A4, and A5.
In most cases, you probably only listen to your audio through one device, so let’s start there. In the upper right, click on A1, then select your device from the drop-down list. You may see it listed 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 if you’d like to know more. While ASIO is generally preferred, it’s far less common than the others and is typically only available for specific hardware. On Windows, you can generally use WDM without any issues. If you notice issues with a driver such as delayed or tinny audio, try a different driver!
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 and even output audio to multiple devices without having to switch between them via your operating system, which is particularly handy if you regularly switch between devices, like using both headphones and speakers, or if you only want certain types of audio to go to certain devices.
Slide A1 (the PHYSICAL device you’re using) down a bit so that your audio isn’t coming through at full blast, then try playing something that would normally use the default desktop audio. At this point, you should hear audio through that device. If nothing is lighting up, 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 near the bottom of the slider and and typing a new name in. Voicemeeter can be a bit finicky about where you click, so if you right click on it and see a number, Voicemeeter is trying to set the decibel level.
Setting up Hardware Inputs – Microphone and Discord
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’ll probably have a few different drivers available, including WDM, KS, MME, and ASIO; take some time to experiment and see which one works best for you. We can actually test this right now with some built-in features of Voicemeeter Potato!
Fine-tuning Your Mic Input
See those buttons off to the right of each slider that say A1, A2, B1, B2, etc.? Those correspond to the PHYSICAL and VIRTUAL outputs you see on the lower right side, and tells you where sound is being routed. A1 and B1 should be lit up by default, and, assuming your microphone is set to A1, when you speak, you’re going to hear your own voice. You can click A1 to turn it off, but before doing that, there’s a couple of additional adjustments we can make here to help your voice stand out:
This controls some additional fine-tuning effects for the input – in this case, your microphone. You can get real into the weeds with different effects here by right clicking and seeing different panels, but for the most part you’ll likely want to add a bit of brightness (providing a more light, airy sound to your mic) and adjust either towards Lo or Hi for low-pass or high-pass filters depending on your mic. These are your personal settings, so go with what (literally) sounds right to you!
“Comp.” is short for “Compressor”, and in vastly over-simplified terms, keeps the loudest parts of your audio from being too loud and clipping. For example, if something scares you and you yell, Voicemeeter will intercept the audio and automatically lower it. There’s way more to it than that, but the are people who are better suited to explaining it in a variety of places online that you can find via a quick web search. More doesn’t necessarily mean better in this case, though.
To adjust the compressor, try speaking normally, then speaking at what you figure your loudest volume would be as a guideline to determine how much you need for the Compressor (if you need to set it at all). I recommend making a recording while you do this, either via Voicemeeter or via OBS (as I’m guessing if you’re here, you’re probably using OBS given the title and all).
“Gate” is your noise gate, cutting out sounds below a certain threshold. It’s particularly useful for removing static 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.
Again, try speaking normally while making adjustments to make sure that the Gate isn’t cutting out your voice when you start or stop speaking, or if your voice is quieter than usual.
You can also set Special Effects and External Effects just below, but those are outside the scope of this guide. There’s lots of info that you can look up about those, though.
I also recommend right clicking on the gauge on the left (where you’ll see bars lighting up if you have audio coming through) to set a Limiter by typing in decibel number. I typically set this to 0.0 across most inputs, but how you set this will depend on your own environment and needs. This functions as a hard wall that prevents an audio source from going past a specific point, and can prevent audio from being too loud. If you already set the Compressor you probably don’t need to set this too, but if you find that your mic is clipping constantly, you may want to try using the Limiter as well.
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. You’ve now set up Voicemeeter to process your audio with the adjustments made above, and that audio is being sent to a virtual output that will be used later.
Setting up a Virtual Hardware Input – Discord
If you use Discord regularly to talk to others during your streams, this is where things get interesting. Remember how we set up CABLE Input as our default communication device earlier? This is where it comes into play.
First up, in Voicemeeter, left click on HARDWARE INPUT 2, then select CABLE Output from 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:
The naming scheme makes this looks 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). People on Discord will now hear your crisp, clean audio that Voicemeeter is processing, while Discord will now send audio to Voicemeeter to be cleaned up before you – and your stream – hear it.
You can use the Mic Test feature in Discord to make sure that both the input and output devices are working, too. 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!
This isn’t just for streams, either; you can leave the settings as-is, and as long as Voicemeeter is running – and you can have it run at startup – it’ll do everything automatically for this point forward without you having to touch a thing.
Using Voicemeeter’s Virtual Inputs
At this point, we’ve covered most of the basics. 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 will default to Voicemeeter VAIO (I’ve named this slider “Default” in my own setup as it’s using the Default / Desktop audio device). If and how you want to adjust this will largely depend on if, how, and why you want to further separate audio tracks.
In the image above, I have foobar2000, a music program, set to three outputs: my wired headphones (A1), my wireless headphones (A2), and Voicemeeter VAIO 3 (B3). This way I can hear my music normally while also manually adjusting it for streams as needed. [Editor’s Note: Since first writing this guide I’ve changed this to having foobar2000 be on a different virtual audio cable, and set Firefox and MPC-HC to play on Voicemeeter AUX via changing the default audio device for those programs in Windows so that I can have those programs open without the audio coming up on stream. The basic principle remains the same, though.]
You can also adjust the audio for any currently-running programs. If you right-click on the list (where you see Discord and Firefox up there), it’ll bring up a larger list of running programs with small sliders you can adjust from left to right. These settings are not persistent, so don’t rely on them as a way to balance or manage audio across individual programs.
Remember how we set a Limiter for our mic earlier? You can set a Limiter for these sources, too. The small bars to the right of the square are a visual indicator of audio sources coming through. You can right click on those to set a Limiter, which can be particularly useful for things like games that start with the volume at full blast.
Side Note: Windows’ App Volume and Device Preferences
Most programs and games don’t have the option to output to specific audio devices, though there are exceptions like foobar2000, MPC-HC, and so on. However, if you want a specific program to use a specific audio source, you can try setting this up in Windows via Advanced Sound Options, which is buried at the bottom of Sound Settings. From there, you can assign specific inputs. However, not every program will respect those settings, so you’ll need to do your own testing to see what does and doesn’t work.
Setting Up Auto-ducking for Your Personal Audio
This is where things start to get more advanced. You can use Voicemeeter to handle auto-ducking for you, meaning that when one source picks up on audio at a certain threshold, 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 that comes through 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. Strips start start at #0, not #1. So the strip all the way on the left is #0, to the right of that is #1, and so on.
Gain refers to how high – or low – the audio should be while the button is active.
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 a lot, I know. I can’t stress enough that you’ll need to make these adjustments based on your own needs, as there’s no single, simple macro that will “just work”. I recommend referring to Voicemeeter’s manual for more details on how Macro buttons work.
Bringing it All in to 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 default audio settings out of OBS.
This is 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 bypass all that work we put into Voicemeeter. (OBS’s Global Audio Devices are also notorious for being made of glass and will reset to Default if so much as a light breeze touches them, so it’s better to have your own audio sources that you can individually troubleshoot in my opinion.)
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.
Setting the Scene
First, we’re going to want to set up a new, unique Scene that’s not only going to hold all of our audio, but also be nested in other scenes. Once you’ve created the new scene, 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. Test it out to make sure you’re getting an audio signal in both Voicemeeter and in OBS.
Next, add an Audio Output Capture and set it to Voicemeeter Input (VB-Audio Voicemeeter VAIO). This should be your default / desktop Windows audio device, the same one that you’re hearing through A1 in Voicemeeter and your headphones / speakers.
After that, add another Audio Input Capture and set this one to Voicemeeter Aux Output. This is your Discord audio, and is what’s being sent to the B2 virtual output in Voicemeeter.
Using this same method, you can include additional Audio Input / Output Capture for additional programs or devices based on the inputs and outputs you’re using in Voicemeeter. For now, make sure that your mic, Default / Desktop audio, and Discord work properly.
When all is said and done, you should have a Scene 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. (Yes, this naming scheme is going to get confusing, just roll with me.) Click over to the Scene you want to add audio to, then, in the Source list, go to Add > Scene and add the Scene you just created. I label my sources so that it’s easy to know what’s what, particularly Nested Scenes. 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! If I want a Scene to only have specific audio, I add them as individual Sources rather than using the Nested Scene.
Setting Up Auto-ducking for OBS
We’re at the final step of our journey, I promise. To really bring this whole thing home, you’ll want to consider adding auto-ducking (also known as sidechaining) in OBS so that when you (or people on Discord) speak, the game’s volume automatically lowers, then returns back to normal after a short period of time. We’ve already done all the hard stuff, so now it’s just about adding filters to the already-separate audio sources in OBS.
The order of filters is important, so take care in what order you apply them in. We’re going to add Compression and Limiter filters, and it’s generally recommended to have Compression filters near the top, while a Limiter should be the very last filter. You also don’t want to go overboard; adding too many different types of filters, or adding ones that aren’t necessary, can distort audio.
To start with, let’s set up some filters for our Default / Desktop audio. The settings below are just an example, and you’ll want to experiment with your own setup to find what works best for you.
You can see in the example above how the Compressor Filter is used to create an auto-ducking effect from various sources. Any time I speak via my microphone, someone else speaks via Discord, or audio plays via SAMMI (a software stream deck), the Default / Desktop audio is lowered temporarily so those other audio sources come through loud and clear. The Default / Desktop audio then returns to where it was before. I’ve also added a Limiter to prevent any Default / Desktop audio source from being too loud or clipping, similar to what we did with Voicemeeter for personal audio earlier on, and I have a similar setup for when I’m playing music. Someone speaks or an alert plays, the music volume lowers, then goes back up when they’re done speaking.
The important thing to keep in mind is that when you’re setting filters in OBS, you’re setting the audio that the stream hears, not what you hear, so you can adjust this completely independently of your personal audio in Voicemeeter to create a pleasant viewing experience while tailoring your personal audio to your own needs.
I highly recommend reading up on OBS’ Compressor Filter and Limiter Filter to learn about the default settings and how to get the most out of these filters, among other useful bits of info, like how filters should be ordered and how that can affect audio output.
A Final Note on Audio Levels in OBS
Something I’ve seen a lot of – and made the mistake of myself in the past – was assuming that audio levels going into the red meant they were “too loud”. Thing is, people can adjust audio levels on their end. If you’ve ever been flavor blasted by the audio from a Twitch ad, you’ll know how jarring it can be to turn up the volume for a stream just to have an ad blow our your eardrums.
In general, it’s fine – and almost preferred – to have your sources go into the red a bit. If the entire bar turns red in OBS, that means your audio is peaking, and you’ll need to adjust it down with a Compressor or Limiter. This is typically where a Limiter comes in handy at the end of an Audio Filter chain as a hard stop to prevent audio from peaking.
That’s pretty much everything I have, currently. 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!
[Updated September 18th, 2023: Added “A Final Note on Audio Levels in OBS”.]
[Updated August 8th, 2023: Re-wrote several sections and added more on auto-ducking in OBS.]
[Updated August 24th, 2023: Added some more bits about Compressors and Limiters.]