DSP filter to create wide band uniform slope

What is the best way to create a uniform slope across a very wide band, for instance a -1 dB/octave slope spanning from 100 Hz to 10 kHz?

Based on a PM discussion recently, I thought this information might be useful to some people. For audio professionals this is probably simplistic and obvious, but some people might benefit from it.

I have found a second order shelf filter with a very low Q is the best way. The attached graphics show how this is done, and how it compares to an ideal slope. I am showing the specific case of 100 Hz to 10 kHz, which has a span of 100x. i.e. 10,000 Hz / 100 Hz = span of 100x.

This technique works well for up to a span of 200x, so it can be used from 100 to 20k, or from 50 to 10k. If a person need a span greater than 200x, they will probably need two shelf filters to get the job done.

I included some example calculations so anyone can work out a solution based on their own needs.

j.
 

Attachments

  • Slide1.PNG
    Slide1.PNG
    22.9 KB · Views: 191
  • Slide2.PNG
    Slide2.PNG
    67.4 KB · Views: 195
  • Slide3.PNG
    Slide3.PNG
    66.7 KB · Views: 172
  • Slide4.PNG
    Slide4.PNG
    64.9 KB · Views: 167
  • Slide5.PNG
    Slide5.PNG
    30 KB · Views: 157
  • Slide6.PNG
    Slide6.PNG
    11.4 KB · Views: 156
  • Slide7.PNG
    Slide7.PNG
    14.3 KB · Views: 143
  • Slide8.PNG
    Slide8.PNG
    12.5 KB · Views: 176
  • Like
Reactions: 6 users
I have been implementing sub first order slopes over an extended frequency range lately, and here is how I do it. I first got the idea from Douglas Self in "The Design of Active Crossovers" (2011), section. 11.14 “equalizers with non-6 dB Slopes”. He designs a broadband "pinkening" filter in this section in various ways (as analog active filters) using combinations of first order poles and zeroes that are closely spaced in frequency. A pinkening filter tilts the response down at 3dB per DECADE (a little less than 1dB per octave) across the entire audio band.

In DSP this translates to using a number of first order shelving filters, each with sub 6dB gain or loss. For example, I am currently using six first order shelving filters, each implememnting a loss of 1.5dB from low to high frequency and spacing out the center frequencies across the intended band where the gain or loss should occur. In my case it is over about two decades. This results in a smooth, continuous tilt to the response.

The second order shelf filter with Q<0.4 is similar (I have used that, too) but it cannot be extended to arrbitrarily wide bands like you can do with multiple first order shelving filters.
 
Last edited:
I think I need to try to first go for flat and then introduce one of these filters for the final house curve. Just use REW auto EQ repeatedly until very flat - then add the shelf...

//

That's exactly what I am doing with my loudspeakers now. I design the loudspeaker to be flat on axis first, then I apply a "voicing EQ" curve. This approach only makes sense when using DSP, however. Not a problem for me! I am writing up a manuscript about it as we speak.
 
  • Like
Reactions: 1 users
In DSP this translates to using a number of first order shelving filters, each with sub 6dB gain or loss. For example, I am currently using six first order shelving filters, each implememnting a loss of 1.5dB from low to high frequency and spacing out the center frequencies across the intended band where the gain or loss should occur. In my case it is over about two decades. This results in a smooth, continuous tilt to the response.

The second order shelf filter with Q<0.4 is similar (I have used that, too) but it cannot be extended to arrbitrarily wide bands like you can do with multiple first order shelving filters.
I was originally using two first order shelves to cover a 100x range from 100 to 10k. One at 316 Hz and one at 3160 Hz. But the low Q 2nd order did a better job and requires just a single biquad.

To go from 20 to 20k, we need two 2nd order shelves at about 120 Hz and 3700 Hz, both at Q=0.3... but if we use 1st order shelves, we need at least three, and probably four of them.

I also design for a flat response, and then use a global EQ to set the tilt. On some recordings I prefer a flat response, others a -0.6 dB/octave, and most pop recordings a -1 dB/octave.

I first got the idea from Douglas Self in "The Design of Active Crossovers" (2011),

That sounds like an interesting book. I will have to put it on my reading list. Thanks!



j.
 
  • Like
Reactions: 1 user
@hifijim

Your method is definitely more efficient if you can use one or two biquads. Your writeup is very nice. Thanks for sharing it.

The Self book is mostly how to design analog active circuits using his favorite op-amp, the 5532, but it does have some useful info in general. Try to pick up a used copy if you can. I think there is also a more recent version that might have some new material.
 
  • Like
Reactions: 1 user
Thx, jim, for your solution, very interesting. The peculiar experience I have had with my constant directivity 2-way speakers is that it is detrimental to their sonic signature to apply a slope like this. As soon as I tamper with frequencies <1 khz, to fit them to a room curve, things get dull, despite a previous very flat in-room response in this frequency range. I instead found it helpful to use each a slight boost via 1) a low shelf for mids from 400 hz and 2) for bass from 100 hz.
 
I think I need to try to first go for flat and then introduce one of these filters for the final house curve. Just use REW auto EQ repeatedly until very flat - then add the shelf...

//
I do the same, I force the speaker flat with DRC and the introduce a voicing curve.

I use a collection of shelving filters placed an octave apart with a Q of 0.7, then whatever the attenuation of the shelving filter is is sets the slope per octave.
This is obviously easier to do in a computer equalizer than it is in hardware DSP unless it has a lot of bands of EQ available.

Very rarely is a totally straight line going to be the right answer, mine has a few wiggles introduced into it, the HF boost is gone now.

The filter at 150Hz has the Q changed to slope up faster, this slight change produces a really audible difference that I had a clear preference for.

1666395780211.png
 
Last edited:
When I see the "spinorama" data for constant directivity speakers, most of them have a power response and a predicted-in-room response that slopes down by ~ 1 to 1.5 dB/ octave. So I can see why such a speaker would not need any additional sloping...
I wouldn’t necessarily share this assumption. The sloping in some old measurements of mine only happened <10k, and this might even only be an effect of the MMT measurements. https://www.audiosciencereview.com/...n-room-measurements.13540/page-21#post-831911
None of the above mentioned tweaks were applied to this graphs, I only repost them to show, how little the IR falls and that it still sounds right with this system.
Will make some new measurements soon to check back on this issue.

Don't mind the bass shelf. By now, there is more room EQ applied, but in anechoic response differs for more bass/low mids power.
 
Last edited:
If you draw a trend line on there although it doesn't fit perfectly, there is a 5dB drop between 100 and 10K, so the directivity is already rising overall. The balance of bass to treble is really important and some responses that look very different can sound quite similar if this ratio is maintained.

Trend Line.png
 
When I see the "spinorama" data for constant directivity speakers, most of them have a power response and a predicted-in-room response that slopes down by ~ 1 to 1.5 dB/ octave. So I can see why such a speaker would not need any additional sloping...
This is because those speakers are trying to match the power response of a boxed louspeaker that has a power response that slopes down at about that rate, given that the speaker has a flat on axis frequency response. It's the nature of that particular beast.
 

TNT

Member
Joined 2003
Paid Member
...

Very rarely is a totally straight line going to be the right answer, mine has a few wiggles introduced into it, the HF boost is gone now.

---
I envision this to be so. But I also guess that at the frequency regions which don't sound good with "straight", the speaker probably has some problem there - be it; distortion, phase, directivity... so something is in need of repair... and of course it can be a room problem also. All depending on the used gating....

//
 
  • Like
Reactions: 1 user
Yes usually diffraction or directivity differences and the interaction of the speaker and the room. It is the reason generally quoted why corrections based only on in room measurements might not work out if the speaker does not have good smooth directivity.
 
  • Like
Reactions: 1 user
Try 62, 620 & 6200 hz with Q around .43 on second order shelves.
With some rounding, these frequencies are approximately the center of each decade 20 200 2000 20000. Exact numbers would be sqrt(10) x 20, 200 and 2000.
One dB on each gives you 3 db on the full spectrum.

1666560761924.png


Also beware of Fabfilter's Q specification. They specify the common Q=1/sqrt(2)=0.707 as their Q=1, so if you want to translate to an other EQ, multiply the fabfilter Q by 1/sqrt(2).
 
  • Like
Reactions: 1 user
This has been one of my pet projects too.... that is, the idea of how to implement downward sloping house curves.
(Like others mentioned, i prefer to first tune a speaker to flat, and then as an separate layer on the source input, experiment with house curves or tone controls etc.)

One method i tried that worked really well was to build in DSP a way to continually vary the slope of the curve in real time.
Here's the electrical measurements of a set of slopes.
seesaw 700Hz.jpg


700Hz is my chosen the fulcrum, and low shelves are used below that frequency, and high shelves above.

A percentage control knob varies whatever slope is desired.
50% equals flat response like this.
seesaw EQ flat.JPG


Whereas 73% for example, makes about a 8dB downward tilt end to end.
seesaw EQ 8dB.JPG


100% gives -18 dB end to end or about 1.8 dB per octave.

I did have to add a few parametric EQs on the low end from 10- 15Hz to reduce low end shelving boost. They also worked progressively, continually, as a function of the percentage knob. You can see their progressive effect on the very low end, looking back up at the first set of curves.
seesaw take 1.JPG


I really liked being able to tilt slope to audible taste, depending an SPL and track tonality.

I'm not using it now because I've found I still would rather have a separate volume control on each driver section, all controlled by a volume master.
It sounds like a lot of constant tweaking, but it's not really, and adds immensely to my overall enjoyment.
I do mean immensely .....the idea of having to live with one fixed house curve (or worse, lack thereof haha) is a total non-starter for me anymore.
Go, DSP, go !!!
 
  • Like
Reactions: 2 users
Founder of XSA-Labs
Joined 2012
Paid Member
Hifijim,
Nice work!

Ok, officially this has now been committed to memory: fc=1000Hz, ampl=-5.3dB, Q=0.304. :)

Thanks for the superb analysis and write up!

It seems rather complex to implement globally in DSP, but when making 2 way crossovers, I routinely implement this naturally in the voicing and it is usually accomplished through the low pass shelving filter, a low pass filter on woofer, plus the high pass filter corner and padding. The low pass inductor value has a major effect on the tilt angle. For example, here is one of my developmental crossovers that I just made using only 7 components. You can see the mild tilt highlighted by the hand drawn blue line (about -2.5dB from 100Hz to 20kHz):

1666623025072.jpeg
 
Last edited:
  • Like
Reactions: 1 user