Raw Material Software has announced the release of version 1.46 of JUCE, the cross-platform C++ toolkit for developing applications and plugins on Windows, Mac OS X and Linux.
Changes:
- New class: AudioProcessorGraph: This allows AudioProcessors to be efficiently wired together and run as a graph. I've converted the plugin host demo to now use this instead of its own graph rendering code.
- New class: AudioProcessorPlayer: This allows an audio i/o device to stream through an AudioProcessor (or an AudioProcessorGraph).
- New class QuickTimeAudioFormat, which uses QuickTime to implement an AudioFormat that can read .mov files and other formats that QT supports (e.g. mp3, aac, etc.).
- New class: WebBrowserComponent, for embedding a web browser in your app.
- AudioProcessor now has a few more pure virtual methods that you'll need to implement: acceptsMidi(), producesMidi() and getName().
- Moved all the audio plugin hosting classes into the main juce tree.
- Mac: the project now requires at least XCode V2.5.
- New class: ScopedTryLock.
- Added AudioUnit support to the audio hosting code.
- Any top-level components will now have their parentSizeChanged() method called when the screen res is changed (not on linux yet though..).
- Jucer: added support for ImageButtons.
- Audio devices - a few tweaks to the various audio drivers to try to make the best possible guess at the input and output latencies that they introduce.
- Updated to include the latest version of Flac (1.2.1).
- Added a parameter to DragAndDropTarget::isInterestedInDragSource().
- Changed the parameters to AudioIODeviceCallback::audioDeviceAboutToStart(), so that it now just supplies a pointer to the device. If you need to, you can still find out the sample rate and block size by asking the device for them.
- Changes to the URL class to allow file uploading.
- New method: PlatformUtilities::launchEmailWithAttachments.
- New classes: AudioThumbnail and AudioThumbnailCache, which allow easy rendering of low-res waveform previews.
- New classes: InputSource and FileInputSource. These encapsulate some kind of resource, and also replace the XmlInputSource class.
- Moved some of the posix code that was the same in the mac and linux builds into a single, shared file.
- Fixed InterprocessLock on mac/linux so that it can't get stuck when an app quits unexpectedly.
- Added an option to splash screens to close themselves when the mouse is clicked.
- Change to ProgressBar to allow custom text and bars that are just spinning without a known progress position. This also meant a change to the params for LookAndFeel::drawProgressBar.
- Ditched win98 non-unicode support (presumably nobody will miss that!).
- Change to the way that channel data is passed to an AudioIODeviceCallback. Previously, some of the channels could be null, but now is uses a packed array of all the active channels.