Plug-in Archeology

Learn audio programming by studying the source code of older plug-ins.

One thing I like to do is read the source code of other people’s plug-ins to figure out how they work.

Usually these are older plug-ins that are no longer commercially relevant and have been open sourced — but that doesn’t mean we can’t learn anything from them.

You can pick up a lot by reading someone else’s code. Different programmers have different styles and will solve problems in ways you may not have thought of yourself. Plus, it can be a fun puzzle to figure out what the code does, as comments are often missing.

If you read enough “other people’s code”, you’ll start to recognize patterns. For example, when I first came across the following code, it thoroughly confused me — WTF is going on here?

fx += (x - fx) * f;

As it turns out, this is a very common way to implement a one-pole filter that appears in tons of audio code. Now that I know what this code is for, it’s easy to recognize when and why a plug-in might use it, even if the variable names are not immediately obvious.

Links to my archeology projects:

I’ve got plenty of other old source code that’s worth spelunking in and I’ll be adding more projects over time. There is such a wealth of DSP knowledge hidden in these old plug-ins, but unfortunately many of them are starting to disappear from the web because their authors move on to new things. It would be nice to conserve some of that knowledge for the next generation of audio programmers.

In addition to maintaining these open source repos, I also plan to write more in-depth explanations of selected plug-ins on this blog.

Index of the plug-in archeology blog posts:

P.S. I’m always looking for more old plug-in code, so if you happen to have some laying around or know of a cool plug-in that appears to be abandoned, let me know and I’ll try to track down the original author and ask if they are willing to open source it. This will allow the community to bring these plug-ins back to life so that we may still enjoy them, and also lets us learn a thing or two by studying how they work.