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…