I'm curious what your path was to get to the point where you can write an audio plug-in from scratch - I noticed you're using the JUCE framework, and that's about as far as I got and I never really escaped tutorial hell.
I'm curious what your path was to get to the point where you can write an audio plug-in from scratch - I noticed you're using the JUCE framework, and that's about as far as I got and I never really escaped tutorial hell.
When starting out, the first plugin I made was a gain/panning plugin, then a simple saturation plugin. These are good ones to start out with, since the output for a sample only depends on the input of that sample, and not the samples before it. After that, I would recommend making a delay plugin: there are a lot of opportunities for creativity with delay, once you have the basic code down.
The plugin project structure can be a bit confusing at first, especially in the interaction between the GUI code and the audio processing code. The tutorials are helpful for that: once you've copied a tutorial, you can try expanding it, adding more knobs etc.
I wrote a toy synthesizer for the ESP32 where I used STK for the bulk of the synthesis. That was pleasant endeavor but the real pleasure started when I wrote my delay effect. I had so much fun adding features like multiple playback heads with separate feedback and volume.
Another fun thing to implement was the apregiator and something that I call a scaler¹, I learned so much about music theory while doing this.
1- There is probably a name for that effect where you choose a scale and if the effect receives a note outside, it outputs the closest note in the selected scale.
edit: I forgot to add that your plug-in is awesome
Pitch quantization.
https://github.com/sudara/awesome-juce
(Direct link to the raw data here: https://raw.githubusercontent.com/sudara/awesome-juce/main/s...)
Some truly wonderful things in there to learn from - starting with basic plugins, all the way up to synthesizers and a full DAW. Be sure you mine that resource!
The JUCE forum [3] is also incredible useful and friendly place for "noobs", I'm always happy to see how non-toxic it stays 99.9999% of the time.
That said, you'll need something above "noob" C++ knowledge, as that community isn't really so into helping people with C++ basics, but if you have questions about the framework they're always happy to help. The TAP Discord has a channel that's probably a better place to ask audio plugin related C++ questions.
[1] https://www.youtube.com/c/TheAudioProgrammer [2] https://discord.gg/fdV4npvnmK [3] https://forum.juce.com
For me I’ve looked at using the new Max VST compiler https://cycling74.com/products/rnbo
Great for prototyping ideas.
There is also native instruments Reaktor which is also awesome for low level dsp prototyping. https://www.native-instruments.com/en/products/komplete/synt...
These tools are for creating the algorithms before programming them in text.
Reaktor is the most difficult for me to work in, that might just be because I learned the other 2 first. But you get their library of pre-built components which is nice. Want an exceptionally accurate Moog filter in your effect? Just drag and drop the one they've already made.