Open For Enrollment
Starts in 3 days
This exclusive course is part of the program:
Output Teaches Creating Audio Plugins with C++ and JUCE
You can also choose to start immediately after joining!
Go at your own pace
4 Sessions / 10 hours of work per session
Included w/ premium membership ($20/month)
Skill Level
Video Transcripts
Audio Plugins, JUCE Framework, Audio Plugin Architecture, GUI & DSP Programming
Open For Enrollment

Advanced Audio Plugin Development

Starts in 3 days
This exclusive course is part of the program:

Would you like to enroll?

Enrollment for this course has closed. But you can enroll in a future offering (please select)

Enrollment has closed

Enrollment for this course is currently closed, but the next offering will be available shortly. Check back soon!

Go at your own pace
4 Sessions / 10 hours of work per session
Included w/ premium membership ($20/month)
Skill Level
Video Transcripts
Audio Plugins, JUCE Framework, Audio Plugin Architecture, GUI & DSP Programming
Course Description

In this course, musician and Output software engineer Bruce Dawson expands on the fundamental concepts presented in the Intro to Audio Development course. We’ll expand on our understanding of fundamental Digital Signal Processing (DSP) design to create portable reusable DSP algorithms, as well as the user interface design introduced during the first course. Additionally, we’ll cover the basics of creating professional-grade reusable management systems, and take the time to make our work-in-progress project look and feel like a finished product.

What students are saying:

" Thank you very much for everything! This is the first formal JUCE course I have ever seen and taking it cleared up many things. "


This course is in adaptive mode and is open for enrollment. Learn more about adaptive courses here.

Session 1: The Modular Approach to Digital Signal Processing (December 17, 2019)
This session will expand on our fundamental Digital Signal Processing (DSP) knowledge gained from the first course, and focus on methods for compartmentalizing DSP algorithms in a object oriented fashion for easy portability and reusability.
14 lessons
1. Behind the Code: Making a Real Plugin
2. Course Introduction
3. Getting Started with JUCE
4. The Gain Module
5. Gain Mapping
6. The Delay Module
7. Making a Circular Buffer
8. Circular Buffer and Linear Interpolation
9. Debugging the Code
10. The LFO Module
11. Creating a Chorus
12. Parameter Smoothing
13. Even Smoother Smoothing
14. Session Recap
Session 2: Structured User Interface Design (December 24, 2019)
This session will expand on our fundamental user interface implementation, where we’ll be implementing a structured panel system, using globally defined sizes and colors, in a clean. simple, and easy-to-adjust manner.
13 lessons
1. Panels, Panels, Panels!
2. Panel Base and Defines
3. Main Panel and Top Panel
4. Gain Panel and Center Panel
5. FX Panel
6. Adding Parameters
7. Parameter Controls
8. Connecting Parameters to Plugin
9. Properly Implementing Sliders
10. Creating Labels
11. Creating a Combo Box
12. Last Steps: Making it Functional
13. Session Recap
Session 3: Designing Preset Management (December 31, 2019)
This session we’ll be exploring the concept of generic reusable management systems, as we’ll be implementing our first manager class that’ll allow us to store and recall audio settings for our plugin (and future plugins).
6 lessons
1. Getting Started with Managers
2. Getting & Setting State Information
3. Preset Functions
4. Interacting with Presets Part 1
5. Interacting with Presets Part 2
6. Session Recap
Session 4: Icing on the Cake: Advanced User Interface Skinning and Customization (January 7, 2020)
This final session we’ll be styling the user interface of our plugin as we implement fully rendered background images, slider images, interactive panels, and VU meters.
12 lessons
1. Defining Colors and Fonts
2. Look and Feel Class & Making Buttons
3. Styling Combo Boxes Part 1
4. Styling Combo Boxes Part 2
5. Adding Image Assets: Knobs
6. Adding Image Assets: Background & Adding Labels
7. A Little Cleanup
8. Adding a VU Meter Part 1
9. Adding a VU Meter Part 2
10. Making the VU Meter Work
11. Course Recap
12. Conclusion
Learning Outcomes

Below you will find an overview of the Learning Outcomes you will achieve as you complete this course.

Instructors & Guests
What You Need to Take This Course

Prior Knowledge:

C++, Music DAWs & Plugins


JUCE Code Library


Semi-modern computer


Integrated Development Environment (IDE) like Xcode, Visual Studio, or CodeBlocks

Additional Information

If a student signs up for the Creating Audio Plugins With C++ program, it is recommended that these courses are taken sequentially.

Peer Assessment Code of Conduct: Part of what makes Kadenze a great place to learn is our community of students. While you are completing your Peer Assessments, we ask that you help us maintain the quality of our community. Please:

  • Be Polite. Show your fellow students courtesy. No one wants to feel attacked—ever. For this reason, insults, condescension, or abuse will not be tolerated.
  • Show Respect. Kadenze is a global community. Our students are from many different cultures and backgrounds. Please be patient, kind, and open-minded when discussing topics such as race, religion, gender, sexual orientation, or other potentially controversial subjects.
  • Post Appropriate Content. We believe that expression is a human right, and we would never censor our students. With that in mind, please be sensitive of what you post in a Peer Assessment. Only post content where and when it is appropriate to do so.

Please understand that posts that violate this Code of Conduct harm our community and may be deleted or made invisible to other students by course moderators. Students who repeatedly break these rules may be removed from the course and/or may lose access to Kadenze.

Students with Disabilities: Students who have documented disabilities and who want to request accommodations should refer to the student help article via the Kadenze support center. Kadenze is committed to making sure that our site is accessible to everyone. Configure your accessibility settings in your Kadenze Account Settings.