FAQ: Real-time VST effects (Windows, needs extra hardware)

One of the common complaints we get is that Audacity cannot use real-time VST effects (or the graphic interface for VST effects - the Audacity Team’s hands are tied here due to legal restraints).
Edit Note: Audacity 1.3.8 and later now supports graphical interfaces for VST effects.

However, I have found a partial work-around using a separate piece of software.

Note that setting this up will probably require you to change a number of your computer’s settings. If everything is working the way you want now and you’re a little bit worried about changing things around, stop now and proceed no further. You have been warned. Furthermore, if you’re setup to only use softsynths you will be able to Multi-track while you’re recording. If you’re setup to use effects, there’s a good chance you won’t be able to listen to all the other tracks while yo’ure recording, so this still has it’s limits. But it’s miles better than using Audacity’s VST_enabler option. You have been warned a second time.

If the following two things apply to you, then this FAQ will explain how to use a separate program to host VST effects and softsynths and route the audio back into Audacity. It is not the ideal solution, but it does work:

  1. You are a Windows* user and can run this free program: Vsthost
  2. You have hardware with well-written drivers and at least 2 sets of stereo inputs and 2 or 3 sets of stereo outputs. You will need to be able to access each of these stereo pairs separately in Audacity’s edit → preferences → audio i/o menu (it’s up to your drivers to make this possible). You will also need enough cabling to physically plug all these ports together. Having 3 outputs is highly recommended, and not all that uncommon. But since we require more inputs, this kind of hardware probably won’t come standard with a new computer.
    • As for the difference between XP and Vista, I can’t say. I’m an XP user, but I will edit this FAQ to reflect any differences for Vista users if someone sends me a private message.

Before we begin, I will define my hardware inputs and outputs: I have 2 stereo inputs labeled Ain and Bin and 3 stereo outputs labeled Aout, Bout, and Cout. Get a piece of paper and write down what each connection is labeled in your computer’s software, it will vary from computer to computer.

Here’s what our final signal chain should look like:
Audacity output (optional) → Vsthost → Audacity input → Speakers

Right off the bat, plug your speakers or headphones into Aout unless you don’t mind not hearing what you’re playing (I don’t recommend not using speakers, but it isn’t strictly necessary to use them). You will need to set up your driver software in order to monitor Bin, this may not be set by default (mine wasn’t). I can’t tell you exactly how to do this, but this wiki page will be helpful:

Step 1: Audacity output → Vsthost (optional)
If you’re only interested in running VST softsynths, then you can skip this step. But if you are trying to apply a real-time effect (where you can change the parameter of the effect while it’s running), then you need to get the audio out of Audacity and into Vsthost so we can start mangling it. You will need an Audacity project with the audio that you want to apply the effect to.

1a: Audacity
In Audacity’s edit → preferences → audio i/o menu, select Bout as the Playback device.

1b: VSThost
For this next part, you’re kind of on your own. I’m not an expert using VSThost, but it isn’t too scary. In VST host, use the following menus to set things up (I have to use this order, you might find a better way):

  • Devices → Wave: I’m using ASIO drivers, this might not be necessary.

Devices → MIDI: Optional, I use a keyboard for softsynths and real-time control.

Devices → ASIO Channel Selection: Optional, select which inputs and outputs you want VSThost to have access to, make sure Ain and Cout are among them.

Engine → Configure: Make sure Ain and Cout are among the ports selected in the Input and Output tabs here.

Plugin → Assign Input Channels and Plugin → Assign Output channels: You’ll have to refer to the ports you have selected in the previous menu to make this final assignment. Remember that we want Ain and Cout.

OK, actually maybe that is a little scary… But it’s doable. Unfortunately we can’t really offer any in depth help with VSThost, it’s not our program.

In case you didn’t catch it, in this step we want VSThost to see the audio come out of Audacity, then apply the effect in real-time. So we need to run a cable from Bout to Ain.

Step 2: Vsthost output → Audacity input
In this step we need to assign VSThost to use Cout and tell Audacity to use Bin to record from.

In Audacity select Bin as your Recording Source.

In VSThost, if you haven’t already, go through the steps I already listed and make sure it is set to use Cout. Softsynth only users, take note, see Step 1b and ignore any mention of inputs.

Now, run a cable from Cout to Bin.

At this point, Audacity is set to record using Bin. If you haven’t set up your speakers to monitor the Bin source, then you won’t be able to hear what you’re recording. This isn’t good, but it might not be a show-stopper. See the Monitoring section above.

Make some noise
To use a VST effect: Play something out of Audacity, alter it using the real-time controls in VSThost, and press Record in Audacity to capture it.

To use a VST softsynth: Play the softsynth using VSThost and press Record in Audacity. In this case you can leave Aout set as Audacity’s Playback source.

Any comments can be sent directly to me by clicking on my username at the top of this post and sending me a private message. I do my best to answer them, but I make no promises. Don’t be annoyed if I send you back to the message board to ask a question. Some questions are worth answering in a public forum.

See this topic for software solutions for audio routing on all operating systems, avoiding the need for physical cables: