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.

355 lines
18KB

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