Prerequisites
Required Tools
- CMake 3.21 or later (required for CLAP plugin support)
- Git with submodule support
- Python 3 interpreter
- Platform-specific build tools:
- macOS: Xcode or Xcode Command Line Tools
- Windows: Visual Studio 2019 or 2022
- Linux: GCC or Clang, Make
Linux Dependencies
Refer to the JUCE Linux Dependencies documentation and use the full command to install all required packages. Typical dependencies include:libasound2-devlibx11-devlibxrandr-devlibxinerama-devlibxcursor-devlibfreetype6-devlibwebkit2gtk-4.0-devlibglu1-mesa-dev
Clone the Repository
Build Configuration
Basic Build
CMake Build Options
Customize your build with CMake options using-D<OPTION>=<VALUE>:
Performance Options
| Option | Default | Description |
|---|---|---|
QUICK_BUILD | OFF | Skip slow-to-compile features (Gem, sfizz, ffmpeg) for faster iteration |
CMAKE_BUILD_TYPE | Release | Build type: Release, Debug, RelWithDebInfo |
Feature Toggles
| Option | Default | Description |
|---|---|---|
ENABLE_GEM | ON | Enable Gem graphics and video library |
ENABLE_SFIZZ | ON | Enable sfizz library for [sfz~] object |
ENABLE_FFMPEG | ON | Enable FFmpeg for audio/video file playback |
ENABLE_PERFETTO | OFF | Enable Perfetto performance profiling (advanced) |
ENABLE_TESTING | OFF | Enable end-to-end test suite |
Advanced Options
| Option | Default | Description |
|---|---|---|
ENABLE_ASAN | OFF | Enable AddressSanitizer for debugging memory issues |
ENABLE_WAYLAND | OFF | Enable native Wayland support (Linux, experimental) |
MACOS_LEGACY | OFF | Support older macOS versions (10.11+, x86_64 only) |
Example Configurations
Performance Profiling with Perfetto
Perfetto provides detailed performance analysis of DSP and UI operations.void myProcessingFunction() {
TRACE_COMPONENT(); // Automatically traces this function
// ... your code ...
}
Open traces at ui.perfetto.dev or follow the Melatonin Perfetto guide.
Platform-Specific Notes
macOS
Deployment Targets:- Standard: macOS 10.15+ (Universal Binary: arm64 + x86_64)
- Legacy: macOS 10.11+ (x86_64 only) with
MACOS_LEGACY=ON - iOS: iOS 12.0+
NANOVG_METAL_IMPLEMENTATION=OFF to disable.
Windows
Visual Studio:- Tested with VS 2019 and VS 2022
- Use x64 architecture:
-A x64 - ASIO support is automatically included
MultiThreaded[Debug]
Linux
Audio Backends:- ALSA (enabled by default)
- JACK (enabled by default)
wayland-client, wayland-cursor, xkbcommon, libdecor-0, egl
BSD
On BSD systems, Gem and sfizz are automatically disabled due to compatibility issues.
Build Outputs
After building, plugins and standalone app are located in:Installing
To install system-wide:Troubleshooting
CMake Version Too Old
Submodules Not Initialized
git submodule update --init --recursive
Python Not Found
Linux Missing Dependencies
Solution: Install all JUCE dependencies as listed in the Linux Dependencies documentation.Next Steps
Adding Externals
Learn how to add custom Pure Data externals
Performance Optimization
Optimize your patches for better performance
