History
JUCE began in the early 2000s as the in-house toolkit behind the Tracktion DAW, became a public framework, changed owners twice, and grew from one monolithic library into today's 24 modules. This history explains many of its quirks: its own String and containers, its Projucer, and its naming conventions.
Sources
Numbered footnotes link each claim to its source. Version features and module arrival dates come from this repository's CHANGE_LIST.md and git history. Company events cite public write-ups. Release years for JUCE 4 to 8 are approximate, because this fork's git history only starts in January 2025 and CHANGE_LIST.md records versions rather than dates. Where a claim could not be sourced, the page says so.
Timeline
- Before 2004TracktionJulian Storer writes the Tracktion DAW and the cross-platform C++ toolkit underneath it.
- 2004Public releaseThe toolkit is released publicly as JUCE, "Jules' Utility Class Extensions".
- By JUCE 3.xIntrojucerThe Introjucer project tool is already in use; the 3.x change list mentions it.
- Nov 2014ROLIROLI acquires JUCE and Raw Material Software.
- 2015–16JUCE 4The Projucer arrives (merged with the Introjucer in 4.2), plus OSC support and multi-bus plug-ins.
- 2017JUCE 5A new licensing model and C++11/14 modernisation. 5.1 adds
juce_dsp. - 2020PACE, JUCE 6PACE Anti-Piracy acquires JUCE (announced April 2020). JUCE 6 adds the CMake API and headless Linux.
- 2022JUCE 7LV2 and ARA support and new Apple renderers. MIDI-CI followed in 7.0.9.
- 2024JUCE 8Direct2D, WebView UIs,
juce_animation, and the move to AGPLv3. - 2026JUCE 9A new SVG parser, variable fonts, a new CoreAudio backend, and OpenGL ES on Linux.
Raw Material SoftwareROLIPACE
Eras
Origins: a toolkit extracted from a DAW
Julian Storer ("Jules") created JUCE as the underlying C++ code of the Tracktion digital audio workstation, and JUCE was first released to the public in 2004.[1] Raw Material Software was the company behind it.[2] The motivation below is inferred from the code's shape rather than from a source: a DAW needed audio, GUI, and plug-in support that behaved the same on every platform.
That origin still shows:
- Self-sufficiency. JUCE has its own
String,Array,File,Thread, and smart pointers. It dates from before C++11 made the standard library a reasonable foundation for this kind of code. - Pragmatism over purity. The APIs were shaped by what a real DAW needed, including
AudioProcessorGraph,AudioThumbnail, and plug-in scanning. - The name. Jules' Utility Class Extensions.[1:1]
Today JUCE is dual-licensed: AGPLv3 or a commercial licence.[3] This page does not claim what the licence was at the 2004 release, because no source for that was found.
Modularisation and the Introjucer
JUCE is organised into modules, each with a machine-readable declaration block. That lets a tool assemble projects from them: the Introjucer, which generated IDE projects. CHANGE_LIST.md mentions the Introjucer as early as version 3.3.0.[4] The module format was simplified in JUCE 4.2, when the JSON module definition files were removed, and it is still used today (see Build systems).[5] This repository does not record which release first introduced modules, so this page does not say.
The ROLI years (2014–2020)
The music-technology company ROLI acquired JUCE and Raw Material Software in November 2014.[2:1] The change list records ROLI-era work such as an API and examples for ROLI Blocks in 4.3.0.[6] Highlights from the change list:
- JUCE 4: the Projucer arrived as "Initial release of the Projucer!" in 4.0.1.[7] Its live C++ compilation engine was initially closed source. In 4.2 it was merged with the Introjucer into a single open-source app.[5:1] Also OSC (
juce_osc, 4.0.1) and multi-bus support for plug-in clients (4.1).[7:1][8] - JUCE 5: a new licensing model, the standalone plug-in format, and a codebase modernised to C++11/14.[9]
juce_dspwas released in 5.1.0,juce_analyticsarrived in 5.2.0, and an in-app purchases module in 5.1.2.[10]
The PACE years (2020–present)
PACE Anti-Piracy, known for iLok and AAX signing,[11] acquired JUCE from ROLI, announced in April 2020.[2:2] Releases since then focus on modern build tooling, rendering, and standards:
- JUCE 6 (2020): the CMake API, headless Linux support, VST3 on Linux, a revamped DSP module, and removal of the Projucer's sign-in requirement and analytics.[12]
- JUCE 7 (2022): ARA (Audio Random Access) support, LV2 authoring and hosting, new macOS and iOS renderers, a reworked
AudioPlayHead, and better accessibility.[13] MIDI-CI support (juce_midi_ci) followed in 7.0.9.[10:1] - JUCE 8 (2024): a Direct2D renderer on Windows, WebView-based UIs, consistent Unicode text handling, the
juce_animationmodule, and the AAX SDK bundled.[14] The open-source licence moved from GPLv3 to AGPLv3: theLICENSE.mdat tag 7.0.12 describes GPLv3, and the one at 8.0.0 says the modules are dual-licensed under AGPLv3.[15] JavaScript support moved into its ownjuce_javascriptmodule in 8.0.4.juce_audio_processors_headlesssplit the GUI-free half of plug-in support out ofjuce_audio_processorsin 8.0.11. That release also moved to the MIT-licensed VST3 SDK 3.8.0.[10:2] - JUCE 9 (July 2026): a new SVG parser, variable fonts, a new macOS CoreAudio implementation, a faster software renderer, OpenGL ES on Linux, better multi-touch, and a CMake build that works better in headless environments. Point releases have added Opus and WebP support, enabled
MP3AudioFormatby default, and published a TypeScript npm package for WebView integration.[16]
Recent release cadence
From this fork's git history (commits titled "JUCE version x.y.z"):[17]
| Version | Date |
|---|---|
| 9.0.3 | 2026-09-28 |
| 9.0.2 | 2026-09-07 |
| 9.0.1 | 2026-08-10 |
| 9.0.0 | 2026-07-21 |
| 8.0.15 | 2026-07-21 |
| 8.0.14 | 2026-06-22 |
| 8.0.13 | 2026-05-19 |
| 8.0.12 | 2025-12-16 |
When each module arrived
Reconstructed from CHANGE_LIST.md.[10:3] Modules without an entry predate the change list's detail, or arrived without a headline mention.
| Module | First mentioned |
|---|---|
juce_osc | 4.0.1 ("Full OSC support!") |
juce_dsp | 5.1.0 |
In-app purchases (now part of juce_product_unlocking) | 5.1.2 |
juce_analytics | 5.2.0 |
juce_midi_ci | 7.0.9 |
juce_animation | 8.0.0 |
juce_javascript | 8.0.4 (split out of juce_core) |
juce_audio_processors_headless | 8.0.11 (split out of juce_audio_processors) |
Why history matters when you read code
- Old tutorials use old APIs. Before trusting a forum post, check
BREAKING_CHANGES.mdfor the versions in between. It lists breaking changes per release with a workaround. - Look-and-feel versions (
LookAndFeel_V1toV4) are fossils of past visual styles, kept for compatibility. - Parallel APIs often coexist, such as
ScopedPointer(gone) andstd::unique_ptr, or listener interfaces andstd::functioncallbacks (onClick). The newer one is usually preferred.
Sources
JUCE, Wikipedia: name "Jules' Utility Class Extensions"; first released to the public in 2004; created from the code underneath the Tracktion DAW. Retrieved 2026-09-29; Wikipedia was opened, MusicRadar and Synthtopia were read as search-result summaries. ↩︎ ↩︎
ROLI acquisition in November 2014 and sale to PACE in April 2020: JUCE, Wikipedia; PACE acquires JUCE from ROLI, MusicRadar; PACE Acquires JUCE, Synthtopia. Retrieved 2026-09-29; Wikipedia was opened, MusicRadar and Synthtopia were read as search-result summaries. ↩︎ ↩︎ ↩︎
LICENSE.md: "dual-licensed under the AGPLv3 and the commercial JUCE licence". ↩︎CHANGE_LIST.md, Version 3.3.0: "New command-line options in the introjucer". ↩︎CHANGE_LIST.md, Version 4.2: simplified module format, Introjucer deleted and unified with the Projucer. ↩︎ ↩︎CHANGE_LIST.md, Version 4.3.0: "Added API and examples for ROLI Blocks". ↩︎CHANGE_LIST.md, Version 4.0.1: "Initial release of the Projucer!" and "Full OSC support!". ↩︎ ↩︎CHANGE_LIST.md, Version 4.1: "Added multi-bus support for audio plug-in clients". ↩︎CHANGE_LIST.md, Version 5.0.0. ↩︎CHANGE_LIST.md, Versions 5.1.0, 5.1.2, 5.2.0, 7.0.9, 8.0.0, 8.0.4 and 8.0.11. ↩︎ ↩︎ ↩︎ ↩︎iLok: MusicRadar headline, "iLok developer Pace acquires the JUCE development framework from ROLI". AAX signing:
README.md, "AAX Plug-Ins". ↩︎CHANGE_LIST.md, Version 6.0.0. ↩︎CHANGE_LIST.md, Version 7.0.0. ↩︎CHANGE_LIST.md, Version 8.0.0. ↩︎LICENSE.mdat tag 7.0.12 and tag 8.0.0 in the upstream repository. ↩︎CHANGE_LIST.md, Versions 9.0.0 to 9.0.3. ↩︎git logof this repository, commits "JUCE version 8.0.12" to "JUCE version 9.0.3". The history starts in January 2025, so earlier release dates are not available here. ↩︎