Plugins for applications are commonly written in C++ and writing a plugin program can be a great way to improve your programming skills.

We just published a course on the freeCodeCamp.org YouTube channel that will teach you how to use modern C++ to code a 3-Band Compressor with Spectrum Analyzer using the JUCE Framework.

The plugin you build will work with multiple different audio programs and works on both Windows and MacOS. The course covers building the DSP (Digital Signal Processing, basically the backend of the app) and GUI (the frontend).

This course was developed by Charles Schiermeyer, known as Matkat Music. Not only is Charles an experienced programmer, he is an excellent musician and has been nominated 3 times for a Grammy.

You will learn how to use the JUCE framework to create the plugin. This is a cross-platform C++ application framework, used for the development of desktop and mobile applications.

Here are the sections covered in this course:

Building the DSP

  • Mac & Windows Setup
  • Anatomy of an Audio Plugin 4
  • Compressor Theory of Operation
  • Compressor Parameters
  • The First Compressor
  • Creating a CompressorBand
  • DSP Roadmap & Intro to Multiband Filtering
  • Param Namespace
  • Linkwitz-Riley Filters
  • Testing the Filter
  • Filterband Theory
  • 3-Band Filtering
  • Inverted Allpass Filters
  • Activating 3 Compressors
  • Implementing Solo/Mute/Bypass
  • Adding I/O Gain & Code Cleanup

Building the GUI

  • GUI Roadmap
  • Placeholder Components
  • Global Controls
  • Rotary Slider With Labels
  • Compressor Band Controls
  • Band Select Functionality  
  • Separate Files Refactor
  • Spectrum Analyzer
  • ControlBar
  • ColorScheme
  • Loose Ends

Watch the full course below or on the freeCodeCamp.org YouTube channel (5-hour watch).