AudioChain is a JUCE-based application that processes audio input through a customizable plugin chain supporting VST2, VST3, and Audio Unit formats. This enables real-time audio processing and effects for any audio source on your system, supporting both macOS and Windows platforms.
- macOS 10.12 or later
- Xcode 12.0 or later
- JUCE 6.0 or later
- Audio hardware with Core Audio support
- Windows 10 or later
- Visual Studio 2019/2022 (Community edition is free)
- JUCE 6.0 or later
- WASAPI/DirectSound audio support (built-in)
- ASIO-compatible audio hardware (recommended for low latency)
- CMake 3.15 or later
- C++ Compiler with C++17 support:
- macOS: Xcode 12.0 or later (with Xcode Command Line Tools)
- Windows: Visual Studio 2019/2022 (Community edition is free)
- Git (for fetching JUCE dependency)
- Ensure you have VST3 plugins installed on your system
AudioChain uses CMake for cross-platform building with automatic JUCE dependency management.
# Clone the repository
git clone <your-repo-url>
cd AudioChain
# Initialize and update submodules (includes VST2 SDK)
git submodule update --init --recursive
# Create build directory
mkdir build
cd build
# Configure the project
cmake ..
# Build the project
cmake --build . --config Release
macOS:
# Initialize submodules first
git submodule update --init --recursive
# Configure for Xcode (optional)
cmake -G "Xcode" ..
# Or build directly with make
cmake ..
make -j$(nproc)
Windows:
# Initialize submodules first
git submodule update --init --recursive
# Configure for Visual Studio 2022
cmake -G "Visual Studio 17 2022" -A x64 ..
# Or configure for Visual Studio 2019
cmake -G "Visual Studio 16 2019" -A x64 ..
# Build
cmake --build . --config Release
Debug Build:
cmake --build . --config Debug
Specify Build Type (macOS):
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
The built application will be located in:
- Windows:
build/AudioChain_artefacts/Release/AudioChain.exe
- macOS:
build/AudioChain_artefacts/Release/AudioChain.app
AudioChain supports VST2, VST3, and Audio Unit plugins. VST2 support is automatically enabled through the included git submodule.
VST2 SDK Setup: The VST2 SDK is included as a git submodule and will be automatically available when you initialize submodules:
# VST2 SDK is automatically included when you run:
git submodule update --init --recursive
VST2 Plugin Support:
- File Extensions:
.vst
(both files and bundles on macOS),.dll
(Windows) - Scanning: VST2 plugins are automatically discovered during recursive directory scanning
- Auto-Detection: CMake automatically enables VST2 support when the submodule is initialized
- Source: VST2 SDK from https://github.com/R-Tur/VST_SDK_2.4 (included as submodule)
AudioChain supports ASIO for low-latency audio on Windows. In CI/CD builds, the ASIO SDK is automatically downloaded and enabled. For local development, you can optionally set up ASIO support manually.
✅ Automatic Setup: The GitHub Actions workflow automatically downloads the ASIO SDK 2.3.3 and enables ASIO support in Windows builds.
To enable ASIO support in your local development environment:
- Visit Steinberg Developers
- Download the ASIO SDK 2.3
- Extract the downloaded SDK to
external/asiosdk_2.3.3_2019-06-14/
in your AudioChain project directory - CMake will automatically detect and enable ASIO support if the SDK is present
- Rebuild the project:
cd build cmake .. cmake --build . --config Release
Note: ASIO support is optional for local development. AudioChain will work without it using DirectSound and WASAPI drivers on Windows. CMake will automatically configure ASIO support when the SDK is detected.
- Download and install BlackHole virtual audio driver: https://github.com/ExistentialAudio/BlackHole
- Set BlackHole as the output device in applications you want to process
- In AudioChain use the BlackHole input device as the input device and your speakers as the output device
- Audio will flow: App → BlackHole → AudioChain → Your Speakers
- Install VB-Audio Virtual Cable or similar virtual audio driver
- Set the virtual cable as output in applications you want to process
- In AudioChain use the virtual cable input device as the input device and your speakers as the output device
- Audio will flow: App → virtual cable → AudioChain → Your Speakers
Note: Creating true virtual audio devices requires system-level drivers. AudioChain works best with existing virtual audio solutions like BlackHole (macOS) or VB-Audio Cable (Windows).
- Adding Plugins: Click "Add Plugin" to browse available plugins
- Reordering: Drag plugin slots to reorder the processing chain
- Bypass: Use the bypass button to enable/disable individual plugins
- Editing: Click "Edit" to open a plugin's native editor interface
- Removing: Click "Remove" to unload a plugin from the chain
- Level Meters: Monitor L/R channel levels in real-time
- Visual Feedback: Plugin slots show activity and bypass status with color coding
- Status Display: Current device status and performance metrics
- Sample Rate: 44.1 kHz (default, configurable)
- Buffer Size: 512 samples (default, configurable)
- Channels: Stereo (2 channels)
Plugins are automatically scanned from standard locations (recursively):
VST3 Plugins:
- macOS:
/Library/Audio/Plug-Ins/VST3/
,~/Library/Audio/Plug-Ins/VST3/
- Windows:
C:\Program Files\Common Files\VST3\
,C:\Program Files (x86)\Common Files\VST3\
VST2 Plugins (if VST2 SDK is installed):
- macOS:
/Library/Audio/Plug-Ins/VST/
,~/Library/Audio/Plug-Ins/VST/
- Windows:
C:\Program Files\Steinberg\VSTPlugins\
,C:\Program Files (x86)\Steinberg\VSTPlugins\
Audio Unit Plugins (macOS only):
- macOS:
/Library/Audio/Plug-Ins/Components/
,~/Library/Audio/Plug-Ins/Components/
- AudioChain doesn't create a system-visible virtual device by itself
- Recommended solution: Install BlackHole (macOS) or VB-Audio Cable (Windows)
- Alternative: Use AudioChain's system audio monitoring mode
- For true virtual device: Requires third-party virtual audio drivers
- Check: Console output for virtual device status messages
- Permissions: Ensure AudioChain has microphone/audio access permissions
- No plugins showing in browser:
- Check that VST3 plugins are installed in standard locations
- Look at console output (Debug) for scanning information
- Try refreshing the plugin browser
- Verify plugins are 64-bit compatible
- Plugin scanning locations:
- macOS:
/Library/Audio/Plug-Ins/VST3/
,~/Library/Audio/Plug-Ins/VST3/
- Windows:
C:\Program Files\Common Files\VST3\
- macOS:
- Increase audio buffer size
- Close unnecessary applications
- Check CPU usage in Activity Monitor/Task Manager
- Grant microphone/audio access in System Preferences > Security & Privacy
- Run with administrator privileges if needed