Best approach for creating an equalizer?

Hello,

I’m making an equalizer for my thesis project and I was wondering what type of filtering is best for a real time EQ? I followed how Daniel made the Frequalizer, but from what I understand that plugin uses 6 IIR filters and that’s fine, but not ideal, I have been told. I am also looking at the fabfilter equalizer and it has an unlimited amount of filters you can add to it which I guess is pretty cool.
If there are some example project or built plugins code I would be interested to see them even if they do the same thing.

Thanks

I am by no means an expert in EQing, but as an additional resource I recently found this EQ:

https://webaudio.github.io/Audio-EQ-Cookbook/audio-eq-cookbook.html

It can be implemented as a Biquad filter, but it is IIR as well. Why do you want to avoid IIR? Are you worried about the phase?

You can find an implementation in the devel branch of my Odin2 synthesizer:

BiquadEQ:

And the baseclass BiquadFilter:

I’m not really avoiding the IIR. Just asking around to see best practices and if I could find an equally easy to implementation on the filters and potentially better ones.
FabFilter is like my ideal and I was also wondering how they did it.

Thanks for the input I’ll definitely check the resource for my final documentation and follow the code along to better understand it.

When you are searching for a better filter you should maybe start in which ways the filter you are looking for should actually be better? Computational overhead? Latency? More linear phase? Higher filter orders?

I’m by far no filter expert (I have the luck to work in a team with some of them) but what I can definitely say is that filters are always better in one dimension and worse in some other dimension at the same time. You mentioned FabFilter two times, so what exactly do you like about that EQ that makes it superior to you?

Like others pointed out, there isn’t “the best approach”.

For an equalizer or actually for any plugin project there are certain domains:

  • UX: how is it used? how is information presented?
    I was amazed when I first time worked with bx_digital where you audition an individual filter when auditioning. I guess many EQs have that nowadays

  • Sound quality: What filters are used? Is it phase linear? Any specific filter curve others don’t have?
    E.g. most older EQs don’t have the “tilt filter” (if that is an official term, not an EQ expert)

  • Scalability: How many filters does it offer? Are you overwhelmed with too many filters?

  • Presets: Does it offer presets? Are they sounding any good out of the box? Are they well named so the user knows instantly which to choose from?

  • Personal touch: Is it a specific design? Does it appeal to certain users? Anything else that distinguishes from others

  • Dynamic Equalizer?

  • Any other power feature: Measure attenuation and auto-compensate? AI? Or whatever helper…

So it is really a question on what to focus and find trade-offs.

TL;DR: Start implementing whatever comes to mind, play with it and see if there are things you want to improve. An EQ is a good starting project and you can learn a lot.

If you are looking for a project to live from, I guess it would be hard to come up with an EQ that stands out nowadays.

@daniel I’ll keep looking into it, take deep dives into available examples.
I’m not trying to earn any money from it, it’s just for my project and to get accustomed to C++; potentially to help me develop for this path.
I’m quite the beginner, I don’t have the luxury to be super picky about how I implement most stuff.

I like about fabFilter that I don’t even notice there’s a compromise in an area. It seems a very good all rounder I guess.

  • there is no visual delay on the analyzer(very smooth) like, for example, ozone dynamic EQ.
  • the interface is very well done, the visuals of it are also very smooth
  • as far as I can tell there’s no issue with any of their filtering
    I guess it’s just the best I’ve seen

If you’re looking for more examples of EQs to study, you can check this one out for free, including the source code here:
https://www.programmingformusicians.com/simpleeq/

Awesome. I’ll definitely look through it.
Thanks!