paulxstretch/deps/juce/ChangeList.txt
essej 25bd5d8adb git subrepo clone --branch=sono6good https://github.com/essej/JUCE.git deps/juce
subrepo:
  subdir:   "deps/juce"
  merged:   "b13f9084e"
upstream:
  origin:   "https://github.com/essej/JUCE.git"
  branch:   "sono6good"
  commit:   "b13f9084e"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"
2022-04-18 17:51:22 -04:00

533 lines
26 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

== Major JUCE features and updates ==
This file just lists the more notable headline features. For more detailed info
about changes and bugfixes please see the git log and BREAKING-CHANGES.txt.
Version 6.1.2
- Fixed an OpenGL display refresh rate issue on macOS
- Improved the scaling behaviour of hosted VST3 plug-ins
- Improved accessibility support
Version 6.1.1
- 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
Version 6.1.0
- 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
Version 6.0.8
- 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
Version 6.0.7
- Fixed a macOS drawing issue
- Updated the DemoRunner bundle ID
Version 6.0.6
- 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
Version 6.0.5
- 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
Version 6.0.4
- 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
Version 6.0.3
- Fixed version numbers in project files
Version 6.0.2
- 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
Version 6.0.1
- 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
Version 6.0.0
- 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
Version 5.4.7
- 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
Version 5.4.6
- 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
Version 5.4.5
- 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
Version 5.4.4
- 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
Version 5.4.3
- 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
Version 5.4.2
- 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
Version 5.4.1
- 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
Version 5.4.0
- 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
Version 5.3.2
- 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
Version 5.3.1
- 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
Version 5.3.0
- 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
Version 5.2.1
- 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
Version 5.2.0
- 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
Version 5.1.2
- 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
Version 5.1.1
- 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 its plugin editor
- Various documentation tweaks and fixes
Version 5.1.0
- 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
Version 5.0.2
- 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 Projucers code editor
- Minor fixes to JUCEs 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 Projucers 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
Version 5.0.1
- 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
Version 5.0.0
- 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
Version 4.3.1
- 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
Version 4.3.0
- 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
Version 4.2.4
- 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 werent always on top
- Multiple fixes for web InputStreams
- Various improvements to the live build engine
- Various minor improvements and bug fixes
- Various documentation improvements
Version 4.2.3
- 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
Version 4.2.1
- 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
Version 4.2
- 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!
Version 4.1
- 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
Version 4.0.3
- 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
Version 4.0.2
- Miscellaneous fixes and house-keeping
Version 4.0.1
- 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
Version 3.3.0
- New functions for Base64 conversion
- New command-line options in the introjucer for trimming whitespace and
replacing tabs in source files
Version 3.2.0
- 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
- Introjucers 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.