The default audio setup OBS provides isn't ideal. All audio that plays through your speakers—your game audio, any programs, music, voice calls—get grouped into the same input device just called desktop. In an ideal world, we would be able to have independent control of each of these audio levels for your streams or recording. Thankfully, we live in this world!

First off, let me outline my scenario with the audio streams that I needed to deal with. For my physical devices, I have the infamous Blue Yeti USB microphone and decent headphones. For my virtual devices, I am often gaming with people over Discord, so I have voice calls from other people. I like to listen to music while I stream. I also like to run my mic through post processing in real time. And of course I have the game audio.

In summary:

Physical

  • Blue Yeti Mic
  • Headphones

Virtual

  • Game/Desktop audio
  • Music
  • Discord

What I wanted to achieve was to have all these different streams split so I could adjust, control, and record independently. Sounds tough, but we can do this!

The Software

VoiceMeeter Potato. It's free/donationware that works extraordinarily well. Potato is the pro version, there are simpler versions available but they manage less inputs/outputs. For the setup I'm about to describe to you we need as many as we can get.

note: eventually VoiceMeeter Potato will start harping you to donate, and will start causing audio interruptions every 6 hours. This happened to me about a month after installation. The previous versions (like Banana) don't do this. There was unfortunately nothing indication that this would happen on the website. As far as I know, you can still use Potato like this free indefinitely, you just need to be wary of the time limit and click "Still Evaluating" when the time runs out. Or you can pay for it by donating a minimum of ~10$.

We will actually need an extra virtual input/output (I will explain what that means, don't worry). So also go ahead and grab their extra standalone Virtual Audio Cable. Hi-Fi vs Regular isn't too important, but I went with Hi-Fi.

What the heck's a Virtual Audio Cable?

The way this all works is that these programs set up separate virtual devices in your computer. If you open up your sound settings (now kind of hidden away in Windows 10), you will see them there; inputs under Playback, and outputs under Recording.

I like to rename them here to remind myself about how I "wired" each input and output.

Getting to this window is tricky now, so I'll quickly lay out the steps:

  • Right click your sound icon and Open Sound Settings
  • Scroll down and click Sound Control Panel

The power of these tools is that you can set different programs to output their audio through these virtual inputs/outputs, and thus separate and mix them elsewhere!

Virtual Inputs - Separating your program audio

Let's look at my discord settings for an example. In discord I want the audio from my discord calls to go to one of my virtual cable rather than my headphones. Here is what that looks like:

It's that easy! If you're worried that now you won't be able to hear the call, don't worry—we will sort that all out.

Next let's deal with music. We want to do the same thing, so we just need to figure out how to get audio from whatever playback solution you're using into another one of our virtual inputs. I am using the Google Play Music Desktop Player. You can manage this setting here:

If you're listening to music on your browser (or for basically any other program) Windows has us covered! You want to open the Sound Mixer. You can do this easily by doing a Windows search for it. The window looks like this:

Windows new Sound Mixer

If you can't find the settings to change your playback device in your program, changing it here should always work. You want to change the Outputs to be whatever virtual cable you want. My advice is to separate all the different audio sources you want appearing on your stream as much as possible. You have 5 virtual cables available to route for free. If you need more, you can get two extra virtual cables by donating at least 5$ on the VoiceMeeter download page.

Breaking down VoiceMeeter

Next let's dive into VoiceMeeter and break down what everything means

The first section are all your input devices. This first one I have set to my microphone. If you click the Input Device text a drop-down will appear listing all the inputs you have available.

You will notice that on top of my physical devices (my camera mic, my blue yeti, and my mic input jack on my desktop) the extra virtual audio cables we installed are here too! This is how we can pull in extra streams of audio. You won't find the virtual cables that come with VoiceMeeter Potato in this this, that's because they get their own section that we'll look at next. Yyou will also see there are different options for each device. Generally AFAIK, WDM has less latency than MME so use those options.

The way the output buttons work is that each one map onto one of the outputs in the third section of the window, the Mastering Section.

Each button goes to its corresponding label. So for instance, if you have A1 active on your first device input, then audio from that input will go through into the first A1 output here.

The first five outputs (A1-A5) are meant for physical devices. You define them at the top of the screen with a similar dropdown menu to the inputs.

For me, I have two physical devices I want playback to: My headphones (mapped to A1) and my desktop speakers (mapped to A2).

Here's the logic you should follow: If you want the audio heard, click its button. As an example here is what my input for Music looks like:

You can see I had mapped my music player's output into my Hi-Fi virtual cable, and I'm routing it in here. I want my music heard in both my desktop speakers and headphones simultaneously, so I have both A1 and A2 clicked.

note: the reason I play on both my speakers and headphones at the same time is personal convenience. I have a physical volume/mute switch for my speakers, so when I put on my headphones I just mute my speakers and don't have to change any of my devices/settings.

Virtual outputs B1-B3 work the same way, if you want the audio heard activate the corresponding button. But this is a major part of how we're going to be splitting up our audio! Your computer will treat each virtual input device independently, as if you had many different microphones. So you can pick and choose and manage each audio stream separately by utilizing this. But we need to get audio through here, so lets look at the remaining section in the middle of the window.

These are your virtual input devices. In your sound devices, they will show up as VoiceMeeter Input, VoiceMeeter AUX Input, and VoiceMeeter VAIO3. My plan was to have my desktop/game audio through Input 1, my post-processed microphone through Input 2, and Discord through Input 3. Managing this is simple enough. My default playback device on windows is set to Input 1, so anything that I don't route/change manually will show up in this first column. In my audio software for my microphone (I will touch on how to do that later) I set my playback device to VoiceMeeter AUX, which forces it to show up in the second column. And finally, above I showed you how we set Discord's output device to Input 3, which makes it show up in the third column.

Now for my output mappings: I obviously wanted to hear my game/desktop audio and discord in my headphones, so both A1 and A2 are clicked for those two. I didn't want to hear myself talk, so I didn't click those for my Mic column. And finally, I wanted each one to be routed into its own output, so B1 for the first, B2 for the second, and B3 for the third.

Whewh, that's it! Let's take another look at our final creation:

Some extra notes, you'll see I have my raw microphone in the first column and I'm routing that to B2. Since I'm also routing my post-processed microphone to B2, my voice can potentially show up twice. But the post-processed microphone audio will only appear once I turn on my audio software. I didn't want to necessarily have to turn that on every time I want to use my microphone, so thats why I have the raw Mic in there as well. I just have to remember to mute that when I want to start streaming, but it seemed more convenient this way.

Hopefully this all made sense and you could follow along. As a final tally, we now have separated audio streams for:

  • Desktop/Game Audio
  • Microphone/Post-Processed Microphone
  • Discord
  • Music
  • Browser Audio

Notice that I tried to rename everything where I could (just right click the labels in VoiceMeeter). I strongly recommend doing that to help remind you of what the hell is going on when you look back on this later.

We are now finally ready to go into OBS and put this all together.


One last SUPER IMPORTANT detail!!!

Some extra important bits to keep in mind:

A really, really important detail about all of this is that the sample rate needs to be consistent across all of your physical and virtual inputs and outputs. The default is typically 44100Hz. I use 48000Hz. It doesn't make a perceivable difference, but 48000Hz is higher quality so I just do that. Pick one, and then go through and make sure all your programs and settings have the same sample rate. If anything mismatches it will sound awful.

In OBS, we saw this under Settings > Audio

In VoiceMeeter, you can make sure the preferred samplerate is correct under Menu > System Settings

Finally, going back to the Sound Settings window we started off with (the hidden one) click the properties for each device under playback and recording, go under advanced and make sure they're all set to the same sample rate.