Skip to content

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

xcode-select --install
brew install cmake ninja

Clone JUCE locally (example):

git clone https://github.com/juce-framework/JUCE.git ~/dev/JUCE

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:

.\scripts\build_installer.ps1

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)

cmake -B build -G "Visual Studio 17 2023"
cmake --build build --config Release

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

chmod +x ./scripts/build_macos_au.sh
./scripts/build_macos_au.sh --juce-path ~/dev/JUCE --install

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:

chmod +x ./scripts/build_macos_pkg.sh
./scripts/build_macos_pkg.sh --juce-path ~/dev/JUCE

To build a smaller installer without the AU, override --formats:

./scripts/build_macos_pkg.sh --juce-path ~/dev/JUCE --formats VST3,STANDALONE

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:/JUCE on 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_AU option (default ON). CLAP is disabled (OVT_ENABLE_CLAP=OFF).
  • On macOS, the deployment target is forced to 11.0 for 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:

sudo cmake --install build-mac

Dedicated macOS guides

For step-by-step details specific to macOS, refer to: