Audio Mixing and Shaping with Voicemeeter Banana and Virtual Audio Cable



Difficulty: Medium
Time needed: 30-45 minutes for configuration & setup

PC audio is something that, more often than not, doesn't get a lot of thought.  For some of us, as long as we can hear something then the most basic of sound is fine.  Others, who want a bit more, look for digital outputs from the machine to patch into their speaker setup, or go for higher end USB speakers and headsets and skip the PC's audio chipset entirely.  Usually though, once we connect our hardware and a desired sound is achieved, we don't think much more about it.  As long as it works then that's that.  If you fit into this former category then you can stop reading now; this isn't for you.

Then there are others; streamers, content creators, hardcore gamers -- like me.  You know who you are.  The average setup isn't going to cut it!  We want to be able to change the sound of our voice to something that doesn't sound like it came straight from a tin can -- and do it in real time, on the fly, with the resulting output going to multiple apps simultaneously.  We want to be able to route all of our various outputs:  we want Skype and iTunes to output to our headset only, Discord and our game to output to our headset and our streaming app, and our microphone to output to both the voice apps and our streaming app and that's it -- oh, and we want all that at different volume levels for each input and each output, so as not to overwhelm ourselves or anyone else with any one sound output.  Maybe we even want to stream simultaneously to another device or set of speakers in another part of the house, or stream to and from another PC or device somewhere else on the network so someone else can chime in or commentate.  Lastly we want this to be seamless; once we set it up we want it to sit in the background, not clutter up our desktop or system tray, and just work.

Sounds complicated, doesn't it?  It can be, depending on how you go about setting up your chosen solution.  There are multiple ways to achieve the above setup, each with their various levels of difficulty and limitations.  The method I've chosen, in my opinion, is the simplest to set up and use which is both compatible with all modern versions of Windows and is free to use.  It requires two additional downloads from the same vendor, and of course some time to set up.  Getting everything set up can be a little tedious but it's not difficult by any means, and for those power users who want more control over their audio setup I believe you'll be pleased with the results.

Step 1: Preparation

First thing's first:  make sure that your PC and it's associated drivers are up to date and current.  It sucks to troubleshoot a problem for hours on end, just to figure out that a simple download or Windows update would've fixed the problem. Due to the sheer number of different drivers out there this is outside of the scope of this tutorial, but in most cases it isn't difficult to do.  If you run into a particular update or driver that you just can't figure out contact me, and I'll try to help if I can.


This next comment might be considered common sense, but since I've run into it before I'll mention it now:  there is no need to update drivers for devices that you will not be using at all.  For example, I use a Focusrite Scarlett solo USB audio interface for my mic and headphones, and an old set of Bose Companion 5 USB speakers; because all of my sound devices are USB I don't use the Realtek sound chipset in my PC and I have it disabled in my BIOS, so there's no need to look up and update those drivers.

Step 2. Download & Install

Once your PC's up to date and you've restarted to make sure nothing blows up (proverbially), it's time to grab a couple of things.  For this we're going to be visiting VB Audio's website.  These magnificent bastards have brought about the two tools that will allow us to do everything we wanted to above:
In Voicemeeter Banana's case there are two possible downloads: the .ZIP version and the .EXE version.  I highly suggest getting the .EXE version, but as long as you're able to install everything correctly then your download choice is up to you.  Install Voicemeeter Banana, then reboot, then install Virtual Audio Cable, then reboot again.  We do this for a reason: if we were to install both and then a problem came up during rebooting, we wouldn't know which install caused the problem.  Installing one thing at a time and rebooting in between each install is just a safe measure to take regardless of what you're doing in Windows.

Step 3: Configuration - System

Once these two things are installed and we've rebooted without issues, it's time to:
  1. Decide what bit depth and sample rate we intend to use, and 
  2. Go into our various device's configuration and ensure that they are all using the same bit depth and frequency.
We do the second step for multiple reasons; converting between rates and bit depths requires more CPU power in the background.  It may not sound like much in and of itself, but when you're doing heavy duty multitasking every little bit counts!  There's also some devices that are literally incapable of converting between bit depths and sample rates, so they must be set correctly or else there will be issues!

As for deciding what bit depth and sample rate to use, that's up to your desired tastes and how much CPU power you're willing to dump into processing your chosen bit rate (the higher the bit depth, the more CPU required).  The default in most cases is 16 bits @ 44.1kHz, which produces CD-quality sound in general, but other options are available.  To help you decide I would suggest watching a video from Wikiemedia called "Digital Audio Explained - Samplerate and Bitdepth".  The video is geared more toward mastering and recording than working in real time, but it -- as well as his other videos -- are still valuable sources of information that will help you with producing the best sound possible, especially when working with plugins (which will be covered in another tutorial).

Once we know what bit depth and sample rate to use, it's time to set everything we intend to use to the same settings.  We'll do this in two different places, the first being any device specific control programs we have, along with Voicemeeter Banana's control panel entries in the start menu.  In my example above I've chosen 24 bits @ 48000Hz.  My Focusrite audio interface comes with its own control panel app, so in addition to setting it in Windows we need to set it's app correctly as well:


There are also two entries for Voicemeeter Banana in the Start menu, under "VB Audio"; one shown as "Virtual IO Control Panel" and the other "Virtual AUX IO Control Panel":



The other place to set everything up to match is in the 'sounds' portion of the control panel.  There are multiple ways of getting there, but one easy way that works for every version of Windows from NT up is to open the run dialog box (WIN key + R), and in the next window type "control mmsys.cpl sounds" (without the quotes) (source: Microsoft Support).


From the 'Sound' window that should have just come up, go to the 'Playback' tab if it isn't already selected.  Here is a listing of all of the output devices within your system, including the new virtual ones created by VMB and Virtual Audio Cable.  Starting at the first entry at the top of the list, double-click on that entry, then from there select the 'Advanced' tab.  Change what's listed in the 'Default Format' section to match what you set in the other apps above:


Under the 'Exclusive Mode' section, as a general rule, uncheck both boxes for every device entry listed unless you now exactly what you're doing.

Sometimes you'll run into a situation where a device has no listing for your chosen bit depth and sample rate, while others, like my Bose speakers, have no advanced tab whatsoever:


In cases with no advanced tab at all as long as it's an output device we can disregard and move on; despite having no advanced tab to set my speakers work just fine with VoiceMeeter.  In the case of having an advanced tab but no listing for your choice in format, however, you will either need to go back and re-set everything for a format that the device does support, or you may need to consider not using/replacing that particular device.

Once you've gone into each entry in the 'Playback' tab and set their default formats to match, select the 'Recording' tab and do the exact same thing with each entry listed there, following the guidelines we just went through above.  There's one more thing we'll be doing with the sound window but it won't be until later, so at this point you can push aside or close the 'Sound' window.

Step 4:  Configuration - VoiceMeeter Banana

Now let's start up VoiceMeeter Banana, which will be in the start menu listed under 'VB Audio'.  Once it opens click the 'Menu' button in the top right, then from the menu that comes up click on the 'System settings / Options...' entry (sixth entry from the bottom of the menu).


Right above the 'Patch Composite' section, toward the bottom, you'll see an entry marked "Preferred Main SampleRate".  Set that to match what you set in all the other entries above, then close the 'System settings / Options...' window.

Once we're back to the main VMB window click on the menu button again, and select the entry marked "System Tray (Run at Startup)" (seventh entry from the top of the menu).  Once that's done, close or minimize the VoiceMeeter Banana window.

Now it's time for that one last thing I said we would do with the sound control panel window.  If you closed it go ahead and bring it back up (refer to the method I outlined before if you run into trouble), then go to the 'Playback' tab again. This time, find the entry marked "Speakers, VB-Audio VoiceMeeter VAIO" and right-click on it.  from the menu that comes up, choose the entry marked "Set as Default Device"; when you do that, a green checkmark will appear in the entry you just modified.  Now find the entry marked "Speakers, VB-Audio VoiceMeeter AUX VAIO" (usually right above the one you just modified), right-click, and choose "Set as Default Communication Device".  If you did everything right, it should look similar to the picture below:


Now select the 'Recording' tab and do the same thing, as shown below:


(NOTE: the 'CABLE-A' and 'CABLE-B' inputs and outputs that you see do not come with the free version of Virtual Audio Cable; you get those in a new download when you donate to VB Audio -- something I highly recommend if you find this useful)

Now that we've made the appropriate changes to format and default devices, go ahead and restart your PC.  VoiceMeeter Banana should start up automatically when you PC comes back up (it usually takes about 20-25 seconds on my PC).  Note that at this point you will not hear any sound; that's because we need to set up our inputs and outputs in VMB.  Open VoiceMeeter Banana via system tray icon or the start menu entry.

In the upper-right section of VMB, next to where it says 'HARDWARE OUT', you'll notice three buttons marked 'A1', 'A2', and 'A3'.  These are where you set up your outputs (speakers, headset, etc.).  When you click on them you'll see quite a selection in the menu, including multiple options for each device (as shown below):


VoiceMeeter Banana is capable of working with multiple types of sound drivers; you will see up to four available to choose from, depending on your configuration -- ASIO, KS, WDM, and MME.  

ASIO is a professional audio driver type and is the preferred one to use (least overhead, so in theory the least amount of latency/delay).  Since ASIO is considered to be a professional audio driver type, not every audio device will have an ASIO driver option available.  When in doubt, inquire with the device vendor.  'A1' is the only output entry that will show and utilize ASIO drivers, and it's important to note that for whatever reason you cannot directly choose an ASIO driver for your main microphone(s) later on; the only way to get it to work is to choose your ASIO audio interface's output in 'A1', which will automatically place any ASIO inputs for that same device in the input section (more on that later).  So if you want to use an ASIO driver for your input (preferred), you must select it's corresponding output to output slot A1.

KS is a kernel-mode driver that can perform almost as well as ASIO in many cases, but it's not always listed/available.  Even if it is, it's one of those things that either works well or doesn't work at all.  If you select a KS driver in any of the sections and you don't hear anything from that section, go to the menu button, select "System Settings / Options...", and in the next window look through the window for the status of that section you selected the KS driver for.  If there's an error, in my experience, don't even bother troubleshooting it; just choose a different driver type.

WDM is the next preferred driver type, which has been around since Windows Vista.  It's latency/delay is worse than ASIO or KS, but it's better than MME.

Lastly, MME drivers have been around since Windows 3.0 and are considered the safe bet; when all other driver types fail, this type should work.  You'll experience the most latency and therefore delay with this type of driver, but at least it'll work.

For each entry (A1, A2, and A3) choose a device/driver type that you wish to work with.  On my system, for example, my Focusrite Scarlett Solo audio interface (ASIO) is set to A1, my Bose speakers (MME) are set to A2, and A3 is set to a virtual audio cable.  If you don't have three devices to populate into those sections then it won't hurt to leave A2 and/or A3 empty.

NOTE: If, when you choose an output, the resulting sound is choppy or 'robotic', that's a sign that you need to increase the buffer size for that particular driver type.  Go to "Menu" --> "System Settings / Options..", and then from the next window, about halfway down on the left, you'll see entries for "Buffering MME", "Buffering WDM", "Buffering KS", and "Buffering ASIO".  click the entry for the type of driver you selected, increase the buffer size a bit, then back out of that window and from the "Menu" button select "Restart Audio Engine" (first entry in the menu at the top).  If that doesn't help it or if it doesn't help it enough, go back and increase the buffer further.  If you reach the max option and it's still choppy, you will probably need to select a different driver type.

As a general rule, you'll want to set the buffer just high enough to play smoothly; that way you're keeping the latency/delay down to a minimum.


Next, directly across from the 'Hardware Out' section of VMB, in the upper-left corner, are entries marked "Hardware Input 1", "Hardware Input 2", and "Hardware Input 3".  If it isn't obvious enough, this is where you will set up your microphone(s) and other inputs.  If you wish to use your ASIO mic that corresponds with the output you selected in the output "A1" section then you don't need to do anything; the fine print under "Hardware Input 1" should already read something like "A1 ASIO input (1 + 2)" and it's good to go.  If you have a secondary mic that you'd also like to use (one attached to a headset as a backup, for example), click the fine print under "Hardware Input 2" and select your desired device/driver type from the menu.

In my case, for example, I have my microphone (an Audio-Technica AT875R) connected via ASIO through my Focusrite interface to Hardware Input 1, while Input 2 is set to a virtual audio cable.  Input 3, for me, is unused.

As I said before for the output selections, if you select an input and it comes across as choppy or robotic, refer above to my steps on how to increase the buffer size for that particular driver type.

With that, your hardware configuration is complete.

Step 5: audio routing and shaping

Now that you've set up all the hardware, it's time to tell VoiceMeeter Banana what audio goes where.  The manual for VoiceMeeter Banana describes every aspect of the program in detail (and should really be read when you get the chance, as it will give you insight into extra functionality not covered here), but I'll be outlining the relevant sections we'll be using here as well.

First, let's look to the horizontal center of VMB, at the Virtual Inputs:


The input on the left, marked "Voicemeeter VAIO" is what we set to our default input in the sound control panel applet.  By default, all of our Windows sounds will be directed to this input (unless otherwise specified in a particular program).  The one on the right ("Voicemeeter AUX") is what we set to be our default communications input.  Anything set to use the default comm. input will be directed here (again, unless otherwise specified).  You'll see that you can quickly change the treble, mids, and bass of the sound coming in to each input, along with changing positional audio settings if you so wish.  Below the positional audio section you'll see the average fader gain slider for controlling overall input levels, along with a series of buttons, each labeled.  These labels correspond to VoiceMeeter's three hardware and two virtual outputs (A1-3 and B1-2, respectively).  Click the output(s) you wish to use/not use in order to toggle them on and off.

In the case of my PC, A1 is set to output to my headset, while A2 outputs to my speakers.  In most cases my two virtual outputs are set to play through those devices and that's it (I only plug in my headset when I'm using it and when I do use it I mute my speakers, so there's no overlap).  If I decided I wanted to play something from YouTube for all to hear in my discord voice channel, I would click on the 'B2' button in the 'Voicemeeter VAIO' section to the left ('B2' being the default communications output; more on that in a bit); while that B2 button is lit, everyone in the Discord channel would hear all of my Windows sounds that came through that input.

Though it's not being shown in the pic above, I usually have button B1 enabled in the left virtual input section as well; this output is what I send to OBS for streaming and/or recording.  

The last few buttons at the bottom -- 'M.C', 'solo' and 'Mute' -- would respectively mute the center channel in the case of a surround sound input (MC), mute everything but the center channel (solo), and of course mute that particular input entirely (Mute).

Now let's look at the outputs (marked 'Master Section'), shown in the bottom right of the VMB window:


Looking at the vertical center of this area we can see that each vertical section corresponds to our three hardware outputs (A1-3) and two virtual inputs (B1 & B2).  Virtual output B1 is the one we set to be our default output for Windows; any program with their input set to this output will hear anything that's directed to this output.  Likewise, virtual output B2 is what we set to be our default communications device; any app or game set to listen to the Windows default comm. device output will hear anything that's directed to this output.

Each output has a volume slider, and another series of buttons, although most of these buttons have different functionality.  The top button refers to the bus mode of each output; these shape and add to the output differently, depending on the mode used.  In the example above my headphones (A1) have a standard 2-channel output while my Bose speakers, despite being a 2.1 speaker setup, will attempt to 'virtualize' surround sound sources, so to me they sound a lot better using the 'Stereo Repeat' mode.  Page 19 of the VoiceMeeter Banana manual provides more info on each bus mode.  Set the bus mode of each output to what sounds best for you.

The 'mono' and 'mute' buttons are self explanatory.

The 'EQ' button toggles the built-in parametric EQ function of VMB for that particular output.  Right-clicking the EQ button brings up the EQ window:


This is a parametric EQ with all of the standard functionality; one can adjust levels, notch out specific frequencies, etc.  Page 16 of VMB's manual provides more info.  My particular gripe with this part of VMB is that there's no built-in way to visualize audio without using an external program, so without external assistance it's hard to know which frequencies you want to adjust and to what extent you wish to work with them.  With all of the functionality that was baked into VoiceMeeter Banana, going that extra step and providing a built-in spectrum analyzer would've made this section a lot easier to use.  As it is, I use a plugin for my EQ purposes (which will be covered in another tutorial).

Now let's look at one of the hardware inputs; in this case, Hardware Input 1:


Like the other input sections there's a fader slider for line signal level, buttons corresponding to our various outputs, as well as our mono, solo, and mute buttons.  To the left of our fader is a visual representation of our input.  Above that, in the 'Audibility' section, is a compressor (with 'auto make-up' permanently enabled), and a basic noise gate.  These two features in theory are nice, but in practice are less than ideal: being unable to turn off auto make-up, the compressor just acts as an amplifier of sorts (noise and all), while I found that the noise gate would cut off the beginning and/or end of my sentences when I talked, without additional advanced options to correct the problem.  For those needing a compressor and/or a noise gate I suggest using plugins with VoiceMeeter (which I will be covering in another tutorial).

The section I left for last is referred to as 'Intellipan'.  This is where the microphone magic happens, and it couldn't be much easier!  simply move the orange-ish marker around as needed to adjust the output of your mic to your liking.  The pic below will give you a basic idea:


While the above is more than enough to shape vocal audio in most cases, right-clicking on the Intellipan window changes it to offer position and modulation options to further modify your input.  Page 14 of the VoiceMeeter Banana manual provides more info on these options.

You'll notice in the 'Hardware Input 1' example pic above that I have buttons A3 and B2 enabled.  As I mentioned earlier, virtual output B2 is the default communications output.  This is where I set all of my voice apps to listen to.  A3 is not in use right now in my case, but this output is actually one of the virtual audio cables we installed in the beginning.  This virtual output could be used to pipe sound to another voice app or other program, where I might want to have different output settings (mono vs. stereo or even surround sound, different EQ effects, etc.).  Having the ability to change and shape the sound for each individual input and output offers a great deal of control to our overall audio setup.

The last thing I'll just mention briefly is the VBAN (VB Audio Network):


The "VBAN" button at the top of the main VoiceMeeter Banana window brings up a new window mirroring the one above, and allows for network streaming to and from other devices as well as remote control, MIDI functions, and more.  There's a lot to cover here, so I will be writing a separate tutorial for this.

At some point in the near future I plan to set up a second microphone to Hardware Input 2 for others at the other computer in my room, so as to stream and trash talk together, while Hardware Input 3 I had planned to use with a sound board or software jingle machine for sound effects (such as MT32-SPLite, also created by VB Audio).  The point is that I have the option to do any of these things and much more; what we've set up here is only a small portion of what VoiceMeeter Banana is capable of.  I really do suggest reading the manual for VMB to get more insight into its capabilities, and if you can find it within you I would recommend donating to VB Audio for making these awesome products -- give credit where credit is due!

At this point, you're done!  VoiceMeeter Banana is now your default Windows audio mixer and volume control, so use it instead of the standard Windows sound tray applet to adjust things.  Let me know in the comments section what you thought about this article, and enjoy your new audio setup!



Comments

  1. Great article! The part that discusses bit rate and setting a consistent bit rate across all playback and recording devices is priceless. It would be nice to add 'Set Max Latency:' parameter to the tutorial.

    ReplyDelete

Post a Comment

Popular posts from this blog

New Tutorial: Audio Mixing and Shaping Using Voicemeeter Banana and Virtual Audio Cable

How to block prompts to enable/disable site notifications in Chrome

An Introduction