TL;DW: The magic saturation plugin of subtlety and French House tone.


The funny thing about PurestDrive is that I didn’t expect much from it at all.

This plugin (now coming to VST and open source) was simply an experiment. I’d been making complicated plugins with things like anti-aliasing, just a lot of calculation going on, and wasn’t sure I was getting what I wanted. It didn’t seem to be furthering the ‘Airwindows sound’. And I’d hit on an interesting tactic, noise shaping for the floating point buss. It seemed to me that you might be able to get a good sound by the opposite to complication: simplifying things, running the math at the highest possible resolution (in this case, long double precision, which is 80 bits on Intel and possibly 106 bits on PPC, which Airwindows still supports)

The saturation algorithm was going to be sin(), which is the smoothest saturation curve you can have. Then I thought it’d be good to get a little more sophisticated than that because I had quite a few plugins based on sin(), so I did this:

inputSample = sin(inputSample);
apply = (fabs(previousSample + inputSample) / 2.0) * intensity;
inputSample = (drySample * (1.0 – apply)) + (inputSample * apply);

That’s it. That’s what makes PurestDrive (apart from some code supporting it, which is up and documented on GitHub as part of making it open source).

What it does is this: it keeps the previous dry sample around, and ‘apply’ will be the combination of that and the saturated one. This makes apply be large if we’re on a low frequency wave, and if we’re doing a really bright transient apply might be zero. Intensity is how we include the slider control (0 to 1) and can also make apply be lower. Then, we’re adding the sin() effect, but ONLY relating to apply: we saturate the body of the sound, but as things get brighter or lower volume, we’re dynamically doing a dry/wet control at audio frequencies, so PurestDrive only throws saturation on dense solid material: airy highs, subtleties, get through more easily. As a side-effect, if our input gets super hot we can end up subtracting a little dry from the saturated inputSample.

What PurestDrive did… was take off and become hugely popular. I didn’t expect that, it was simply an experiment in tone purity and I didn’t think anyone would notice. I knew the little tweak with ‘apply’ sounded good, but I figured the whole thing was so subtle that it wasn’t going to set the world on fire. Yet, PurestDrive developed incredibly dedicated fans, using it all over their mixes, swearing by its tone.

And now, it’s a free and open source plugin, AU and Mac and PC VST. Remember it’s designed to not be a big obvious coat of paint over everything: because it’s using the dry sample so intensely, it cleans up and stays out of the way. But because it’s modulating between saturation and dry at audio frequencies based on both the current and previous sample, there’s a lot of textural effect on the sound. I never got so much mileage out of so few lines of code. Hope you like it. :)

I wouldn’t have been able to get here (releasing PurestDrive as VST and open source) if not for my Patreon: this is how I fund such generosity. It lets me not have to play by the same rules as commercial software makers. It even lets me provide stuff like this TO commercial software makers so long as they can work with the very permissive MIT license (requiring credit to me for the bits I did, and inclusion of the MIT license terms themselves). It’s generally possible to reverse-engineer whether someone’s using PurestDrive, or Console, etc. so I suggest just running with it and publicizing the use of open Airwindows algorithms. Plenty of folks are already coding using the MIT license, the water is lovely and warm, hop on in :)