Multiband processing methodologies
-
- KVRer
- Topic Starter
- 11 posts since 23 Jul, 2015
Hi all!
This is my first post here. I've learned a lot reading through this forum and it is absolutely amazing to have so many knowleadgeable people contributing to everyones benefit.
I've recently been limping into the wonderful world of signal processing, trying to get some stuff done in various programming languages, and now I wanted to get a general opinion from you.
Suppose I wanted to do some multiband processing, and I wanted this processing to be fairly simple but permit modulation. How would you go about splitting the signal into bands? From the bottom of my experience, basically quantizable to 0, I'd guess that some sort of fft-ing with processing in the frequency domain is viable. Alternatively one could use a bunch of bandpass filters and process the signal in the time domain. But I have difficulties judging these methods, seeing what their benefits and perks are. And maybe one could do it in other ways too. To put it in fewer words, what would you have done to split the signal into bands with the requirements being simple processing on the bands, but modulatable? You don't have to be superspecific, I'm mostly looking for some pointers in the right direction.
Thank you again for being part of this great community!
This is my first post here. I've learned a lot reading through this forum and it is absolutely amazing to have so many knowleadgeable people contributing to everyones benefit.
I've recently been limping into the wonderful world of signal processing, trying to get some stuff done in various programming languages, and now I wanted to get a general opinion from you.
Suppose I wanted to do some multiband processing, and I wanted this processing to be fairly simple but permit modulation. How would you go about splitting the signal into bands? From the bottom of my experience, basically quantizable to 0, I'd guess that some sort of fft-ing with processing in the frequency domain is viable. Alternatively one could use a bunch of bandpass filters and process the signal in the time domain. But I have difficulties judging these methods, seeing what their benefits and perks are. And maybe one could do it in other ways too. To put it in fewer words, what would you have done to split the signal into bands with the requirements being simple processing on the bands, but modulatable? You don't have to be superspecific, I'm mostly looking for some pointers in the right direction.
Thank you again for being part of this great community!
-
- KVRian
- 1096 posts since 28 May, 2010 from Finland
Use a typical cross-over filterbank.
(http://blog.bjornroche.com/2012/08/why- ... omain.html)
Also some info about cross-overs here:
http://www.kvraudio.com/forum/viewtopic ... 3&t=444438
I'm not sure how to do the mixing of multi-band crossover though. That is, how to mix together bands that may have been differently processed.
(http://blog.bjornroche.com/2012/08/why- ... omain.html)
Also some info about cross-overs here:
http://www.kvraudio.com/forum/viewtopic ... 3&t=444438
I'm not sure how to do the mixing of multi-band crossover though. That is, how to mix together bands that may have been differently processed.
- Beware the Quoth
- 33175 posts since 4 Sep, 2001 from R'lyeh Oceanic Amusement Park and Funfair
Just sum the signals again. Best way to do it is maybe via a modular subhost, where splitting the signal and mixing them together again are basically just facets of the modular routing. To make a band, run the signal through a lowpass filter(*), then a highpass filter(**), to create a crude crossover for the band, then an instance of your chosen effects chain. Your bands are just parallel versions of that, and they just sum at the output.Fluky wrote:Use a typical cross-over filterbank.
(http://blog.bjornroche.com/2012/08/why- ... omain.html)
Also some info about cross-overs here:
http://www.kvraudio.com/forum/viewtopic ... 3&t=444438
I'm not sure how to do the mixing of multi-band crossover though. That is, how to mix together bands that may have been differently processed.
(*) The 'first' band probably doesnt need a lowpass
(**) The frequency of each lowpass filter should be roughly the frequency of the 'previous' band's highpass filter.
The FL Minihost is free, or there's MUX, Bidule, MetaPlugin etc.
(Alternately, BlueCat MB-7 does all the splitting/mixing/hosting without being modular, with more optimal crossover filters)
my other modular synth is a bugbrand
-
- KVRian
- 1379 posts since 26 Apr, 2004 from UK
+1 on filter banks or cross over filters. Don't use FFT for such a thing, it's far more complicated than just taking a windowed FFT, doing stuff on the spectrum and doing an iFFT on each window. Not worth it.
- Beware the Quoth
- 33175 posts since 4 Sep, 2001 from R'lyeh Oceanic Amusement Park and Funfair
crivvens, i missed that this was the DSP forum. apologies.
my other modular synth is a bugbrand
-
- KVRer
- Topic Starter
- 11 posts since 23 Jul, 2015
Thank you for your answers!
I started to imagine that FFT wouldn't be as straightforward as I initially thought, so I'll rule that out!
I'll che the linkwitz-riley networks, and I'm also very curious about the RBJ's, which I've implemented singularly in the past, but never together.
From what I gather these are all IIR filters (correct me if I'm wrong). I've coded IIR's before, and I've never thought they sound bad at all, but I can't help but wonder if their phase issues could be a problem in multiband applications. Are they? I have no clue.
Which leads me to: could FIR filters be a possibility? I have never implemented them, so I don't mind experimenting a bit with them. The only bad thing I can think of is the performance of the FIR code if fairly steep bands are required, and the bands are many. What's your take on multiband by FIR?
Going to check those Linkwitz-riley now!
I started to imagine that FFT wouldn't be as straightforward as I initially thought, so I'll rule that out!
I'll che the linkwitz-riley networks, and I'm also very curious about the RBJ's, which I've implemented singularly in the past, but never together.
From what I gather these are all IIR filters (correct me if I'm wrong). I've coded IIR's before, and I've never thought they sound bad at all, but I can't help but wonder if their phase issues could be a problem in multiband applications. Are they? I have no clue.
Which leads me to: could FIR filters be a possibility? I have never implemented them, so I don't mind experimenting a bit with them. The only bad thing I can think of is the performance of the FIR code if fairly steep bands are required, and the bands are many. What's your take on multiband by FIR?
Going to check those Linkwitz-riley now!
-
- KVRAF
- 7400 posts since 17 Feb, 2005
For the most part, a crossover network tends to sounds ok. Although for mastering, I've read testimonial to the fact that they are not welcome in mastering. They seem to screw things up, rather than making them sound better. But for creative sound design, or mixing use, they aren't that bad.NoWay wrote:I can't help but wonder if their phase issues could be a problem in multiband applications.
"could FIR filters be a possibility?"
Yes, these tend to sound waaay more neutral than the IIR counterpart. I will usually go first to an FIR bandsplitter for transparency.
-
- KVRian
- 1379 posts since 26 Apr, 2004 from UK
FIR may be more neutral, but they also require more samples, and in some cases latency?
IIR are interesting IMHO because that's what analog banks are based on. But I can also understand why they are not welcome for the main bus.
IIR are interesting IMHO because that's what analog banks are based on. But I can also understand why they are not welcome for the main bus.
-
- KVRer
- Topic Starter
- 11 posts since 23 Jul, 2015
Yes, I noticed the latency could grow quite a bit if the requisites for steep roll-off we're strict. I tried some FIR design in Octave with Blackman-Harris window, and I couldn't get satisfactory results with low latency. Still, I'd like to try it in the future, as they might work well with less roll-off for some multiband applications.
Otherwise, I spent the morning implementing RBJ bandpass filters in C++, and I'm pleasantly surprised. They work well and sound great. I haven't done any deep analysis yet, but reading others opinions, I really think they are worth it. I can mix back to a flat frequency response with only one band made of a bandpass by just subtracting the filtered signal from the original, and summing back the difference to the filtered signal. I have to try it with more bands however.
Unrelated question: I'm doing most of my analysis with VST plugin analyser:
http://www.kvraudio.com/product/vst-plu ... tian-budde
It seems to behave properly, but I haven't got any experience with other tools to check frequency response, phase response and such, so I wondered if any of you knew if how Budde's program fares. Does it have significant drawbacks for analysing signals, or can I be satisfied with it? Up until now I'm pretty happy with it, but maybe you know something I don't.
Otherwise, I spent the morning implementing RBJ bandpass filters in C++, and I'm pleasantly surprised. They work well and sound great. I haven't done any deep analysis yet, but reading others opinions, I really think they are worth it. I can mix back to a flat frequency response with only one band made of a bandpass by just subtracting the filtered signal from the original, and summing back the difference to the filtered signal. I have to try it with more bands however.
Unrelated question: I'm doing most of my analysis with VST plugin analyser:
http://www.kvraudio.com/product/vst-plu ... tian-budde
It seems to behave properly, but I haven't got any experience with other tools to check frequency response, phase response and such, so I wondered if any of you knew if how Budde's program fares. Does it have significant drawbacks for analysing signals, or can I be satisfied with it? Up until now I'm pretty happy with it, but maybe you know something I don't.
- KVRist
- 347 posts since 20 Apr, 2005 from Moscow, Russian Federation
Assuming linear processing (i.e. we're not trying to test some highly saturated EQ) its frequency/phase (and derived) plots are nearly perfect.NoWay wrote:so I wondered if any of you knew if how Budde's program fares.
-
- KVRAF
- 3080 posts since 17 Apr, 2005 from S.E. TN
The LR type crossovers should be friendly to multiband processing because of the special phase alignment and ability to mix flat. However there are possible crossovers that mix flat and may sound fine as a speaker crossover, that do not sound good if you modify the split bands before mixing back together.
For instance simple first order rc crossover will mix flat. Each band is 0.707 amplitude at crossover, but it will mix flat rather than with a +3 dB bump because of phase differences in the crossover vicinity.
You could statically mix back together any ratio of the two first order crossover bands and it would sound ok to the ear. Mix the high band louder or softer and the mix still sounds reasonable.
But if you run one or both bands thru compressors and mix back together it sounds horrible. Almost as obnoxious as running the signal into an autowah envelope follower effect.
Every possible mix of hi + lo sounds ok if it stays put, but if the mix is in motion, the phase in the crossover region also goes into motion and this moving phase is very noticeable to the ear. It would never be transparent enough for multiband compression, but might make a interesting phasey special effect.
For instance simple first order rc crossover will mix flat. Each band is 0.707 amplitude at crossover, but it will mix flat rather than with a +3 dB bump because of phase differences in the crossover vicinity.
You could statically mix back together any ratio of the two first order crossover bands and it would sound ok to the ear. Mix the high band louder or softer and the mix still sounds reasonable.
But if you run one or both bands thru compressors and mix back together it sounds horrible. Almost as obnoxious as running the signal into an autowah envelope follower effect.
Every possible mix of hi + lo sounds ok if it stays put, but if the mix is in motion, the phase in the crossover region also goes into motion and this moving phase is very noticeable to the ear. It would never be transparent enough for multiband compression, but might make a interesting phasey special effect.