Tutorials
Getting Started
Projucer Part 1, getting started with the Projucer
Tutorial: Projucer Part 1: Getting started with the Projucer This tutorial shows you how to install JUCE and how to…
Projucer Part 2, manage your Projucer projects
Tutorial: Projucer Part 2: Manage your Projucer projects In Tutorial: Projucer Part 1: Getting started with the Projucer, you learned…
Create a basic Audio/MIDI plugin, Part 1
Tutorial: Create a basic Audio/MIDI plugin, Part 1: Setting up This tutorial will help you to set up your computer…
Create a basic Audio/MIDI plugin, Part 2
Tutorial: Create a basic Audio/MIDI plugin, Part 2: Coding your plug-in This tutorial follows on from Tutorial: Create a basic…
Projucer Part 3, choosing the right Projucer template for your application
Tutorial: Projucer Part 3: Choosing the right Projucer template for your application Choosing the right template for your application can…
Audio
Build an audio player
Tutorial: Build an audio player This tutorial covers how to open and play sound files. This includes some important classes…
Processing audio input
Tutorial: Processing audio input This tutorial shows how to process audio input and pass it to the audio output. LEVEL:…
Looping audio using the AudioSampleBuffer class
Tutorial: Looping audio using the AudioSampleBuffer class This tutorial shows how to play and loop audio stored in an AudioSampleBuffer…
Looping audio using the AudioSampleBuffer class (advanced)
Tutorial: Looping audio using the AudioSampleBuffer class (advanced) This tutorial shows how to play and loop audio stored in an…
Draw audio waveforms
Tutorial: Draw audio waveforms This tutorial introduces the display of audio waveforms using the AudioThumbnail class. This provides an easy…
The AudioDeviceManager class
Tutorial: The AudioDeviceManager class This tutorial introduces the AudioDeviceManager class which is used for managing audio devices on all platforms.…
Synth
Build a white noise generator
Tutorial: Build a white noise generator This tutorial introduces simple synthesis and audio output. This is key to developing an…
Control audio levels
Tutorial: Control audio levels This tutorial shows how to process audio to change its output level. This is achieved by…
Control audio levels using decibels
Tutorial: Control audio levels using decibels This tutorial shows how to process audio to change its output level using the…
Build a sine wave synthesiser
Tutorial: Build a sine wave synthesiser This tutorial introduces simple sine wave synthesis. We show how to manage the state…
Build a MIDI synthesiser
Tutorial: Build a MIDI synthesiser This tutorial implements a polyphonic sine wave synthesiser that responds to MIDI input. This makes…
Wavetable synthesis
Tutorial: Wavetable synthesis Incorporate wavetables to optimise your synthesiser oscillators. Manage the state of a sine wave oscillator using a…
MIDI
Create MIDI data
Tutorial: Create MIDI data This tutorial introduces the MidiMessage class, which is used for representing MIDI data. The MidiBuffer class…
Handling MIDI events
Tutorial: Handling MIDI events This tutorial illustrates how to handle MIDI input events. In addition to handing MIDI data from…
Projucer Part 1, getting started with the Projucer
Tutorial: Projucer Part 1: Getting started with the Projucer This tutorial shows you how to install JUCE and how to…
Build a multi-polyphonic synthesiser
Tutorial: Build a multi-polyphonic synthesiser Learn the basics of the MPE standard and how to implement a synthesiser that supports…
Understanding MPE zones
Tutorial: Understanding MPE zones Learn the concept of zones and the conventions for zone layouts as defined in the MPE…
Plugins
Adding plug-in parameters
Tutorial: Adding plug-in parameters Add parameters to your audio plug-in to allow control and automation from your digital audio workstation.…
Saving and loading your plug-in state
Tutorial: Saving and loading your plug-in state Automatic management of your plug-in parameters. Storing and accessing parameters becomes a breeze…
Configuring the right bus layouts for your plugins
Tutorial: Configuring the right bus layouts for your plugins Learn how to configure and restrict the bus layouts in your…
Cascading plug-in effects
Tutorial: Cascading plug-in effects Create your own channel strip by learning how to daisy chain audio processors or plugins using…
Plugin examples
Tutorial: Plugin examples This tutorial explains several audio/midi plug-in examples in detail and explores the open possibilities of plug-in development.…
Projucer Part 1, getting started with the Projucer
Tutorial: Projucer Part 1: Getting started with the Projucer This tutorial shows you how to install JUCE and how to…
DSP
Introduction to DSP
Tutorial: Introduction to DSP Discover the realm of digital signal processing and audio buffer manipulation. Learn the basics of the…
Add distortion through waveshaping and convolution
Tutorial: Add distortion through waveshaping and convolution Add grit to a synthesiser sound by creating harmonic distortion through waveshaping. Learn…
Create a string model with delay lines
Tutorial: Create a string model with delay lines Implement a realistic string model by means of physical modelling. Incorporate a…
Optimisation using the SIMDRegister class
Tutorial: Optimisation using the SIMDRegister class Take advantage of the processor’s parallelism to perform single instruction multiple data calculations. Optimise…
The fast Fourier transform
Tutorial: The fast Fourier transform Learn how to display incoming audio data as a spectrogram by using the FFT class…
Visualise the frequencies of a signal in real time
Tutorial: Visualise the frequencies of a signal in real time Learn how to display incoming audio data as a spectrum…
Graphics
The application window
Tutorial: The application window This tutorial demonstrates how to create a minimal app with an application window, and how to…
The main component
Tutorial: The main component This tutorial shows how to add graphical content to the application window by creating a main…
The Graphics class
Tutorial: The Graphics class This tutorial shows how to use a Graphics object to draw text, lines, and geometric shapes.…
Animating geometry
Tutorial: Animating geometry Create simple animations in your JUCE applications. Bring static geometry shapes to life using the AnimatedAppComponent class.…
Build an OpenGL application
Tutorial: Build an OpenGL application Learn how to get started with OpenGL as a high performance rendering library within your…
Projucer Part 1, getting started with the Projucer
Tutorial: Projucer Part 1: Getting started with the Projucer This tutorial shows you how to install JUCE and how to…
Interface Design
Parent and child components
Tutorial: Parent and child components This tutorial introduces the hierarchical nature of the Component class whereby one component can contain…
Customise the look and feel of your app
Tutorial: Customise the look and feel of your app Customise the drawing of fundamental widgets in your application. Make a…
Colours in JUCE
Tutorial: Colours in JUCE Specify and apply colours within your application in various ways. LEVEL: Beginner PLATFORMS: Windows, macOS, Linux,…
The Point, Line, and Rectangle classes
Tutorial: The Point, Line, and Rectangle classes Use the Point, Line, and Rectangle classes to simplify your geometry calculations. LEVEL:…
Advanced GUI layout techniques
Tutorial: Advanced GUI layout techniques Lay out your components with a simple yet powerful technique that will produce elegant code…
Responsive GUI layouts using FlexBox and Grid
Tutorial: Responsive GUI layouts using FlexBox and Grid Build responsive GUI layouts that work across different screen sizes and orientations…
Listeners and Broadcasters
Tutorial: Listeners and Broadcasters This tutorial introduces a key concept in JUCE: the listener and broadcaster system. We look at…
The Slider class
Tutorial: The Slider class This tutorial introduces the Slider class, shows how to respond to slider movements, and how to…
The Label class
Tutorial: The Label class This tutorial introduces the Label class, which is a component for displaying text. A Label component…
The ComboBox class
Tutorial: The ComboBox class This tutorial introduces the ComboBox class, which is a component for displaying lists of items to…
Radio buttons and checkboxes
Tutorial: Radio buttons and checkboxes Use radio buttons and checkboxes to add selectable options to your application. LEVEL: Beginner PLATFORMS:…
The TableListBox class
Tutorial: The TableListBox class Incorporate tables into your JUCE user interfaces. Display data loaded from an XML file and customise…
Mobile
Getting started with Android
Tutorial: Getting started with Android This tutorial introduces the use of Android Studio for creating JUCE-based projects. LEVEL: Beginner PLATFORMS:…
Managing Android screen sizes
Tutorial: Managing Android screen sizes Build your application for different screen sizes. There are many available screen sizes on Android,…
Projucer Part 1, getting started with the Projucer
Tutorial: Projucer Part 1: Getting started with the Projucer This tutorial shows you how to install JUCE and how to…
In-App Purchases on desktop and mobile devices
Tutorial: In-App Purchases on desktop and mobile devices Sell consumable and non-consumable In-App Purchases in your desktop and mobile applications.…
Push Notifications on desktop and mobile devices
Tutorial: Push Notifications on desktop and mobile devices Trigger local and remote notifications in your desktop and mobile applications. Learn…
Utility Classes
The BigInteger class
Tutorial: The BigInteger class This tutorial introduces the BigInteger class, which is for handling arbitrarily large integers. BigInteger objects are…
The Random class
Tutorial: The Random class This tutorial introduces generating random numbers using the Random class. Random numbers are useful in all…
File reading
Tutorial: File reading Open and read data from text and binary files. LEVEL: Beginner PLATFORMS: Windows, macOS, Linux CLASSES: File,…
The ValueTree class
Tutorial: The ValueTree class Learn how to use the ValueTree class to manage data effectively in your applications. LEVEL: Intermediate…
Using an UndoManager with a ValueTree
Tutorial: Using an UndoManager with a ValueTree Implement undo/redo actions in your applications. Easily restore previous intermediate states with UndoableAction…
App analytics collection
Tutorial: App analytics collection Collect app usage data from users in JUCE applications. Send analytics events to Google Analytics using…
Unlock your plugins through online registration
Tutorial: Unlock your plugins through online registration Improve the security of your apps and plugins by locking their access until…
Package your app or plugin for distribution
Tutorial: Package your app or plugin for distribution Learn how to prepare your audio application or plugin for distribution on…
Implement the OSC protocol in your app
Tutorial: Implement the OSC protocol in your app Learn how to harness the Open Sound Control protocol to connect several…