Juce

From Wikipedia, the free encyclopedia
Jump to: navigation, search
JUCE
Jucelogo.png
Developer(s) Raw Material Software Ltd.
Written in C++
Operating system Cross-platform
Type Development library
License GPL, commercial
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.

[edit] Supported compilers

JUCE is officially confirmed to work properly with the following compilers.

[edit] Features

Like many other frameworks (e.g. Qt, wxWidgets, FLTK, etc.), JUCE contains classes providing a range of functionality that covers user-interface elements, graphics, audio, XML and JSON parsing, networking, cryptography, multi-threading, and various other commonly-used features. 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 original inspiration was Java's JDK, and JUCE was intended to be "something similar for C++".

A notable 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 devices (such as CoreAudio, ASIO, ALSA, JACK, WASAPI, DirectSound) and MIDI playback, polyphonic synthesizers, built-in 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.[1]

JUCE comes with wrapper classes for building audio and browser plugins. When building an audio plugin, a single binary is produced that supports multiple plugin formats (VST, RTAS, Audio Units). Since all the platform and format-specific code is contained in the wrapper, a user can build Mac and Windows VST/RTAS/AUs from a single codebase.

Browser plugins are handled in a similar way: a single binary is produced that functions as both an NPAPI and an ActiveX plugin.

[edit] Tools

Some integral tools that are provided with (and written using) the JUCE framework are the "Introjucer" and "Jucer".

The "Introjucer" is an IDE tool for creating and managing JUCE projects. When the files and settings for a JUCE project have been specified, the Introjucer automatically generates a collection of 3rd-party project files to allow the project to be compiled natively on each target platform. It can currently generate Xcode projects, Visual Studio projects, Linux Makefiles, and Android Ant builds. As well as providing a way to manage a project's files and settings, it also has some basic code editing abilities, and future versions promise an integrated GUI editor.

The "Jucer" is a visual GUI editor which allows user-interface components to be designed graphically, saving them as C++ code which can be incorporated directly into a JUCE application or plugin.

[edit] See also

[edit] References

[edit] Further reading

[edit] External links

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages