Multiband Limiter

Post Reply
gilzad
Posts: 92
Joined: Wed Dec 19, 2012 6:46 am

Multiband Limiter

Post by gilzad » Thu Jan 03, 2013 8:55 am

(Right-Click to save)
Example file <- old
Sunsynth Module (updated) | HQ mono
LQ Sunsynth Module (updated) | LQ mono

Demonstration of the updated multiband limiter for the final version of SunVox 1.73 (CAUTION! loud!):

Note, how the side-chaining-effect of the source signal vanishes, when all bands are boosted separately.

Background
If you're like me and belong to those, who recorded music to their 486 PCs back in the early 90s, then you probably have faced how waveforms turned from this...
Image(Enigma, Sadeness, 1990)
...into this...
Image (Paul Brown, Moment by Moment, 2004)

...without sounding like 3:20 of a continous hardcore bassdrum. Both tracks belong to rather calm sounding genres (New Age, Smooth Jazz, Chillout).

And us poor tracker musicians would just not know what was going on there. Only that the 'loud' tracks sounded more 'upfront' while the other ones (including ours) sounded too quiet.
Normalizing wouldn't help. If anyone of us knew a Compressor and would use it back then, soon his track would be puming like Daft Punk's Revolution 909.

Today we know it's some sort of mastering. There are plugIns like 'Maximizers', 'Boosters' and whatnot that do some large part of the work for you to get similar results.

The Multiband Limiter in this article is one of those tools that shall help you to not run into clipping/pumping while you're bringing background details up to the front.

What is it good for?
Like Compressors and Limiters it allows you to artificially raise your dynamic range. But (hopefully) in a more sophisticated way.
It allows you to push the loudnes (not volume) higher without getting the pumping artifact of an overdriven compressor.
It's useful for vocal processing. E.g. if you want to preserve bass but want to avoid loud pops. Of if you want to have bright highs but no sharp Ess-es (De-essing).
It helps you join the Loudness War. DO NOT DO THIS.

The example file
As usual the example file shows the multiband limiter in action. You'll notice, this time I used Menthes' Narrower/Bandpass-Filter, which saved me some space on the screen. In my module I have its Exponential Frequencies turned off (and I also fixed a little mistake as the LP Freq-Roll-off wasn't assigned correctly).
If you play the pattern, you'll hear a loop, which is an excerpt of Level 42's 'Lessons In Love' being processed by the DSP chain. The original recording from the 80's offers a large dynamic range. Peaks are really peaks. This helps us demonstrate how a usual compressor would start pumping on each of these peaks while the multiband limiter gains the same loudness without the pumping. To hear the difference, unmute the 'COMPARE' DSP. It'll automatically mute the multiband limiter's output and have it bypassed. Hopefully you also notice that the strong boosting turns the sound muddy. Of course this example is exaggerating the loudness boost to clearly show the wet/dry difference. Don't take this as an example on how far you should go. Never.

What is happening?
The source signal is being divided into five separated frequency bands. Subs ( - 70Hz), Low Mids (70 - 300 Hz), Mids (300 Hz - 2 KHz), High Mids (2 - 8 KHz) and the Highs (8 Khz and above).
Each of these bands' outputs is being compressed by a dedicated compressor with aggressive settings (0 Attack time, 1 ms Release time, 100% Slope). Of course such fast release times would lead to audible distortion in the bass and mid range, but:
Behind each compressor there are again post filters with the same settings as on the inputs. This makes sure that any accidental harmonics get cut out, which gives us a very high quality, even if we push it very hard (compare it to other multiband compressors).
Now, opposed to a usual compressor, which would compress the complete signal, this processor lowers only the bass, when the bass gets too loud. Exactly the same happends in all the other bands, too. So the peak of a bassdrum won't make the compressor attenuate the high hats and a loud crash cymbal won't do the same with a bassdrum. Each peak affects only the frequency range, where it occours. This way you get a higher loudness with much less pumping artifacts. The demo video also shows, how the side-chaining (the wanted pumping in the source signal) can vanish, if we boost the separate frequencies to extreme levels, as the bassdrum no longer remains the peak.

The SunSynth modules
The SunSynth metamodules work like any of the native effects in your signal chain. Just use the "Load" feature in Sunvox to locate the downloaded metamodule from your disk and connect the output of anything you like to it.
The new versions take advantage of the improved and very reliable compressor. Also the internal compressors of all multiband limiters have been exchanged by the lookahead compressor, so each band's peak will be handled faster now. Actually, this is a Lookahead Multiband Limiter now :)
The LQ-Versions are meant for devices with slow CPUs. I have set their filters (thx to NightRadio's instructions) and volume to differ as little as possible from the HQ-versions. But you will have to expect some slightly audible differences.
The mono versions can be useful, where the stereo versions would be CPU-wise a waste for processing monoaural sources (e.g. lead vocals).


I hope you'll have some fun with this.

gilzad

edit: updated the HQ- and LQ-version, added mono-versions and made corrections, much higher quality now. Also reduced a bunch of redundant amplifiers.
Last edited by gilzad on Sat May 11, 2013 3:21 am, edited 4 times in total.

User avatar
NightRadio
Site Admin
Posts: 3016
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Multiband Limiter

Post by NightRadio » Thu Jan 03, 2013 1:04 pm

Great! Thank you
Definitely i should increase the number of controllers in MetaModule :)
One suggestion. This would be cool if you can provide the additional versions of your modules for slow devices (ARM-based phones, tablets). I mean the Monophonic mode, and may be reduced number of modules (if possible). Here are some tips: viewtopic.php?f=3&t=2379

User avatar
samrai katt kovboy
Posts: 309
Joined: Wed Jun 13, 2012 11:07 am
Location: Spain
Contact:

Re: Multiband Limiter

Post by samrai katt kovboy » Thu Jan 03, 2013 1:41 pm

Big Applause to u mr gilzad!!!
for all the goodies you are creating for us cretins!
SOOOOOOOOOOOOOOO MANY CIRCLES

gilzad
Posts: 92
Joined: Wed Dec 19, 2012 6:46 am

Re: Multiband Limiter

Post by gilzad » Fri Jan 04, 2013 4:53 pm

Thanks guys!
NightRadio wrote:Great! Thank you
One suggestion. This would be cool if you can provide the additional versions of your modules for slow devices (ARM-based phones, tablets). I mean the Monophonic mode, and may be reduced number of modules (if possible).
I love getting the maximum of limited capabilities, so I'll definitely try to create a version for the weaker CPUs. Especially the Multiband Limiter might appear hungry on slower devices. I'm not sure about the monophonic mode though. Wouldn't this only apply to Oscillators and Samplers? I already have an idea how to reduce the amount of DSPs though. Also how to set some of them to LQ-mode.
samrai katt kovboy wrote:Big Applause to u mr gilzad!!!
for all the goodies you are creating for us cretins!
So far I don't see no cretins around here. Only nice people ;)

User avatar
NightRadio
Site Admin
Posts: 3016
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Multiband Limiter

Post by NightRadio » Sat Jan 05, 2013 10:57 am

I love getting the maximum of limited capabilities, so I'll definitely try to create a version for the weaker CPUs
This will be great! :)
I'm not sure about the monophonic mode though. Wouldn't this only apply to Oscillators and Samplers?
You can find Mono and HQmono/LQmono modes in almost every module. Not only generators.
For example - the Filter. Its input is always stereo. So if you just switch it to HQmono mode, this will reduce the CPU load in half.

organic io
Posts: 439
Joined: Fri Jun 24, 2011 12:31 am
Location: USA - North Carolina
Contact:

Re: Multiband Limiter

Post by organic io » Sat Jan 05, 2013 6:58 pm

NightRadio wrote: You can find Mono and HQmono/LQmono modes in almost every module. Not only generators.
For example - the Filter. Its input is always stereo. So if you just switch it to HQmono mode, this will reduce the CPU load in half.
Yep. Gilli I use LQmono on the Mobilepro for filters so I can spare some of the CPU.

Oliv
Posts: 17
Joined: Wed Oct 31, 2012 4:30 am

Re: Multiband Limiter

Post by Oliv » Sat Jan 05, 2013 10:38 pm

Impressive...

You're definitely the man. :good:

gilzad
Posts: 92
Joined: Wed Dec 19, 2012 6:46 am

Re: Multiband Limiter

Post by gilzad » Sun Jan 06, 2013 1:05 am

Ah, now I see.
It makes sense for lower bands most times, so I can have the subs working in HQ-mono without changing the sound too much.

NightRadio, can you give me a little hint? I need your help to know how much CPU a DSP takes in different modes. From what SunVox's native CPU-monitor shows, I suspect that one of my intentions can be abandonded.

An example of quality-reduction in the high band (as distortion in high bands is hard to notice):
In the highest band (8k), it's safe to not use the post-filter behind the compressor, if we set the pre-filter's Roll-off to 24 dB to restore the crossband-frequencies. This would theoretically save us one DSP.
But I assume that the filter-order is achieved by passing the signal a several times through the same filter-routine (1 pass for 12 dB, 2 passes for 24 dB, etc). In this case we wouldn't really save CPU-time because the pre-filter (before the compressor) would have to do twice the work for the removed post-filter (behind the compressor). If this is true, removing the DSP won't speed things up. If I'm wrong, we can save CPU-time.

If I set the HP-Filter to LQ-mode, I'll save some CPU-time, but again, I'll have to raise the roll-off from 24 dB to 36 dB to have the same cut-off. Still the CPU-monitor does show some savings then and the inverted output doesn't fully kill the sound of a filter with 24 dB in HQ-mode. So I guess, this is something that can be done although the frequency-crossing gets a little bit nastier here.

With these tricks, we'd get: 1 HP less (if it makes sense), one faster HP (LQ-mode) and 2 faster LP-filters (mono-mode) inside the multiband limiter. Is that ok? We could also remove a whole band or two but then, if there will be a LQ/HQ-switch sometime, you can't pack both versions into one DSP.

edit: Thanks, Oliv.

User avatar
NightRadio
Site Admin
Posts: 3016
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Multiband Limiter

Post by NightRadio » Sun Jan 06, 2013 10:30 am

But I assume that the filter-order is achieved by passing the signal a several times through the same filter-routine (1 pass for 12 dB, 2 passes for 24 dB, etc). In this case we wouldn't really save CPU-time because the pre-filter (before the compressor) would have to do twice the work for the removed post-filter (behind the compressor).
Yes, you are right. Number of passes is just a number of Filter iterations. E.g. 24dB doubles the CPU usage for this filter.
If I set the HP-Filter to LQ-mode, I'll save some CPU-time, but again, I'll have to raise the roll-off from 24 dB to 36 dB to have the same cut-off.
Here is slightly different situation with LQ-mode.
In HQ mode the Filter is double-sampled.
In LQ mode the Filter is 2x faster, but with the following consequences:
  • frequency range is reduced by half (to 7000 Hz maximum); so if you want to set cut-off frequency 2000 Hz - you should set it to 4000;
  • LQ algorithm is very fast (specially for slow devices), but the cost of this speed is the instability in some cases (Filter in LQ mode with high Freq values is unstable on some input signals with a predominant high-frequency component).
So i don't think you need to raise the roll-off for LQ-mode. Just increase the frequency. But only if 7000 Hz range is enough for you. If not enough - don't use LQ mode in Filter.

gilzad
Posts: 92
Joined: Wed Dec 19, 2012 6:46 am

Re: Multiband Limiter

Post by gilzad » Mon Jan 14, 2013 8:22 am

Thank you! With the information you provided, I built an LQ-version of the Multiband-Limiter. It doesn't sound much worse than the HQ-one and save some CPU-time. What I did was to set all the filters to LQ-mode, correct their cutoff-frequencies and additionally set the lowest band filters to mono. The links in the first post are updated now. The new versions also take advantage of the additisonal controllers. Thanks once more ;)

Theoretically I could remove two amplifiers as well. Would that make sense for the integer-based engine? I'm guessing if the ARM-versions really do the mixing with integers, then each additional DSP would add more noise. On the other hand even the integer-based engine can handle amplified signals without distortion, so I'm not sure if removing DSPs would preserve quality or not.

User avatar
NightRadio
Site Admin
Posts: 3016
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Multiband Limiter

Post by NightRadio » Mon Jan 14, 2013 11:31 am

Great! Thank you
Theoretically I could remove two amplifiers as well. Would that make sense for the integer-based engine?
I see only one advantage of this - MetaModule will be faster. Amplifier does not reduce the quality of the sound. But of course it has some CPU-hungry pieces of code:
1) moving the audio blocks TO and FROM Amplifier;
2) some number of multiplications - very expensive function for slow CPUs; but this is active only if Volume controller is not equal to 256.

gilzad
Posts: 92
Joined: Wed Dec 19, 2012 6:46 am

Re: Multiband Limiter

Post by gilzad » Sat May 11, 2013 8:33 am

NightRadio wrote: I see only one advantage of this - MetaModule will be faster.
I finally removed all redundant amplifiers. Sorry for the delay. The new LQ-version is completely stereo now, but I added mono versions, too.
All in all the multiband limiter might be a bit hungrier though, because I exchanged the compressors by the Lookahead-Limiter, which itself has an additional echo-module. I hope that the variety of versions (HQ, HQmono, LQ, LQmono) will suit most use cases though. Interesting to learn that the multiplication is expensive on slow CPUs, makes me be more careful for sure.

User avatar
NightRadio
Site Admin
Posts: 3016
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Multiband Limiter

Post by NightRadio » Sat May 11, 2013 6:00 pm

Cool!

James Wilkerson
Posts: 1
Joined: Thu Feb 27, 2014 5:22 am

Re: Multiband Limiter

Post by James Wilkerson » Thu Feb 27, 2014 5:28 am

I would like to try this out. How do I download your fine product?

Post Reply