
Learn Modern C++ by Building an Audio Plugin (w/ JUCE Framework) - Full Course
video description
What about for people who have cats that mash the keys? I mean, what are you talking about? I'm 14 minutes in and I wonder if I shouldn't abandon ship now and save my energy for the book I ordered from Amazon. One good thing is, if there's room for improvement there's a way to recycle your content for someone to make their own tutorials.
On the other hand, I'm not trying to reverse engineer anything. I want to go through steps to understand how making a plug-in works.
Can you imagine paying 200$ per plug-in? Universal Audio already charges a hefty price for their audio interface models.
I can't enjoy its full functionality because their entire business model is based on extracting as much money as they can for features a 5,000$ machine should already have.
Not only that, but I had to buy and upgrade an iMac just to use this thing. So, just because I find what they propose insulting, I'm making my own plug-ins.
So thank you again... but please, realize that your audience requires explanations because you have the experience and concepts and intuition already but they may not.
Date: 2022-03-14
Related videos
Comments and reviews: 9
Magnus
This is just great. Really, thanks! I hadn't been doing any serious development since the days of Win 95, and in the mean while focused on different flavors of audio engineering. Finally set up in a decent flat with a room to spare for a home studio, and I want to DIY as much as humanly possible due to budget constraints, but, more importantly, for the sake of customization. I'm no slouch with the soldering iron & oscilloscope, but thanks to your excellent introduction to this new skill set I feel like my horizons have widened by orders of magnitude... Keep up the good work!
reply
This is just great. Really, thanks! I hadn't been doing any serious development since the days of Win 95, and in the mean while focused on different flavors of audio engineering. Finally set up in a decent flat with a room to spare for a home studio, and I want to DIY as much as humanly possible due to budget constraints, but, more importantly, for the sake of customization. I'm no slouch with the soldering iron & oscilloscope, but thanks to your excellent introduction to this new skill set I feel like my horizons have widened by orders of magnitude... Keep up the good work!
reply
Mark
To go from the first 3:28:00 where you explain everything in sufficient detail to plugging in a class that you explain in a paid course doesn't really sit well with me. You might say that this is free and to stop complaining - but I've invested more than 10 hours into this tutorial (writing in the copied in code, commenting in notes, going back and forward to understand everything I'm writing in etc) and now the this tutorial that is advertised as a -Full Course- has suddenly become much less than that. Bit of a downer
reply
To go from the first 3:28:00 where you explain everything in sufficient detail to plugging in a class that you explain in a paid course doesn't really sit well with me. You might say that this is free and to stop complaining - but I've invested more than 10 hours into this tutorial (writing in the copied in code, commenting in notes, going back and forward to understand everything I'm writing in etc) and now the this tutorial that is advertised as a -Full Course- has suddenly become much less than that. Bit of a downer
reply
Hans
Wow; thanks so much for this wonderful tutorial! I have a follow-up question (I'm only in Part 8 now -- maybe this changes later):
Why do we update the peak and cut filters in BOTH processBlock AND prepareToPlay? I got curious, so I removed the duplicated code from prepareToPlay and didn't seem to have any issues. Semantically this made sense to me, but maybe I'm misunderstanding; or maybe I misunderstood in the first place and shouldn't have put that code in both places.
Anyways, thanks for the great work!
reply
Wow; thanks so much for this wonderful tutorial! I have a follow-up question (I'm only in Part 8 now -- maybe this changes later):
Why do we update the peak and cut filters in BOTH processBlock AND prepareToPlay? I got curious, so I removed the duplicated code from prepareToPlay and didn't seem to have any issues. Semantically this made sense to me, but maybe I'm misunderstanding; or maybe I misunderstood in the first place and shouldn't have put that code in both places.
Anyways, thanks for the great work!
reply
Talbot
This is an A+++ video. Thank you! I have run into a few little snags. For example, gotta know to click that button in Juce screen to open the project in xcode (as someone commented below). Also, the audioPluginHost kept crashing when I tried to scan for plugins. Just need to change the scan mode to out of process or something like that (bottom right of the screen). I am about 45 minutes into this video and loving it!!! Have been wanting to find something like this for months.
reply
This is an A+++ video. Thank you! I have run into a few little snags. For example, gotta know to click that button in Juce screen to open the project in xcode (as someone commented below). Also, the audioPluginHost kept crashing when I tried to scan for plugins. Just need to change the scan mode to out of process or something like that (bottom right of the screen). I am about 45 minutes into this video and loving it!!! Have been wanting to find something like this for months.
reply
Lens
Going through the tutorial, made it to Part 10 (around 2 hours in) yet I am unable to get past a roadblock.
When I try to call addListener(this) on the parameters, it doesn't accept the function argument type of SimpleEQAudioProcessorEditor-, and is asking for a juce::AudioProcessorParameter::Listener instead
EDIT:
I fixed it simply by inheriting from juce::AudioProcessorParameter::Listener instead of juce::AudioProcessorListener
reply
Going through the tutorial, made it to Part 10 (around 2 hours in) yet I am unable to get past a roadblock.
When I try to call addListener(this) on the parameters, it doesn't accept the function argument type of SimpleEQAudioProcessorEditor-, and is asking for a juce::AudioProcessorParameter::Listener instead
EDIT:
I fixed it simply by inheriting from juce::AudioProcessorParameter::Listener instead of juce::AudioProcessorListener
reply
LagDaemon
This is an awesome tutorial. As a professional C++ programmer I am very happy that you are both refactoring code, and using template functions to do so. I am always disappointed by software developers who cannot refactor, especially in tutorials, but I see it in the professional world all the time as well, and many cannot work with template functions at all. Thank you for spreading the word about good practices in coding :)
reply
This is an awesome tutorial. As a professional C++ programmer I am very happy that you are both refactoring code, and using template functions to do so. I am always disappointed by software developers who cannot refactor, especially in tutorials, but I see it in the professional world all the time as well, and many cannot work with template functions at all. Thank you for spreading the word about good practices in coding :)
reply
ewwitsantonio
28:30 Quick question. Why are we programmatically creating an array of strings like this? I'm new to C++, so I don't totally understand how to initialize a string array, but we could have just hard coded -12-, -24- , -36-, -48-... right? Is there any reason why we didn't just hardcode it out? It's not like we will change these values or add more of them later, right?
Thanks for your thoughts and help :)
reply
28:30 Quick question. Why are we programmatically creating an array of strings like this? I'm new to C++, so I don't totally understand how to initialize a string array, but we could have just hard coded -12-, -24- , -36-, -48-... right? Is there any reason why we didn't just hardcode it out? It's not like we will change these values or add more of them later, right?
Thanks for your thoughts and help :)
reply
corey
Great video! Love the pace- I'm just past the 3 hr mark. The refactoring process was a bit quick, but I understand why it was edited this way.
Tried to learn juce about a year ago before I had any real experience. Needless to say, it didn't go well.
Now that I've taken a couple cpp courses, this has been a fun way to not only apply my skills but experience working with a framework for the first time!
reply
Great video! Love the pace- I'm just past the 3 hr mark. The refactoring process was a bit quick, but I understand why it was edited this way.
Tried to learn juce about a year ago before I had any real experience. Needless to say, it didn't go well.
Now that I've taken a couple cpp courses, this has been a fun way to not only apply my skills but experience working with a framework for the first time!
reply
itech
Whats the point of using an already written program with already written code and just inputting basically ALREADY written functions into our -new- code??? If you say you are about to build an audio plugin yourself then you should be writing the whole code yourself. Because, for me, I dont want to be writing off some functions and words being told so. I want the REAL explanation of the code, not a template
reply
Whats the point of using an already written program with already written code and just inputting basically ALREADY written functions into our -new- code??? If you say you are about to build an audio plugin yourself then you should be writing the whole code yourself. Because, for me, I dont want to be writing off some functions and words being told so. I want the REAL explanation of the code, not a template
reply
Add a review, comment
Other channel videos















