Enabling ASIO for the JUCE Plug-In Host
Setting up ASIO support when building the JUCE plugin host
Testing is a major component of plugin creation. Opening the DAW and reloading the plugin every time is simply not practical. Thankfully, tools like the JUCE plug-in host make the task easier.
The plugin host application is provided as source code, which we must build ourselves. The default build options don't support ASIO audio. However, if you are using a test setup that includes virtual audio routing, you would most probably need ASIO. This article outlines how to build the plugin host application with ASIO support.
Step 1 - Download the Steinberg ASIO SDK
ASIO (Audio Stream Input/Output) is a driver protocol for digital audio specified by Steinberg. To compile an ASIO application, you must first download the ASIO SDK from Steinberg. Download and extract the files into your system.
Step 2 - Configure settings in Projucer
Checkout a completely clean copy of the JUCE library, which contains the source for building the plugin host. To access the host, go to the subdirectory
/extras/AudioPluginHost/ and open the
.jucer file with Projucer. You need to set up two things here.
- Enable ASIO: On the left pane, navigate to
Modules > juce_audio_devices. Select the dropdown menu for
JUCE_ASIOand set it to
- Add ASIO headers: In
Exporters, navigate to the release build of your build configuration of choice. Paste the path to the
commonfolder for the ASIO SDK in the
Header Search Pathsfield.
This will configure your project to build the ASIO component. Now click the Save and Open in IDE button.
Step 3 - Build the project
Select the release build configuration (which is the configuration we modified) and build it. After the build finishes, you can find the AudioPluginHost executable under the relevant build folder.
Now in the JUCE plug-in host you should be able to select ASIO under
Options > Change the Audio Device Settings > Audio Device Type.