An Introduction to the JUCE Framework

A simple introduction to the JUCE C++ Audio Development Framework

Brendan Thompson

Tags: blog Audio

What Is JUCE?

JUCE is a partially open-source cross-platform C++ application framework, used for the development of desktop and mobile applications. JUCE is used in particular for its GUI and plug-ins libraries

I found JUCE while searching for a good method of creating VST plug-ins for Music Production. In particular, I was looking for a simple way to create a Synthesizer plug-in that I could use when producing music. However, I didn’t want to spend the summer bogged down with Signal Processing and Wave Physics. That is where JUCE came in.

The Projucer

The main JUCE application is called the Projucer. It asks the user to chose between a few different project types, including:

It then creates a large new template project. With all of their built in classes it is a breeze to start inputting and outputting both Audio and MIDI data, processing audio, and creating some really interesting applications.

Online Resources

There are tons of great tutorials out there that are great for getting started with the Projucer and starting to create small applications. On YouTube there are a bunch of good video tutorials as well. However, I have found that taking steps past the basics can quickly become quite challenging.

My Current Standing

[Edit 10/19/17]: See the JUCE Summer Summary project page for the updated current standing

As of this point I am struggling to get the Audio Processing classes to communicate together. Basically, there are a series of objects that are required to start creating advanced applications and smoothly communicating data between the UI and the Audio thread: