Categories: VATSIM

Splitting Discord and VATSIM audio with Voicemeeter Potato

This post is no longer current. See the new post on how to do this with the latest VoiceMeeter Potato beta and VectorAudio.

If you fly or do ATC on VATSIM chances are you’re also in Discord. You’re either chatting with your friends while flying or having a few laughs with CTR while fixing flight plans working GND.

It’s fun… until someone is talking on Discord and audio comes through on VATSIM. Now you’ve missed your new heading from approach or some poor pilot called for clearance and you have to go “Uhhh, sorry, say again?”

What if you could split the audio so Discord is only in your left headset ear and VATSIM audio was in your right headset ear? Or even better, what if Discord would just automatically mute whenever VATSIM audio happens? Well either one is possible with Voicemeeter Potato, a bizzarely named piece of magical software. This post will show you how to do it.

Step 1: Install Voicemeeter Potato

Download Voicemeeter Potato. Make sure it’s the Potato version, not Standard or Banana.

Make sure to reboot your computer after installing. Yes, you really have to reboot.

VoiceMeeter provides three separate input devices that we’ll use in later steps. One will receive Discord audio, one will receive audio from VATSIM, and the third will handle all other system audio.

Step 2: Configure Discord

Open Discord settings and select Voice & Video. Change the output device to VoiceMeeter Input (VB-Audio VoiceMeeter VAIO):

Step 3: Configure Audio for VATSIM/vPilot/xPilot/etc.

Whatever app generates the audio from VATSIM needs to get updated to use the Voicemeeter Potato output device.

If you’re running Audio For VATSIM select Settings and change the Headset Device to VoiceMeeter AUX Input (VB-Audio VoiceMeeter AUX VAIO):

If you’re running vPilot select Settings then Audio and change the Output Device to VoiceMeeter AUX Input (VB-Audio VoiceMeeter AUX VAIO):

I’ve never used xPilot but I assume its audio settings are similar to vPilot. Regardless of where your VATSIM audio comes from you should change it to use VoiceMeeter AUX Input (VB-Audio VoiceMeeter AUX VAIO) for the output device.

Step 4: Set up the VoiceMeeter Potato basic settings

Run VoiceMeeter Potato. The screen will be large and overwhelming. Don’t panic.

In the top right select the Menu button and pick System tray and Run on Windows Startup:

In the top right third of the screen click on the A1 button and select the WDM output that corresponds to your primary PC speakers. This is the channel all audio except Discord and VATSIM will flow to. In my case it’s my external speakers so A1 looks like this:

Next click on the A2 button and select the WDM output that corresponds to your headset. This is the channel Discord and VATSIM audio will flow to. In my case it’s a second output jack on my PC’s front panel so A2 looks like this:

With the output devices configured the next step is to tell VoiceMeeter what inputs to send to the output devices. In the middle of the VoiceMeeter window are three virtual inputs: VoiceMeeter VAIO (this will be Discord audio), VoiceMeeter AUX (this will be VATSIM audio) and VAIO 3 (this is all other audio). Map them to the appropriate output devices by setting the A1 and A2 buttons for each input appropriately:

At this point you should stop and test that the audio is working correctly. Get in a Discord voice chat and on VATSIM and verify that you are hearing Discord and VATSIM audio through your headset, and all other audio is going through your speakers.

Now for the fun part: splitting audio to different channels or auto-ducking.

Option 1: Split audio to two different headset channels

To put the Discord audio in your left ear and VATSIM audio in your right ear you change the balance of the two input channels by dragging the red dot to the left (for the VAIO input) and to the right (for the AUX input):

Hop on Discord and VATSIM and verify this works.

Option 2: Auto-duck other sources on VATSIM audio transmissions

Instead of splitting audio to two different channels you can use VoiceMeeter to automatically mute all other audio whenever there’s VATSIM audio traffic. This is done with two VoiceMeeter macros.

From the Menu in the top right enable Run MacroButtons on Voicemeeter start:

This should open the MacroButtons window with a single button showing. Resize the window so you have two buttons visible.

Setting up auto-ducking when receiving VATSIM audio

Right click on the first button and configure it as follows:

strip(6) is a reference to the Voicemeeter AUX virtual input that receives VATSIM audio. The trigger at the bottom also references the Voicemeeter AUX input (even though it says in #7. Yes, it is confusing.) Whenever audio is detected on that input channel the macro will fire and put the AUX input in solo mode, muting all other system audio. When the audio stops the macro will wait 500ms and then re-enable all the other audio channels.

You can use the red and green arrow to fine-tune the audio level required to trigger the start and stop action.

Setting up auto-ducking when transmitting on VATSIM

This step assumes you have a keyboard push to talk key configured for VATSIM audio.

Right click on the second macro button and configure it as follows:

Change the Keyboard Shortcut setting to match the keyboard key you push to talk on VATSIM.

It is possible to do it via a HID device button as well (such as a joystick), however I haven’t done that and don’t know how the HID Device Button section works. See the VoiceMeeter manual for more info if you want to use a joystick button instead.

That’s it! Hop on Discord and VATSIM and verify this works. All system audio should mute whenever you receive or send VATSIM audio then unmute when the transmission is done.

Other variations

Don’t want to mute *all* audio when VATSIM audio happens and just want to mute Discord? Change the macros to do strip(5).mute = 1 and strip(5).mute = 0 for the on and off requests respectively. strip(5) references the Voicemeeter VAIO virtual input and mutes/unmutes just that channel.

Don’t want to completely mute Discord audio? Use strip(5).fadeto = (-15.0, 100); and strip(5).fadeto = (0.0, 200); for a subtle fade in and out.

Don’t want to completely mute system audio but still want to mute Discord audio? Combine the two approaches to mute Discord and fade system audio:

strip(5).mute = 1
strip(7).fadeto = (-15.0, 100);

then unmute and unfade:

strip(5).mute = 0
strip(7).fadeto = (0, 200);

strip(7) references the VAIO 3 virtual input which is carrying all other system audio.

Many more options are available, basically whatever you can control via the VoiceMeeter UI you can also set via macros. See the VoiceMeeter user manual for all the details.

Article info