explaingit

juce-framework/juce

8,406C++Audience · developerComplexity · 4/5Setup · hard

TLDR

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.

Mindmap

mindmap
  root((JUCE))
    What it does
      Audio plugin framework
      Cross-platform apps
      Write once compile all
    Plugin Formats
      VST and VST3
      AU and AUv3
      AAX and LV2
    Platforms
      macOS and iOS
      Windows
      Linux and Android
    Build Tools
      CMake
      Projucer
      Xcode and MSVC
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a VST3 or AU audio plug-in for digital audio workstations using C++ with a single cross-platform codebase.

USE CASE 2

Create a standalone desktop audio application that compiles for macOS, Windows, and Linux without platform-specific rewrites.

USE CASE 3

Write an iOS or Android audio app sharing the same C++ code as your desktop version to avoid duplicating logic.

Tech stack

C++CMakeProjucerXcodeVisual Studio

Getting it running

Difficulty · hard Time to first run · 1h+

Requires a C++17 compiler and platform-specific toolchain, AAX format needs separate Avid developer registration and signing.

In plain English

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.

Copy-paste prompts

Prompt 1
I'm building a VST3 plug-in with JUCE. Write me a minimal C++ AudioProcessor subclass that applies a simple gain to a stereo audio buffer.
Prompt 2
Help me set up a new JUCE project with CMake using FetchContent so it builds on both macOS and Windows without the Projucer.
Prompt 3
I'm using JUCE's Projucer to export for Xcode. What are the minimum settings I need to configure for a standalone app with microphone input?
Prompt 4
Write a JUCE AudioProcessorValueTreeState setup with a single gain parameter and connect it to a Slider component in the editor.
Open on GitHub → Explain another repo

← juce-framework on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.