-
Hi Dan et al, KFR rocks! I have developed a nice DSP on my Mac. I have a 7.1 configuration in my home theatre and apply a series biquad filters and other treatments to all 8 channels. All filtering is done using KFR and all samples are stored in univector and univector2d. This works and sounds great. I filter low frequency content for all 7 main channels. I want to retain the low frequency content that is filtered out and pass it to the LFE signal (the subs do a much better job on this content). This is the same sort of bass management that any AV processor does. Question: How should I do this with KFR? Surely it can' be as simple as subtracting the filtered samples' univector from the original samples' univector? I am after the highest possible audio quality and have plenty of spare CPU power and RAM. Thanks in advance, |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments
-
Here is the filter set generated by REW for one of my channels. LS is Low Shelf, PK is Peaking, HS is High Shelf. Notes:0.8dB slope |
Beta Was this translation helpful? Give feedback.
-
Hi again, I've done some digging around and implemented the following for the 7 main channels (Left, Right Centre etc):
I think this is a 24dB crossover with unity gain. Could someone wiser than me please confirm that this is right or wrong? Thanks in advance, |
Beta Was this translation helpful? Give feedback.
-
Hi Geoff, Your setup looks correct, and it implements a 4th-order Linkwitz-Riley crossover (two cascaded 2nd-order Butterworth filters) with unity gain. This filter provides good quality and phase alignment. Note that the LFE channel requires a gain adjustment (typically +10 dB) after summing, to match standard home theater levels, though this depends on your system’s calibration. The code is as simple as:
Then, Dan |
Beta Was this translation helpful? Give feedback.
-
Hi Dan, Thanks for your very helpful response. As you mentioned, the bass needs to be attenuated. Some content has significant bass in all 7 channels. I'm looking at you Jim Kerr (Simple Minds) on the New Gold Dream Bluray audio! :) |
Beta Was this translation helpful? Give feedback.
Hi Dan,
Thanks for your very helpful response.
I created the filters using an approach in one of your examples/tests:
zpk lp_zpk = iir_lowpass(butterworth(order), frequency, sample_rate);
iir_params lp_params = to_sos(lp_zpk);
const iir_filter lp_filter_1(lp_params);
Of course II use iir_highpass for the other side of the crossover.
Filters constructed at dsp start up time.
Filters applied twice in succession at playback time you described.
As you mentioned, the bass needs to be attenuated. Some content has significant bass in all 7 channels. I'm looking at you Jim Kerr (Simple Minds) on the New Gold Dream Bluray audio! :)
I'll raise a separate discussion item on ways to manage this smart…