JUCE Changelog

What's new in JUCE 7.0.12

Apr 15, 2024
  • Fixed an issue with timers in Pro Tools
  • Fixed an issue with Projucer Xcode code signing

New in JUCE 7.0.11 (Mar 26, 2024)

  • Fixed an issue with paths containing a tilde in Xcode
  • Multiple fixes for plug-in deployment and code signing in Xcode
  • Fixed an issue painting an empty RectangleList
  • Improved the performance of TreeView rendering

New in JUCE 7.0.10 (Feb 12, 2024)

  • Fixed multiple issues selecting devices in AudioDeviceSelector
  • Updated the bundled Oboe version
  • Fixed multiple issues with Timer
  • Updated the bundled version of FLAC
  • Added configuration options for sockets
  • Added new JSON::Formatter
  • Added support for Xcode 15.1
  • Update OpenGL compatibility headers
  • Added ChildProcessManager
  • Fixed multiple MIDI-CI issues

New in JUCE 7.0.9 (Nov 20, 2023)

  • Added MIDI-CI support
  • Added enumerate utility function
  • Fixed a macOS/iOS CMake signing issue

New in JUCE 7.0.8 (Oct 19, 2023)

  • Added Xcode 15, macOS Sonoma and LLVM 17 compatibility
  • Added serialisation tools
  • Fixed some VST3 manifest generation issues
  • Fixed a MessageManager locking bug
  • Fixed GCC 7 VST3 support
  • Fixed some SVG scaling issues

New in JUCE 7.0.7 (Aug 23, 2023)

  • Fixed some issues with VST3 manifest generation
  • Fixed a Metal layer rendering issue
  • Fixed an issue setting realtime thread priorities
  • Fixed a crash in VirtualDesktopWatcher
  • Fixed an AUv3 bundling problem

New in JUCE 7.0.6 (Aug 3, 2023)

  • Added support for VST3 bundles and moduleinfo.json
  • Improved message box dismissal
  • Improved WebView support
  • Updated to the latest VST3 and AAX SDKs
  • Fixed some Metal layer rendering issues
  • Improved ambisonic support
  • Improved machine ID support
  • Improved the HighResolutionTimer implementation

New in JUCE 7.0.5 (Jan 26, 2023)

  • Fixed Windows 7 compatibility
  • Fixed dark mode notifications on macOS
  • Improved the performance of AudioProcessorGraph

New in JUCE 7.0.4 (Jan 5, 2023)

  • Improved Metal device handling
  • Adopted more C++17 features
  • Improved input handling on macOS and iOS
  • Fixed a GUI display issue on Linux
  • Fixed some compiler warnings

New in JUCE 7.0.3 (Nov 29, 2022)

  • Added a unique machine ID
  • Added new threading classes
  • Improved the performance of multiple OpenGL contexts
  • Refactored AudioProcessorGraph
  • Improved AudioDeviceManager sample rate handling
  • Fixed Studio One drawing performance
  • Updated the FLAC library

New in JUCE 7.0.2 (Aug 15, 2022)

  • Fixed accessibility table navigation
  • Fixed Android file access on older APIs
  • Improved Linux VST3 threading
  • Improved ARA integration

New in JUCE 7.0.1 (Jul 5, 2022)

  • Fixed some Xcode and MSVC compiler warnings
  • Improved VST3 bus configuration and channel handling
  • Fixed some Metal layer rendering bugs

New in JUCE 7.0.0 (Jun 21, 2022)

  • Added Audio Random Access (ARA) SDK support
  • Added support for authoring and hosting LV2 plug-ins
  • Added a default renderer for macOS and iOS
  • Added new macOS and iOS rendering options
  • Added hardware synchronised drawing on Windows, macOS and iOS
  • Updated the Android billing and file access APIs
  • Revamped AudioPlayHead functionality
  • Improved accessibility support

New in JUCE 6.1.6 (Mar 1, 2022)

  • Improved the handling of AU multichannel layouts
  • Added JUCE_NODISCARD to builder-patten functions
  • Added recursion options to DirectoryIterator
  • Unified the loading of OpenGL 3.2 core profiles
  • Improved macOS full-screen behaviour with non-native titlebars

New in JUCE 6.1.5 (Jan 28, 2022)

  • Improved the accessibility framework
  • Added handling of non-Latin virtual key codes on macOS
  • Improved X11 compatibility
  • Updated the iOS in-app purchases workflow
  • Improved macOS windowing behaviour
  • Improved MinGW-w64 compatibility
  • Added an MPEKeyboardComponent class

New in JUCE 6.1.4 (Dec 20, 2021)

  • Restored Projucer project saving behavior
  • Fixed a CGImage memory access violation on Monterey
  • Improved macOS thread priority management

New in JUCE 6.1.3 (Dec 8, 2021)

  • Added support for Visual Studio 2022 to the Projucer
  • Added support for creating OpenGL 3.2 contexts on Windows
  • Added support for plugin hosts to easily retrieve stable parameter IDs
  • Added high-resolution image support to DragAndDropContainer
  • Added support for a wider range of frame-rates in plugins and hosts
  • Made Font and TypefaceCache threadsafe, to allow font rendering on background threads
  • Improved FlexBox compatibility with the CSS FlexBox specification
  • Improved macOS 12 compatibility, including OpenGL and FileChooser fixes
  • Improved accessibility support

New in JUCE 6.1.2 (Sep 20, 2021)

  • Fixed an OpenGL display refresh rate issue on macOS
  • Improved the scaling behaviour of hosted VST3 plug-ins
  • Improved accessibility support

New in JUCE 6.1.1 (Sep 9, 2021)

  • Fixed a CMake installation issue
  • Improved parameter value loading after plug-in restarts
  • Fixed some problems with multi-line text layouts
  • Added a fallback for modal native message boxes on Windows
  • Fixed an issue setting OpenGL repaint events
  • Improved accessibility support

New in JUCE 6.1.0 (Aug 23, 2021)

  • Added accessibility support
  • Enabled use of VST3 plug-in extensions
  • Improved OpenGL function loading
  • Updated to C++14
  • Added support for macOS Monterey and iOS 15
  • Added async versions of all modal functions
  • Fixed some VST3 threading issues
  • Added cross-platform-compatible VST3 UID hash
  • Improved MinGW compatibility
  • Fixed some issues with BufferingAudioReader
  • Improved TextEditor repainting
  • Added support for larger ASIO buffers
  • Updated Android Oboe to 1.6.1
  • Improved modal dismissing
  • Improved assertion handling on macOS ARM

New in JUCE 6.0.8 (Mar 22, 2021)

  • Fixed a macOS graphics invalidation region issue
  • Improved the handling of modal dialog dismissal
  • Fixed audio glitching in CoreAudio before microphone permission is granted
  • Improved AUv3 resizing and initialisation
  • Fixed some string to double conversions
  • Improved iOS split view behaviour
  • Added Display::safeAreaInserts
  • Improved assertion behaviour on macOS ARM
  • Multiple resizing and display scaling fixes
  • Added more information to audioProcessorChanged callbacks
  • Fixed some DSP convolution issues
  • Added host detection on macOS ARM

New in JUCE 6.0.7 (Jan 15, 2021)

  • Fixed a macOS drawing issue
  • Updated the DemoRunner bundle ID

New in JUCE 6.0.6 (Jan 13, 2021)

  • Moved to the new CoreMIDI API on supported platforms
  • Added support for the "New Build System" in Xcode
  • Made the audio format readers more robust
  • Improved the HiResTimer implementation
  • Fixed a VST3 program parameter issue
  • Updated to Oboe 1.5 on Android

New in JUCE 6.0.5 (Dec 1, 2020)

  • Added more support for styling PopupMenus
  • Fixed some race conditions in the IPC and name named pipe classes
  • Implemented multiple FileChooser improvements
  • Added compatibility with the latest Android SDK
  • Prevented CoreAudio glitches before accepting audio access permissions
  • Made reading MIDI and audio files more robust

New in JUCE 6.0.4 (Oct 14, 2020)

  • Improved the Projucer update mechanism
  • Fixed an AUv3 parameter normalisation issue
  • Fixed WASAPI exclusive mode sample rate selection bug
  • Fixed a Linux build issue when omitting ALSA

New in JUCE 6.0.3 (Oct 5, 2020)

  • Fixed version numbers in project files

New in JUCE 6.0.2 (Oct 5, 2020)

  • Added support for macOS 11 and arm64
  • Added Windows IAudioClient3 support for low latency audio drivers
  • Added Windows and macOS precompiled header support in the Projucer
  • Improved accessibility support in the macOS menu bar
  • Fixed VST3 hosting for plug-ins requiring persistent DLL loads
  • Updated macOS camera capture API
  • Improved resave diffs in Projucer project files
  • Fixed some Linux JACK issues

New in JUCE 6.0.0 (Jun 29, 2020)

  • Added support for building JUCE projects with CMake
  • Revamped the DSP module
  • Added VST3 support on Linux
  • Added support for the latest webview components on macOS/iOS and Windows
  • Removed the sign-in requirement, app reporting and analytics from the Projucer
  • Added support for running headlessly on Linux
  • Bundled Oboe source in JUCE and made it the default audio device on Android
  • Various Oboe stability improvements
  • Various Projucer UI improvements
  • Added HWNDComponent for embedding native HWNDs on Windows
  • Added support for all camera names on macOS
  • Added support for building with Clang on Windows
  • Modified MidiMessageCollector to preallocate storage
  • Modified AudioProcessorGraph to allow extracting nodes
  • Refactored the APVTS parameter attachment classes and added a new ParameterAttachment class
  • Added IPP FFT implementation
  • Added all example plugins as internal nodes in AudioPluginHost project
  • Removed JuceHeader requirement from Projucer projects
  • Added support for legacy CC output events
  • Added MidiBuffer::Iterator class compatible with C++11 range-for
  • Added RangedDirectoryIterator class compatible with C++11 range-for
  • Provided range-for comaptibility for String class
  • Windows and Linux hiDPI scaling improvements
  • Various bug-fixes, improvements and documentation updates

New in JUCE 5.4.7 (Feb 10, 2020)

  • Fixed a potential NullPointerException in the Android IAP code
  • Fixed an entitlements file generation bug in the Projucer
  • Send VST2 audioMasterUpdateDisplay opcode on the message thread to fix some hosts not updating
  • Fixed some build errors and warnings when using Clang on Windows
  • Changed the default architecture specified in Linux Makefiles generated by the Projucer

New in JUCE 5.4.6 (Feb 4, 2020)

  • Fixed compatibility with macOS versions below 10.11
  • Multiple thread safety improvements
  • Added dynamic parameter and parameter group names
  • Updated to the latest Android In-App Purchases API
  • Improvements to the Windows message queue under high load
  • Replaced WaitableEvent internals with std::condition_variable
  • Fixed some macOS text alignment issues

New in JUCE 5.4.4 (Aug 12, 2019)

  • Improvements to floating point number printing
  • Faster plug-in parameter indexing
  • Added support for persisting attachements to MIDI devices
  • Refactored Linux event loop handling
  • Multiple C++ modernisation improvements to the API
  • Added support for macOS 10.55 and iOS 13
  • Added support for Visual Studio 2019
  • Removed support for Visual Studio 2013

New in JUCE 5.4.3 (Feb 21, 2019)

  • Added a Visual Studio 2019 exporter to the Projucer
  • Added options to configure macOS Hardened Runtime in the Projucer
  • Fixed a potential memory corruption when drawing on macOS/iOS
  • Fixed file drag and drop for Windows 8
  • Multiple DSP module enhancements
  • Various bug-fixes, improvements and documentation updates

New in JUCE 5.4.2 (Feb 7, 2019)

  • Restructed the low-level Android native code
  • Added an ADSR envelope class
  • AudioProcessorValueTreeState performance improvements
  • Improved Xcode 10 support
  • Improved VST3 hosting
  • Windows hiDPI scaling enhancements

New in JUCE 5.4.1 (Nov 12, 2018)

  • Fixed a VST2 compilation error in VS2013
  • Projucer: Fixed some live-build compilation errors
  • Fixed a bug in the Oversampling class
  • MPE: Made MPESynthesiserVoice::noteOnTime public
  • Fixed some bugs in the Unity plug-in wrapper
  • Fixed some VS2015 compiler errors

New in JUCE 5.4.0 (Nov 7, 2018)

  • macOS Mojave and iOS 12 support
  • Windows hiDPI support
  • Unity native plug-in support
  • Microsoft BLE MIDI support
  • Plug-in parameter groups
  • Support for production-ready Android OBOE
  • Video playback support on Android and iOS
  • AudioProcessorValueTreeState improvements
  • Support for Android Studio 3.2
  • Various bug-fixes, improvements and documentation updates

New in JUCE 5.3.2 (May 10, 2018)

  • Removed the OSX 10.5 and 10.6 deployment target options from the Projucer and enabled more C++11 features across all platforms
  • -Replaced all usage of ScopedPointer with std::unique_ptr
  • Added camera support for iOS and Android
  • Fixed some issues using an UndoManager with an AudioProcessorValueTreeState
  • Added MIDI input to IAA plug-ins
  • Made multiple calls to MidiInput::openDevice share the same underlying win32 MIDI handle
  • Added a config flag to juce_audio_processors for enabling LADSPA plugin hosting and enabled it in the AudioPluginHost
  • Added a "plug-in can do" callback to the VSTCallbackHandler interface
  • Fixed various undefined behavior in SIMDRegister
  • Added the methods AudioBlock::copyTo/AudioBlock::copyFrom which facilitate copying to/from an AudioBuffer
  • Added a lambda callback to OpenGLGraphicsContextCustomShader to allow custom set-up when the shader is activated
  • Fixed a bug causing an unintentional menu item highlight disco party when using a popup menu in a plug-in's UI
  • Marked as deprecated: String::empty, var::null, File::nonexistent, ValueTree::invalid and other problematic statically-initialised null values

New in JUCE 5.3.0 (Mar 15, 2018)

  • Added support for Android OBOE (developer preview)
  • Updated JUCE's MPE classes to comply with the new MMA-adopted specification
  • Multiple documentation updates
  • Restructed the examples and extras directories and updated all JUCE examples
  • Multiple hosted parameter improvements
  • Overhauled the GenericAudioProcessorEditor
  • Added support for a subset of the Cockos VST extensions
  • Added support for loading VST3 preset files
  • Added boolean AudioProcessorParameters
  • Added thread safe methods for getting and setting the AudioProcessorValueTreeState state
  • Added customisable MacOS icons

New in JUCE 5.2.1 (Feb 9, 2018)

  • Added native content sharing support for iOS and Android
  • Added iOS and Android native file chooser support
  • Implemented WebBrowserComponent on Android
  • Added SystemStats::getDeviceManufacturer()
  • Ensured that JUCE will always use the high-performance audio path on Android if the device supports it
  • Added memory warning callbacks on iOS
  • Refactored iOSAudioDevice to support multi-channel audio devices and improve the handling of sample rate changes from other apps
  • Added SidePanel and BurgerMenu component classes
  • Added PushNotifications support on OSX
  • Added support for VST3 SDK 3.6.8
  • Added support for loading VST3 preset files
  • Added higher-order ambisonics support
  • Added thread safe methods for getting and setting the AudioProcessorValueTreeState state
  • Cleanup and refactoring work on the AudioProcessorGraph and the audio plugin host demo
  • Changed the default language standard for new projects from C++11 to C++14 and set all JUCE projects to use C++14
  • Made the ScopedPointer interface more compatible with std::unique_ptr
  • Changed Windows projects to use dynamic runtime linking by default
  • Added lambda callbacks to ListenerList, Slider, Button, Label, ComboBox and TextEditor
  • Fixed the live-build engine on Windows
  • Multiple DSP module fixes and features
  • Multiple threading and undefined behaviour fixes and improvements
  • Various graphics optimisations
  • Multiple Projucer UI and UX improvements
  • Various documentation tweaks and fixes

New in JUCE 5.2.0 (Oct 27, 2017)

  • Added a CMake exporter to the Projucer
  • JUCE analytics module
  • Added support for push notifications on iOS and Android
  • Added in-app purchase support for macOS
  • Added a plugin binary copy step to the Visual Studio exporter
  • Added an option to set the debug information format in the Visual Studio exporter
  • Added a link-time optimisation option to all exporters
  • Added support for adding asm files to Android projects
  • Improved the reliability of the Projucer's live-build engine
  • Added support for AUv2 Midi Effect plug-in hosting
  • Added support for Atmos 7.0.2 and 7.1.2 Surround formats
  • Added support for the OGG sub-format inside a WAV file
  • Added support for querying the audio hardware on how many overruns/underruns occurred
  • Implement Process::hide on mobile platforms
  • Added support for multi-touch drag and drop
  • Improved the performance of 3D rendering when multiple OpenGL contexts are used at the same time
  • Tweaked the rate at which EdgeTable grows its internal storage, to improve performance rendering large and complex paths