JUCE
JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, LV2 and AAX audio plug-ins.
A C++ framework for building audio plug-ins and desktop apps that run on Mac, Windows, Linux, iOS, and Android from a single codebase, supporting all major plugin formats like VST3, AU, and AAX.
JUCE is an open-source C++ framework for building desktop and mobile applications, with a particular focus on audio software. It is widely used for creating audio plug-ins in formats like VST, VST3, AU, AUv3, AAX, and LV2, which are the standard formats supported by digital audio workstations. You can also use it to build full standalone applications.
The framework runs on macOS, Windows, Linux, iOS, and Android. Developers write their application code once in C++, and JUCE takes care of making it work across these platforms. It handles things like audio processing, user interface drawing, file handling, and networking so the developer does not have to implement each of these things separately for every operating system.
JUCE includes a companion tool called the Projucer, which is a project setup tool. You use it to configure your project and then export it into the native project format for Xcode on Mac, Visual Studio on Windows, or Linux Makefiles. This avoids manually setting up the build system for each platform. Alternatively, projects can be managed with CMake, a widely used build tool. The README includes the exact commands needed to build the included example projects with CMake.
To build JUCE projects, you need a C++17-compatible compiler. Minimum versions are specified for each platform, including Xcode 12.4 on macOS, Visual Studio 2019 on Windows, and GCC 7 or Clang 6 on Linux.
For audio plug-ins targeting Pro Tools in particular, the AAX format requires a separate digital signing step through Avid, the company that makes Pro Tools. The README explains the steps: register as an AAX developer, test with a developer build of Pro Tools, then apply for signing tools from PACE Anti-Piracy.
Where it fits
- Build a VST3 or AU audio plug-in for digital audio workstations using C++ with a single cross-platform codebase.
- Create a standalone desktop audio application that compiles for macOS, Windows, and Linux without platform-specific rewrites.
- Write an iOS or Android audio app sharing the same C++ code as your desktop version to avoid duplicating logic.