Learn Audio Programming

Synth Plugin BookSynth Plugin Book

Creating Synthesizer Plug-Ins with C++ and JUCE


  • 381 pages
  • PDF & EPUB formats
  • Access to private Discord group for Q&A

Paperback Version via Amazon

Audio programming is an exciting intersection between software development, digital signal processing (DSP), and creativity. It's enjoyable and rewarding once you've learned the basics, but how do you get started?

In this book, we introduce you to this exciting world with a step-by-step guide to building a synthesizer plug-in. We provide straight-forward explanations to the concepts and keep the math simple.

Why build a synthesizer? Building a synth plug-in is a fantastic way to learn and walk through some of the fundamental concepts of audio programming, including:

  • The building blocks of a synth (oscillator, filter, envelope, & LFO)
  • The basics of digital audio and DSP
  • Understanding and handling MIDI communication
  • The fundamentals of real-time audio programming with C++
Synth Plugin BookSynth Plugin Book

In this book, we create a follow along using C++ and the JUCE Framework. These are professional tools that are used throughout the industry, and this is one of the only books available on using the JUCE Framework.

We provide in-depth explanations on not only the how, but more importantly the why of each step of the process. This is a great resource for developers of all levels, whether you're just starting on your journey or actively working within the industry.

Anyone with at least a basic understanding of programming concepts will find this book useful!

Table of Contents

  • Introduction
  • Chapter 1: What is a synth, exactly?
  • Chapter 2: Getting started with JUCE
  • Chapter 3: MIDI in, sound out
  • Chapter 4: Handling MIDI events in JUCE
  • Chapter 5: Introduction to oscillators
  • Chapter 6: The sawtooth oscillator
  • Chapter 7: Plug-in parameters
  • Chapter 8: The ADSR envelope
  • Chapter 9: Combining oscillators
  • Chapter 10: Polyphony & voice management
  • Chapter 11: Modulation
  • Chapter 12: The filter
  • Chapter 13 - User interface
  • Chapter 14 - Where to go from here
When I started The Audio Programmer community in 2017, I imagined a day when audio software development could be more accessible for anyone who was interested in learning. Back then, the available resources and communities were catered towards the more experienced portion of our industry. As a beginner, I wished for more resources that were able to explain these topics with everyday language, rather complex terms and confusing acronyms.

This book is an important step in that dream. Matthijs has graciously shared the opportunity for us to collaborate for this amazing work. “Creating Synthesizer Plug-ins with C++ and JUCE” seeks to provide easy to follow explanations for anyone seeking to learn more about audio software development - whether you're just starting, or already actively developing and seeking to take your next steps.Joshua Hodge
Founder, The Audio Programmer
Synth Plugin Book

About the author

Matthijs Hollemans

Matthijs Hollemans is a professional audio programmer. In his spare time he's a hobbyist musician who really needs to learn how to play the piano properly. Matthijs wrote the best-selling book The iOS Apprentice and is a co-author of Machine Learning by Tutorials from Kodeco (formerly raywenderlich.com). Check out his audio development blog at audiodev.blog.