EQ: More (smaller) low-pass roll-off options

I’d like to use parametric EQ to tailor HF response. From the options I see and my understanding of them, the low-pass filter seems the best tool for that job. But 6dB / Octave is a bit steep for fine-tuning. I’d say a 3dB / octave option is essential, and why you’re at it why not add 1 an 2 dB / octave options?

Why? A lot of speakers are essentially “flat” in-room, which to my ears (and others) is a little too hot. I’d like to reproduce the classic 3dB / octave roll-off above 4kHz or so–then be able to play with that and refine it.


Just use a high shelf filter. That should accomplish most of the small rolloff that you seek.


I tried that. Maybe I just don’t know what I’m doing–that’s even likely–but I can’t give it the right shape. I don’t want a shelf, with all the highs rolled off equally. I want an (e.g.) 3dB / octave roll-off. This is not just me–it’s a standard, recommended frequency response.


Yeah, you do not have a set need for a 3 dB/octave low pass filter. Rather, you really just want to tilt the frequency response – a la the Harman curve. That is very doable with one or more shelf filters.


Yeah, I think I really do. It’s reasonable an probably easy–and what you’re proposing, while not a bad workaround, is not quite the same thing. Thanks–but I think I’ll hang in with the feature request and hope for a more positive response from the Roon team.

Correct, but it is close to what you think you need. Audibly, it may be very similar; have you tried it?

Secondly, if you are after the classic Harman in room response (3dB/Decade 20Hz-20kHz)), it is exactly that; an ‘in room’ measured response. You need to measure the response in room to see what it looks like first, then tweak from there. Your speakers/room may already have the response you need but until you measure it you won’t know how close you are or which parts of the frequency spectrum need adjustment…

Yes, it’s a decent workaround; to be quite honest, I just don’t respond well when someone tells me that what I need is not what I think I need; I can decide that for myself, thanks much. Yes, I’m measuring in-room response. I’m also listening. Thanks.

The filters in Roon’s EQ (like most digital EQ’s) are modeled on classical analog filters. The slopes for these filters are a result of their topology. A first order classical analog low/high pass filter has an inherent 6dB/octave slope. The deeper slopes are achieved by cascading those to make higher-order filters. This is why it is a dropdown with fixed options in 6dB increments and not a continuous slider in Roon.

The easiest answer is to use shelving filters instead, since these are specified differently, and you can make very gentle slopes by adjusting the Q. That is how I would begin if I were trying to figure out a hash curve.

There is some published research on fractional-order filtering approaches, and FIR-based EQ’s can do it too (more computationally expensive, and less common), but this isn’t functionality I’ve seen too often in the wild. Most audio-oriented EQ’s use IIR filters like ours, and have a similar set of restrictions on the behavior of the more “classical” filters. Is there another product you’re used to that gives you this functionality that we could maybe look at and try to understand?

Thanks Brian. I know the math, although I hadn’t thought about it in a long time, but I didn’t think about that difficulty until you mentioned it. I assumed that in this context you could do anything you want.

I haven’t used any other products lately, but a distant memory suggests that the thing to look for is “pinking” filters, which take white noise and make it pink. That’s the right roll-off–3dB/octave–correct?

Here’s something I just stumbled on. I didn’t read it closely.

Yeah, pinking filters need a -3dB rolloff, which is part of why they are so difficult to make out of simple IIR filters, and why people (like on the page you linked) are hunting around for approximations and being extra-clever.

You can see in that page that the approximations they are coming up are a little bit “wavy”, much like any approximation you came up with using other filter types would be.

This shows some promise but it’s a pretty complicated filter design approach (basically, a random search/optimization approach). I’m not clear on how computationally intensive it is (i.e. could we do it while you were moving a continuous slider or would we need to precompute + approximate). Interesting thought, though.