This file lists the more notable headline features. For more detailed info about changes and bugfixes please see the git log and BREAKING_CHANGES.md.
- Updated the AAX SDK to 2.8.0
- Fixed multiple Direct2D drawing issues
- Fixed buffer size and sample rate selection on iOS 18
- Fixed some issues handling large images in Direct2D
- Enabled rounded window corners in Windows 11
- Fixed some compiler warnings in Xcode 16
- Improved macOS and Android GU rendering performance
- Added support for C++20 and C++23
- Fixed a Windows mouse response issue
- Updated the VST3 SDK to 3.7.12
- Fixed some issues with text layout
- Removed source code for unsupported platforms
- Fixed some Direct2D issues
- Update the embedded version of harfbuzz
- Added more surround formats
- Added a new Direct2D renderer
- Added support for WebView based UIs
- Added consistent unicode support across platforms
- Added a new animation module
- Bundled the AAX SDK
- Fixed an issue with timers in Pro Tools
- Fixed an issue with Projucer Xcode code signing
- 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
- 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
- Added MIDI-CI support
- Added enumerate utility function
- Fixed a macOS/iOS CMake signing issue
- Added macOS/iOS AudioWorkgroup support
- 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
- Fixed some macOS 14.0 deprecations
- 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
- 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
- Fixed Windows 7 compatibility
- Fixed dark mode notifications on macOS
- Improved the performance of AudioProcessorGraph
- 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
- 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
- Fixed accessibility table navigation
- Fixed Android file access on older APIs
- Improved Linux VST3 threading
- Improved ARA integration
- Fixed some Xcode and MSVC compiler warnings
- Improved VST3 bus configuration and channel handling
- Fixed some Metal layer rendering bugs
- 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
- 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
- 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
- Restored Projucer project saving behavior
- Fixed a CGImage memory access violation on Monterey
- Improved macOS thread priority management
- 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
- Fixed an OpenGL display refresh rate issue on macOS
- Improved the scaling behaviour of hosted VST3 plug-ins
- Improved accessibility support
- 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
- 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
- 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
- Fixed a macOS drawing issue
- Updated the DemoRunner bundle ID
- 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
- 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
- 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
- Fixed version numbers in project files
- 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
- Fixed a bug in the Projucer GUI editor causing existing code to be overwritten
- Updated Android Oboe to 1.4.2
- Bumped default Android Studio gradle and plugin versions to the latest
- Fixed some Android Oboe and OpenSL issues
- Fixed some Doxygen parsing issues
- Fixed MIDI input/output bus enablement in VST3 plug-ins
- Improved Windows Clang compatibility
- Fixed GCC 4.8 and 5.0 compatibility
- Fixed some VST3 build errors and warnings on Linux
- Fixed dynamically loaded X11 library names on Linux
- Fixed Projucer CLion exporter generated CMakeLists.txt
- Fixed drag and drop for non-DPI aware plug-ins on Windows
- 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
- Fixed a macOS focus bug causing Components to not receive mouse events
- 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
- 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
- Improved message queue performance on Linux
- Added missing lifecycle callbacks on Android Q
- Refactored the AudioBlock class
- Fixed APVTS parameter update recursion
- Updated Bela code to support latest release
- Fixed issues drawing italicised text on macOS
- Fixed broken back button behaviour on Android
- Added Bluetooth permissions settings needed for iOS 13.0+ to the Projucer
- Replaced select() calls with poll()
- Various bug-fixes, improvements and documentation updates
- 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.15 and iOS 13
- Added support for Visual Studio 2019
- Removed support for Visual Studio 2013
- 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
- Restructured 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
- Fixed a VST2 compilation error in VS2013
- Fixed some live-build compilation errors in the Projucer
- Fixed a bug in the Oversampling class
- Made MPESynthesiserVoice::noteOnTime public
- Fixed some bugs in the Unity plug-in wrapper
- Fixed some VS2015 compiler errors
- 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
- 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
- Add Android and iOS support to AudioPluginHost
- Added support for Bela in the form of an AudioIODeviceType
- Add bypass support to both hosting and plug-in client code
- Added an isBoolean flag to APVTS parameters
- Re-worked plug-in wrappers to all use new parameter system via LegacyAudioParameter wrapper class
- Fixed an issue where opening the same midi device twice would cause a crash on Windows
- Deprecated MouseInputSource::hasMouseMovedSignificantlySincePressed() and replaced with more descriptive methods
- Added support for relative or special path symbolic links when compressing/uncompressing zip archives and creating/reading files
- Ensured that File::replaceInternal does not fail with ACL errors on Windows
- Merged-in some Ogg-Vorbis security fixes
- Fixed a bug which would prevent a SystemTrayIconComponent from creating a native popup window on macOS
- Various Android and iOS fixes
- Added a "PIP Creator" utility tool to the Projucer
- Added options for setting plugin categories and characteristics with MultiChoicePropertyComponent in the Projucer
- Fixed a Projucer bug where the OSX base SDK version was not being set
- Added a command-line option to use LF as linefeeds rather than CRLF in the Projucer cleanup tools
- Multiple documentation updates
- Added support for Android OBOE (developer preview)
- Updated JUCE's MPE classes to comply with the new MMA-adopted specification
- Multiple documentation updates
- Restructured 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
- 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
- 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
- Fixed multiple plugin-resizing bugs
- Added support for AUv3 MIDI and screen size negotiation
- Added support for Xcode 9 and iOS 11
- Added an In-App Purchases module
- Added backwards compatible constexpr support
- Standalone plug-in improvements
- Better .jucer file change monitoring in the Projucer
- Increased the speed of AU parameter lookup
- Improved the Android thread management when dealing with web requests
- Better denormal support
- Plug-in parameters can be explicitly marked as continuous or discrete
- Multiple documentation updates
- Fixed Windows live build engine on Visual Studio 2017
- Fixed a compiler error in juce_MathFunctions.h in Visual Studio 2013
- Fixed a potential crash when using the ProcessorDuplicator
- Fixed a compiler-error in Filter::IIR
- Fixed an issue where the WavFileFormatWriter could not create files with discrete channels
- Fixed an issue where a window which is beneath a hidden window would not receive any clicks on Linux
- Altered the format of BREAKING-CHANGES.txt to display better on GitHub
- Projucer: Fixed an issue in exporter tilde expansion
- Fixed compiler errors when building the DSP module with a static version of FFTW
- Fixed an audio glitch when bypassing the convolution engine
- Fixed an issue where a JUCE VST2 would not correctly report that it supports resizing of it’s plugin editor
- Various documentation tweaks and fixes
- Release of the JUCE DSP module
- Multichannel audio readers and writers
- Plugin editor Hi-DPI scaling support
- Major improvements to Projucer module search paths
- Added Projucer support for iOS app groups
- Added support for AVFoundation and deprecated the use of Quicktime
- Added a new real-time audio thread priority for Android
- Various Projucer UI fixes
- Various documentation fixes
- Various minor improvements and bug fixes
- Improved project save speed in the Projucer
- Added option to save individual exporters in the Projucer
- Added the ability to create custom colour schemes for the Projucer’s code editor
- Minor fixes to JUCE’s SVG parser
- Various bug fixes in the way JUCE handles Hi-DPI monitors
- Improved code browsing in Visual Studio Exports
- Improved the handling of audio device buffer size changes on iOS
- Fixed bug in the Win32 FileChooser dialog when selecting a nonexistent root drive
- Fixed a Projucer crash when saving projects with no targets
- Fixed a bug where Projucer generated Makefiles would not trigger a recompilation when header files had changed
- The standalone plugin target is now compatible with effect plug-ins
- Fixed an issue where it was not possible to use the live build engine on plugin projects
- Improved the way the Projucer’s live-build engine searches for platform headers on Windows
- Fixed an issue where the Projucer would complain about not having internet even if the user had a license
- Fixed a use-after-free in the AUv3 wrapper
- Fixed an issue where the channel layout would not be reported correctly in the AUv3 wrapper
- Fixed a potential memory overrun issue when hosting VST2 plugins with more than eight channels
- Fixed a problem with the Mac main menu bar showing menus in the wrong position
- Various Projucer UI fixes
- Various documentation fixes
- Various minor improvements and bug fixes
- Fixed Windows live build engine on Visual Studio 2017
- Fixed memory-leak in Projucer live build engine
- Fixed an issue where you could not paste your redeem serial number with Cmd+V on macOS
- Fixed an issue where the Projucer would crash on linux due to missing symbols in WebKit
- Minor Projucer UI improvements
- Various minor improvements and bug fixes
- New licensing model
- Projucer UI/UX overhaul
- New look and feel (version 4)
- New standalone plug-in format
- Added support for Visual Studio 2017
- Added support for VST3 SDK 3.6.7
- Added support for Apple Inter-App Audio on iOS
- Various Android stability and performance improvements
- Added support for non-experimental gradle plug-in versions >= 2.2 and Android Studio 2.3
- Added support for closed-source third-party modules
- Added support for Windows 10 Bluetooth LE MIDI devices
- Modernised JUCE codebase to use C++11/14 features
- Added support for Linux embedded platforms
- Added support for WebBrowserComponent on Linux
- Added support for IPv6
- Various minor improvements and bug fixes
- Various documentation improvements
- Added support for iOS download tasks
- Added support for AAX plug-in meters
- Added support for dynamically disabling/enabling sidechains in ProTools
- Re-introduced support for VST3 plug-ins reporting which VST2 plug-in they can replace
- Added withRightX and withBottomY methods to Rectangle
- Added support for windows 10 on screen keyboard
- Added move semantics to AudioBuffer
- Added colour coding scheme to module icons in the Projucer to indicate which type of license a module uses
- Removed all deprecation warnings for macOS Sierra
- Fixed multiple touch, pen and mouse input related bugs on Windows
- Added submenu support to ComboBoxes and simplified the usage of ComboBoxes
- Various minor improvements and bug fixes
- Various documentation improvements
- Added API and examples for ROLI Blocks
- Multiple Projucer live-build UI and diagnostics improvements
- JUCE now supports hosting multi-bus plug-ins
- BufferingAudioSource now supports pre-buffering (useful for offline processing)
- Added microphone permissions switch to Projucer for iOS targets
- Standalone wrappers now correctly save and restore midi settings
- Various performance improvements to BigInteger
- Fixed various FlexBox bugs
- Added a workaround for the broken “Open Recent…” menu on os x
- Various minor improvements and bug fixes
- Various documentation improvements
- Pre-release of live build engine on Windows
- Added FlexBox layout engine
- Removed dependency on external Steinberg SDK when building and/or hosting VST2 plug-ins
- Added support for MIDI network sessions in the iOS simulator
- Added support for symmetric skew to Slider, NormalisableRange and SliderPropertyComponent
- Projucer now asks the user what to do when it detects that the .jucer file was modified outside of the Projucer
- Improved support for Windows 10 touch devices
- Added begin/end iterator methods for ValueTree, for handy range-based-for loops over its children
- Added support for recent mingw-w64 compilers
- Added useful proportional Rectangle utility methods
- Significantly improved the performance of BigInteger
- Added support for expiring licenses to juce_tracktion_marketplace
- Added support for retina mouse cursors on OS X
- Added a new low-quality mode for the CameraDevice
- Added pkg-config support for Linux
- Projucer will now wrap your AAX plug-in in the bundle format expected Pro Tools on Windows
- Multiple bug-fixes for AudioUnit parameter ids
- Fixed a bug where AlertWindows weren’t always on top
- Multiple fixes for web InputStreams
- Various improvements to the live build engine
- Various minor improvements and bug fixes
- Various documentation improvements
- Various VST3 improvements: resizing VST3 windows, plug-in compatibility issues
- Use NSURLSession on newer OS X versions
- Add compatibility for VST 3 SDK update 3.6.6
- Miscellaneous fixes and improvements
- New class CachedValue, for providing easy and efficient access to ValueTree properties
- Reduced audio plug-in binary sizes on OS X and added symbol-stripping option
- Miscellaneous fixes and improvements
- Added support for AudioUnit v3 on OS X and iOS
- Simplified the JUCE module format. Removed the json module definition files, and made it easier to manually add modules to projects. The format is fully described in the document juce/modules/JUCE Module Format.txt
- iOS project support: added custom resource folders, custom xcassets, app capabilities, and screen orientation settings.
- Deleted the Introjucer.. But don't panic! All of its functionality is now supplied by a more open-source version of the Projucer. By refactoring the closed-source LLVM compilation code into a DLL, we've been able to unify the Introjucer and Projucer into a single open-source project. This will allow everyone to compile the Projucer's IDE themselves, and having just one app instead of two will make things a lot less confusing!
- Added multi-bus support for audio plug-in clients
- Added support for MIDI effect plug-ins (AU and AAX).
- Added new example: Network Graphics Demo
- Added MPE (Multidimensional Polyphonic Expression) classes
- Added full support for generating and parsing Midi RPN/NRPN messages
- Made the LinearSmoothedValue class public
- Miscellaneous fixes and minor improvements
- Miscellaneous fixes and house-keeping
- Initial release of the Projucer!
- Full OSC support!
- Android Studio exporting from the Introjucer
- Android-M pro-audio low-latency i/o support
- Bluetooth MIDI device support on iOS and Android
- AudioSampleBuffer refactored into a templated class AudioBuffer, to allow 32 or 64 bit float support
- Audio plugin and hosting now supports 64-bit data
- Support for force-touch and pen pressure on iOS and Windows
- Added easy sound-file playing methods to AudioDeviceManager
- Many updates to Introjucer
- Many new tutorials and examples
- New functions for Base64 conversion
- New command-line options in the introjucer for trimming whitespace and replacing tabs in source files
- Major OpenGL performance/stability improvements
- Performance improvements to FloatVectorOperations math functions
- New FloatVectorOperations: abs, min, max, addWithMultiply, clip
- Midi channel pressure support
- New example projects ComponentTutorialExample, SimpleFFTExample, PluckedStringsDemo
- New class ValueTreeSynchroniser, for remote-syncing multiple ValueTrees
- HTTPS/SSL support on Linux
- Added methods for degrees to radians conversions
- Added Neon instruction set support for Android targets
- JUCE ValueTree performance improvements
- Linux and Android multi-monitor HiDPI support
- Support the “display=none” attribute in SVG files
- Support for text elements in SVG files
- Added Whirlpool hash class to the cryptography module
- Various improvements for parameter automation in VST, VST-3, AudioUnits and AAX
- Various improvements to JUCE Synthesiser
- Linux Code::Blocks project support
- Multicast support
- Add support to generate project version numbers from project git tags
- Various updates to example projects
- Stability improvements to re-order and resize code of plug-in windows
- Support for external third-party native libraries on Android
- Introjucer’s auto-update now displays release notes
- Various Introjucer usability improvements
- Support for in-memory fonts on Android
- New FFT class
- WASAPI exclusive mode support
- More C++11 feature support macros
- Performance improvements to XML parsing
- Add compatibility for AAX SDK 2.2.0
- Added parameters to the ValueTree::Listener::valueTreeChildRemoved() and valueTreeChildOrderChanged() methods to include more info about exactly what changed
- Over 400 minor changes, bug-fixes, documentation improvements, etc.