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.

477 lines
24KB

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