towards stateful saturation

the static waveshaper y = tanh(x)

Still today, most developers are sticking to static waveshaping algorithms when it comes down to digital saturation implementations. This wasn’t very convincing to me from the very beginning and in fact it was one of the motivations why I’ve started my own audio effect developments – to come a little bit closer to what I thought what saturation and non-linearity in general is all about.

And so the Rescue audio plug-in was born in summer 2007 and was already an approach to relate audio transient events to the signal saturation itself. Not that much later TesslaSE appeared which was a different exercise leaning towards a frequency dependent non-linearity implementation coupled in a feedback structure. I still really love this plug-in and how it sounds and prefer it over much more sophisticated designs even today in quite some cases. Following, the pre-amp stage in BootEQmkII then focused on “transformer style” low-end weirdness and did feature oversampling on the non-linear sections of the device. A really great combination with the EQ – smooth and very musical sounding. The TesslaPRO thingy sums up all this and puts it into one neat little device with an easy to use “few knob” interface. Don’t let you fool by this simplistic (but so beautiful) design: It already features everything which makes a saturator to stand out from the crowd today: transient awareness, frequency dependency, dedicated low-end treatments. Sound-wise this results in a way smoother saturation experience and a better stereo imaging en passant.

With FerricTDS not only the notion ofΒ  subtle frequency dependent compression got extended to a core saturator algorithm. Since revision 1.5 I’ve ditched the oversampling based core and included a version which premiered the notion of memory into the non-linearity which transforms it from a stateless into a stateful algorithm. One could basically see this as a system which reacts different on the very same actual input signal depending on the recent history of events (on a very microscopical level). The input stage algorithms which I’ve included in NastyVCS and NastyDLA (both are actually the same) are a cpu and feature wise stripped down version of that to have the basic sound of it already as an option when mixing the tracks and its according fx.

Quite recently, I’ve started to look into implicit stateful models where memory is not applied from the outside of the algorithm but the algorithm itself contains a sort of memory. As an example, I’ve implemented a stateful version of the well-known tanh() function so that it is aware of recently occurred events but provides the very same harmonic structure compared to the original. Given some analyzer plots it even shows the very same transfer curve but in fact it does not limit strictly anymore but allows some minor overshots of some peak signals. Interestingly, the sound appears a little bit brighter (without letting you see that through the analyzer plot) and the low-end appears not to be that hard “brickwalled” but a little bit smoother. Lets be assured that I’m going to follow this path and then lets see where this will lead to in 2011.


  1. Nice to see that you go forward with research. This explanation is way to technical for me to understand but I’m sure you’ll use this knowledge to make stuff that blow us away (again).

  2. I’m very interested to see where this will lead…

  3. grateful user says:

    Wow. So I think this explains why null tests with some saturation plugs show that they mostly just add a thin, uniform layer of harsh “digital” distortion. I’m going to repeat my tests to see which plugs mix in a static layer of saturation, and which add in frequency/program dependent saturation.
    Thanks for explaining this.

  4. Nice reading you, interesting journey into technics and sounds !

  5. May be the “brighter” feeling is due to those transient overshots, not seen with an RMS analyzer ?

    If you analyze with RMS, you will not see any difference.
    But if you analyze with peak detection, you may see those transients.

    Transients doesn’t raise RMS value that much πŸ˜‰

    Try to analyze with a very short peak detection, and i think you will see more “bursts” in the high freq.

    If you already used a very short peak analyze, i really don’t know why πŸ˜€

    PS : you did a very good job with Ferric TDS.
    You captured the “smoothness” of tape, but without drawbacks, unlike Vintage Warmer low-medium mess when you push it.
    With a simple GUI too.
    You did a very good job with all your other plugs too πŸ˜‰
    I will try DLA soon πŸ˜€

    • what attracts me is the fact that an anolog system does not limit in a brickwall fashion as well. it still allows some peaks to overshot.

      • Right! I have very little idea of what you’re talking about on a technical level, but what you’re describing is what I have been hearing wrong with digital saturation and distortion, since forever, and this is the first time that I’ve seen a developer talk about it.

        • You have to be very careful about the origins of that overshoot though. If you look at that overshoot on an analog scope, or on a computer; the reasoning could be very different.

          Once a signal has been sampled from the analog domain, its digital representation would have passed through an analog to digital conversion process leaving it with an imparted impulse response (from the conversion filter), and very likely some Gibbs Phenomenon residue on the edges of fast transitions. This type of ringing is a requirement in the digital domain for band-limited and hence anti-aliased results, but it’s not necessarily the same type of thing are overshoot in the analog domain, which could be due to all sorts of different phenomena.

  6. Klemperer says:

    A highly interesting read. I got so many outstanding plugins from you up to now, and learn such a lot reading here :). And besides, surrounded by a few snow-haters I really really appreciate it that there are snowflakes at your website too now :-)))))))))))))

  7. Well, seems like dynamic saturation with some time-dependent behaviour. That’s interesting to know you’re hard at work on that.

    That 2011 year is gonna be great ;-).

    That said, do not hesitate to stress our CPU, it’s worth it !

  8. “Lets be assured that I’m going to follow this path and then lets see where this will lead to in 2011.”

    Ferric MKII ? πŸ˜‰

  9. Finally we’ll finally the “saturation plugin that rules them all”.

    Just kidding ;-).

  10. thechrisl says:

    Thoughts on the new UAD Studer A800 plug? I have to wonder what’s under the hood once you strip away the fancy GUI and famous brand names. Have to wonder whether this is really a step forward or they covering a lot of the same ground you have & basically porting it to a DSP chip?

  11. thechrisl says:

    …or do they even cover that much ground? πŸ™‚

  12. Honestly the A800 is clearly AWESOME. The different tones you can achieve, with the different tape formulas, calibration options, and HF/LF filter to drive the saturation more or less in the spectrum. It’s definitely a killer plugin.

    Mind you, I’m no UAD fanboy, I use it only at work, but I regret to not have a card at home at the moment. It’s planned, because after having used A800, Massive Passive, FATSO, EMT250, 33609, you clearly see the “missing link” in native.

    Some of the UAD plugins are true game changers IMHO. And compared to the one I wrote, there is nothing that beats them in native land at the moment.

  13. Cant wait… πŸ™‚

    All the very best.

  14. cool:spring! says:

    intelligent 2nd order harmonics por favor!!!!!
    just the possibility to dial in here and there (possibly with some “sloping” options)! they aren’t only found in tube circuits like every plugin developer tries to tell us!
    and they really improve the sound if used wisely!

  15. Dude, seriously! I can’t wait for this new Saturation plugin you’re going to create. Yours are the only ones I use, and the rest of them (exception of IL Maximus) sound like crap and can’t come anywhere near yours. I’m not talking about other free saturation plugins either. I mean even expensive commercial ones don’t have the luster and research and love put into them that you put into yours.

    Look at Epic Verb. What an amazing plugin.

    I’m also hoping you make a VA subtractive synth that sounds like hardware, with many filter options and oscillator options that emulate various famous hardware synths (Moogs, Korgs, etc). And charge money for it, even if it’s a labour of love. πŸ˜€ I’d purchase it (and finally, FINALLY we can toss money your way).

  16. Someone hinted me to a minor fault in the article: The input stages of NastyVCS and NastyDLA are only dynamic-wise the same. The DLA input stage adds some further frequency and phase fingerprint on top of that (as correctly written in the manual).

  17. Hi!
    Can you tell more about your new method? (if you can)


    • Hi pylorca,

      I’ll probably write a little bit more here about all that stuff during this year. Its way too early to go into details right now.
      Btw., I saw you had questions about “crosstalk” – I can help you on that topic if wanted. Do you have my eMail address already?

      all the best!

  18. Hi bootsy!

    Yes, I am looking for information about crosstalk, but I could not find anything relevant.
    I’ve not your email address (my email address is my nick at gamail)

    Thanks!! πŸ™‚

  19. Nice. I’ve always thought the static/stateless approach makes zero sense. If/when I do get into DSP, this is something I definitely want to explore.

  20. I’ve also used null tests to hear the thin/harsh wave shape distortion that many saturation plug-ins add to a signal. But there are some plugs that have me stumped, like Decapitator. The result of most saturation plug null tests is that the very quiet “layer” of distortion they add is exposed. When I try a null test on Decap., the remaining signal is almost as loud as the original. Anyone know why that happens and what it means?

  21. That’s sums up what I hear in digital distortion plugins, including guitar amp simulators. It sounds as if the distortion is being mixed in on top of the audio, rather than modifying the signal in a dynamic way – sounds like unresponsive hash to me.

    I’m curious to see where Variety Of Sound will go with this. Maybe some character distortion devices? There seems to be so many flavors of pleasant distortions in the analog world, but not so much in plugins.

  22. On the topic of static vs. dynamic gear emulations…Bootsy, if you’ve got the time, I’d love to hear your take on one or both of these GS posts…

    One of the main points is that…
    “In analog there is randomness generated by every wire, resistor, capacitor, transformer etc…. You would literally need a super computer to calculate all this for a single piece of gear, and probably pre-rendered to boot! So when you are told that the sound of a plug-in is exactly like the hardware, I call BS!”

    Is this really the unavoidable shortcomingl of computer emulations of audio gear?
    I’m really curious about this because I’m starting to wonder if I have no choice but to upgrade my studio to some kind of digital-analog hybrid (e.g. some sort of analog summing buss, etc.) if I want to take my work up to the next level. After following your blog for awhile I’ve come to trust your opinion.


    • IMHO, its not about randomness (noise) in components at all. Its about the (very short) memory some circuits can deploy, depending on the overall load of the system. The shortcoming of the component modelling approach is still that the whole modeled system is deterministic (which it is not).

      • Thanks bootsy! If you had to guess, how long do you think it will be before digital saturation will move beyond its typical harsh high end, and be more silky/smooth like the analog gear it’s supposed to emulate? So much of what the audio modelling community has produced is nearly indistinguishable from the real thing (e.g. modelled instruments, sophisticated sample library playback scripts, non-saturation based audio gear, etc.), how long before most engineers won’t be able to tell the difference between modelled and real saturation in A/B tests?

  23. I’m a big fan of your work, and as a working engineer I really appreciate the thought and effort you put into this blog. It’s inspiring! Thank you.


  1. […] Research and development? Yes, yes! Since that’s the most fun to me I’m constantly digging into something be that some DSP coding concepts or rather weird and freaky ideas and to find out how they could be made feasible if ever. In most cases some lanes are ending abruptly while others are leading to new and unexpected insights. Walking the whole road is indeed a journey. For the moment – but that might be easily extended to the whole year – all my attention is refocused on digital saturation implementations. […]

  2. […] further on my stateful saturation concept is constantly keeping me busy. The DSP concepts are still getting harder and harder the […]

  3. […] towards stateful saturation Eco World Content From Across The Internet. Featured on EcoPressed Just Add Water Share this:Like this:LikeBe the first to like this post. development, digital signal processing Compressor, distortion, DSP, exciter, harmonics, memory, non-linear, output stage, Saturation, stateful, VCA ← Hamburg […]

  4. […] my continuous work towards a stateful saturation approach has left the prototyping status for a very first incarnation and a beta test ist already […]

  5. […] approach is still that the whole modeled system is deterministic (which it is not). – bootsy Share this:Like this:LikeBe the first to like this post. Filed Under: Uncategorized « […]

  6. […] provided courtesy of Bootsie’s brand new Thrillseeker LA. Bootsie is experimenting with Stateful Saturation, and is integrating it into all his new plug-ins. This non-linear saturation seems to be more […]

  7. […] Stateful Saturation takes advantage of some sought after analog qualities and preserves them accurately during their transfer into the digital domain: […]

  8. […] was implemented in the plugin. Thankfully the Thrillseeker VBL does not disappoint in this regard (saturation is kind of Bootsie’s thing). In fact we get access to a whole host of controls in the Thrillseeker VBL to control the gain […]

What do you think?

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: