The JUCE cross-platform C++ framework, with DISTRHO/KXStudio specific changes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

410 lines
21KB

  1. == Major JUCE features and updates ==
  2. This file just lists the more notable headline features. For more detailed info
  3. about minor changes and bugfixes, please see the git log!
  4. Version 5.4.7
  5. - Fixed a macOS focus bug causing Components to not receive mouse events
  6. - Fixed a potential NullPointerException in the Android IAP code
  7. - Fixed an entitlements file generation bug in the Projucer
  8. - Send VST2 audioMasterUpdateDisplay opcode on the message thread to fix some hosts not updating
  9. - Fixed some build errors and warnings when using Clang on Windows
  10. - Changed the default architecture specified in Linux Makefiles generated by the Projucer
  11. Version 5.4.6
  12. - Fixed compatibility with macOS versions below 10.11
  13. - Multiple thread safety improvements
  14. - Added dynamic parameter and parameter group names
  15. - Updated to the latest Android In-App Purchases API
  16. - Improvements to the Windows message queue under high load
  17. - Replaced WaitableEvent internals with std::condition_variable
  18. - Fixed some macOS text alignment issues
  19. Version 5.4.5
  20. - Improved message queue performance on Linux
  21. - Added missing lifecycle callbacks on Android Q
  22. - Refactored the AudioBlock class
  23. - Fixed APVTS parameter update recursion
  24. - Updated Bela code to support latest release
  25. - Fixed issues drawing italicised text on macOS
  26. - Fixed broken back button behaviour on Android
  27. - Added Bluetooth permissions settings needed for iOS 13.0+ to the Projucer
  28. - Replaced select() calls with poll()
  29. - Various bug-fixes, improvements and documentation updates
  30. Version 5.4.4
  31. - Improvements to floating point number printing
  32. - Faster plug-in parameter indexing
  33. - Added support for persisting attachements to MIDI devices
  34. - Refactored Linux event loop handling
  35. - Multiple C++ modernisation improvements to the API
  36. - Added support for macOS 10.15 and iOS 13
  37. - Added support for Visual Studio 2019
  38. - Removed support for Visual Studio 2013
  39. Version 5.4.3
  40. - Added a Visual Studio 2019 exporter to the Projucer
  41. - Added options to configure macOS Hardened Runtime in the Projucer
  42. - Fixed a potential memory corruption when drawing on macOS/iOS
  43. - Fixed file drag and drop for Windows 8
  44. - Multiple DSP module enhancements
  45. - Various bug-fixes, improvements and documentation updates
  46. Version 5.4.2
  47. - Restructured the low-level Android native code
  48. - Added an ADSR envelope class
  49. - AudioProcessorValueTreeState performance improvements
  50. - Improved Xcode 10 support
  51. - Improved VST3 hosting
  52. - Windows hiDPI scaling enhancements
  53. Version 5.4.1
  54. - Fixed a VST2 compilation error in VS2013
  55. - Fixed some live-build compilation errors in the Projucer
  56. - Fixed a bug in the Oversampling class
  57. - Made MPESynthesiserVoice::noteOnTime public
  58. - Fixed some bugs in the Unity plug-in wrapper
  59. - Fixed some VS2015 compiler errors
  60. Version 5.4.0
  61. - macOS Mojave and iOS 12 support
  62. - Windows hiDPI support
  63. - Unity native plug-in support
  64. - Microsoft BLE MIDI support
  65. - Plug-in parameter groups
  66. - Support for production-ready Android OBOE
  67. - Video playback support on Android and iOS
  68. - AudioProcessorValueTreeState improvements
  69. - Support for Android Studio 3.2
  70. - Various bug-fixes, improvements and documentation updates
  71. Version 5.3.2
  72. - Removed the OSX 10.5 and 10.6 deployment target options from the Projucer and enabled more C++11 features across all platforms
  73. - Replaced all usage of ScopedPointer with std::unique_ptr
  74. - Added camera support for iOS and Android
  75. - Fixed some issues using an UndoManager with an AudioProcessorValueTreeState
  76. - Added MIDI input to IAA plug-ins
  77. - Made multiple calls to MidiInput::openDevice share the same underlying win32 MIDI handle
  78. - Added a config flag to juce_audio_processors for enabling LADSPA plugin hosting and enabled it in the AudioPluginHost
  79. - Added a "plug-in can do" callback to the VSTCallbackHandler interface
  80. - Fixed various undefined behavior in SIMDRegister
  81. - Added the methods AudioBlock::copyTo/AudioBlock::copyFrom which facilitate copying to/from an AudioBuffer
  82. - Added a lambda callback to OpenGLGraphicsContextCustomShader to allow custom set-up when the shader is activated
  83. - Fixed a bug causing an unintentional menu item highlight disco party when using a popup menu in a plug-in's UI
  84. - Marked as deprecated: String::empty, var::null, File::nonexistent, ValueTree::invalid and other problematic statically-initialised null values
  85. Version 5.3.1
  86. - Add Android and iOS support to AudioPluginHost
  87. - Added support for Bela in the form of an AudioIODeviceType
  88. - Add bypass support to both hosting and plug-in client code
  89. - Added an isBoolean flag to APVTS parameters
  90. - Re-worked plug-in wrappers to all use new parameter system via LegacyAudioParameter wrapper class
  91. - Fixed an issue where opening the same midi device twice would cause a crash on Windows
  92. - Deprecated MouseInputSource::hasMouseMovedSignificantlySincePressed() and replaced with more descriptive methods
  93. - Added support for relative or special path symbolic links when compressing/uncompressing zip archives and creating/reading files
  94. - Ensured that File::replaceInternal does not fail with ACL errors on Windows
  95. - Merged-in some Ogg-Vorbis security fixes
  96. - Fixed a bug which would prevent a SystemTrayIconComponent from creating a native popup window on macOS
  97. - Various Android and iOS fixes
  98. - Added a "PIP Creator" utility tool to the Projucer
  99. - Added options for setting plugin categories and characteristics with MultiChoicePropertyComponent in the Projucer
  100. - Fixed a Projucer bug where the OSX base SDK version was not being set
  101. - Added a command-line option to use LF as linefeeds rather than CRLF in the Projucer cleanup tools
  102. - Multiple documentation updates
  103. Version 5.3.0
  104. - Added support for Android OBOE (developer preview)
  105. - Updated JUCE's MPE classes to comply with the new MMA-adopted specification
  106. - Multiple documentation updates
  107. - Restructured the examples and extras directories and updated all JUCE examples
  108. - Multiple hosted parameter improvements
  109. - Overhauled the GenericAudioProcessorEditor
  110. - Added support for a subset of the Cockos VST extensions
  111. - Added support for loading VST3 preset files
  112. - Added boolean AudioProcessorParameters
  113. - Added thread safe methods for getting and setting the AudioProcessorValueTreeState state
  114. - Added customisable MacOS icons
  115. Version 5.2.1
  116. - Added native content sharing support for iOS and Android
  117. - Added iOS and Android native file chooser support
  118. - Implemented WebBrowserComponent on Android
  119. - Added SystemStats::getDeviceManufacturer()
  120. - Ensured that JUCE will always use the high-performance audio path on Android if the device supports it
  121. - Added memory warning callbacks on iOS
  122. - Refactored iOSAudioDevice to support multi-channel audio devices and improve the handling of sample rate changes from other apps
  123. - Added SidePanel and BurgerMenu component classes
  124. - Added PushNotifications support on OSX
  125. - Added support for VST3 SDK 3.6.8
  126. - Added support for loading VST3 preset files
  127. - Added higher-order ambisonics support
  128. - Added thread safe methods for getting and setting the AudioProcessorValueTreeState state
  129. - Cleanup and refactoring work on the AudioProcessorGraph and the audio plugin host demo
  130. - Changed the default language standard for new projects from C++11 to C++14 and set all JUCE projects to use C++14
  131. - Made the ScopedPointer interface more compatible with std::unique_ptr
  132. - Changed Windows projects to use dynamic runtime linking by default
  133. - Added lambda callbacks to ListenerList, Slider, Button, Label, ComboBox and TextEditor
  134. - Fixed the live-build engine on Windows
  135. - Multiple DSP module fixes and features
  136. - Multiple threading and undefined behaviour fixes and improvements
  137. - Various graphics optimisations
  138. - Multiple Projucer UI and UX improvements
  139. - Various documentation tweaks and fixes
  140. Version 5.2.0
  141. - Added a CMake exporter to the Projucer
  142. - JUCE analytics module
  143. - Added support for push notifications on iOS and Android
  144. - Added in-app purchase support for macOS
  145. - Added a plugin binary copy step to the Visual Studio exporter
  146. - Added an option to set the debug information format in the Visual Studio exporter
  147. - Added a link-time optimisation option to all exporters
  148. - Added support for adding asm files to Android projects
  149. - Improved the reliability of the Projucer's live-build engine
  150. - Added support for AUv2 Midi Effect plug-in hosting
  151. - Added support for Atmos 7.0.2 and 7.1.2 Surround formats
  152. - Added support for the OGG sub-format inside a WAV file
  153. - Added support for querying the audio hardware on how many overruns/underruns occurred
  154. - Implement Process::hide on mobile platforms
  155. - Added support for multi-touch drag and drop
  156. - Improved the performance of 3D rendering when multiple OpenGL contexts are used at the same time
  157. - Tweaked the rate at which EdgeTable grows its internal storage, to improve performance rendering large and complex paths
  158. Version 5.1.2
  159. - Fixed multiple plugin-resizing bugs
  160. - Added support for AUv3 MIDI and screen size negotiation
  161. - Added support for Xcode 9 and iOS 11
  162. - Added an In-App Purchases module
  163. - Added backwards compatible constexpr support
  164. - Standalone plug-in improvements
  165. - Better .jucer file change monitoring in the Projucer
  166. - Increased the speed of AU parameter lookup
  167. - Improved the Android thread management when dealing with web requests
  168. - Better denormal support
  169. - Plug-in parameters can be explicitly marked as continuous or discrete
  170. - Multiple documentation updates
  171. Version 5.1.1
  172. - Fixed Windows live build engine on Visual Studio 2017
  173. - Fixed a compiler error in juce_MathFunctions.h in Visual Studio 2013
  174. - Fixed a potential crash when using the ProcessorDuplicator
  175. - Fixed a compiler-error in Filter::IIR
  176. - Fixed an issue where the WavFileFormatWriter could not create files with discrete channels
  177. - Fixed an issue where a window which is beneath a hidden window would not receive any clicks on Linux
  178. - Altered the format of BREAKING-CHANGES.txt to display better on GitHub
  179. - Projucer: Fixed an issue in exporter tilde expansion
  180. - Fixed compiler errors when building the DSP module with a static version of FFTW
  181. - Fixed an audio glitch when bypassing the convolution engine
  182. - Fixed an issue where a JUCE VST2 would not correctly report that it supports resizing of it’s plugin editor
  183. - Various documentation tweaks and fixes
  184. Version 5.1.0
  185. - Release of the JUCE DSP module
  186. - Multichannel audio readers and writers
  187. - Plugin editor Hi-DPI scaling support
  188. - Major improvements to Projucer module search paths
  189. - Added Projucer support for iOS app groups
  190. - Added support for AVFoundation and deprecated the use of Quicktime
  191. - Added a new real-time audio thread priority for Android
  192. - Various Projucer UI fixes
  193. - Various documentation fixes
  194. - Various minor improvements and bug fixes
  195. Version 5.0.2
  196. - Improved project save speed in the Projucer
  197. - Added option to save individual exporters in the Projucer
  198. - Added the ability to create custom colour schemes for the Projucer’s code editor
  199. - Minor fixes to JUCE’s SVG parser
  200. - Various bug fixes in the way JUCE handles Hi-DPI monitors
  201. - Improved code browsing in Visual Studio Exports
  202. - Improved the handling of audio device buffer size changes on iOS
  203. - Fixed bug in the Win32 FileChooser dialog when selecting a nonexistent root drive
  204. - Fixed a Projucer crash when saving projects with no targets
  205. - Fixed a bug where Projucer generated Makefiles would not trigger a recompilation when header files had changed
  206. - The standalone plugin target is now compatible with effect plug-ins
  207. - Fixed an issue where it was not possible to use the live build engine on plugin projects
  208. - Improved the way the Projucer’s live-build engine searches for platform headers on Windows
  209. - Fixed an issue where the Projucer would complain about not having internet even if the user had a license
  210. - Fixed a use-after-free in the AUv3 wrapper
  211. - Fixed an issue where the channel layout would not be reported correctly in the AUv3 wrapper
  212. - Fixed a potential memory overrun issue when hosting VST2 plugins with more than eight channels
  213. - Fixed a problem with the Mac main menu bar showing menus in the wrong position
  214. - Various Projucer UI fixes
  215. - Various documentation fixes
  216. - Various minor improvements and bug fixes
  217. Version 5.0.1
  218. - Fixed Windows live build engine on Visual Studio 2017
  219. - Fixed memory-leak in Projucer live build engine
  220. - Fixed an issue where you could not paste your redeem serial number with Cmd+V on macOS
  221. - Fixed an issue where the Projucer would crash on linux due to missing symbols in WebKit
  222. - Minor Projucer UI improvements
  223. - Various minor improvements and bug fixes
  224. Version 5.0.0
  225. - New licensing model
  226. - Projucer UI/UX overhaul
  227. - New look and feel (version 4)
  228. - New standalone plug-in format
  229. - Added support for Visual Studio 2017
  230. - Added support for VST3 SDK 3.6.7
  231. - Added support for Apple Inter-App Audio on iOS
  232. - Various Android stability and performance improvements
  233. - Added support for non-experimental gradle plug-in versions >= 2.2 and Android Studio 2.3
  234. - Added support for closed-source third-party modules
  235. - Added support for Windows 10 Bluetooth LE MIDI devices
  236. - Modernised JUCE codebase to use C++11/14 features
  237. - Added support for Linux embedded platforms
  238. - Added support for WebBrowserComponent on Linux
  239. - Added support for IPv6
  240. - Various minor improvements and bug fixes
  241. - Various documentation improvements
  242. Version 4.3.1
  243. - Added support for iOS download tasks
  244. - Added support for AAX plug-in meters
  245. - Added support for dynamically disabling/enabling sidechains in ProTools
  246. - Re-introduced support for VST3 plug-ins reporting which VST2 plug-in they can replace
  247. - Added withRightX and withBottomY methods to Rectangle
  248. - Added support for windows 10 on screen keyboard
  249. - Added move semantics to AudioBuffer
  250. - Added colour coding scheme to module icons in the Projucer to indicate which type of license a module uses
  251. - Removed all deprecation warnings for macOS Sierra
  252. - Fixed multiple touch, pen and mouse input related bugs on Windows
  253. - Added submenu support to ComboBoxes and simplified the usage of ComboBoxes
  254. - Various minor improvements and bug fixes
  255. - Various documentation improvements
  256. Version 4.3.0
  257. - Added API and examples for ROLI Blocks
  258. - Multiple Projucer live-build UI and diagnostics improvements
  259. - JUCE now supports hosting multi-bus plug-ins
  260. - BufferingAudioSource now supports pre-buffering (useful for offline processing)
  261. - Added microphone permissions switch to Projucer for iOS targets
  262. - Standalone wrappers now correctly save and restore midi settings
  263. - Various performance improvements to BigInteger
  264. - Fixed various FlexBox bugs
  265. - Added a workaround for the broken “Open Recent…” menu on os x
  266. - Various minor improvements and bug fixes
  267. - Various documentation improvements
  268. Version 4.2.4
  269. - Pre-release of live build engine on Windows
  270. - Added FlexBox layout engine
  271. - Removed dependency on external Steinberg SDK when building and/or hosting VST2 plug-ins
  272. - Added support for MIDI network sessions in the iOS simulator
  273. - Added support for symmetric skew to Slider, NormalisableRange and SliderPropertyComponent
  274. - Projucer now asks the user what to do when it detects that the .jucer file was modified outside of the Projucer
  275. - Improved support for Windows 10 touch devices
  276. - Added begin/end iterator methods for ValueTree, for handy range-based-for loops over its children
  277. - Added support for recent mingw-w64 compilers
  278. - Added useful proportional Rectangle utility methods
  279. - Significantly improved the performance of BigInteger
  280. - Added support for expiring licenses to juce_tracktion_marketplace
  281. - Added support for retina mouse cursors on OS X
  282. - Added a new low-quality mode for the CameraDevice
  283. - Added pkg-config support for Linux
  284. - Projucer will now wrap your AAX plug-in in the bundle format expected Pro Tools on Windows
  285. - Multiple bug-fixes for AudioUnit parameter ids
  286. - Fixed a bug where AlertWindows weren’t always on top
  287. - Multiple fixes for web InputStreams
  288. - Various improvements to the live build engine
  289. - Various minor improvements and bug fixes
  290. - Various documentation improvements
  291. Version 4.2.3
  292. - Various VST3 improvements: resizing VST3 windows, plug-in compatibility issues
  293. - Use NSURLSession on newer OS X versions
  294. - Add compatibility for VST 3 SDK update 3.6.6
  295. - Miscellaneous fixes and improvements
  296. Version 4.2.1
  297. - New class CachedValue, for providing easy and efficient access to ValueTree properties
  298. - Reduced audio plug-in binary sizes on OS X and added symbol-stripping option
  299. - Miscellaneous fixes and improvements
  300. Version 4.2
  301. - Added support for AudioUnit v3 on OS X and iOS
  302. - Simplified the JUCE module format. Removed the json module definition files, and made
  303. it easier to manually add modules to projects. The format is fully described in the
  304. document juce/modules/JUCE Module Format.txt
  305. - iOS project support: added custom resource folders, custom xcassets, app capabilities,
  306. and screen orientation settings.
  307. - Deleted the Introjucer.. But don't panic! All of its functionality is now supplied by a
  308. more open-source version of the Projucer. By refactoring the closed-source LLVM compilation
  309. code into a DLL, we've been able to unify the Introjucer and Projucer into a single
  310. open-source project. This will allow everyone to compile the Projucer's IDE themselves, and
  311. having just one app instead of two will make things a lot less confusing!
  312. Version 4.1
  313. - Added multi-bus support for audio plug-in clients
  314. - Added support for MIDI effect plug-ins (AU and AAX).
  315. - Added new example: Network Graphics Demo
  316. Version 4.0.3
  317. - Added MPE (Multidimensional Polyphonic Expression) classes
  318. - Added full support for generating and parsing Midi RPN/NRPN messages
  319. - Made the LinearSmoothedValue class public
  320. - Miscellaneous fixes and minor improvements
  321. Version 4.0.2
  322. - Miscellaneous fixes and house-keeping
  323. Version 4.0.1
  324. - Initial release of the Projucer!
  325. - Full OSC support!
  326. - Android Studio exporting from the Introjucer
  327. - Android-M pro-audio low-latency i/o support
  328. - Bluetooth MIDI device support on iOS and Android
  329. - AudioSampleBuffer refactored into a templated class AudioBuffer, to allow
  330. 32 or 64 bit float support
  331. - Audio plugin and hosting now supports 64-bit data
  332. - Support for force-touch and pen pressure on iOS and Windows
  333. - Added easy sound-file playing methods to AudioDeviceManager
  334. - Many updates to Introjucer
  335. - Many new tutorials and examples
  336. Version 3.3.0
  337. - New functions for Base64 conversion
  338. - New command-line options in the introjucer for trimming whitespace and
  339. replacing tabs in source files
  340. Version 3.2.0
  341. - Major OpenGL performance/stability improvements
  342. - Performance improvements to FloatVectorOperations math functions
  343. - New FloatVectorOperations: abs, min, max, addWithMultiply, clip
  344. - Midi channel pressure support
  345. - New example projects ComponentTutorialExample, SimpleFFTExample,
  346. PluckedStringsDemo
  347. - New class ValueTreeSynchroniser, for remote-syncing multiple
  348. ValueTrees
  349. - HTTPS/SSL support on Linux
  350. - Added methods for degrees to radians conversions
  351. - Added Neon instruction set support for Android targets
  352. - JUCE ValueTree performance improvements
  353. - Linux and Android multi-monitor HiDPI support
  354. - Support the “display=none” attribute in SVG files
  355. - Support for text elements in SVG files
  356. - Added Whirlpool hash class to the cryptography module
  357. - Various improvements for parameter automation in VST, VST-3,
  358. AudioUnits and AAX
  359. - Various improvements to JUCE Synthesiser
  360. - Linux Code::Blocks project support
  361. - Multicast support
  362. - Add support to generate project version numbers from project git tags
  363. - Various updates to example projects
  364. - Stability improvements to re-order and resize code of plug-in windows
  365. - Support for external third-party native libraries on Android
  366. - Introjucer’s auto-update now displays release notes
  367. - Various Introjucer usability improvements
  368. - Support for in-memory fonts on Android
  369. - New FFT class
  370. - WASAPI exclusive mode support
  371. - More C++11 feature support macros
  372. - Performance improvements to XML parsing
  373. - Add compatibility for AAX SDK 2.2.0
  374. - Added parameters to the ValueTree::Listener::valueTreeChildRemoved()
  375. and valueTreeChildOrderChanged() methods to include more info about
  376. exactly what changed
  377. - Over 400 minor changes, bug-fixes, documentation improvements, etc.