Learn Modern C++ by Building an Audio Plugin (w/ JUCE Framework) - Full Course

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 ก.ย. 2024

ความคิดเห็น • 757

  • @TradeEGL
    @TradeEGL 3 ปีที่แล้ว +147

    I just had two worlds collide when I saw this video. Been playing guitar for decades, now trying to learn to code in my 50s. I use VSTs all the time, and Im super stoked to be learning to code my own EQ. Thanks for what you are doing, not all heroes wear capes.

    • @Sim2322
      @Sim2322 3 ปีที่แล้ว +4

      @Rusrec Noneya I went back to school in CS when Covid hit (was a musician, so it was a good move). A did a little DAW for some class, and it was really satisfying!
      Keep at it!

    • @misstress1928
      @misstress1928 10 หลายเดือนก่อน

      With all due respect sir, it's not your own EQ. Pretty much like learning Stairway to Heaven ain't gonna make it your own masterpiece. Just saying. Still hope you've really learned to code your own stuff.

    • @TradeEGL
      @TradeEGL 10 หลายเดือนก่อน

      lol, I bet you're a real blast at parties.
      @@misstress1928

    • @SPL1NTER_SE
      @SPL1NTER_SE 9 หลายเดือนก่อน +5

      @@misstress1928 After making this EQ, he could add extended functionality, or maybe restart from scratch and make a different EQ without following a course.

  • @yasser_hussain
    @yasser_hussain 3 ปีที่แล้ว +679

    Gilfoyle is teaching us modern C++. Sweet.

    • @rabingurung8133
      @rabingurung8133 3 ปีที่แล้ว +4

      Damn true haha

    • @mitchellcampbell2775
      @mitchellcampbell2775 3 ปีที่แล้ว +2

      The reason I clicked on this to be honest XD

    • @chriisduran
      @chriisduran 3 ปีที่แล้ว +3

      I understood the reference!

    • @7403536
      @7403536 3 ปีที่แล้ว

      lol

    • @alp1584
      @alp1584 3 ปีที่แล้ว +4

      And also he is making this because dinesh made video calling app

  • @SmeiskAudio
    @SmeiskAudio 3 ปีที่แล้ว +134

    I'm a theatrical audio engineer and sound designer who discovered a new love for computer science over the pandemic. The fact that this course exists is just such a perfect bridge for me. I'm looking forward to taking the time to learn from this over the coming week.

    • @eltonwild5648
      @eltonwild5648 2 ปีที่แล้ว +1

      I want to learn sound design. How do I do it? I can't find good resources to learn wether it's TH-cam or other websites

    • @noahcuff1161
      @noahcuff1161 2 ปีที่แล้ว +5

      @@eltonwild5648 Hey! You might have figured this out already but getting into sound design can depend on what you want to create sounds for. I'd say the three broad types are for video (movie/tv/animation/ect.), video games (same techniques as video but implementing them into video games takes special knowledge), and for software tools (where coding languages such as the above video come in handy).
      I am not as familiar with sound design for software tools (one of the many reasons I'm on this video) but for video and video games, the main tools you'll want are this:
      1. A DAW (Digital Audio Workstation) such as Pro Tools, Ableton, Adobe Audition, Logic, Reaper, ect.
      - This is your main workstation, your canvas if you were painting. Every sound that you have recorded will be put into here to edit/manipulate and your virtual audio tools (VSTs usually) will be integrated with this.
      2. Field Recorder/Audio Recording Equipment
      - Most sound designers manipulate audio that they record themselves. Don't feel the need to buy fancy expensive audio recording equipment if you're just starting, smartphone audio recording is a great way to get started.
      - Field Recording Equipment is used when you're outside of a controlled studio environment (EX: Recording ocean waves, Vehicles, ect.)
      - Studio Recording Equipment is probably a better choice to start with since you can record anything you bring into your studio and it will be as controlled as the environment you choose to record in (Bedroom, Basement, Home Built Studio, ect.). For this you'll want a microphone and an audio interface (microphone plugs into audio interface, audio interface plugs into computer. You can then record directly into your DAW)
      3. Free audio websites (Freesound is my favorite website and probably the most popular for practical sound effects such as crowds, explosions, car engines, ect.)
      - These are great resources for when you don't have any recording equipment but you want to get started in sound design ASAP. it's also a great resource when there is a sound that you have no way of replicating/recording. Once it gets beyond just a hobby and becomes professional, then this resource gets a little dicey since you're using someone else's work. But getting paid to do sound design might be harder than learning sound design lol believe me.
      4. Audio Middleware is used for implementing your sound design into video games I would recommend working on your sound design skills for video before attempting this. A good way to practice with video is taking a movie/tv/animation scene and removing all of the sound. Then you can put your video into a DAW (some DAWs aren't nice with video, might take some configuration) and record and manipulate sounds to redesign the sound for that scene. If you want to attempt video games, then you would want these tools:
      - Audio Middleware (Wwise and FMOD are the two most popular software though there are probably others)
      - Wwise works very well with Unity game engine from my experience, while I've noticed FMOD is often used with Unreal Game Engine. I don't have much experience outside of Wwise/Unity though, so other combos probably work well too.
      - Basic C# can be helpful when working with Game Engines though it's not required if you're working solely in an audio middleware. But if you're doing this project completely by yourself, then you'll need C# knowledge for the video game engine scripting . This is why I don't recommend starting with this.
      I hope this helps, there are a lot of great resources/communities on reddit, facebook, and other forums. I would also search on TH-cam for how your favorite movies, tv shows, video games did their sound design. There's often behind the scenes videos or interviews with the sound designers where they show their process. And if you need to create a specific sound, many TH-camrs have created videos showing their process of how they created those sounds. Some googling can do wonders once you know what to even Google.
      Lastly, remember to HAVE FUN or else this isn't worth pursuing. It's a lot of hard-work and takes technical skills, but you need to keep your creativity because this is still a creative hobby/profession. You are the one imagining what worlds sound like for an audience and it can be an amazing feeling when they feel like they've been sucked into the world you helped create.
      EDIT: I totally forgot about sound design for live productions such as theater. The same principles apply as with video, but you'll need equipment to trigger the sounds while a live production is going on. I would google equipment that can do this as I don't have a ton of experience with a live setting.

    • @eltonwild5648
      @eltonwild5648 2 ปีที่แล้ว

      @@noahcuff1161 thank you so much Noah! Do you have a website or TH-cam channel?

    • @shine_uno
      @shine_uno ปีที่แล้ว

      @@eltonwild5648 there thousand of approaches to sound desing, from Granular synthesis ro create your own sound in already existing instrument vst, to program your own vintage tube saturetor alike old synths

    • @ganeshram580
      @ganeshram580 ปีที่แล้ว

      Take care of some C++ fundas before this and you'll be all set :)

  • @konstantinrebrov675
    @konstantinrebrov675 3 ปีที่แล้ว +409

    In this channel we should have a playlist for all the C++ tutorials.

    • @jr2media635
      @jr2media635 3 ปีที่แล้ว +19

      That playlist would take a lifetime to complete 🤣🤣🤣

    • @konstantinrebrov675
      @konstantinrebrov675 3 ปีที่แล้ว +7

      @@jr2media635 Not all the C++ tutorials on TH-cam, but all the C++ tutorials on this channel. That would take not long time.

    • @jr2media635
      @jr2media635 3 ปีที่แล้ว +17

      @@konstantinrebrov675 I know, it was a bit of joke because this channel has lots of very long videos.

    • @Roule_n_Scratche
      @Roule_n_Scratche 2 ปีที่แล้ว

      There is one now

    • @majorbangz
      @majorbangz ปีที่แล้ว

      Yes!!!

  • @zapzap7307
    @zapzap7307 3 ปีที่แล้ว +61

    I literally tought about how plugins are created yesterday... and then this shows up on my feed. There's just no way

    • @Mathcartney
      @Mathcartney 3 ปีที่แล้ว +4

      professional plugins (like waves or sound toys) doesn't use juce or these kind of frameworks. They only use the steinberg SDK directly if they're targeting VST. But juce is cool to learn and do small things

    • @zapzap7307
      @zapzap7307 3 ปีที่แล้ว

      @@Mathcartney Hmm... good to know. Will definitively look into it more in depth

    • @Wix92
      @Wix92 3 ปีที่แล้ว +2

      I'll tell you a secret Google doesn't want you to know: most videos on TH-cam are no longer made by people! Google's generative AI is so advanced it can create an entire video based on your advertising profile from scratch so they can show you more ads!
      /jk

    • @zapzap7307
      @zapzap7307 3 ปีที่แล้ว

      @@Wix92 adblock 👍

    • @MatkatMusic
      @MatkatMusic 3 ปีที่แล้ว +2

      @@Mathcartney There are a lot of pro plugins built with JUCE. A lot of Universal Audio plugins are built with it, as are Valhalla plugins, to name a few major brands. All of Eventide plugins are built with it, too.

  • @ImJonasCortez
    @ImJonasCortez ปีที่แล้ว +72

    For anyone getting the following error on Mac (when also building an Audio Unit): "JUCE Assertion failure in juce_AudioProcessor.cpp:441".
    When adding the parameters, wrap the parameter ID's in juce::ParameterID(param, 1). For example: layout.add(std::make_unique(juce::ParameterID("LowCut Slope", 1), "LowCut Slope", slopes, 0));
    This is because Audio Units require version hints in parameters for some daws like Logic.
    Hope I could help :)

    • @wogawooga
      @wogawooga ปีที่แล้ว +7

      You are a legend.

    • @jalexkeys6650
      @jalexkeys6650 ปีที่แล้ว +2

      Thank you! Got stuck here for awhile and this was it!

    • @relaxingvibes5560
      @relaxingvibes5560 ปีที่แล้ว

      Indeed a legend

    • @dorky5256
      @dorky5256 ปีที่แล้ว

      Thanks so much! I do wonder though, is this something that changed on a later point? Why was this changed? Since in the video this was not needed.

    • @MetroidVibes
      @MetroidVibes ปีที่แล้ว

      Thx man ! It helped here 🤜🤛

  • @nbase2652
    @nbase2652 2 ปีที่แล้ว +33

    43:30 [Part 5] Quick Tip for everyone wondering how to do that on Windows in Visual Studio (I use 2017) :
    In the Solution Explorer panel, right-click on the Project "[plugin name]_VST3" > Properties. Then go to "Debugging" and set Command to the path of your AudioPluginHost's DEBUG (!) Build executable (change "$(TargetPath)" to, for example, "C:\Juce\AudioPluginHost\Debug\AudioPluginHost.exe"). Set this Command for every configuration (Debug/Release) of PluginName_VST3.
    Attention: This only affects the [PluginName]_VST3 project, not _StandalonePlugin. When you click Debug, VS will run whatever project is set as the main Startup project for this solution (by default it's _StandalonePlugin = the one printed bold in Solution Explorer), so run _VST3 directly via Right-Click>Debugging>Start (or assign _VST3 as the main Startup project).
    This way, Visual Studio will launch the AudioPluginHost.exe (which IIRC automatically loads the last saved .filtergraph file) and go into debugging mode - so breakpoints, logs etc should work, too.

    • @ldmdesign5610
      @ldmdesign5610 2 ปีที่แล้ว

      thanks

    • @zaqsiefert5508
      @zaqsiefert5508 2 ปีที่แล้ว +1

      This method works for Visual Studio 2022 as well, thank you

    • @user-xl4tb2mb6h
      @user-xl4tb2mb6h 2 ปีที่แล้ว

      Thanks!

    • @brannonharris4642
      @brannonharris4642 2 ปีที่แล้ว

      Thanks, bro :)

    • @RipLoaf
      @RipLoaf ปีที่แล้ว

      Can someone walk me thru this I can get it to work

  • @belzeebub6022
    @belzeebub6022 3 ปีที่แล้ว +20

    Oh god finally someone go in depth for beginner into audio programming

  • @SavaSolar
    @SavaSolar 3 ปีที่แล้ว +44

    To all those getting an error at around 1:12:40--I fixed it by going to the ChainSettings struct in PluginProcessor.h and changing "int lowCutSlope" to "Slope lowCutSlope". I suspect Matkat accidentally cut out the part where he did that haha

    • @MatkatMusic
      @MatkatMusic 3 ปีที่แล้ว +4

      That sounds like something I'd do! Sorry!! 😂😂

    • @ghoulian
      @ghoulian 3 ปีที่แล้ว

      bless you!

    • @m1kr0kosmos
      @m1kr0kosmos 2 ปีที่แล้ว

      Noice, thanks.

    • @TESKOmakesmusic
      @TESKOmakesmusic 2 ปีที่แล้ว

      life saver

    • @sirroberto6595
      @sirroberto6595 ปีที่แล้ว

      God bless you my saver

  • @fabionunes2793
    @fabionunes2793 2 ปีที่แล้ว +28

    Just one thing. I don't recommend to use developer branches to install dependencies (frameworks os libs), because master would be always the best choice, since master branch reflects the latest version, without any insecure or testing features, refactorings or any kind of thing that is not validated to be in production.

    • @OLahoda
      @OLahoda 2 ปีที่แล้ว +1

      Yes I highly recommend this as well, switching to master branch saves a lot of headache and can be done from terminal with "git checkout master".

    • @fabionunes2793
      @fabionunes2793 ปีที่แล้ว

      @Dsus man, the master branch should be the latest stable. Evertything that is in release or dev branches are implementations in a QA or even dev stages and in a serious projet you never want to be in the risk of breaking something because you are relying your project to something that is not done yet.

  • @gnprice
    @gnprice 2 ปีที่แล้ว +13

    Your courses (both free and paid) have been incredibly valuable to me! Imagine how it feels to learn the knowledge and gain the confidence to design and build your own audio plugin. Thanks again!

    • @MatkatMusic
      @MatkatMusic 2 ปีที่แล้ว +3

      Thank you so much!!

    • @VignetteQ
      @VignetteQ 7 หลายเดือนก่อน

      @@MatkatMusic Hey weird question but what color theme are you using here? Also thanks so much for this tutorial! Currently about halfway through it working along and it's been incredibly informative.

  • @MozwGamer
    @MozwGamer 3 ปีที่แล้ว +4

    God Bless this man, and the internet. Wonderful times we are living in.👏🏽

  • @Jarrettmonty99
    @Jarrettmonty99 3 ปีที่แล้ว +13

    as an computer engineer, I never delved into much graphical C++ but not only does this look awesome, I can say that your choice of GUI really gives insight into what you're doing to the entire frequency range and would even be a cool tool for those learning about network analysis and frequency response curves for circuits! much more informative than those little sliders or pre-selected stock equalizers

    • @iluvyunie
      @iluvyunie 9 หลายเดือนก่อน

      ^^ this me right now, but also I'm building this as a precursor to learning to build analogue synths.
      I'm in EE and kinda dream of just building my own whacky things for people to geek out over.

  • @DevoShreds
    @DevoShreds 3 ปีที่แล้ว +8

    Just started looking into audio programming last week and this pops up. Incredible. *Edit: this is a really well made and high quality tutorial. Thank you!

    • @MatkatMusic
      @MatkatMusic 3 ปีที่แล้ว +2

      You're welcome!

  • @Bendigo1
    @Bendigo1 3 ปีที่แล้ว +5

    I wish i had an attention span long enough to watch these tutorials. They look great.

  • @TheRussianGenius
    @TheRussianGenius 7 หลายเดือนก่อน

    This is wild. It makes sense to a degree im a more than a newbie, but what a world to live in that we can get access to this type of material.

  • @mantality312
    @mantality312 3 ปีที่แล้ว +8

    finally a C++ tutorial that realizes a visual project is necessary for us visual learners. THANK YOU!!!

  • @pinch-of-salt
    @pinch-of-salt 3 ปีที่แล้ว +19

    Finally modern C++ and an interesting project.

  • @MrTKnighton
    @MrTKnighton 2 ปีที่แล้ว +4

    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.

    • @CB-td4fz
      @CB-td4fz ปีที่แล้ว +1

      I needed this info! Thank you

  • @mixedproduce9787
    @mixedproduce9787 ปีที่แล้ว +1

    Sweet Tutorial! Really fun to build out. Instead of creating 2 functions to create both the high and low pass coefficients, you can create one function and pass in a pointer to the butterworth method ie. Have a parameter juce::ReferenceCountedArray(*func)(float, double, int) and the argument would be &juce::dsp::FilterDesign::designIIR[Low/High]passHighOrderButterworthMethod

  • @noodle-eater
    @noodle-eater 3 ปีที่แล้ว +5

    This is gonna be awesome, I love tools development especially for games. But never have a chance to use cpp. Now is the time, you are awesome dude

    • @MatkatMusic
      @MatkatMusic 3 ปีที่แล้ว

      Thank you for checking it out!

  • @rdubb77
    @rdubb77 3 ปีที่แล้ว +26

    This is great, though I can see most people still getting lost in the very verbose and exacting syntax of C++. Make sure you get a strong handle on strong typing, and understand C++ style classes, namespaces, pointers, and inhertance well or your brain will explode at some point. Expecially if you come from a scripting language background

    • @vidit9024
      @vidit9024 3 ปีที่แล้ว

      Hi rob i am learning dsa in c++ and i can say i have a good hold of c++ if not data structures. I was looking for some projects for my resume and i don't know if these projects put off recruiters. I have no connections with my seniors since we are in a pandemic. What do you recommend? Should i build this or pass?

    • @confidential303
      @confidential303 3 ปีที่แล้ว

      @@vidit9024 what kind of job you searching, in what field ?

  • @Learnerofthings
    @Learnerofthings 3 ปีที่แล้ว +3

    Just a minor thing. When Projucer starts and you switch to XCode to start looking at the code, you don't show the users who've never used JUCE how to switch. You eventually do when changing the language to C++17, and then hit the icon to save and launch the IDE, but not before that. I know it is minor, but every step counts in these tutorials. There are so many bad ones out there that some users give up at the first sign of something not working or being glossed over. Having said that, I think this is going to be a great tutorial and a God-Send for me. Thank you for this :)

    • @MatkatMusic
      @MatkatMusic 3 ปีที่แล้ว +1

      Thanks. I probably edited out the process of clicking that button by accident.

    • @Learnerofthings
      @Learnerofthings 3 ปีที่แล้ว

      @@MatkatMusic Yep, I am going through the 7 day trial right now and all of the explanations are there. I definitely recommend it for new subscribers, before starting this course. The quality of the content is remarkable.

    • @fruitygranulizer540
      @fruitygranulizer540 2 ปีที่แล้ว +1

      he did say the other way. you go to builds and open the xcode file in ur finder. this is one of the first things he taught.

    • @petrichor2973
      @petrichor2973 ปีที่แล้ว +1

      Im using vs code and currently stuck on this part.

  • @nbase2652
    @nbase2652 2 ปีที่แล้ว +12

    40:13 [Part 5] Quick Tip for VS2017 (Windows) if AudioPluginHost doesn't find your .vst4 : VS saves the .vst3 file only to its [...]\x64\Debug folder. You have one of 3 options:
    1) In AudioPluginHost, add this directory when scanning for new VST3 files /
    2) Copy the file by hand to a common VST3 directory (C:\Program Files\Common Files\VST3) /
    3) In Solution Explorer Panel, right-click the project [PluginName]_VST3 > Properties > Build Events > Post Build and set "Command" to, for example,
    [ copy /y "$(TargetPath)" "C:\Program Files\Common Files\VST3\$(TargetFileName)" ]
    Attention: Post-build copy command will fail if the .vst3 file is locked (e.g. because it's currently being used by AudioPluginHost.exe)

    • @jeremiedsouza6703
      @jeremiedsouza6703 2 ปีที่แล้ว

      In my Debug folder there is Shared Code folder and Standalone Plugin folder. I can't find any .vst3 file in my project. Is there some initial setup I have to do in VS for it to build this .vst3 file like do I have to install the VST SDK or is it just some setting I have to change?

    • @nbase2652
      @nbase2652 2 ปีที่แล้ว +1

      @@jeremiedsouza6703 Is there a VST3 project in the Solution Explorer inside VS?
      If NOT, you probably 1) made an Audio Application (make a new Projucer project and select Audio *Plugin*) or 2) unchecked VST3 in the project settings (gear icon inside Projucer > Plugin Formats). If there IS a VST3 project, you probably just need to right-click > Build it from inside Visual Studio's Solution Explorer panel.

    • @jeremiedsouza6703
      @jeremiedsouza6703 2 ปีที่แล้ว +1

      @@nbase2652 Thank you! Yea I just had to to right click and build xD

    • @Damn_Stressless
      @Damn_Stressless ปีที่แล้ว +1

      Thank you ❤

  • @raghul1208
    @raghul1208 3 ปีที่แล้ว

    always wondered for 5 years what plugins are after using them for guitar effects and you explained it in 5 hours. thank you

  • @Dcassimatis
    @Dcassimatis 2 ปีที่แล้ว +3

    You explanation is to MAC justified,..if I'm going to pay for the class it'd be nice if you gave more info for the PC end,...I shouldn't have to decipher this myself,...all respect. This is all very intriguing and I'd like to participate if I could on Windows.

  • @mbusokotobe9793
    @mbusokotobe9793 3 ปีที่แล้ว

    WOW WOW WOW WOW WOW WOW WOW WOW WOW WOW WOW WOW
    I can't believe this. Is it real What the Hell LOOOOL Always dreamed of programming audio tools but didn't know where to begin.
    This is the best thing that ever happened so far this year!!!
    Thank you very much Gilfoyle

  • @whateverland7464
    @whateverland7464 3 ปีที่แล้ว +3

    this is quite literally God-sent content to me: I've been wanting to learn more about audio plugins for months now!
    🔥🔥🔥

  • @iosifpuha6114
    @iosifpuha6114 ปีที่แล้ว

    all this is really free on TH-cam, what a time we live in! Gotta suck up as much knowledge as I can fr

  • @andersbremberg2822
    @andersbremberg2822 ปีที่แล้ว

    Awesome tutorial.
    The best part is showing the end result in the beginning before coding everything from scratch, fast forwarding code typing and the regression testing by demo.
    Anything not perfect?, well on a personell matter I prefer to avoid the variable name "i" since it is so closely resembling a "1", I prefer a "n" especially in dsp-code for indexes.
    and some speaker audio is sometimes doubled and even delayed, not a biggie.
    and there is a cat distraction, very refreshing :-), Trixie?

  • @halavich9672
    @halavich9672 3 ปีที่แล้ว +1

    Gee! Always was wondering about the approach of creating own pluggins. This course is REALLY well made and underrated

  • @HelicopterRidesForCommunists
    @HelicopterRidesForCommunists 3 หลายเดือนก่อน +3

    See, I always imagined that programmers had to program and engineer exactly how audio is converted, and what it actually is. All that stuff is underneath the implementation of it, and there does not seem to be a whole lot of designing or work at that lower level. My conception of programmers was way way off - kind of - because they did actually have to do that but it appears that those are solved problems by now, thus "standing on the shoulders of giants", but I cant shake the feeling that Im not a "real" programmer unless I get down into machine code.

  • @merfy12
    @merfy12 7 หลายเดือนก่อน

    On OS X Sonoma 14.2 and Juce 7.0.9 (develop branch) if you get a codesign error while building the VST3 target, make sure to Enable the "Use Hardened Runtime" option in the project's Projucer / Xcode (macOS) settings and tick the relevant "Hardened Runtime Options" then export to Xcode and build again.

  • @rejectedcircuit
    @rejectedcircuit 3 ปีที่แล้ว

    I will be probably still only using the plugins, and started this course to learn the workflow/git, but man - thank you for making this tutorial!

  • @LagDaemonProgramming
    @LagDaemonProgramming 2 ปีที่แล้ว +7

    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 :)

    • @MonsterDAW
      @MonsterDAW 2 ปีที่แล้ว

      Can u explain in layman's term about "refactoring code"? Thanks

    • @glitchgatsby4290
      @glitchgatsby4290 2 ปีที่แล้ว

      Any other material on best practices you'd suggest checking out?

    • @LagDaemonProgramming
      @LagDaemonProgramming 2 ปีที่แล้ว +4

      @@MonsterDAW Refactoring is the process of simplifying code by factoring out repetitions, and abstracting the code to make it more reusable. The techniques for doing this require some time and practice.

    • @LagDaemonProgramming
      @LagDaemonProgramming 2 ปีที่แล้ว +1

      @@glitchgatsby4290 I prefer the term good practices, it is hard to judge what is best. The application of a particular practice may be good, or bad, or the best way to do something. This is somewhat subjective and depends upon the situation. There are many books that discuss best practices, and each company has its own set of them. It is hard to say what source would be good, but if you do a search for software best practices you will find many.

    • @MonsterDAW
      @MonsterDAW 2 ปีที่แล้ว

      @@LagDaemonProgramming Thanks for the enlighten 🙏

  • @yanmoenaing7248
    @yanmoenaing7248 3 ปีที่แล้ว +1

    Actually I'm not here to follow the tutorial but just to watch you writing c++ code. I just enjoy watching it. I don't know why.

  • @slaaaaaash
    @slaaaaaash 2 ปีที่แล้ว

    as a musician trying to learn to code, i can say this is best video i saw ever on coding topic. thank you very much

    • @Thoracius
      @Thoracius หลายเดือนก่อน

      how did it go? have you been making your own plugins?

    • @slaaaaaash
      @slaaaaaash 28 วันที่ผ่านมา

      @@Thoracius 2yrs passed by and i ended up developing in typescript and node mainly, got my job in IT so yay! But no plugins yet, but ill get back to it once! 😁

  • @ryanhassan2232
    @ryanhassan2232 3 ปีที่แล้ว +21

    “You Linux users know what to do with make file I don’t have to talk about that” - one of my proudest moments.

  • @DASHXXMUSIC
    @DASHXXMUSIC 7 หลายเดือนก่อน +1

    Hey guys, what is the alternative to the AuAudioFilePlayer in Windows? 42:34
    Thanks.

  • @natalia5823
    @natalia5823 3 ปีที่แล้ว +7

    Are you going to make some more tutorials about audio plugins ? That is amazing

  • @jankrcs
    @jankrcs 3 ปีที่แล้ว

    There is something epic about this introduction and music in the background! I come back to this video every now and then just to listen to it :)

  • @davidemori8934
    @davidemori8934 ปีที่แล้ว +1

    To everyone who has completed this wonderful tutorial, did anyone manged to make this part 4:37:55 ? I'm new to C++ and by reading the documentation at the hitTest() function I don't understang how this has to be done...thank you :)

    • @zhiyuzhang7096
      @zhiyuzhang7096 ปีที่แล้ว

      Hi! Did you fix the issue? I'm running into the same thing right now.

  • @lilmanbeingerased
    @lilmanbeingerased 2 ปีที่แล้ว +1

    I have had Matkat music course bookmarked on my phone forever. It's so cool to see it here on YT as well.
    If it wasn't for my time constraints, I would have taken the course already. I will take it as soon as I can.
    Thank you for this content!

    • @MatkatMusic
      @MatkatMusic 2 ปีที่แล้ว

      You're welcome!

    • @MatkatMusic
      @MatkatMusic 2 ปีที่แล้ว +1

      Check out the new course that I uploaded! It's a three band compressor.

  • @hefonthefjords
    @hefonthefjords 3 ปีที่แล้ว +1

    Q is called bandwidth and it's units are expressed as decibels per octave or dB/oct, just the same as the slope on the low and high cut filters are. They are fundamentally the same mathematical function except the peak band has a mirrored high/low cut around it's centre frequency.

  • @AstorSkywalker
    @AstorSkywalker 3 ปีที่แล้ว

    Man I'm all too excited about this video just from watching the intro!!!!!,.... I thought I was this cool guy who plays the guitar,....am I really a geek?

  • @TheMrInnokenty
    @TheMrInnokenty 3 ปีที่แล้ว +3

    Oh that’s looking juicy, gonna dive in for week or so, won’t lie hope it would work when I’m finished.
    Wish me and I wish you luck 🎸

  • @bopon4090
    @bopon4090 3 ปีที่แล้ว +7

    How do you guys know i wanted to learn modern c++?? Thats amazing. 😂😂😂😂

  • @magnuslilleberg1941
    @magnuslilleberg1941 2 ปีที่แล้ว

    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!

  • @tusharpandat._
    @tusharpandat._ 3 ปีที่แล้ว +5

    At 41:15 can anybody tell us what we have to do in windows as there is no option for Apple->AuAudioFilePlayer for initiating Audio input

  • @kattenelvis1778
    @kattenelvis1778 3 ปีที่แล้ว +2

    I've been looking for something like this for very long!

  • @avaze7
    @avaze7 3 ปีที่แล้ว +6

    Ouch this hurts a lot, i recently wanted to make a plugin as a present fo a friend who is interested in music making but i had no clue what to do so it took me a whole month to learn the basics and now this course comes out :(

  • @flashbao1922
    @flashbao1922 3 ปีที่แล้ว +2

    I am going to use it to create my own music Player!

  • @ZeekSuds
    @ZeekSuds 2 ปีที่แล้ว

    This is great! Easy to follow. My C++ short hand needs help but I could follow this. Ty.

  • @XsaiLOVE
    @XsaiLOVE 3 ปีที่แล้ว +1

    the mic is chandler limit. probably the best mic for CS tutorial

    • @MatkatMusic
      @MatkatMusic 3 ปีที่แล้ว

      I'm glad someone recognized it! The mic sounds awesome! It's a shame ScreenFlow has bugs normalizing the audio when you chop up a 5hr video into 10,000 clips and produces clipping audio!!

  • @vsaucemichaelhere3409
    @vsaucemichaelhere3409 3 ปีที่แล้ว +2

    @1:15:04 aww man I was thinking this the whole time but decided not to do it cause I was under the impression that actually using fallthrough on a switch statement was a C++ cardinal sin lmao. It makes it look cleaner definitely but I'd imagine it might make it a little harder to understand if you don't immediately notice the missing breaks.

  • @blasttrash
    @blasttrash 3 ปีที่แล้ว +133

    Now I will make my own FL Studio instead of "pirating" it. 😂🤣

    • @ilearncode7365
      @ilearncode7365 3 ปีที่แล้ว

      I thought the whole reason why FL was trash was that it was freeware. They expect people to PAY for it? lol

    • @jr2media635
      @jr2media635 3 ปีที่แล้ว +40

      @@ilearncode7365 What is trash about FL?

    • @AesculapiusPiranha
      @AesculapiusPiranha 3 ปีที่แล้ว +19

      @@ilearncode7365 FL is pretty great. It did get that reputation back when it was bundled with sound cards, though. Mostly because of it's colorful UI. Sounds like you haven't researched DAWs in a while.

    • @jr2media635
      @jr2media635 3 ปีที่แล้ว +7

      I forgot to add, FL is developed in Pascal (I believe specifically Embarcadero's Delphi). Pascal is a lovely language and can do what C does. Nowadays it's called "Modern Pascal" or "Object Pascal". Delphi is near enough the same, but proprietary. Free Pascal compiler, and Lazarus are excellent alternatives. I highly recommend everybody give it a decent go in 2021. You might be very surprised. The free Pascal compiler is still updated to this day. So is free basic (although I haven't played with that). I've sold a couple of marketing applications I developed with Pascal and Lazarus.

    • @mrri8403
      @mrri8403 3 ปีที่แล้ว +2

      @@jr2media635 object pascal is a great language for GUI and other types of development , it also compiles to native code !

  • @annekedebruyn7797
    @annekedebruyn7797 3 ปีที่แล้ว

    THANK YOU FOR THIS
    There aren't many good audio related coding courses.

  • @traviswright
    @traviswright 9 หลายเดือนก่อน

    *QuickTip* if anyone is doing this on Windows, there is another JUCE C++ Equalizer video done by MatKat where he sets everything you need (specifically at around 40:00)

  • @mauricio0guaruja
    @mauricio0guaruja 3 ปีที่แล้ว +7

    ow yes, I was looking for a Juce tutorial for a long time

  • @EL-cb1nu
    @EL-cb1nu 3 ปีที่แล้ว +2

    You're a modern day hero!

  • @hakami1426
    @hakami1426 3 ปีที่แล้ว +17

    As a first year in CS, came for motivation and left with depression

    • @narc7885
      @narc7885 3 ปีที่แล้ว +2

      Dmbfck ur in first year. Stop acting like a snowflake and learn it

    • @framepointer
      @framepointer 3 ปีที่แล้ว

      welcome to impostor syndrome, youll get used to it

  • @nstandage
    @nstandage ปีที่แล้ว +4

    The app was crashing after completing around 52:00 for me. The issue was the names in `getRawParameterValue` didn't completely match the strings in `createParameterLayout`. I had a typo.

    • @HeyTiGBeats
      @HeyTiGBeats ปีที่แล้ว +1

      This comment helped me Thanks Bro

    • @Queteo
      @Queteo ปีที่แล้ว +1

      Cheers!

    • @gabrielgomez7967
      @gabrielgomez7967 9 หลายเดือนก่อน

      Brother man!! Thank you!! Wow.

  • @asaaaa489
    @asaaaa489 2 ปีที่แล้ว +1

    You are one of the greatest

  • @ghoulian
    @ghoulian 3 ปีที่แล้ว +1

    Just finished my plugin with this tutorial, great vids! I hope to see more free tutorials like this one :D

    • @muskanmohabe2749
      @muskanmohabe2749 2 ปีที่แล้ว +2

      Can u please tell me , i just have basic knowledge about C++ will it be enough to dive n make this project? Man i need to level up my resume .

    • @ghoulian
      @ghoulian 2 ปีที่แล้ว +2

      @@muskanmohabe2749 sorry i just saw this! I wouldn't recommend it to be honest if your C++ is weak since he goes pretty fast through the code and it can be easy to miss many small details!! But its not impossible if you try anyway! If you push through you will learn so much

  • @plumtreegarden8352
    @plumtreegarden8352 3 ปีที่แล้ว +4

    @ 1:02:22
    - may get compile error:
    Conversions between enumeration and floating point values are no longer allowed
    'static_cast': cannot convert from '_Ty' to 'Slope'
    - i used a nested cast to resolve this error
    - casting to int first
    settings.lowCutSlope = static_cast(static_cast(apvts.getRawParameterValue("LowCut Slope")->load()));
    settings.highCutSlope = static_cast(static_cast(apvts.getRawParameterValue("HighCut Slope")->load()));

    • @ldmdesign5610
      @ldmdesign5610 2 ปีที่แล้ว

      thanks. i was wondering if i could try something like this

    • @guillemsancho720
      @guillemsancho720 20 วันที่ผ่านมา

      thaaanks maaan, you saved me!!

  • @KevinGenus
    @KevinGenus 10 วันที่ผ่านมา

    I'm three years late... but HELL YES!

  • @noname-ks6go
    @noname-ks6go 2 ปีที่แล้ว +1

    6:50 sameeee :D Great vid btw

  • @alvinkariuki236
    @alvinkariuki236 3 ปีที่แล้ว

    My producer friends will love this

  • @igormalik113
    @igormalik113 3 ปีที่แล้ว

    There is not a lot stuff about JUCE to find,thank you.

  • @tboy4603
    @tboy4603 2 ปีที่แล้ว

    This was an amazing project to build, definitely going to do more!!! Thank you FreeCodeCamp and MatKat Music

  • @nichoyeah
    @nichoyeah 2 ปีที่แล้ว

    You are a real hero for making this video

  • @mahipalsingh9361
    @mahipalsingh9361 3 ปีที่แล้ว +3

    Create a video for PySide6 and also how to compile and deploy that app.
    I also want to know how desktop apps push software updates since there are a lot of dlls and other things for windows

  • @Learnerofthings
    @Learnerofthings 3 ปีที่แล้ว +1

    Finally, real world C++ application with my other passion!

  • @lowkeybeatspg
    @lowkeybeatspg ปีที่แล้ว

    That beat at the start is 🔥🔥🔥

  • @VasaMusic438
    @VasaMusic438 3 ปีที่แล้ว +2

    FANTASTIC !!!!!

  • @Ramp10er
    @Ramp10er 2 ปีที่แล้ว

    I love C++. Coding some Voice Recognition Software here myself. Which can identify the correct waveform...

  • @lardosian
    @lardosian 3 ปีที่แล้ว

    Wow...didn't expect this, amazing, thank you!!!

  • @triangulargameaudio
    @triangulargameaudio หลายเดือนก่อน

    Amazing Job

  • @brockolious
    @brockolious 3 ปีที่แล้ว

    WOW, this looks killer! Cannot wait to dive in!!!

  • @knowledge_793
    @knowledge_793 3 ปีที่แล้ว +3

    U guys always rocksss

  • @emirhas8793
    @emirhas8793 3 ปีที่แล้ว

    Wowowowowowoowowowowow im waiting for years for this Video

  • @delatronics3257
    @delatronics3257 3 ปีที่แล้ว

    Worked it out now by watching the video! This plugin it really good and very well thought out - Really appreciate your efforts here SUBSCRIBED!

    • @MatkatMusic
      @MatkatMusic 3 ปีที่แล้ว

      Thanks for watching! What do you do at Roland/Boss? Are you a hardware engineer or something? That must be a cool job!

    • @delatronics3257
      @delatronics3257 3 ปีที่แล้ว

      @@MatkatMusic I was the senior electronics service engineer at Roland UK, but then set up Delatronics and eventually serviced and repaired practically all makes of electronics equipment including Fender, Yamaha, Sennheiser and Korg. I have met a lot of famous people and had a great and varied job. I had a motorcycle accident 8 yrs ago and now I have retired. I am trying to learn from you in order to maybe get another string to my bow. I am altering the colours on your EQ plugin just to try and understand how to modify, but I want to change the knob colour from purple to Ivory & I am struggling a little!

  • @Ducktails
    @Ducktails ปีที่แล้ว +3

    29:58 it's actually line 440 you just add // before jassert (wrapperType == wrapperType_Undefined || param->getVersionHint() != 0); and I got it to work

    • @BTSVibesLLC
      @BTSVibesLLC ปีที่แล้ว +2

      Dude thanks for taking the time to post this comment, MUCH APPRECIATED lol

  • @jaimerojas6578
    @jaimerojas6578 3 ปีที่แล้ว +2

    I know what I'll be doing this weekend

  • @centralbiz5974
    @centralbiz5974 3 ปีที่แล้ว

    when you think there´s nothing more to be done with C++, here it is an audio plugin.
    separating this video to watch it later.
    congrats!

  • @jennayee0120
    @jennayee0120 3 ปีที่แล้ว +2

    thats what i want, more of these pls

  • @kawwedha4006
    @kawwedha4006 3 ปีที่แล้ว

    WOW this is rare course, hardly you can find real world software projects in c++

    • @shatvikpandey7843
      @shatvikpandey7843 3 ปีที่แล้ว

      lol minecraft is also built in c++

    • @janmsavage
      @janmsavage 3 ปีที่แล้ว

      MC is written in Java,

    • @izumichan31
      @izumichan31 3 ปีที่แล้ว

      @@janmsavage Java edition(the original) is written in Java. Bedrock edition is C++.

  • @marcello4258
    @marcello4258 2 ปีที่แล้ว +5

    Guys, let's commit to one thing:
    Maybe not today, but everyone watching this has to do one audio Plugin in his/her life and make it open source! Who is with me?

    • @Learnerofthings
      @Learnerofthings ปีที่แล้ว +1

      I'm with you. I have a ton of ideas relating to ambient music.

  • @bobona
    @bobona ปีที่แล้ว

    This is really an incredible tutorial. It's refreshing to see good code explained well.

  • @MathXMagic
    @MathXMagic 2 ปีที่แล้ว +2

    (SOS)
    1.) how to set standalone mode(Visual studio).
    2.) How to load music to AUDIO plugin host(window)

  • @Bonzvy
    @Bonzvy 5 หลายเดือนก่อน

    Just in case someone is struggleing at 1:00:10
    In the juce_FilterDesign.h file is missing the following declaration (v7.0.11):
    static ReferenceCountedArray designIIRHighpassHighOrderButterworthMethod (FloatType frequency, double sampleRate, int order);
    You are welcome

  • @hel_dave
    @hel_dave 4 หลายเดือนก่อน +1

    I was following this fantastic tutoria but I have a problem, I arrived to (0:38:55) Part 5 - Setting up Audio Plugin Host, but I am in windows and I don't have an audio player already installed. Where can I found a Juce audio player to load inside the Audio Plugin Host?

  • @lmatheuss
    @lmatheuss 3 ปีที่แล้ว +1

    Amazing, great work!!!

  • @salman8562
    @salman8562 3 ปีที่แล้ว +3

    MORE PROFESSIONAL C++ VIDEOS please.

  • @igo9481
    @igo9481 3 ปีที่แล้ว

    this is everything ive ever wanted. thank you @Matkat Music

  • @user-rf4vc7mt4d
    @user-rf4vc7mt4d 3 ปีที่แล้ว

    No way you just did this. Perfect!

  • @AMFLearning
    @AMFLearning 3 ปีที่แล้ว +1

    amflearning by doing your tutorial so cool and awesome bro, i love it so much, it turn ourselves make an video tutorial using old and modern c++ in our channel, once again thanks alot

  • @robertp1889
    @robertp1889 2 ปีที่แล้ว +1

    short nice intro and you got sub, thnx

  • @a-b-c
    @a-b-c 3 ปีที่แล้ว

    Wow, I never thought it was this easy