Uploaded February 2023 | Updated September 2026, 2 weeks ago
Join the Audio Programmer Community on Discord: theaudioprogrammer.com/community
Explore the repository: github.com/TheAudioProgrammer/juceDjApp
Find code snippets on our wiki: wiki.theaudioprogrammer.com
Contact us here for our services:
theaudioprogrammer.com/development
theaudioprogrammer.com/recruitment
Support the channel: patreon.com/TheAudioProgrammer
Website: theaudioprogrammer.com
Instagram: instagram.com/theaudioprogrammer
Facebook: facebook.com/theaudioprogrammer
Twitter: twitter.com/audioprogrammer
Join the Audio Programmer Community on Discord: theaudioprogrammer.com/community
Explore the repository: github.com/TheAudioProgrammer/juceDjApp
Find code snippets on our wiki: wiki.theaudioprogrammer.com
Contact us here for our services:
theaudioprogrammer.com/development
theaudioprogrammer.com/recruitment
Support the channel: patreon.com/TheAudioProgrammer
Website: theaudioprogrammer.com
Instagram: instagram.com/theaudioprogrammer
Facebook: facebook.com/theaudioprogrammer
Twitter: twitter.com/audioprogrammer



![JUCE PNG Strips for Next-Level Plugin UIs || Build This Awesome Sampler Pt 5
Custom knobs are one of the most-asked-about parts of building a plugin, and the secret is that you dont draw them at all. In Part 5 we build real custom knobs from an image filmstrip and a JUCE LookAndFeel, then wire them to the Decay and Reverb parameters of our sampler.
⏰ Timestamps:
00:00 - Introduction: why pro knobs arent drawn
01:41 - Prerequisites & the GitHub branch
01:55 - Adding the PNG strip (assets + CMake)
03:05 - Getting the knob from binary data
03:50 - How JUCE LookAndFeel works
04:35 - Building the KnobLookAndFeel class
07:02 - Moving the implementation into a .cpp
08:32 - Finding & overriding drawRotarySlider
11:26 - The frame-index math (value → frame)
15:10 - Drawing the frame (and the retina trick)
17:31 - Suppressing warnings with [[maybe_unused]]
18:06 - Why we build a reusable Knob component
19:14 - Creating the Knob class
23:00 - Implementing the constructor & styling
28:08 - Layout with resized()
29:01 - Wiring the Decay knob in the editor
31:44 - Adding the Reverb knob (the payoff)
32:55 - Recap & whats next
Project code: https://github.com/TheAudioProgrammer/JuceSamplerAudioPlugin
📚 Learn Audio Programming
https://theaudioprogrammer.com/books
🎤 Join our Community
https://theaudioprogrammer.com/community
💼 Hire Audio Programmers & Music Tech Professionals
https://theaudioprogrammer.com/recruitment
🏭 Create Your Own Audio Plug-in with Our Experienced Team
https://theaudioprogrammer.com/development
Stay connected with us
Instagram: https://www.instagram.com/theaudioprogrammer
Facebook: https://www.facebook.com/theaudioprogrammer
Twitter: https://www.twitter.com/audioprogrammer JUCE PNG Strips for Next-Level Plugin UIs || Build This Awesome Sampler Pt 5](https://i.ytimg.com/vi/pVSHrP9w8Nk/mqdefault.jpg)






