JUCE 1.40 review

by rbytes.net on

JUCE is an all-encompassing C++ class library for developing cross-platform applications

License: GPL (GNU General Public License)
File size: 3137K
Developer: Raw Material Software Ltd
0 stars award from rbytes.net

JUCE is an all-encompassing C++ class library for developing cross-platform applications. JUCE is good for creating highly-specialised user interfaces and for handling graphics and sound.

The intended users are developers who are building large, complex applications in C++ and who would like to use just one clean, high-level API rather than a bunch of different libraries for different purposes or platforms.

Its features include fully lightweight components with transparency and effects, classes for strings, containers, XML, streams, file handling, messaging, and event queues, vector graphics, a custom font engine, image manipulation, OpenGL support, low-latency audio I/O using CoreAudio, DSound and ASIO, audio buffers and nodes, MIDI file and event manipulation, Internet streams, undo/redo support, and more.

Here are some key features of "JUCE":
Basics - World's best string class; arrays; stream and file handling; time and date; maths functions, random numbers, reference counting, super-fast XML parser and well-stocked XML manipulation classes; abstractions for threads, processes, critical sections etc; built-in GZIP compression/decompression streams and ZIP file readling; undo/redo support; logging; messaging layer with timers, event listeners; etc. etc.
User Interface - Cross-platform windowing capability with extremely powerful lightweight component architecture. Ready-made components include buttons, lists, menus, textboxes, treeviews, scrollbars, etc. Components are customisable either at a low-level by creating your own (or by subclassing existing ones), or at an application-wide level by creating custom look-and-feel styles for them.
Vector Graphics - Fast, high-quality anti-aliased rendering of shapes with transpaency, gradient fills, etc; path stroking with different line styles, dashed-lines; affine transformations and geometry classes; manipulation of typefaces as paths and custom font engine to provide sub-pixel accurate text in a platform-independent manner; typefaces can be serialised for easy embedding of fonts in an executable.
Image manipulation - High-quality rendering of images, allowing affine transformations and transparency; support for cross-platform OpenGL windows within Juce windows; built-in parser for loading JPEG, PNG and GIF image formats; image caching; easy embedding of images in an executable without having to use platform-specific resources.
Audio - Low-latency audio engine supporting DirectSound, ASIO and CoreAudio devices; audio buffer classes for mixing and manipulating samples; Parsers for WAV and AIFF formats, as well as reading audio streams from audio CD devices (easy on the Mac, but tricky on Windows!); powerful MIDI message classes; MIDI file load/save; connectable audio-processing nodes including sample-rate conversion.
Networking - URL handling; http and ftp reader streams; launching default browsers, etc.
Easy to integrate - JUCE is a static library so your application can run as a stand-alone executable - no extra dlls to install, nothing for users to mess up! In your application, you'll just need to include one header file: "juce.h" and that's it - no platform-specific code or any other headers needed.

What's New in This Release:
Lots of fixes and minor features were made.
Changes to the audio plugin framework include the first release of RTAS plugin support.

JUCE 1.40 keywords