How do "spectral" (FFT-based) dynamics processors work?

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

There are many spectral dynamics processors on the market these days that appear to be FFT-based - which I find a bit baffling.

FFTs typically have poor time resolution due to the fact that their frequency bins are averaged over the FFT window length (e.g., 1024 samples).

Traditional compressors/limiters, on the other hand, typically processes EVERY sample and even in between samples (in the case of oversampling plugins).

So, unless a huge amount of FFT overlap is used (which would choke most CPUs) how does one get enough time resolution out of an FFT to enable effective dynamics control?
Last edited by Fender19 on Sat Sep 21, 2019 4:09 pm, edited 1 time in total.

Post

Not my expertise, but I guess they use an fft based eq (modified dynamically but at a lower rate, not necessarily) and they mix with bypassed version with a traditional dynamic compressor component. You can even use a multiband compressor approach, but it would be much more complicated. Just my guess

Post

In simple case you can always have two parallel kernels (the first tuned to current/source setting and the second to target/destination) and crossfade between their outputs on the same per-sample basis. This obviously won't work when it's about modulating the band frequencies but for band gains (usually the case of "effective dynamics control") that'll work like a charm.

Post

I was exploring this some time ago. I'm not an expert on the topic, but I found out some things:

-Dynamics processing is sonically (artifact-free) better done in time domain, unless one has good math skills. Problem exists in being able to "reconstruct" the signal after one alters it in frequency domain. Another problem is how to "bufferize" the dynamics processing using FFT, because FFT acts typically on quite short blocks of audio. There exists theory based on wavelets and stuff that allow doing amplitude modulation in frequency domain, but on conventional level there exists many cave-eats in "modifying FFT bins".

-A "cross" between "spectral dynamics processing" and "time-domain dynamics processing" is to use time-domain filter banks and add dynamics processing on those bands. So essentially, do multi-band compressors that act in time-domain.

One can also use FFTs for finding the frequencies to adjust. But then do the actual processing in time-domain.

Post

soundmodel wrote: Sat Sep 21, 2019 4:09 pmProblem exists in being able to "reconstruct" the signal after one alters it in frequency domain.
maybe i'm missing something, but aren't these problems solved by the griffin-lim formula, (Eq. 6 here: https://pdfs.semanticscholar.org/14bc/8 ... 24a4f1.pdf)?
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Here's one paper:

FFT-BASED DYNAMIC RANGE COMPRESSION
Leo McCormack and Vesa Välimäki,2017
Proceedings of the 14th Sound and Music Computing Conference,July 5-8, Espoo, Finland
http://smc2017.aalto.fi/media/materials ... 17_p42.pdf

Post

soundmodel wrote: Sun Sep 22, 2019 8:26 am Here's one paper:

FFT-BASED DYNAMIC RANGE COMPRESSION
Leo McCormack and Vesa Välimäki,2017
Proceedings of the 14th Sound and Music Computing Conference,July 5-8, Espoo, Finland
http://smc2017.aalto.fi/media/materials ... 17_p42.pdf
Excellent info! Thank you. :tu:

Post Reply

Return to “DSP and Plugin Development”