Fact-checked by Grok 2 weeks ago

JUCE

JUCE is an open-source, cross-platform C++ designed primarily for developing audio applications, plug-ins, and related software for desktop and mobile platforms. It supports major operating systems including Windows, macOS, , iOS, and , enabling developers to create standalone applications as well as audio plug-ins in formats such as VST, VST3, , AUv3, , and AAX. Developed by Jules Storer, JUCE originated in the early as a codebase extracted from the Tracktion digital audio workstation project, which Storer founded to address the need for a flexible, native C++ foundation in audio . Over the years, it evolved from a static into a modular , with significant milestones including the introduction of version 2.0's module system, amalgamated builds for easier distribution, and tools like the Projucer (formerly Introjucer) for . By the , JUCE had become a standard in the audio industry, powering professional tools and expanding beyond audio to general and application development. Key features of JUCE include comprehensive (digital signal processing) components for audio manipulation, cross-platform toolkits for consistent user interfaces, and utilities for handling threading, file I/O, and networking, all while abstracting platform-specific differences to streamline development. It emphasizes and future-proofing, allowing the same codebase to target multiple plug-in hosts and operating systems without extensive rewrites. Recent updates, such as those in JUCE 8, have introduced enhancements like improved text rendering, UI integration for modern web technologies, and optimized renderers for better performance on Windows. JUCE is dual-licensed under the proprietary JUCE License and the GNU AGPLv3, providing flexibility for both commercial and open-source projects; the proprietary license requires payment for certain commercial uses, such as distributing closed-source applications or plug-ins, while the AGPLv3 option mandates source code sharing for modifications. It is widely adopted by major companies in the audio sector, including , Avid, , , and , underscoring its role as the de facto framework for professional audio software development.

Introduction

Overview

JUCE is an open-source C++ application framework designed for developing desktop, mobile, and audio plugin applications, particularly in the audio software domain. It provides a comprehensive set of tools and libraries that enable developers to create cross-platform applications with a single codebase, supporting platforms such as Windows, macOS, Linux, iOS, and Android. The framework emphasizes rapid prototyping and development, allowing for the creation of native-looking graphical user interfaces (GUIs), efficient audio processing pipelines, and compatible audio plugins in formats like VST, VST3, AU, AUv3, AAX, and LV2. Central to JUCE's purpose is its facilitation of high-performance audio , where it supplies pre-built () blocks and utilities for handling audio I/O, , and real-time processing. This enables developers to focus on application logic rather than low-level platform-specific implementations, resulting in consistent user experiences across diverse environments. As stated on its official site, "JUCE is the most widely used framework for audio application and development." JUCE has achieved widespread adoption in the professional audio industry, powering products from over 60 major companies, including , Avid, and . Its modular architecture and extensive community support have made it a cornerstone for both commercial and open-source audio projects, underscoring its reliability and versatility in professional workflows. The framework operates under a dual-licensing model, offering open-source access alongside commercial options for proprietary development.

Licensing and Distribution

JUCE operates under a dual-licensing model, offering the GNU Affero General Public License version 3 (AGPLv3) for open-source development and a commercial for closed-source applications. The AGPLv3 requires that any modifications or derivative works be distributed with , particularly when the software is accessed over a , ensuring that users can access and modify the codebase. In contrast, the commercial allows developers to create without disclosing , making it suitable for products intended for sale or internal use without open-source obligations. The framework is distributed through its official GitHub repository at juce-framework/JUCE, where the source code is available under the AGPLv3, and via direct downloads from the JUCE website at juce.com. This setup enables free access for open-source projects while directing commercial users to purchase licenses through the JUCE store. Historically, JUCE's open-source option was under the as of JUCE 5 in 2017, with core modules like juce_core under the permissive . The licensing evolved with the release of JUCE 8 in 2024, shifting the open-source variant from GPLv3 to AGPLv3 to better address network-based usage scenarios, while preserving commercial licensing options. Following the 2020 acquisition by PACE Anti-Piracy Inc., commercial licenses have continued to be offered in tiers such as Indie, Pro, and Enterprise, with enterprise support available by contacting [email protected].

History

Origins and Early Development

JUCE was created by Julian Storer in 2004 as a C++ framework derived from the proprietary codebase he developed for Tracktion, his first released in 2002. Storer released JUCE through his company, Raw Material Software Ltd. The name "JUCE" stands for "Jules' Utility Class Extensions," reflecting its origins as a personal utility library tailored to Storer's needs in audio . This foundational work addressed the lack of suitable cross-platform tools available at the time for building audio applications, evolving from small custom components into a more structured library. The initial public release of JUCE occurred in 2004 under the GNU General Public License (GPL) version 2, marking its debut as to encourage community contributions in development. This licensing choice aimed to support collaborative efforts among developers creating plugins for formats like VST and (AU), which were gaining prominence in the early 2000s music production ecosystem. By open-sourcing the code, Storer enabled broader access to robust, reusable components that could reduce development barriers for independent audio software creators. Early development emphasized cross-platform graphical user interfaces (GUIs) and fundamental audio (I/O) functionality, providing essential building blocks for plugin wrappers and standalone audio tools on Windows and macOS. A key milestone came with version 1.46 in 2008, which expanded support to , enhancing JUCE's portability and appeal for diverse development environments. These advancements solidified JUCE's role as a foundational toolkit for audio programming during its formative years.

Ownership Changes and Evolution

In 2014, , a company known for its innovative expressive controllers like the Seaboard, acquired JUCE to integrate it more deeply with their hardware ecosystem and expand its capabilities for cross-platform audio applications. This move facilitated significant enhancements in mobile development support, particularly for and , enabling developers to build high-performance audio apps for these platforms with improved integration for processing. Under ROLI's stewardship, JUCE version 4, dubbed "Grapefruit," was released in 2015, introducing features like Android Pro Audio support and broader mobile toolchain compatibility, which broadened JUCE's appeal beyond desktop audio plugins to mobile and embedded applications. By 2020, ROLI faced severe financial difficulties, including administration proceedings, prompting the sale of non-core assets to stabilize operations. JUCE was transferred to , a specializing in software protection and licensing solutions like , in April of that year. This acquisition shifted JUCE's strategic focus toward long-term stability, enhanced commercial viability through better licensing tools, and accelerated growth in markets, with PACE committing to an ambitious development roadmap while retaining the existing JUCE team for continuity. Following the transition to PACE, JUCE's evolution emphasized expanded plugin format support, including native integration in version 7 (released in 2022) for open-source ecosystems and strengthened AAX compatibility leveraging PACE's expertise in Avid signing. Roadmap priorities also included ongoing commitments to operating system compatibility, such as native support and updates for evolving macOS, Windows, and versions to ensure seamless cross-platform deployment. These changes have bolstered JUCE's role as a robust framework for both open-source and commercial projects. The ownership shifts have profoundly impacted JUCE's licensing and maintenance model, culminating in a dual-licensing approach that includes the AGPLv3 alongside the JUCE starting with version 8 in 2024, promoting greater open-source accessibility while accommodating commercial needs. PACE's involvement has enabled the hiring and retention of core developers dedicated to sustained open-source maintenance, ensuring regular updates, community contributions, and framework reliability for thousands of audio software developers worldwide.

Platform and Compiler Support

Supported Operating Systems and Devices

JUCE provides cross-platform support for developing and deploying audio applications and plugins across desktop and mobile environments, ensuring consistent functionality through its C++ framework. The framework targets modern operating systems, with runtime deployment starting from , macOS 10.11, mainstream distributions, , and 5 (API level 21). This support encompasses both x86 and architectures, including for macOS and , as well as ARM64 for and , allowing developers to build native applications without platform-specific code changes. On desktop platforms, JUCE enables applications to run on and later versions, including support for x86_64, x86, ARM64, and ARM64EC processors, up to the latest releases like Windows 11. For macOS, compatibility begins with version 10.11 () and extends to current versions, with native optimization for both x86_64 and ARM64 hardware; building on requires macOS 11.0 or later. Linux support focuses on mainstream distributions such as , , and , targeting x86_64 and ARM64/aarch64 architectures, though ARMv7 compatibility remains untested; the framework relies on kernel versions compatible with these distros. For mobile devices, JUCE supports and later, including , on ARM64, ARM64e devices, and x86_64 simulators, facilitating app development for iPhones, iPads, and Apple Silicon-based systems; building for iOS requires on macOS 10.15.4 or later for , or 11.0 or later for . Android compatibility starts at level 21 ( 5.0 ), covering architectures like arm64-v8a, armeabi-v7a, x86_64, and x86, with integration for devices running up to the latest Android versions. These mobile targets emphasize ARM64 for performance on contemporary smartphones and tablets. JUCE also extends its platform support to audio plugin hosts within digital audio workstations (DAWs) on these operating systems, providing native integration for formats like VST, VST3, , and AAX, with built-in audio routing capabilities that adapt to the host environment's OS-specific APIs. Minimum hardware requirements align with standard C++ application needs, such as a multi-core processor (e.g., i5 or equivalent ), 4 GB , and sufficient storage for development tools, though mobile deployments prioritize ARM64 for efficient resource use on battery-powered devices.

Supported Compilers and Toolchains

JUCE requires the standard or later for compilation, with support for features where available. The framework is compatible with several major compilers, enabling development for desktop, mobile, and embedded targets. versions 7 and later are supported, particularly for Linux builds and cross-compilation scenarios. Clang/LLVM versions 6 and later provide primary support for macOS and development via , while also being viable on Windows and . For Windows desktop and UWP applications, 2019 and later editions, utilizing the MSVC compiler, are required. Additional toolchains include the (version 26 or later), 12.4 or later for Apple platforms, and 3.22 or higher to facilitate custom build configurations across platforms. As of 2025, JUCE remains compatible with the most recent compiler releases, such as 14, 18, and MSVC in 2022, while the codebase adheres to strict coding standards to ensure ongoing reliability.

Core Features

User Interface and Graphics

JUCE provides a comprehensive cross-platform framework built around customizable components such as buttons, sliders, and menus, enabling developers to create interactive for desktop and mobile applications. The framework's LookAndFeel classes serve as the core mechanism for defining the visual appearance and behavior of these components, allowing subclasses to implement platform-specific "skins" that approximate native aesthetics on Windows, macOS, , iOS, and . For instance, LookAndFeel_V4, introduced in 2017, offers modern styling options including gradient fills, rounded corners, and customizable color schemes, which can be applied globally or to individual components to ensure consistency across an application. This approach prioritizes flexibility over strict native widget usage, permitting fine-grained control while supporting anti-aliased rendering for smooth visuals on high-DPI displays. At the heart of JUCE's graphics capabilities is the juce::Graphics context, a high-level for vector drawing that handles rendering within component paint methods or directly onto images. It supports essential operations like drawing paths, filling shapes with gradients or tiled images, rendering fonts with subpixel , and manipulating images with transformations such as and . The context automatically manages platform-specific backends, ensuring consistent output across operating systems, and includes utilities for high-quality resampling to preserve detail in scaled content. Developers can override the Component::paint() method to receive a Graphics object, enabling custom drawing of elements like waveforms or custom controls with precise control over line styles, fills, and text alignment. For hardware-accelerated rendering, JUCE integrates juce::OpenGLContext, which attaches to any Component to enable efficient 2D and 3D graphics using or desktop APIs. This context supports advanced features including programs via GLSL, for images and framebuffers, and multisampled for reduced jagged edges in complex scenes. It facilitates continuous rendering through callbacks like renderNextFrame(), making it suitable for real-time visualizations such as animated graphs or effects previews, while handling context switching and resource cleanup to maintain performance on resource-constrained devices. With the release of JUCE 8 in , the framework introduced a backend as the default renderer on Windows, leveraging GPU acceleration for significantly faster drawing operations compared to the previous software-based approach. This update also enhanced text rendering with improved layout algorithms, better support for complex scripts, and configurable line spacing options to address previous limitations in multilingual applications. These changes ensure higher frame rates for intricate UIs, such as those with layered transparency or high-resolution assets, without requiring developers to modify existing codebases.

Audio Processing and MIDI

JUCE provides robust tools for audio input and output through the juce::AudioDeviceManager , which manages low-latency streaming of audio and data across multiple devices. This allows developers to initialize audio devices by specifying input and output channels, sample rates, and buffer sizes, while supporting dynamic switching between available device types. On macOS, it utilizes CoreAudio as the primary backend for high-performance, low-latency access to hardware. For Windows, it supports for professional low-latency applications, and WASAPI or DirectSound for general consumer use, enabling selection from multiple device types. On , compatibility extends to ALSA for standard audio interfaces and JACK for real-time, low-latency professional workflows, with device availability determined at runtime. AudioDeviceManager redirects incoming and outgoing data to registered callbacks, ensuring efficient handling of multiple audio streams while providing thread-safe locks for synchronization. The framework's (DSP) capabilities are encapsulated in the juce::dsp , offering a suite of optimized classes for common audio operations. Developers can implement filters using classes such as IIR::Filter for processing, FIR::Filter for designs, and StateVariableFilter for versatile low-pass, high-pass, and band-pass configurations. Oscillators are supported via the Oscillator class, which generates waveforms based on user-defined functions, suitable for tasks. (FFT) functionality is provided by the FFT class for frequency-domain analysis and the Convolution class for efficient stereo processing using partitioned techniques. These modules incorporate SIMD () optimizations through wrappers like SIMDRegister, leveraging platform-native instructions to accelerate computations on modern CPUs without requiring manual vectorization. Additional utilities, such as AudioBlock for lightweight sample data handling and ProcessorChain for sequencing multiple DSP elements, facilitate modular and performant signal flow designs. MIDI protocol integration is handled primarily through the juce::MidiMessage class, which enables parsing, creation, and manipulation of events in audio applications. This class constructs messages from raw byte data, supporting standard types like note on/off, program changes, pitch wheel adjustments, and system exclusive (SysEx) messages, with automatic detection of message boundaries. Developers can generate events using static factory methods, such as noteOn(int [channel](/page/Channel), int noteNumber, float [velocity](/page/Velocity)), and query properties like number, (0-127), or via getter methods. Timestamping allows precise timing with audio buffers, essential for real-time performance in virtual instruments or sequencers. Integration with audio processing occurs seamlessly, as messages can be processed alongside audio in callbacks, enabling responsive control of synthesizers or effects without blocking the main thread. Real-time audio processing in JUCE relies on the juce::AudioProcessor base class, which defines the core interface for deterministic signal handling in plugins and standalone applications. The processBlock method serves as the primary callback, invoked by the audio engine to render blocks of input/output samples and events, accommodating variable sizes and channel configurations. To ensure low-jitter performance, this callback executes exclusively on a dedicated audio , prohibiting direct interactions or blocking operations that could introduce . Threading safety is maintained via a CriticalSection lock, which synchronizes access to shared resources during processing, while mechanisms like suspendProcessing allow temporary pauses for non- tasks. Asynchronous updates, such as those via ChangeBroadcaster, bridge audio and threads, preserving determinism while enabling responsive parameter controls.

Plugin Formats and Integration

JUCE provides comprehensive support for developing audio plugins compatible with major industry standards, including VST and VST3 from , AU and AUv3 from Apple, AAX from Avid, and LV2 for and open-source environments. This enables developers to create plugins that integrate seamlessly into workstations (DAWs) and other host applications across various platforms. Additionally, JUCE facilitates hosting of third-party plugins through the juce::AudioPluginInstance class, which wraps external plugins in formats such as VST, VST3, AU, AUv3, and LV2, allowing them to be loaded and managed within custom applications. At the core of plugin development in JUCE is the juce::AudioProcessor base class, which serves as the foundational wrapper for handling audio processing logic. This class manages plugin parameters through methods like addParameter and getParameters, enabling the creation of automatable controls that hosts can manipulate. It also supports the attachment of editor GUIs via createEditor, providing a standardized for user interaction, and includes preset management features such as getNumPrograms, setCurrentProgram, and state serialization with getStateInformation and setStateInformation for saving and loading plugin states. Integration with host environments is streamlined through JUCE's automatic handling of essential callbacks and features. The manages host notifications via methods like processBlock for audio processing, prepareToPlay for initialization, and releaseResources for cleanup, ensuring reliable communication between the plugin and its host. Sidechaining is supported through multi-bus configurations, where addBus and setBusesLayout allow for auxiliary inputs like sidechain signals, while multi-channel I/O is handled dynamically with queries for input/output channel counts and bus layouts to accommodate and flexible routing. A key advantage of JUCE is its cross-format portability, where a single C++ codebase can be compiled into multiple formats without extensive modifications, leveraging platform-specific wrappers under the hood. This is achieved through the Projucer tool or build systems like , which configure exports for each format. For ensuring compliance, developers can use open-source validation tools such as pluginval, a cross-platform tester that simulates environments to check for crashes, threading issues, and format-specific adherence, helping maintain stability across DAWs.

Development Tools

Projucer

The Projucer is JUCE's cross-platform tool designed for creating, configuring, and managing projects, serving as the primary project configuration and management tool for JUCE-based applications and plugins. It streamlines the initial setup process by allowing developers to define project types such as GUI applications, audio plugins (including VST, AU, and AAX formats), console applications, or libraries, while automatically generating boilerplate code and essential configuration files. Through its intuitive interface, users can specify project names, company details, and build settings, ensuring compatibility across multiple targets from a single interface. A core functionality of the Projucer involves module configuration, where developers select and customize JUCE modules—such as juce_audio_basics for fundamental audio processing components or for user interface elements—by enabling them, adjusting paths to module sources, and resolving dependencies automatically to avoid conflicts. Once configured, the tool exports projects to various integrated development environments (IDEs) and build systems, including for macOS and iOS development, for Windows, Makefiles for environments, and for mobile targets, generating ready-to-build files like .xcodeproj, .sln, or CMakeLists.txt equivalents. This export process handles platform-specific settings, such as preprocessor definitions and linker flags, to facilitate seamless cross-platform development without manual reconfiguration. Key features enhance efficiency, including , which allows users to incorporate assets like images, fonts, or data files directly into the by selecting them in the and enabling the "Binary Resources" option; this generates BinaryData.h and BinaryData.cpp files containing compressed, accessible data via JUCE's MemoryInputStream and other utilities. is handled through a visual module list, where enabling one propagates required dependencies, such as linking juce_events with juce_core, while supporting custom module paths for third-party extensions. Additionally, the Projucer formerly included a live build feature powered by the engine, enabling real-time code editing and immediate visual feedback for prototyping; this was retired in 2021. The integrated editor was deprecated and removed in JUCE 8. The Projucer runs natively on Windows, macOS, and , providing consistent across desktop environments and supporting development for embedded targets like and via exported projects. It integrates with for advanced builds by generating compatible project files or serving as a command-line tool in pipelines to automate exports, allowing developers to leverage CMake's flexibility for complex dependencies while retaining Projucer's GUI-driven workflow for initial setup.

Build Systems and Utilities

JUCE offers robust integration as a primary build system alternative to the Projucer, facilitating cross-platform compilation of audio applications and plugins through standard CMake workflows. Developers can incorporate JUCE by adding it as a subdirectory with add_subdirectory(JUCE) or locating it via find_package(JUCE CONFIG REQUIRED), enabling the use of JUCE-specific functions to define targets such as executables, standalone applications, and plugin formats like VST3 or . Official CMake templates, located in the JUCE repository's examples/CMake directory, provide starting points for various project types, including support for custom JUCE modules via juce_add_modules and embedding binary assets with juce_add_binary_data. This setup allows seamless integration of third-party libraries, such as those managed by or , by leveraging CMake's target_link_libraries and package discovery mechanisms, ensuring compatibility across desktop platforms while requiring CMake 3.22 or higher. Several utilities complement JUCE's build processes, enhancing asset management and plugin reliability. The BinaryBuilder tool, included in the JUCE extras directory, automates the conversion of resource files (e.g., images, shaders, or audio samples) into embeddable C++ arrays, generating header and source files that can be directly included in projects to avoid runtime file dependencies. For plugin validation, pluginval—a cross-platform testing tool developed by Tracktion—scans and exercises plugins in simulated host environments, checking for crashes, memory leaks, and format compliance across VST, , and VST3, with configurable strictness levels suitable for integration into pipelines. Automation scripting is supported through CMakeLists.txt configurations, allowing developers to define custom build steps, preprocessor definitions, and conditional compilations for tasks like resource bundling or multi-target generation. IDE configurations for JUCE emphasize CMake-based workflows to enable efficient editing and debugging. CLion provides native support for JUCE projects by loading CMakeLists.txt files directly, offering features like code navigation across JUCE modules and integrated debugging for audio processing threads. For , the CMake Tools extension handles project configuration and building, while community extensions such as C/C++ IntelliSense and JUCE-specific snippet packs assist with for common classes like AudioProcessor and Component. Debugging setups involve configuring launch.json and tasks.json files to invoke CMake builds and attach to processes, supporting cross-platform iteration without Projucer exports. Best practices for JUCE builds prioritize C++17 compliance, as mandated by the framework's minimum requirements, ensuring access to modern features like std::filesystem while maintaining backward compatibility. Linking decisions—static versus dynamic—depend on deployment scenarios: static linking embeds JUCE into executables for self-contained distributions, reducing DLL dependencies but increasing binary size, whereas dynamic linking allows shared library reuse across applications, with JUCE defaulting to dynamic runtime linking on Windows for broader compatibility. Deployment scripts, often implemented via GitHub Actions or similar CI tools, automate multi-platform builds by specifying target architectures (e.g., x86_64 for macOS 10.15+ or Windows 10+), code signing for plugins, and packaging into installers, minimizing manual configuration errors.

Adoption and Community

Notable Applications and Plugins

JUCE has been instrumental in the development of several prominent workstations (DAWs) and plugin hosts. Tracktion , a full-featured DAW, is constructed using the Tracktion Engine, a modular audio framework integrated into JUCE, enabling cross-platform audio editing, sequencing, and plugin hosting capabilities. This engine powers 's efficient handling of multi-track projects and processing, demonstrating JUCE's suitability for complex host applications. Numerous high-profile audio plugins have been developed with JUCE, showcasing its versatility in professional effects and instruments. Spitfire Audio's LABS, a popular free plugin series offering sampled instruments and sound design tools, was built using JUCE combined with WebView for its user interface, facilitating seamless integration across major DAWs. Similarly, Vital, a spectral warping wavetable synthesizer by Matt Tytel, leverages JUCE for its core architecture, including open-sourced components that support advanced wavetable synthesis and visual editing features; its free tier has garnered widespread adoption among electronic music producers. Antares' Auto-Tune, the industry-standard pitch correction tool used in countless vocal productions, is among the plugins from the company developed with JUCE. JUCE also supports plugins from leading developers like iZotope, Eventide, and . iZotope employs JUCE in various audio processing modules, including components within , their flagship mastering suite, to deliver AI-assisted tools for , , and shaping. Eventide's effects plugins, renowned for algorithmic reverbs and delays like Blackhole, utilize JUCE for cross-format compatibility and low-latency performance. Arturia's software instruments, such as emulations of classic synthesizers in the V Collection, benefit from JUCE's graphics and handling to recreate vintage sounds with modern interfaces. Beyond plugins, JUCE enables standalone applications and mobile audio tools. incorporates JUCE in standalone synthesizers like those in their hardware-software ecosystem, allowing for portable, high-fidelity sound generation without a host DAW. similarly uses JUCE for certain standalone synthesizer applications, supporting their integration of and in cross-platform environments. On mobile devices, JUCE facilitates audio editors and processors, such as custom apps for real-time effects and sample manipulation, leveraging its and support for low-latency audio I/O.

Community Resources and Ecosystem

The JUCE developer community engages primarily through the official at forum.juce.com, which serves as a central hub for discussions, , bug reports, and sharing project experiences. The forum hosts dedicated categories for topics like general JUCE discussion, macOS/ development, and audio , fostering collaboration among users ranging from beginners to professionals. In 2025, insights from the annual JUCE User Survey, conducted via the forum, revealed key developer needs and toolchain preferences, including that two-thirds of respondents use as their build system while Projucer remains popular among free-tier users, and common challenges encompass threading models, clarity, and parameterization. These survey findings directly inform the JUCE , prioritizing enhancements in components, plugin APIs, and build system integrations. The GitHub repository for JUCE, maintained at juce-framework/JUCE, forms a vibrant part of the ecosystem with ongoing open issues and pull requests, enabling community-driven improvements and issue tracking. Surrounding this core repository, third-party modules extend JUCE's capabilities, such as the Gin module which integrates features including websockets and mapping tools for enhanced interactions, and the cxx-juce providing Rust bindings to JUCE's audio modules via the cxx interop library. These extensions, often curated in community lists like awesome-juce, allow developers to incorporate extras like -based processing or web-embedded interfaces without altering the main framework. Official learning resources are accessible via juce.com/learn, offering structured tutorials on essentials like Projucer setup, project creation for audio/ applications, and integration with IDEs such as and . The site includes an comprehensive API reference and video guides to accelerate onboarding, with examples demonstrating cross-platform builds and plugin development. Annual user surveys, including the 2025 edition, guide content updates; for instance, Q1 and Q3 roadmap posts in 2025 addressed survey feedback by expanding on build systems and adding tutorial sections for emerging formats like CLAP plugins. JUCE contributes to community events, including audio-focused meetups and conferences that promote open-source collaboration. In 2025, the JUCE team organized a in on April 17 for networking and information sharing among developers and users. Additionally, JUCE supports the Audio Developer Conference () 2025, held November 10-12 in , , as a hybrid event featuring talks on audio technologies and a program to encourage contributions from new developers. These gatherings highlight JUCE's role in broader open-source audio initiatives, with sessions on framework integrations and community-driven projects.

Version History

Major Releases Up to JUCE 7

JUCE originated in 2004 as a C++ framework developed by Julian Storer for cross-platform audio and applications, initially focusing on basic components for desktop software on Windows and macOS. Early versions 1 through 3, spanning 2004 to 2013, established core functionalities including foundational widgets, audio I/O handling, and support, while operating under a dual GPL/commercial licensing model that encouraged open-source contributions. These releases expanded platform compatibility, notably adding robust support for kernel series 2.6 and later, enabling developers to target environments for audio processing tasks. By version 3, enhancements in integration and utilities solidified JUCE as a go-to toolkit for development, supporting formats like VST and . In November 2015, JUCE 4 marked a significant evolution under new ownership following Ltd.'s acquisition of the framework in 2014, introducing comprehensive mobile support for and to facilitate porting desktop audio apps to touch-based platforms. Key additions included the Projucer tool for streamlined and exporter , alongside ROLI-specific enhancements like improved touch-surface integration for expressive controllers such as the Seaboard. These updates emphasized cross-platform consistency, allowing developers to build native UIs and audio engines with minimal code adjustments across desktop and mobile ecosystems. JUCE 5, released on April 27, 2017, shifted focus to refined audio workflows and accessibility, incorporating Inter App Audio support for collaboration and a revamped LookAndFeel class for customizable theming. DSP improvements featured optimized modules for effects processing, while licensing evolved with tiered commercial options (Personal, Indie, Pro) alongside the existing GPL for open-source use, aiming to better support independent developers without altering the core GPL terms. Accessibility enhancements laid groundwork for compatibility, and Android tools enabled seamless -to-Android audio app conversions, broadening adoption in mobile plugin ecosystems. Version 6, announced in April 2020 and fully released in June 2020, coincided with PACE Anti-Piracy Inc.'s acquisition, which bolstered licensing security while preserving development momentum. Major features included native integration for flexible builds, expanded VST3 hosting on , and new DSP primitives like DelayLine, , and for efficient real-time processing. Threading optimizations improved concurrency in audio callbacks, and additions such as components and Intel IPP-accelerated FFT enabled richer multimedia apps; headless mode further extended server-side and embedded use cases. JUCE 7, launched in April 2024, mandated as the minimum standard to leverage modern language features for safer and more performant code. Graphics advancements featured hardware-synchronized drawing on Windows, macOS, and for tear-free rendering, asynchronous modes on Apple platforms for responsive UIs, and Metal layer options for precise control. Plugin ecosystem expansions added format support for open-source interoperability and (ARA) SDK integration for non-real-time editing workflows, complemented by tools for validation and 2.0 API previews to streamline development and testing.

JUCE 8 and Recent Developments

JUCE 8 was initially released on June 12, 2024, marking a major update to the framework with enhancements focused on cross-platform UI performance and modern development workflows. Key features included a new Direct2D-based renderer for Windows, providing faster graphics rendering and support for Windows 10 and higher, along with improvements to handle large images and complex UIs more efficiently. The release also introduced WebView UI capabilities, enabling developers to integrate web technologies such as React and Vue directly into JUCE applications and plugins for building dynamic interfaces. Additionally, an improved text editor component was added, featuring enhanced Unicode support and low-level text rendering optimizations to maintain backward compatibility while addressing complex character handling. Throughout 2025, JUCE 8 received several point releases and advancements to bolster compatibility and usability. 8.0.6, released on January 10, 2025, included minor adjustments such as changing a toolchain error to a warning. The Q1 emphasized OS and compiler enhancements, including initial support for both applications and plugins, alongside local notifications to improve features. By mid-2025, 8.0.8 introduced refinements to the TextEditor layout behavior, new options for controlling text line spacing, and additional bug fixes and performance tweaks for the renderer, with further stability improvements in releases like 8.0.7 (April 2025). The Q3 updates further advanced optimizations and added previews for 2.0 integration in the AudioProcessor module. In September 2025, versions 8.0.9 and 8.0.10 added font feature support, improvements to windowing and text shaping, and macOS 26 compatibility, and fixes for WebView and other platform-specific issues. A user survey conducted in August 2025 revealed strong adoption of JUCE 8, with 72% of respondents using it in their latest projects, reflecting its impact on audio development workflows. The survey highlighted demands for expanded web UI tools, as only 13% currently utilize WebViews despite interest in frameworks like (mentioned by over 38% of respondents), and improved toolchains, with 67% favoring integration alongside Projucer. Looking ahead, previews for JUCE 9 began emerging in late 2025, focusing on enhanced capabilities through 2.0 support and expanded plugin formats, including native CLAP authoring alongside existing VST, , and AAX options. These developments aim to enable sample-accurate parameter automation and better embedded device compatibility, building on JUCE 8's foundations for more efficient audio processing pipelines.

References

  1. [1]
    JUCE: Home
    JUCE is the most widely used framework for audio application and plug-in development. It is an open source C++ codebase that can be used to create standalone ...Download · Tutorials · Documentation · WebView UIs
  2. [2]
    juce-framework/JUCE - GitHub
    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.
  3. [3]
    JUCE's History
    Sep 27, 2017 · API inspirations, how Tracktion got started, how JUCE was factored out and what the guts of Tracktion look like today as a result (since I ...Missing: creator | Show results with:creator
  4. [4]
    JUCE: Main Page
    The essential set of basic JUCE classes, as required by all the other JUCE modules. Includes text, container, memory, threading and i/o functionality.
  5. [5]
    What's New In JUCE 8 - JUCE
    JUCE 8 proudly doubles down on cross-platform C++ UI, bringing serious low-level enhancements to text rendering, a blazing fast Direct2D renderer on Windows.
  6. [6]
    Get JUCE
    Start coding with JUCE. Select a plan. Starter Free Indie $40 Per User / Per Month. Pro $175 Per User / Per Month. Educational Free.
  7. [7]
    The JUCE 8 End User Licence Agreement
    The JUCE 8 Framework can be licensed using one of the licence types (“Licence Types”) tabulated below, and you agree to only use the Framework as is allowed ...
  8. [8]
    https://raw.githubusercontent.com/juce-framework/J...
    ... framework licensed under a combination of open source and commercial licences. The JUCE Framework modules are dual-licensed under the [AGPLv3](https://www ...
  9. [9]
    JUCE 5 End User License Agreement
    This JUCE 5 end-user licence agreement (Agreement) is a legal agreement between you (Licensee or you) and Raw Material Software Limited (RMS, Licensor, us or ...Missing: AGPLv3 | Show results with:AGPLv3
  10. [10]
    [ARCHIVED] JUCE 8 EULA - Commercial / Licences
    Apr 18, 2024 · A JUCE 8 licence grants the holder the right to continue using JUCE 7 (and all other previous versions of JUCE) but if you wish to remain on a ...
  11. [11]
    JUCE Announces Acquisition by PACE Anti Piracy
    The JUCE team is delighted to announce the acquisition of JUCE by PACE Anti-Piracy Inc. Initially released in 2004, JUCE became part of ROLI Ltd. in 2014.
  12. [12]
    Giving some Juce to cross-platform tools - The Register
    Dec 18, 2006 · According to Wikipedia (see entry for "Tracktion"), the Juce C++ class library arose out of the work that Julian put into the development of his ...
  13. [13]
    Why do some devs go with Qt instead of JUCE for audio projects?
    Aug 1, 2024 · Some devs go with Qt instead of JUCE for audio projects. Both are C++ frameworks but JUCE scores better in cost and audio feature set.Starting from scratch. : r/JUCE - RedditSeriously?? : r/JUCE - RedditMore results from www.reddit.com
  14. [14]
    CppCast - JUCE Transcript and Discussion - PodScripts
    Rob and Jason are joined by Julian Storer to discuss the JUCE library. Jules has been developing audio and library software in C++ for over 15 years, and is the ...
  15. [15]
    JUCE: The Framework Powering Modern Audio Development
    Jan 7, 2025 · JUCE was created in 2004 by Jules Storer, a software engineer with a background in audio and music technology. At the time, Storer was ...
  16. [16]
    Raw Material Software releases JUCE v1.46 - KVR Audio
    Jun 18, 2008 · Raw Material Software has announced the release of version 1.46 of JUCE, the cross-platform C++ toolkit for developing applications and plugins on Windows, Mac ...
  17. [17]
    Music Hardware Maker ROLI Acquires JUCE, A Key Music Industry ...
    Nov 18, 2014 · The acquisition will enable ROLI to both expand the Seaboard's compatibility with existing 3rd party software, and develop JUCE as a toolkit for ...
  18. [18]
    [PDF] ROLI launches JUCE 4: Grapefruit JUCE and introduces the ICE ...
    Nov 4, 2015 · Grapefruit JUCE is also the first crossplatform tool to support Android Pro Audio. This follows several months of collaboration between the ...
  19. [19]
    JUCE 4.2 Now Available - KVR Audio
    Apr 8, 2016 · New features include support for Apple's AudioUnit format on iOS, allowing your iOS apps to be hosted as plug-ins to GarageBand, and more ...
  20. [20]
    iLok developer Pace acquires the JUCE development framework ...
    Apr 21, 2020 · Originally released in 2004, and picked up by ROLI in 2014, it's now ... Find out more about the JUCE acquisition on the JUCE website.
  21. [21]
    PACE Acquires JUCE Audio Development Platform From ROLI
    Apr 22, 2020 · PACE Anti-Piracy, developers of iLok, has acquired JUCE, a leading cross-platform audio development platform, from ROLI.
  22. [22]
    What's New in JUCE 7
    JUCE 7 brings substantial improvements to where and how you can process audio, with the Audio Random Access SDK, LV2 support, and a MIDI 2.0 API.
  23. [23]
    JUCE - PACE Anti-Piracy
    PACE is the leader in software security for JUCE. 400+ JUCE software houses use PACE to sign, license and protect their plug-ins and applications.Made With Juce, Protected By... · Pace Anti-Piracy For The... · How Does It Work?<|control11|><|separator|>
  24. [24]
    JUCE Roadmap Update Q1 2025
    The majority of the JUCE team's time is spent keeping the framework compatible with all of the latest operating systems, compilers and toolchains, C++ standards ...Missing: PACE | Show results with:PACE
  25. [25]
    JUCE & apps on Linux distros and backwards compatibility / cross ...
    Dec 4, 2020 · What in your opinions as JUCE devs is the proper setup for the most backwards compatible and cross-distribution ready release of an instrument?
  26. [26]
    None
    ### Extracted Compiler Detection and Version Requirements
  27. [27]
    juce::LookAndFeel Class Reference
    LookAndFeel objects define the appearance of all the JUCE widgets, and subclasses can be used to apply different 'skins' to the application.Missing: framework | Show results with:framework
  28. [28]
    juce::LookAndFeel_V4 Class Reference
    The latest JUCE look-and-feel style, as introduced in 2017. ... The documentation for this class was generated from the following file: juce_gui_basics/ ...
  29. [29]
    Tutorial: Customise the look and feel of your app - JUCE
    Using the LookAndFeel class you can perform simple customisations such as changing the default colours of certain components. But you can also customise the ...Missing: framework | Show results with:framework
  30. [30]
    juce::Graphics Class Reference
    A graphics context, used for drawing a component or image. When a Component needs painting, a Graphics context is passed to its Component::paint() method, ...highResamplingQuality · setGradientFill · setTiledImageFill · drawText
  31. [31]
    Tutorial: The Graphics class - JUCE
    This tutorial shows how to use a Graphics object to draw text, lines, and geometric shapes. This is fundamental to performing drawing in JUCE.
  32. [32]
    juce::OpenGLContext Class Reference
    Creates an OpenGL context, which can be attached to a component. To render some OpenGL, you should create an instance of an OpenGLContext, ...Public Member Functions · Static Public Member Functions · OpenGLVersion
  33. [33]
    JUCE 8 Feature Overview: Direct 2D
    The Direct2D renderer is now the default JUCE renderer on Windows. · Built on modern native platform APIs, Direct2D brings significant rendering and performance ...Missing: backend | Show results with:backend
  34. [34]
    JUCE 8 development platform released
    Jun 17, 2024 · Compatibility · macOS: macOS 10.11 · Windows: Windows 10 · Linux: Mainstream Linux distributions · iOS: iOS 12 · Android: Android 5 - Lollipop (API ...
  35. [35]
    JUCE: juce::AudioDeviceManager Class Reference
    ### Summary of AudioDeviceManager for Low-Latency Audio I/O
  36. [36]
    JUCE: juce::dsp Namespace Reference
    ### Summary of JUCE dsp Module
  37. [37]
    JUCE: juce::MidiMessage Class Reference
    ### Summary of juce::MidiMessage Functionality
  38. [38]
    juce::AudioProcessor Class Reference
    Base class for audio processing classes or plugins. This is intended to act as a base class of audio processor that is general enough to be wrapped as a VST ...Classes · Public Member Functions · Static Public Member Functions
  39. [39]
    Features - JUCE
    Operating System Compatibility​​ Build native applications and plug-ins that run on Windows, macOS, Linux, iOS and Android with a consistent user experience and ...<|control11|><|separator|>
  40. [40]
    juce::AudioPluginInstance Class Reference
    Base class for an active instance of a plugin. This derives from the AudioProcessor class, and adds some extra functionality that helps when wrapping ...
  41. [41]
  42. [42]
    Tracktion/pluginval: Cross platform plugin testing and validation tool
    pluginval is a cross-platform plugin validator and tester application. It is designed to be used by both plugin and host developers to ensure stability and ...
  43. [43]
    Tutorial: Projucer Part 1: Getting started with the Projucer
    This tutorial shows you how to install JUCE and how to create a new cross-platform JUCE project using the Projucer. You also learn how to export the project ...
  44. [44]
    Tutorial: Projucer Part 2: Manage your Projucer projects
    A very powerful cross-platform tool to manage all settings for your project, add source files, and much more.
  45. [45]
    Binary Resource Tutorial - Getting Started - JUCE Forum
    Mar 16, 2021 · BinaryData is code generated by the Projucer based on files that the user has added and checked the “Binary Resources” option in the Projucer's File Explorer.
  46. [46]
    Projucer 8.0.1 GUI Editor gone? - JUCE Forum
    Jul 29, 2024 · So we decided to maintain our own version of the Projucer, but our WYSIWYG and live coding workflow is decoupled from it. It's just a ...
  47. [47]
    CMake support in the Projucer - JUCE Forum
    Sep 26, 2017 · The JUCE team is currently investigating the best way of incorporating CMake support into the Projucer and it would be useful to get some community feedback.
  48. [48]
    Native, built-in CMake Support in JUCE
    Apr 14, 2020 · JUCE's CMake support is to allow users to write build configs that looks like 'normal' CMake. Modules, executables, plugins, and binary data are just normal ...
  49. [49]
    CLion and JUCE in 2021? - Development
    Jul 20, 2021 · Our whole team switched to CLion during the last year and it works great, but we are using it with the native CMake support added to JUCE since version 6.
  50. [50]
    Juce in vs code for windows - JUCE Forum
    Sep 10, 2024 · VScode can be incredibly productive for JUCE development. The main caveat is you need to create the launch.json and tasks.json configurations to build and ...
  51. [51]
    How to use JUCE with VS Code on Mac
    Nov 10, 2023 · You can indeed use VS Code with Mac but it does come with its own thingies. First, I would recommend using cmake instead of the projucer.
  52. [52]
    Dynamic vs static linking on Windows and Inno Setup - JUCE Forum
    Apr 19, 2018 · JUCE will now use dynamic linking for the Windows runtime by default, it is now best practice to link dynamically the Windows runtime library to our compiled ...
  53. [53]
    Develop with Tracktion Engine
    Tracktion Engine is provided in JUCE module format making it incredibly quick and easy to setup and start creating projects. We've included a bunch of examples ...
  54. [54]
    Tracktion/tracktion_engine: Tracktion Engine module - GitHub
    Tracktion Engine is supplied as a JUCE module so it can easily fit in to an existing JUCE application. You'll find the module code under modules/ ...
  55. [55]
    Jake from Spitfire Audio - JUCE
    Jake Mills is part of the team that built the latest iteration of the popular Spitfire LABS plugin using WebView and JUCE. We talk about his career path, ...
  56. [56]
    Matt Tytel from Vital Audio - JUCE
    Matt talks with us about the importance of the free tier, the decision to open-source Vital's JUCE repository, and his new shader-based graphics library, ...
  57. [57]
    Made With JUCE
    7thSense. Adobe. AMS Neve. Antares. Arturia. Audio Modeling. AudioKinetic. Avid. Bose. Bytedance. Corsair. Cycling74. Dolby. Eventide · InMusic. Izotope. Korg.
  58. [58]
    Develop your own shiny VST and test it locally
    It supports multiple plugin formats, such as VST, AUv2, AUv3, AAX, and LV2, and provides a rich set of features, such as audio processing, graphics, GUI, MIDI, ...
  59. [59]
    JUCE Forum
    Discover · What's New · Features · Learn · Documentation · Tutorials · Made with JUCE · Resources · Newsletter · Forum · Get JUCE · JUCE. The JUCE Forum ...JUCE Jobs · MacOSX and iOS · General JUCE discussion · Categories
  60. [60]
    The 2025 JUCE User Survey Results - News and Announcements
    Aug 12, 2025 · When asked about what version of JUCE your latest project uses, the large majority (72%) have moved to JUCE 8, with about 1 in 6 or 7 people ...Your Development Stack · Toolchains · Product Requirements<|control11|><|separator|>
  61. [61]
    A curated list of JUCE modules, templates, plugins, oh my! - GitHub
    Effects ; modEQ · EQ audio plugin with modulation, GPL-3.0 ; PhaseVocoder · Phase Vocoder ; vstSpleeter · Uses JUCE and spleeterpp to run spleeter in c++ ; quantumVerb
  62. [62]
    JamesHallowell/cxx-juce: Rust bindings for JUCE using cxx - GitHub
    The goal for this crate is to provide bindings for a subset of JUCE, in particular the mature and thoroughly battle-tested audio modules.
  63. [63]
    Tutorials - JUCE
    Learn how to configure your build settings, create new export targets and configurations, and use the Projucer's C++ code editor. Create a basic audio plug ...
  64. [64]
    Documentation - JUCE
    JUCE Repository Branches. Master Branch. Browse the latest stable release documentation. Develop Branch. Browse the latest development documentation.
  65. [65]
    JUCE Roadmap Update Q3 2025
    The majority of the JUCE team's time is spent keeping the framework compatible with all of the latest operating systems, compilers and toolchains, C++ ...Juce 8 · Juce 9 · Svg Handling Revamp
  66. [66]
    JUCE Meetup Tokyo 17th April 2025 - News and Announcements
    Apr 7, 2025 · The JUCE team is going to Japan in a couple of weeks to hold an information and networking event with the JUCE developer and JUCE user community.Missing: open- source sprints
  67. [67]
    The Audio Developer Conference 2025 - JUCE Forum
    May 29, 2025 · ADC returns back to Bristol UK in 2025. The in-person and online hybrid conference will take place 10-12 November 2025.Missing: meetups source sprints
  68. [68]
    Resources - JUCE
    The Audio Developer Conference. ADC is an annual event celebrating all audio development technologies, from music applications and game audio to audio ...<|control11|><|separator|>
  69. [69]
    JUCE announces acquisition by PACE - KVR Audio
    Apr 22, 2020 · Allen Cronce, founder and CEO of PACE: I've always had the utmost ... Jules Storer, founder of JUCE, was closely involved in the process.
  70. [70]
    JUCE - Wikipedia
    JUCE is an open-source cross-platform C++ application framework, used for the development of desktop and mobile applications.<|control11|><|separator|>
  71. [71]
    JUCE 5 has been released!
    Apr 27, 2017 · Juce 5 Licensing questions · Commercial / Licences. 41, 4874, April 29, 2017. Juce 5 Features · General JUCE discussion. 15, 2413, April 23, ...
  72. [72]
    JUCE 5 Licensing - What We Know [Community Edition]
    Apr 21, 2017 · Hi everyone, We've sent on 20th April an e-mail to JUCE customers, announcing licensing changes to JUCE 5. This e-mail will be sent shortly to ...
  73. [73]
    Announcing JUCE 6
    Apr 14, 2020 · When we launched JUCE 5 we intended to do a major release every 14 to 18 months and this release schedule means that the overall cost of a ...Missing: history | Show results with:history
  74. [74]
    JUCE 6 Released - News and Announcements
    Jun 29, 2020 · After a couple of months on the juce6 technical preview branch and plenty of tweaking, JUCE 6.0.0 has just been released!
  75. [75]
    JUCE 6.1 Released
    JUCE 6.1 provides numerous updates focused on introducing accessibility support and the adoption of new platform and plug-in SDK features.
  76. [76]
    JUCE 8 Is Available Now - News and Announcements
    Jun 12, 2024 · The JUCE team is delighted to announce the release of JUCE 8, representing a significant advancement in audio application and plug-in development.
  77. [77]
    JUCE 8 Feature Overview: WebView UIs
    JUCE 8 comes with a new set of tooling to help developers build UIs for audio applications and plugins with web technologies such as React, Vue, or even plain ...