Build Guide¶
This guide explains how to compile OpenVoxTuner from source on Windows and macOS. OpenVoxTuner uses the native JUCE 8 CMake support (no Projucer required), with C++17 as the standard.
Prerequisites¶
Common¶
- JUCE 8 (Starter Free / AGPLv3) — default path on Windows is
C:/JUCE - CMake >= 3.22
- A C++17 compiler (MSVC on Windows, Clang on macOS)
- Git LFS (for binary resources)
Windows¶
- Visual Studio 2022
- CMake >= 3.22
- JUCE 8 (default path in CMake is
C:/JUCE) - Git LFS
macOS¶
Clone JUCE locally (example):
Plugin formats¶
| Format | Windows | macOS |
|---|---|---|
| VST3 | ✅ | ✅ |
| AU | — | ✅ |
| Standalone | ✅ | ✅ |
| ARA2 | ✅ | ✅ |
About CLAP and AAX
CLAP is not available in JUCE 8.x (verified up to 8.0.14) and is therefore not built. AAX (Pro Tools) is not built in the default configuration — it requires an Avid Developer account and the PACE/iLok SDK. See the Deployment and Packaging Guide for details.
Building on Windows¶
Using the build script¶
# Debug build
.\scripts\build.ps1 -Configuration Debug
# Release build
.\scripts\build.ps1 -Configuration Release
Windows installer (Inno Setup)¶
Requires Inno Setup installed:
This produces OpenVoxTuner_Windows_Installer.exe, which copies the VST3 to
C:\Program Files\Common Files\VST3\ and the Standalone to C:\Program Files\OpenVoxTuner\.
Manual CMake (alternative)¶
Building on macOS¶
Three scripts are provided (each supports --help):
| Script | Purpose |
|---|---|
scripts/build_macos_vst3.sh |
Build the VST3 (and optionally install it locally) |
scripts/build_macos_au.sh |
Build the AU (and optionally install it locally) |
scripts/build_macos_pkg.sh |
Generate a macOS .pkg installer |
VST3¶
chmod +x ./scripts/build_macos_vst3.sh
./scripts/build_macos_vst3.sh --juce-path ~/dev/JUCE --install
Expected artifact: build-mac/OpenVoxTuner_artefacts/Release/VST3/OpenVoxTuner.vst3
Installed to ~/Library/Audio/Plug-Ins/VST3 when --install is used.
Useful options:
# Universal (Apple Silicon + Intel), without installation
./scripts/build_macos_vst3.sh --juce-path ~/dev/JUCE --arch "arm64;x86_64"
# Build arm64 only
./scripts/build_macos_vst3.sh --juce-path ~/dev/JUCE --arch arm64
AU¶
Expected artifact: build-mac-au/OpenVoxTuner_artefacts/Release/AU/OpenVoxTuner.component
Installed to ~/Library/Audio/Plug-Ins/Components/OpenVoxTuner.component.
.pkg installer¶
The official releases ship a signed & notarized .pkg with VST3 + AU + Standalone.
By default the script builds VST3 + AU + STANDALONE:
To build a smaller installer without the AU, override --formats:
The generated .pkg installs:
/Library/Audio/Plug-Ins/VST3/OpenVoxTuner.vst3/Library/Audio/Plug-Ins/Components/OpenVoxTuner.component(if AU is included)/Applications/OpenVoxTuner.app(Standalone)
Signing the package (Developer ID Installer):
./scripts/build_macos_pkg.sh \
--juce-path ~/dev/JUCE \
--sign-installer "Developer ID Installer: Your Name (TEAMID)"
Manual CMake on macOS (alternative)¶
cmake -S . -B build-mac -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DJUCE_PATH=~/dev/JUCE \
-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64"
cmake --build build-mac --config Release --target OpenVoxTuner_VST3
CMake configuration notes¶
- Standard C++17 is enforced (
CMAKE_CXX_STANDARD 17). - JUCE path defaults to
C:/JUCEon Windows; pass-DJUCE_PATH=...if JUCE lives elsewhere. - ARA2 is enabled by default (
OVT_ENABLE_ARA=ON) and can be disabled for hosts that do not support it (e.g. Ableton Live, FL Studio). - On macOS, the AU format is enabled via the
OVT_ENABLE_AUoption (defaultON). CLAP is disabled (OVT_ENABLE_CLAP=OFF). - On macOS, the deployment target is forced to
11.0for compatibility with JUCE 8, and unguarded-availability warnings are disabled (needed for "insider" SDKs such as Xcode 17+ / macOS 26.x).
Installing to system plugin folders (macOS)¶
After a build, you can deploy all plugin formats system-wide:
Dedicated macOS guides¶
For step-by-step details specific to macOS, refer to:
Related pages¶
- Installation — install the plugin once it is built.
- Testing — build and run the unit test suite.
- Deployment and Packaging Guide — signing, notarization, and release workflow.