Crossover for multiband processing

DSP related issues, mathematics, processing and techniques
Post Reply
Rocko
Posts: 186
Joined: Tue May 15, 2012 12:42 pm

Crossover for multiband processing

Post by Rocko »

Dear all,

I would like to get experienced with multiband processing for audio VST.
Let's assume the processing is a simple M/S controller which I would like to break into 4 bands, for higher resolution.

What cross-over should I start expereinceing with, to your mind? 4th order IIR? 2nd order IIR?
Is there a 'classic' well accepted multi-band cross-over design shape which I can start playing with?

Any written material and example code would be great for me to start with, as well.

Thanks in advance,
Rocko
Flemming
Posts: 31
Joined: Thu Aug 07, 2014 9:48 am

Re: Crossover for multiband processing

Post by Flemming »

I was looking at this one yesterday.
I didn't try it, so i don't know if it works in Flowstone
KG_is_back
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Crossover for multiband processing

Post by KG_is_back »

Ah, Rocko, welcome to the frustrating world of making multiband audio processors.
Rocko wrote:What cross-over should I start expereinceing with, to your mind? 4th order IIR? 2nd order IIR?Is there a 'classic' well accepted multi-band cross-over design shape which I can start playing with?


Most commonly used is the Linkwitz–Riley filter. There may be some examples here on forum (or the SM forum). Advantage of this filter is the flat amplitude response (the two bands add to perfectly the same gain) however the mess up with the phase response, which may complicate things if you use them for parallel processing (like wet/dry knob on output of your plugin). Another way, it to use lowpass filter for lower band and original-lowpass for the high band - they add perfectly to orignal signal, but the individual (soloed) bands may have strange amplitude response.
Then there is the linear phase filter. These filters are most predictable both in amplitude and phase response, but introduce latency (there is no way to overcome that) and also may bring in unnatural artifacts (pre-ringing for example) simply because these filters are unnatural. They are mostly based on FIR filters, but there are also IIR versions (for example the BiDirectional IIR filter I've made some time ago and someone even made it into a crossover filter - just search for "Bidir IIR" on the forum through google).
The last approach is to not use crossover at all. If you plan to only change the gain on individual bands (even in MS mode) you may use a chain of shelving filters and add/subtract their gain values, so you can control them as if they were bands.

The filter order is completely a matter of preference (even on the user side).
Rocko
Posts: 186
Joined: Tue May 15, 2012 12:42 pm

Re: Crossover for multiband processing

Post by Rocko »

Dear all,

Thanks for the answers, appreciated.

I was looking at this one yesterday.
I didn't try it, so i don't know if it works in Flowstone

I'm actually looking into this for playing around and learning, so the 3 band example in SynthMakers WIKI, is not what I'm after, since it is coded in ASM.
I'm looking into building my own code which can change fast and experience the difference.

Most commonly used is the Linkwitz–Riley filter. There may be some examples here on forum (or the SM forum). Advantage of this filter is the flat amplitude response (the two bands add to perfectly the same gain) however the mess up with the phase response, which may complicate things if you use them for parallel processing (like wet/dry knob on output of your plugin). Another way, it to use lowpass filter for lower band and original-lowpass for the high band - they add perfectly to orignal signal, but the individual (soloed) bands may have strange amplitude response.


This is more of my interest.
I had used a 'original-lowpass' design in the past and always wondered about it. It seems a good approach, so I'll dig into this a bit deeper.

For Bi-directional, this is on my To-Do list, I find this exciting... I will get to that in future.
FIR is out of the question, as I want to change the cross-over points easily (via GUI) and this is tough in FSM/SM, right?

Thanks,
Rocko
Rocko
Posts: 186
Joined: Tue May 15, 2012 12:42 pm

Re: Crossover for multiband processing

Post by Rocko »

Hi,

they add perfectly to orignal signal, but the individual (soloed) bands may have strange amplitude response.


Could you explain more about the strange amplitude response?

Thanks,
Rocko
KG_is_back
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Crossover for multiband processing

Post by KG_is_back »

Rocko wrote:Could you explain more about the strange amplitude response?


when you have for example a 2order lowpass, then the high band is highpass+bandpass (since original signal is highpass+bandpass+lowpass). This means that if you have Q higher than 0.702 you get the resonance peak around the cutoff frequency. Now you'd expect the highband (made by original-lowpass) to have a 'hole' in the same place, but opposite is true - the highband also has the resonance peak and to make things even more strange at slightly different frequency.
Observe the attacked schematic....

It happens because filter also changes the phase response and that means subtraction and addition does not work the same intuitive way anymore.
Attachments
strange amplitude response.fsm
(122.22 KiB) Downloaded 1476 times
Perfect Human Interface
Posts: 643
Joined: Sun Mar 10, 2013 7:32 pm

Re: Crossover for multiband processing

Post by Perfect Human Interface »

KG_is_back wrote:It happens because filter also changes the phase response and that means subtraction and addition does not work the same intuitive way anymore.


Hey KG. First of all, thanks for this explanation. It's really helpful.

If I'm not mistaken, one could use a Linkwitz-Riley filter as the lowpass for an inversion filter, then process a "dry" signal with a similar L-R filter as an all-pass. That way you could mix dry & wet without phase cancellation, while also getting a flat amplitude response. You'd still get phase shifts around the crossover(s) in the output, but that's generally inaudible (might change peaking levels a bit) and as long as you're handling the dry/wet mix internally you should be fine.

Does this sound like a valid/good idea to you? I think that might be what I do with my current project.


EDIT:
I realized that the Linkwitz-Riley won't bottom-out as a lowpass filter, so while it may work fine for splitters for other reasons it won't work for me for this project.

So one more question... Is there a recommended type of lowpass filter for an inversion-style splitter?
There's a great pack of filter modules here by the way: http://synthmaker.co.uk/forum/viewtopic ... &sk=t&sd=a
Post Reply