Juce
From Wikipedia, the free encyclopedia
Juce | |
---|---|
Developed by | Raw Material Software Ltd. |
Written in | C++ |
OS | Cross-platform |
Genre | Development library |
Website | http://www.rawmaterialsoftware.com/juce |
Juce is a free software, cross-platform C++ application framework, used for the development of GUI applications and plug-ins.
The aim of Juce is to allow software to be written such that the same source code will compile and run identically on Windows, Mac OS X and Linux platforms. It supports various development environments and compilers, such as GCC, Xcode and Visual Studio.
It was first released to the public in 2004, and is maintained by Raw Material Software in the United Kingdom. It is covered by a dual GPL/commercial license.
Contents |
[edit] Official Support
Juce is intended to be usable in exactly the same way on multiple platforms and compilers. Raw Material Software gives the following list of platforms and compilers on which support is officially confirmed; others may work, but have not been officially tested.
[edit] Supported Platforms
Juce is supported on the following platforms.
- Microsoft Windows versions 98, ME, 2000, and XP
- Mac OS X versions 10.2 and later
- Linux kernel series 2.6
[edit] Supported Compilers
Juce is officially confirmed to work properly with the following compilers.
- GCC versions 3.3 or later
- Xcode versions 2.0 or later
- Microsoft Visual Studio - Visual C++ versions 6 and onwards.
- Code::Blocks (using MinGW)
[edit] Features
Like many other frameworks (e.g. Qt, wxWidgets, FLTK, etc), Juce contains classes providing a range of functionality that covers graphics, audio, XML parsing, networking, cryptography, and other miscellaneous operations. Application developers needing several third-party libraries may thus be able to consolidate and use only the Juce library, or at least reduce the number of third-party libraries they use. In this the developers were inspired by Java's JDK, and state that they intended Juce to be "something similar for C++".
A noticeable feature of Juce when compared to other similar frameworks is its large set of audio functionality; this is because Juce was originally developed as part of the Tracktion audio sequencer before being split off into a standalone product. Juce has support for audio and MIDI playback, polyphonic synthesizers, readers for common audio file formats (such as WAV, AIFF, FLAC, and Vorbis), as well as wrappers for building various types of audio plugin, such as VST effects and instruments. This has led to its widespread use in the audio development community[citation needed].
Juce support different audio plugin interfaces (VSTi, RTAS, AudioUnits) with one interface. You can compile your plugin for Windows-VST and Mac-AU without changing source code, for example.
[edit] The Jucer
An integral part of the Juce framework is the Jucer, which is an application (itself written in Juce) that is used to visually design and edit GUIs. The Jucer can then be instructed to generate C++ code which implements the chosen GUI structure.