Image Credit: Programming For Musicians

SimpleMBComp from Programming For Musicians has released a free course that teaches you to code your own multi-band compressor in JUCE.

SimpleMBComp is a free “Code With Me” course from Charles Schiermeyer of Programming For Musicians, that teaches you to build a 3-band compressor with spectrum analyzer using JUCE and modern C++. JUCE is the application framework used to develop plugins such as 2RuleSynth. Charles takes you through everything from downloading and setting up JUCE and Visual Studio Community for free in Windows or Mac, to building the DSP (Digital Signal Processing) and GUI (Graphical User Interface).

The course is not recommended for beginners. A basic knowledge of C++ and music will come in handy as you’ll spend a lot of time fixing bugs and error codes. If you’re interested in learning to build plugins from scratch, try PFM’s C++ Language Fundamentals course here. It’s fairly costly but includes 30 days of 1-on-1 help.


The videos for the course are split as follows:

DSP (3hr 31min):

  • Part 1 Mac & Windows Setup 43:21
  • Part 2 Anatomy of an Audio Plugin 15:16
  • Part 3 Compressor Theory of Operation 11:08
  • Part 4 Compressor Parameters 11:32
  • Part 5 The First Compressor 14:52
  • Part 6 Creating a CompressorBand 5:30
  • Part 7 DSP Roadmap & Intro to Multiband Filtering 9:08
  • Part 8 Param Namespace 10:57
  • Part 9 Linkwitz-Riley Filters 13:49
  • Part 10 Testing the Filter 12:19
  • Part 11 Filterband Theory 4:34
  • Part 12 3-Band Filtering 9:00
  • Part 13 Inverted Allpass Filters 7:21
  • Part 14 Activating 3 Compressors 11:59
  • Part 15 Implementing Solo/Mute/Bypass 10:05
  • Part 16 Adding I/O Gain & Code Cleanup 17:11

GUI (4 hr 45 min):

  • Part 17 GUI Roadmap 5:47
  • Part 18 Placeholder Components 6:00
  • Part 19 Global Controls 21:03
  • Part 20 Rotary Slider With Labels 26:44
  • Part 21 Compressor Band Controls Pt. 1 10:02
  • Part 22 Compressor Band Controls Pt. 2 14:20
  • Part 23 Compressor Band Controls Pt. 3 12:58
  • Part 24 Band Select Functionality Pt. 1 17:17
  • Part 25 Band Select Functionality Pt. 2 9:08
  • Part 26 Separate Files Refactor 14:36
  • Part 27 Band Select Functionality Pt. 3 18:08
  • Part 28 Spectrum Analyzer Pt. 1 19:43
  • Part 29 Spectrum Analyzer Pt. 2 23:25
  • Part 30 Spectrum Analyzer Pt. 3 32:00
  • Part 31 Spectrum Analyzer Pt. 4 26:19
  • Part 32 ControlBar 19:25
  • Part 33 ColorScheme 6:59
  • Part 34 Loose Ends 1:14

SimpleMBComp comes with compiled AU/VST3 audio plugins for Windows and macOS, plus help via Slack Workspace if you get stuck. Head here to download the full course and enter FreeCodeCamp at checkout. From here you can donate as much as you’d like, or head to Programming For Musicians to purchase the $49 written tutorial, which includes access to the Scripted Git Repository. Alternatively, find the entire tutorial on YouTube here. Once you’ve completed this course, explore the rest of Programming For Musicians’ free and paid course, such as the free 5-hour course PFM:SimpleEQ, which teaches you to build a basic 3-band equalizer.