Before I begin, I have read these already:
I am processing audio using Csound in a high performance real time environment. One part of my code uses 10 butterworth bandpass filters in parallel, each with a different centre frequency and bandwidth. However, the centre frequencies and bandwidths are all relative to each other. The centre frequency of each filter are set whole number multiples or divisions of the main filter's centre frequency (ie, if main filter has cf of 100Hz, the other filters cfs would be 200, 300, 400, 500, 600, 50, 33.333, 25, and 20). The bandwidths of each filter are all a specific division of the associated centre frequency (ie, cf 100 = bw 10, cf 200 = bw 20, etc).
The main centre frequency is not fixed, but seeing as the filter centre frequencies and bandwidths are all relative to the main filters centre frequency and bandwidth, could I design a filter that combines all these filters into one? And most importantly, if I could, would it make any major difference to performance?
My best guess as to how to achieve this would be to combine the filter equations into one. I don't know if this would actually work, but if it did, I don't feel like it would improve the performance by much.
The sample being filtered is rich in harmonic and in-harmonic frequencies. It is borderline noisy, so the sum of the outputs of the BP filters is quite interesting, and the harmonies aren't always perfectly related. This quality I would like to keep.