Zero Latency Filters with extremely narrow passbands

My inquiry isn’t directly about JUCE but about dsp in general. In my experience programming with filters, getting narrow passbands requires an adequately large sample size. If you only process 32 samples, for instance, it’s mathematically impossible to get an extremely narrow passband even if the filter coefficients are set up for that.

I did a little experimenting with FabFilter Pro-Q on zero latency mode comparing a sharp Q factor and a wide Q factor. Even with realtime audio coming from a microphone, the latency for both Q factors is the same. The outgoing signal is delayed by the buffer size, in my case, 32 samples. Since I tested this in realtime, FabFilter clearly couldn’t pull any shenanigans with offsetting the signal to compensate for a larger delay. So clearly the plugin is perfectly capable of processing extremely narrow passbands on tiny sample sizes.

So my current understanding of filters must be wrong. Apparently it is not mathematically impossible to achieve this. I’ve spent a lot of time familiarizing myself with the math underlying filters and I really have no clue how this is done. I’ve always thought the increase in sample size was unavoidable. Would somebody be able to enlighten me as to where my understanding is off?


Oops nevermind I got myself confused. Didn’t realize I was doing something weird with the new filter library I got. It gave the appearance of processing larger sample sets increasing the sharpness of the passband which I internally was thinking about in the same way as filter order increases create a delay in the signal.

When I really started thinking about how a first order IIR filter only delays the signal by a couple samples and only operates on one sample at a time, I realized that my results in my Juce project made no sense. Went back in and uncovered my error.

Don’t mind me. lol