This repository is an experimental fork of the JUCE develop branch, originally drafting additions by Celemony and SoundRadix that enabled JUCE to generate ARA plug-ins in the VST3 or AudioUnit format. With JUCE 7, these additions have been reviewed, refactored and properly integrated into JUCE main line.
The develop branch of this fork has been updated to JUCE 7 accordingly. It will now merely be used for adding experimental implementations of draft API from the ARA SDK which will come to JUCE mainline only after they have been finalized in the ARA SDK. Accordingly, the original JUCE repository should be used for developing actual products.
There also are two legacy branches for JUCE 6 users which will not be maintained further: JUCE_6_develop and JUCE_6_condensed. JUCE_6_develop was used for active development and contains all ARA-related changes including some ARA draft features still under development, whereas JUCE_6_condensed is based on JUCE 6 release code and uses only released ARA APIs. JUCE_6_condensed also features a heavily rebased change history for easier merging into JUCE mainline. This makes it also easy to rebase onto any custom fork of JUCE 6 that might already be in use.
Note that Celemony is not endorsing the use of JUCE by providing this fork. The ARA integration in JUCE is merely an adapter, it does not provide any features that would be relevant when using ARA with a different framework. Consequently, the decision whether or not to use JUCE for any given project should be made independently of this fork.
For feedback and questions, please contact Celemony via [email protected].
JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications, including VST, VST3, AU, AUv3, AAX and LV2 audio plug-ins and plug-in hosts. JUCE can be easily integrated with existing projects via CMake, or can be used as a project generation tool via the Projucer, which supports exporting projects for Xcode (macOS and iOS), Visual Studio, Android Studio, Code::Blocks and Linux Makefiles as well as containing a source code editor.
The JUCE repository contains a master and develop branch. The develop branch contains the latest bugfixes and features and is periodically merged into the master branch in stable tagged releases (the latest release containing pre-built binaries can be also downloaded from the JUCE website).
JUCE projects can be managed with either the Projucer (JUCE's own project-configuration tool) or with CMake.
The repository doesn't contain a pre-built Projucer so you will need to build it for your platform - Xcode, Visual Studio and Linux Makefile projects are located in extras/Projucer/Builds (the minimum system requirements are listed in the System Requirements section below). The Projucer can then be used to create new JUCE projects, view tutorials and run examples. It is also possible to include the JUCE modules source code in an existing project directly, or build them into a static or dynamic library which can be linked into a project.
For further help getting started, please refer to the JUCE documentation and tutorials.
Version 3.22 or higher is required. To use CMake, you will need to install it, either from your system package manager or from the official download page. For comprehensive documentation on JUCE's CMake API, see the JUCE CMake documentation. For examples which may be useful as starting points for new CMake projects, see the CMake examples directory.
To use CMake to build the examples and extras bundled with JUCE, simply clone JUCE and then run the following commands, replacing "DemoRunner" with the name of the target you wish to build.
cd /path/to/JUCE
cmake . -B cmake-build -DJUCE_BUILD_EXAMPLES=ON -DJUCE_BUILD_EXTRAS=ON
cmake --build cmake-build --target DemoRunner
- C++ Standard: 17+
- macOS/iOS: Xcode 10.1 (macOS 10.13.6)
- Windows: Windows 8.1 and Visual Studio 2017
- Linux: g++ 7.0 or Clang 6.0 (for a full list of dependencies, see here).
- Android: Android Studio on Windows, macOS or Linux
- macOS: macOS 10.9
- Windows: Windows Vista
- Linux: Mainstream Linux distributions
- iOS: iOS 9.0
- Android: Jelly Bean (API 16)
Please see our contribution guidelines.
The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. Other modules are covered by a GPL/Commercial license.
There are multiple commercial licensing tiers for JUCE, with different terms for each:
- JUCE Personal (developers or startup businesses with revenue under 50K USD) - free
- JUCE Indie (small businesses with revenue under 500K USD) - $40/month or $800 perpetual
- JUCE Pro (no revenue limit) - $130/month or $2600 perpetual
- JUCE Educational (no revenue limit) - free for bona fide educational institutes
For full terms see LICENSE.md.
The JUCE framework contains the following dependencies:
- Oboe (Apache 2.0)
- FLAC (BSD)
- Ogg Vorbis (BSD)
- AudioUnitSDK (Apache 2.0)
- AUResources.r (Apple)
- LV2 (ISC)
- pslextensions (Public domain)
- VST3 (Proprietary Steinberg VST3/GPLv3)
- zlib (zlib)
- Box2D (zlib)
- jpeglib (Independent JPEG Group License)
- pnglib (zlib)
- GLEW (BSD), including Mesa (MIT) and Khronos (MIT)
The JUCE examples are licensed under the terms of the ISC license.
Dependencies in the examples:
Dependencies in the bundled applications:
Dependencies in the build system: