Audio Plugin Tutorials

Hi there,

I was just wondering if anyone has any links to good tutorials out their for audio plugins such as delay, chorus or reverb.

Thanks for you time!

I think the best thing to do is follow the simple JUCE tutorials first, then swap out the processBlock() method for your own. The web is awash with code for various DSP techniques. Have you looked at

As Rory says there is a lot of audio DSP information floating around the web, much of it in the Juce forums and KVR DSP sub-forum. But you need to be willing to put in the time to piece it all together, since there are not many tutorials that take you through the entire process of building an effect.

The tutorials on the Juce website are a good starting point, and probably the gentlest way to become familiar with Juce.

But as a beginner myself the most useful resource I have found is Will Pirkle’s book Designing Audio Effect Plug-Ins in C++. It contains all the knowledge you need to build chorus, delay, reverb, filters, etc. The code samples are for Will’s own DSP framework, RackAFX, but I have had no problem translating his code to Juce. Unlike most DSP books it is light on math, and heavy on code, which is the way I like it.

Beyond that, I have found it extremely educational to look under the hood at other developers’ Juce source code. Here are a few libraries and open source Juce applications to study. Note that some of these libraries are GPL licensed, so you can’t use them in a closed source or non-GPL plugin, but they are very useful for research purposes.

SAFE Juce plugins

dRowAudio Juce Module

Juce source code from Audio Effects: Theory, Implementation & Application book
(I haven’t read the book, but it looks good)

TAL Noisemaker open source synthesizer

(Early TAL plugins were open source due to Juce’s GPL licensing requirements. You can find others on the web)

Martin Finke wrote a very thorough tutorial for building a synth from scratch with iPlug. It is good for explaining the theory and implementation of a synth engine and effects, and I imagine that you can probably port the relevant portions of Code to Juce:

Good luck!