Skip to content

Multiband Saturator & Max For Live Development Journey

circuit-punkmultiband-saturatorgmaudiomax-for-liveableton-liveadaa

GMaudio Multiband Saturator - Max For Live Development Journey

This post was derived from my article published in Circuit Punk Magazine, which you can find here.

Background

GMaudio started as a way for me to explore DSP via MaxMSP back in 2018, it soon grew into the concept that I wanted to build M4L devices that were simple yet flexible, incredibly high sound quality, sensibly priced with lifetime free updates and a focus on user education.

I started with a small amount of programming & graphic design knowledge, 2 years of teaching audio engineering (specializing in electronic music production) and 16 years of music production experience. I’m now an Ableton Certified Trainer, regularly visit research papers, program nearly everything in genexpr codebox, and can work with most programming languages (especially now with the help of AI).

I wont say it’s been easy. Max can sometimes be confusing when things are undocumented (although rare), trying to define where a bug is whether it be the patch, Live or Max can also be confusing, the language and concepts in research papers are often misleading or confusing and I’ve come to realise that I need a balance of human contact in my life rather than sitting at a computer programming all day.

I do everything myself but have had some fantastic people help along the way. Shout out to Wilson Ryan (ideas and moral support on DSP), Nikita Yermolayevs from Monomono (ideas & moral support on UI & DSP), Ess Mattisson from Fors (MaxForLive inspiration and feedback), Rafael Matos da Silva (UI feedback & ideas), Fabien from Tokyo Dawn Plugins (DSP Inspiration and ideas), Geraint Luff from Signalsmith Audio (DSP Ideas and sanity check), Cycling74 Support, the gen~ channel on Discord and of course Graham Wakefield (the grand-daddy of gen~). GMaudio M4L devices are now a major part of my income source and I’m always looking for ways to improve my work.

Music is my life and has given me more than I could imagine. My goal has always been to share that with others and help them create better music, faster. As a music educator I’m limited to the individuals that I have in front of me. As a music producer I can only ever collaborate with one or two people at a time… but with music software, I can play a small part in the music production process for thousands while I sleep, impacting thousands of songs every year… and I’m incredibly grateful for that.

I develop products that I feel are necessary and are not included with Live Suite, the idea being that I produce music and teach my students to create using nothing but Live & my products. I quite like the synths that come with Live but the audio effects I felt could often be improved and is usually my main area of interest. I feel mixing is often over-complicated by producers, always looking for ways to improve their music rather than actually creating it. so I aim to simplify and refine modern mixing techniques and use my devices to indirectly teach about fundamentals of audio engineering.

The design goal is always;

  • It should help, not hinder, music production
  • All parameters should have a wide and musical range
  • Things of minor importance should be set to an ideal compromise
  • Digital artifacts should be at an absolute minimum
  • All parameters should support modulation where suitable
  • Devices should feel part of the Live ecosystem
  • Should be incredibly easy to use, while still including flexibility
  • Should perform a single task or concept incredibly well

Multiband Saturator

Saturation/Distortion is of great interest to me as I use it on nearly every track in Live. I’ve been working on various waveshapers for some time and have some unique things in development planned for certain products. Squeeze was a great success and I’ve gotten so many comments on how much people love it, so I wanted to make something that complimented it. I often do some kind of holiday gift for my users and this time I asked my discord community what device they would like most out of a buchla-style wavefolder, a colourful compressor or mid-side multiband saturator. You can guess which one won.

Refining Anti-aliasing techniques is something I’m constantly working on and ADAA (Anti-derivative Anti-aliasing) is something that I’ve been playing with for the past couple years. I believe I was the first to implement FIR Polyphase Oversampling in a M4L device (Clipper) and then also with ADAA (HiFreqLimiter - Version 1 & PentaComp 2 - still in beta).

A paper from Martin Vicanek suggested a slightly different way of looking at ADAA that circumvented some of the pitfalls I was having with typical implementations. Laurent De Soras (aka Firesledge - D16) from the Audio Programmers Discord - DSP channel, helped me understand it better. I was testing MV’s implementation and realised that it could work well with 3x Oversampling but the IIR compensation filters didn’t meet my design criteria as I often want to include the ability to listen to the difference (aka delta) and run things in parallel, which would require linear phase and integer sample latency.

I then realised that if I refactored the ADAA implementation to get just the filtering effect (avoiding the non-linearity), I could then derive FIR compensation filters, which in total would give me 3 samples latency. This made it even more ideal for 3x oversampling because it meant that after oversampling, the result would be exactly 1 sample latency, and aligning signals would be a piece of cake. This is now a kind of standard for anti-aliasing for me moving forward, it has caveats depending on design requirements, but it has incredibly good antialiasing properties and is a good compromise in CPU efficiency.

For multiband processing, things must be very efficient. You wouldn’t want to run 5x oversampling on every band, so I thought it would work perfectly in a multiband saturator. Because it is linear-phase it makes multiband processing easier to manage, allows things to run in parallel, the delta signal is exacting and it could be used in mid/side. Combining that with the crossovers from Squeeze and viola, the Multiband Saturator prototype was born.

Two things I often use in my music are a 6dB IIR highpass filter in the side channel to help mitigate mono compatibility issues (cheaper than FIR and doesn’t rotate the phase destructively) and a spectrum analyser monitoring the sum and difference (mid/side) so I can easily see where there might be opportunities for poor phase coherence in stereo, both of these were always going to be a part of this Multiband Saturator. I also wanted to keep things as simple and as fast as possible while utilizing minimal device chain width which informed my decisions with the UI. One pet peeve of mine is saturation plugins/devices that are not level compensated, so you can’t just apply a subtle amount of saturation in a mixing context and hear what it sounds like without messing about with, often unintuitive, gain controls.

Through testing and refinement, I arrived at the final product, which much like Squeeze, has a surprising number of use cases. For instance, in a mastering context you could use it to softclip bands very subtly to increase loudness, while also checking/improving phase coherence (if sides exceed the mid), increase the width of certain bands if there is room to do so, make subtle adjustments for balance and do it all in parallel as to not overdo the processing… all within a single device with a very unassuming interface.

I already have proof of concept about how I can take things further in terms of DSP, but I need to nut out the details about how this will work with the UI and the CPU overhead they will cost. Like how about saturating only the transients or sustain of a certain band/channel, or having a more unique character parameter (perhaps more akin to analog) for each band, rather than just basic asymmetry?

Multiband Saturator was meant to be a thank you gift for completing a survey, but instead I just opened it up to everyone for a limited time. The survey is coming to help define the direction of GMaudio and Multiband Saturator is now a paid product.

The Future

I have more prototypes and ideas than time at this point, but there are updates on the way for VSEQ, Ducker, PentaComp, TransD, Universe, Noizyer & Fusion. Version 2 of both Squeeze & HiFreqLimiter were released in January 2025. There are also three new products in development, a single band Saturator with unique waveshapers and useful colouration controls that aren’t often found in a typical saturator, a multiband brickwall limiter that is low latency but sounds tight and punchy with minimal distortion, and an analog style EQ with some unique filters and saturation options.

I want to include my users in what I do as much as possible, because I cherish sharing knowledge and having social contact. Fostering a community where more people can take part in helping others would be an ideal scenario that aligns with my mission, while also allowing me to accomplish more of the things I’m best at while keeping education at the forefront.

I’ve regularly toyed with the idea of developing VST/AU plugins. Max For Live is great and people really like the device chain integration, portability and ease of sharing devices when collaborating, but sometimes dealing with 2 two interdependent frameworks (Live & Max) has its issues. I adore the speed of prototyping things in genexpr and will always use it to explore DSP but I can’t help but wonder if there are more ideal ways to realise the final product.

One thing I’ve always wanted to do is create an iOS AUv3 plugin that can be used as end of chain mastering and metering for DJ’s, broadcast and Live performance. I have also toyed with the Electro-Smith Daisy platform and developing eurorack modules, but supply chains got a little hairy during Covid and I rarely use my Eurorack system at the moment, so I’m unsure of that pursuit at this stage.

What I do know is that I am somewhat addicted to exploring DSP and the problem solving aspects of product development, and I don’t think I can stop. I also really enjoy communicating my ideas in various ways, and quite enjoy things like writing. AI as a collaboration partner is a recent realization for me and it’s helping me iterate faster than ever before. It’s buying me more time to learn new skills and focus more time on the things I want to do.

Curiosity is what led me here and will continue to carry me forward. I wish the same for you and I hope you find abundance in your curiosities. Happy music making and circuit breaking, punks!

The End

Thanks for reading! If you’d like to see behind the scenes of what I do or have a query about my products, then join my Discord. Thanks again to Circuit Punks for giving me the opportunity to write for their first magazine!

Multiband Saturator has been greatly improved since writing this article and now includes the ‘Transient Focus’ and ‘Hysteresis’ controls, per band, mentioned above. It’s unlikely that this combination of features exist anywhere else.

Get Multiband Saturator Now!

Appendum

ADAA Overview

In digital audio, applying nonlinear effects (like distortion or saturation) can generate extra harmonics. These harmonics can exceed the Nyquist limit (half the sampling rate) and “fold back” into the audible spectrum as aliasing artifacts. While oversampling is one common fix, it can be computationally heavy.

Rather than simply applying the nonlinearity to each sample point, ADAA (Anti-Derivative Anti-Aliasing) offers an alternative by averaging the nonlinearity over each sample interval, thereby reducing the abrupt changes that might produce unwanted aliasing.
Whats even better is that it can be combined with oversampling to further improve the result.

How it works

Usually you would apply a non-linearity to each sample point sample in a continuous stream of samples, without any consideration to previous sample points. This means that the sample could be a component of high frequency content which could easily alias. To combat this you might use oversampling, where you increase the samplerate during processing to move the nyquist limit higher, filter out what would alias at the original samplerate, then downsample to the original samplerate again. This works fine but is considered a brute force approach, mitigating aliasing from the results but not doing anything about the cause.

Antiderivative Anti-Aliasing is a little different. Instead of processing each sample point in isolation, ADAA estimates the average effect of the nonlinearity over the time between two samples. Imagine that between two samples, the input signal follows a straight line. Rather than applying your nonlinear function at each individual sample, ADAA determines what the average output would be if the nonlinearity acted continuously over that interval.

To do this without having to compute the continuous effect directly, ADAA uses the concept of an antiderivative. An antiderivative is simply a function that results in the rate of change of the original function (which in this case would be some kind of waveshaper). By taking the difference between two antiderivatives and dividing that by the change between two samples, you obtain a value that represents the average effect over that interval.

This means that ADAA is more ‘akin’ to analog which deals with continuous signals, versus digital which deals with discrete samples. It naturally smooths the transition between samples and focuses its affects on reducing aliasing more specifically. It can be expanded to any order and can incorporate a variety of filtering regimes. It can be computationally heavy but using a modest amount of ADAA with Oversampling, improves the results of both, leading to a computationally efficient way to avoid aliasing artifacts, improving sound quality.

The Future

Antiderivative Antialiasing is ‘some-what new’. Its only been the last couple of years that ADAA has began making its way into products as DSP engineers and developers find the sweet spot for implementations. If you would like to learn more, I suggest reading this paper, which is where it all started.

For myself, using 3x Oversampling with interpolation of two first order ADAA segments gives me superior antialiasing for minimal CPU cost, exceeding antialiasing properties of 5x oversampling using fewer resources. Multiband Saturator is the first device of mine to use this particular implementation, but I have also been using simple first-order ADAA in dynamics processing devices for the last couple of years.

This recent paper frames ADAA slightly differently and helped me arrive at my implementation from Multiband Saturator. I will continue to expand my research in this area and will eventually include examples in my antialiasing repository on github.

Want to check out the latest version of Multiband Saturator?

Check Out Multiband Saturator!

Published on 9 February 2025 by Fixation Studios
Share:

Stay Updated

Get the latest posts and production tips delivered to your inbox.

Subscribe to Updates