Sorry about the ridiculous delay since 1.45, but I’ve finally done a new release!
There won’t be any surprises here for most of you, as most people have probably been using the tip for months now, but it’s nice to label a stable point.
Why so long since the last one? Well there are now so many little projects and platforms to test, that it takes me about 2 days just to go through all the checking and drudgery involved in doing a release, and it’s been hard to find enough time to do it. I’ll try not to leave it so long in future though!
Here’s a copy of the change list, although some of these features are already quite old!
- 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(). This ma
- 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