C++ Programming Tutorial - Build a 3-Band Compressor Audio Plugin (w/ JUCE Framework)
In this tutorial you will learn modern C++ by building a 3-Band Compressor with Spectrum Analyzer using the JUCE Framework.
✏️ This course was developed by Matkat Music. Check him out on YouTube and Instagram:
🔗 https://www.youtube.com/matkatmusic
🔗 https://www.instagram.com/matkatmusic
💻 Code: https://github.com/matkatmusic/SimpleMultiBandComp/
💻 Download the finished plugin: https://www.programmingformusicians.com/simplembcomp/
⭐️ Course Contents ⭐️
⌨️ (0:00:00) Intro
DSP [3hr 31min]
⌨️ (0:02:29) Part 1 Mac & Windows Setup
⌨️ (0:04:10) Mac set up
⌨️ (0:22:40) Windows set up 2
⌨️ (0:45:49) Part 2 Anatomy of an Audio Plugin 4
⌨️ (1:01:05) Part 3 Compressor Theory of Operation
⌨️ (1:12:13) Part 4 Compressor Parameters
⌨️ (1:23:45) Part 5 The First Compressor
⌨️ (1:38:50) Part 6 Creating a CompressorBand
⌨️ (1:44:20) Part 7 DSP Roadmap & Intro to Multiband Filtering
⌨️ (1:53:28) Part 8 Param Namespace
⌨️ (2:04:24) Part 9 Linkwitz-Riley Filters
⌨️ (2:18:13) Part 10 Testing the Filter
⌨️ (2:30:32) Part 11 Filterband Theory
⌨️ (2:35:06) Part 12 3-Band Filtering
⌨️ (2:44:06) Part 13 Inverted Allpass Filters
⌨️ (2:51:27) Part 14 Activating 3 Compressors
⌨️ (3:03:27) Part 15 Implementing Solo/Mute/Bypass
⌨️ (3:13:32) Part 16 Adding I/O Gain & Code Cleanup
GUI [4 hr 45 min]
⌨️ (3:30:43) Part 17 GUI Roadmap
⌨️ (3:36:29) Part 18 Placeholder Components
⌨️ (3:42:43) Part 19 Global Controls
⌨️ (4:03:46) Part 20 Rotary Slider With Labels
⌨️ (4:30:30) Part 21 Compressor Band Controls Pt. 1
⌨️ (4:40:32) Part 22 Compressor Band Controls Pt. 2
⌨️ (4:54:53) Part 23 Compressor Band Controls Pt. 3
⌨️ (5:07:51) Part 24 Band Select Functionality Pt. 1 0
⌨️ (5:25:21) Part 25 Band Select Functionality Pt. 2
⌨️ (5:34:29) Part 26 Separate Files Refactor
⌨️ (5:49:05) Part 27 Band Select Functionality Pt. 3
⌨️ (6:07:13) Part 28 Spectrum Analyzer Pt. 1
⌨️ (6:27:10) Part 29 Spectrum Analyzer Pt. 2
⌨️ (6:50:35) Part 30 Spectrum Analyzer Pt. 3
⌨️ (7:22:35) P
Watch on YouTube ↗
(saves to browser)
Sign in to unlock AI tutor explanation · ⚡30
Playlist
Uploads from freeCodeCamp.org · freeCodeCamp.org · 0 of 60
← Previous
Next →
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
React: Production Server Setup Part 2 - Live Coding with Jesse
freeCodeCamp.org
cookies vs localStorage vs sessionStorage - Beau teaches JavaScript
freeCodeCamp.org
Browser history tutorial - Beau teaches JavaScript
freeCodeCamp.org
Graph Data Structure Intro (inc. adjacency list, adjacency matrix, incidence matrix)
freeCodeCamp.org
React: Parameterized Routing with Next.js - Live Coding with Jesse
freeCodeCamp.org
React: Dealing with jQuery Issues - Live Coding with Jesse
freeCodeCamp.org
setInterval and setTimeout: timing events - Beau teaches JavaScript
freeCodeCamp.org
Browser and Device Testing - Live Coding with Jesse
freeCodeCamp.org
Last Minute Updates - Live Coding with Jesse
freeCodeCamp.org
Post Launch Updates - Live Coding with Jesse
freeCodeCamp.org
React: Setting Up Google Analytics - Live Coding with Jesse
freeCodeCamp.org
React: Masonry Layout - Live Coding with Jesse
freeCodeCamp.org
Load Balancing Digital Ocean Droplets - Live Coding with Jesse
freeCodeCamp.org
try, catch, finally, throw - error handling in JavaScript
freeCodeCamp.org
Load Balancing: SSL Passthrough Setup - Live Coding with Jesse
freeCodeCamp.org
Graphs: breadth-first search - Beau teaches JavaScript
freeCodeCamp.org
React: Masonry Layout Part 2 - Live Coding with Jesse
freeCodeCamp.org
React: WordPress API Live Search - Live Coding with Jesse
freeCodeCamp.org
Creating WordPress Custom Post Types - Live Coding With Jesse
freeCodeCamp.org
Dates - Beau teaches JavaScript
freeCodeCamp.org
Miscellaneous Front End Updates - Live Coding with Jesse
freeCodeCamp.org
Merging a Pull Request from GitHub - Live Coding with Jesse
freeCodeCamp.org
React + Prettier + Standard JS - Live Coding with Jesse
freeCodeCamp.org
React: Sortable Responsive Table - Live Coding with Jesse
freeCodeCamp.org
Geolocation Sorting by Distance - Live Coding with Jesse
freeCodeCamp.org
Tradeoff Matrix - Agile Software Development
freeCodeCamp.org
The Definition of Ready - Agile Software Development
freeCodeCamp.org
Getting first React job without experience - Ask Preethi
freeCodeCamp.org
React: Google Analytics Click Tracking - Live Coding with Jesse
freeCodeCamp.org
Submitting a PR to an Open Source Project - Live Coding with Jesse
freeCodeCamp.org
Should I go back to school to get CS degree? - Ask Preethi
freeCodeCamp.org
Hero Section CSS Changes - Live Coding with Jesse
freeCodeCamp.org
Working Agreement - Agile Software Development
freeCodeCamp.org
A day at Pennybox with Co-Founder Reji Eapen
freeCodeCamp.org
React: Sorting and Filtering Data - Live Coding with Jesse
freeCodeCamp.org
React: Sorting and Filtering Data Part 2 - Live Coding with Jesse
freeCodeCamp.org
React: Building a New UI - Live Coding with Jesse
freeCodeCamp.org
Definition of Done - Agile Software Development
freeCodeCamp.org
Getting started with jQuery (tutorial) - Beau teaches JavaScript
freeCodeCamp.org
Making a React Blog with WordPress Content - Live Coding with Jesse
freeCodeCamp.org
React, NextJS, CSS - Live Coding with Jesse
freeCodeCamp.org
jQuery events - Beau teaches JavaScript
freeCodeCamp.org
React/NextJS Routing and WordPress API Custom Types - Live Coding with Jesse
freeCodeCamp.org
React: Working with API Data - Live Coding with Jesse
freeCodeCamp.org
React: Refactoring Components - Live Streaming with Jesse
freeCodeCamp.org
jQuery effects - Beau teaches JavaScript
freeCodeCamp.org
More React Refactoring - Live Coding with Jesse
freeCodeCamp.org
animate in jQuery - Beau teaches JavaScript
freeCodeCamp.org
"Finishing" My React Site - Live Coding with Jesse
freeCodeCamp.org
Starting a New React Project (P2D1) - Live Coding with Jesse
freeCodeCamp.org
React Project 2 Day 2: Learning Material UI - Live Coding with Jesse
freeCodeCamp.org
The Agile Manifesto - Agile Software Development
freeCodeCamp.org
jQuery: get and set with http, text, val, and attr - Beau teaches JavaScript
freeCodeCamp.org
React Project 2 Day 3 - Live Coding with Jesse
freeCodeCamp.org
The INVEST approach to product backlog items
freeCodeCamp.org
React Project 2 Day 4 - Live Coding with Jesse
freeCodeCamp.org
Chickens and Pigs - Agile Software Development
freeCodeCamp.org
React Project 2 Day 5 - Live Coding with Jesse
freeCodeCamp.org
jQuery: add and remove DOM elements - Beau teaches JavaScript
freeCodeCamp.org
React Project 2 Day 6 - Live Coding with Jesse
freeCodeCamp.org
Related AI Lessons
🎓
Tutor Explanation
DeepCamp AI