Fixing Audio for Live Streaming without Special Hardware

Chris Board

Oct 17, 202010 min read
streamingtutorial

A few months ago, I recently started live streaming development of a side project I am working on called Crash Catch, for more information on this project you can check out the website at https://crashcatch.com. I started live streaming on Twitch at twitch.tv/boardy89 back in March/April sort of time working on the project using a combination of ReactJS, PHP and C++.

I didn't have any special hardware for live streaming, no special light boxes, no fancy camera, the only thing I had was a standard Logitech C920 Web Cam (seems like everyone has one of those) and a fairly powerful PC. The first couple of streams, I made do with what I had, but very quickly found the microphone in the web cam wasn't great and caused a weird muffled/echo sounding, so very quickly picked up a new mic. I think any streamer, probably needs to invest in a relatively decent microphone to ensure everyone can hear you clearly. Doesn't need to be expensive, I got a pretty standard £60 microphone from Amazon which fixed the microphone issue.

However, I wanted to have a bit of background music in the streams as I think it helps to make it a little more interesting, especially in situations where maybe I've gone a bit quiet, most likely when something doesn't work as expected and I question, am I actually a developer ?.

I had no way of splitting the audio from my headset and into the stream and not come through the PC speakers, so the first few streams relied on not having a headset and allowing the background music to get picked up by the microphone. Although this worked, it sounded pretty terrible so I started looking for a solution.

One of the first things I found was hardware related fix by using a mixer, with GoXLR being popular with a lot of streamers. However, its quite expensive, and even the mini one (just the mixers no audio sampling/modification) was still quite expensive, and being new to streaming, and not 100% sure whether its something I wanted to do long term didn't want to pay out that much, plus the other problem, being its quite big and desk space is fairly limited, so I continued looking for other options.

Eventually I found a solution and this is where I decided to do a blog post about it. It took a lot of trial and error to get it working correctly, so hoping that if you are looking into streaming, whether its gaming, or development or something else, this post might help you get started.

So in order to fix the audio, I used two programs (both are required as they work together), one being Virtual Audio Cable and VoiceMeeter Banana. Note that these instructions and links are for Windows, I don't know whether this works if you are using something else such as Linux or MacOS.

Installing the Software

First things first, is to install the Virtual Audio Cable. There was nothing special, just keep clicking next taking the default installation options to be safe. You may get a driver installation confirmation asking if you are sure you want to trust the driver, you will need to say yes to this confirmation so the driver successfully installs, if you do not do this, then this set up will not work.

Once the virtual media cable is installed, you can now install VoiceMeeter Banana, again just use the default install options to make sure nothing gets broken during the install. Once installed, start VoiceMeeter Banana and you should see something similar to the below (note my screenshot below is already configured)

VoiceMeeter Banana

It can look a little daunting when you first view the software, and there is a bit of configuration required and trial and error to get it in the right state, but once you understand all the controls and how they are labelled its fairly straight forward.

So lets first set up your output devices. In the top right corner (above the cassette tape) you'll see 3 buttons, A1, A2 and A3. This let you set up your output devices. When you click on these buttons, you'll see a dropdown device with a list of your audio equipment. Each item is duplicated with a different driver in the front of it, such WDM, KS and MME. I'm not 100% sure what the difference, but the recommendation is to use WDM by default and only attempt the other versions if WDM doesn't work. I believe WDM is the most efficient and most likely to work, the others might have a higher impact of CPU usage I believe. Below is how I set up my devices (your devices are highly likely to differ in name:

A1: WDM RealkTek High Definition Audio - This is my usual PC speakers
A2: WDM Sonly Handsfree Headset - As the name implies this is my wireless bluetooth headphones
A3: KS VB AudioPoint - There wasn't a WDM version and this is the special virutal cable and will be used specifically by Spotify. This will allow us to keep system audio and Spotify audio separate so you can control the volume of Spotify independently in your headset to your system sounds/stream.

Next is to set up your input devices.

So on the left hand side you have the main mixers (the first 3) which are your hardware inputs.

It doesn't matter which hardware input device is used where but below is how I've set up mine: (Note underneath each heading you'll have small text saying "Select input device", this is where you need to click and you'll see a dropdown list with all of your input devices. Again each will start with WD<, KS or MME and again select WDM by default, and only try another one if it doesn't work.

Hardware Input 1: Microphone (LCS USB Audio)
Hardware Input 2: VB-Audio Point

So this is the basic set up within VoiceMeeter, now we need to set up your default sound devices from within Windows itself.

In the bottom right corner of your start menu you should see a little speaker icon (depending on your Windows setup you might need to click the up arrow to reveal all icons). Right click on this icon and click on sound settings and you should see something similar to the below:

Windows Sound Settings

Under output, you need to select your default output device. So select the dropdown and select the following device "VoiceMeeter Input (VB-Audio VoiceMeeter VAIO)"

Now make sure you that you have your music app open such as Spotify. Once this is open towards the bottom of the sound settings window you'll see advanced options "App volume device preferences" Click this and you'll see all of the apps that are currently playing, or have played audio. You should see Spotify, but if not, briefly play something and then it should appear.

Under the output dropdown alongside the row of Spotify change the dropdown from default to "VoiceMeeter Aux Input (VB-Audio VoiceMeeter AUX VAIO)

Now it can get a little confusing on how to set things up. So lets break up the VoiceMeeter screen as to what things mean.

Description of each section within VoiceMeeter

On the first 5 mixers, you can see there's various buttons, A1, A2, A3 and B1 and B2. These are toggle buttons and dictates where this audio mixer is directed.

If you remember from above, A1, A2 and A3 device options are in the top right corner of the window and lets you select which audio output device you want to use. I've selected A1 to be my PC speakers, A2 is my wireless headset and A3 is the Virtual Audio Cable.

There's two virtual inputs.

"VoiceMeeter VAIO" is set to be windows default sound output device. This means all sounds such as system sounds come through this virtual input. Currently from the screenshot above this virtual device is being directed to A1, therefore sounds generated by the system, will come through this virtual input and be sent to the PC speakers. When streaming, I turn off A1 and switch on A2 so PC speakers are no longer used and instead sound comes through the headet. If I didn't want any system sounds myself I could turn both of these off.

The second virtual input labelled "VoiceMeeter AUX" has been set up within Windows so that Spotify is sending its audio into this input. This virtual input device, is pointing to A3, A3 being the VB-Audio Point and VB-Audio Point is selected under Hardware Input 2. Hardware input 2 has the toggle buttons for A2 and B2 is switched on. This means that the Spotify audio comes into virtual input AUX, sent to Hardware Input 2, and the audio coming into this input, is routed to A2 (my headset) and B2 (the virtual output device).

So that's the main system sounds and music sorted. Hardware input 1 is the microphone, this needs to be routed somewhere, so from the screenshot above, its been routed above to B1 so it is being mixed into the system sounds on the virtual input labelled as "Voicemeeter VAIO". Under the hardware input sound you can also route this to an output device such as your headset, although, I don't tend to do this because I have a bluetooth headset so there is a bit of a delay in what I am actually saying, and then what I hear back in my headset so its somewhat off putting.

That's it, that's the audio configured. If I want to adjust the audio within my headset, all I need to do is slide the mixer for A2 under the physical on the right hand side.

If I want to adjust the music being played by Spotify into the stream, I can slide the mixer for "Voicemeeter Aux" and then just adjust the mixer for A2 under the Physical section on the right hand side of the window. Although, if the music in the stream needs adjustment, then I'd rather do this within OBS and just use Voicemeeter to control the volume in my headset.

Speaking of OBS now that the audio is setup, we now need to configure OBS (Open Broadcaster Software) . I use OBS for recording and streaming which seems to be the most popular version. Although there are different forms of OBS such as Stream Labs OBS the instructions should be similar as these are more plugins on top of OBS from what I understand.

This tutorial isn't an instruction guide on OBS so if you are not familiar with setting up OBS, I'd recommend having a google, there's lots of tutorials and videos on how to configure.

I have set up an Audio Output Capture source which uses the device "VoiceMeeter Aux Input (VB-Audio VoiceMeeter AUX VAIO). This will capture and send the system sounds and microphone. When created in the audio fixer to the right hand sider of the sources box, you'll have a little slider to adjust the volume of this music being captured. This is where I usually control the sound going into the recording/streaming instead of adjusting the mixers in VoiceMeeter.

I then add a another source, this time being an audio input capture source. This is using the device "VoiceMeeter Output (VB-Audio VoiceMeeter VAIO)". This might seem a little confusing as it says its an output when a microphone is input, but its because its the output from VoiceMeeter. The micrphones input device is being routed out of the VoiceMeeter output and into the stream/recording.

So there you have it, a fairly simple set up to get you started streaming without needing to worry about buying expensive hardware.

If you have any questions or suggestions, or want to share your own streaming setups post them in the comments or on twitter at using @boardy89 and/or @BoardITSolution

Test Track

Are you a developer or involved in Quality Assurance Testing or User Acceptance Testing, you might be interested in Test Track

A simple and affordable test planning and management solution.