Skip to content

Learning path ​

A route through JUCE in six stages, each pairing a concept page with a real example from examples/ and a small exercise. Each stage builds on the one before, so work through them in order.

Setup once

sh
cd /path/to/JUCE
cmake . -B cmake-build -DJUCE_BUILD_EXAMPLES=ON -DJUCE_BUILD_EXTRAS=ON
cmake --build cmake-build --target DemoRunner

The DemoRunner app lets you browse and run the bundled demos, with their source alongside.[1] On Linux, install the packages in docs/Linux Dependencies.md first.

1. Foundations: juce_core and juce_events ​

  • Read: Core concepts → Strings, Ownership
  • Study: examples/Utilities/XMLandJSONDemo.h, TimersAndEventsDemo.h, MultithreadingDemo.h
  • Build: start from examples/CMake/ConsoleApp. Write a tool that lists every .wav file in a folder (File::findChildFiles) and prints the results as JSON.

2. Components and drawing ​

3. State ​

4. Real-time audio ​

5. DSP ​

  • Read: Modules → juce_dsp
  • Study: examples/DSP/GainDemo.h, IIRFilterDemo.h, OverdriveDemo.h, ConvolutionDemo.h
  • Build: make a dsp::ProcessorChain of gain, filter, and waveshaper, and process your sine through it.

6. Plug-ins ​

  • Read: Anatomy of a plug-in
  • Study: examples/Plugins/GainPluginDemo.h, then AudioPluginDemo.h, DSPModulePluginDemo.h, and WebViewPluginDemo.h
  • Build: start from examples/CMake/AudioPlugin. Port your stage-5 chain into a plug-in with an APVTS and slider attachments. Build the VST3 and Standalone targets, and test in extras/AudioPluginHost.

Going further ​

  • Hosting: examples/Plugins/HostPluginDemo.h and the AudioPluginHost source (extras/AudioPluginHost)
  • MIDI 2.0: examples/Audio/UmpDemo.h, CapabilityInquiryDemo.h
  • OpenGL and animation: examples/GUI/OpenGLDemo.h, AnimatorsDemo.h
  • Read the source: when a class confuses you, open its header. The Doxygen comments are the real documentation, and the jasserts show intended use.

How to grow this site as you learn ​

Each stage is a chance to add to these docs:

  • Add every new term you meet to the glossary.
  • When a diagram clarifies something, add a Mermaid block to the relevant page.
  • Keep a "gotchas" section on each page for the mistakes you actually made.

Sources ​


  1. Build commands from README.md; demos and CMake starting points are in examples/. Every example path on this page was checked against the repository at JUCE 9.0.3, so re-check after upgrading. The exercises are this site's own suggestions. ↩︎

Personal study notes on JUCE. Not affiliated with or endorsed by the JUCE team.