• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

[APP] Equaliser – free, open-source system-wide parametric EQ for macOS (Apple Silicon) – looking for feedback

kriskringle

Member
Joined
Mar 24, 2026
Messages
24
Likes
23
Hi ASR,

I mentioned Equaliser briefly in another thread but wanted to give it its own space here in case it's useful to more people.

I built Equaliser because everything I could find was either too limited (10 bands), too cumbersome to get working on a modern Mac (AUNBandEQ in AU Labs), or a proprietary paid option I didn't want to buy. I wanted something easy to use yet powerful enough for most people — so I built it myself.

Equaliser is free, GPL-3.0, and works system-wide on Apple Silicon (macOS 15+). It intercepts your system audio via a BlackHole-forked virtual driver and processes it through a custom biquad DSP engine on Apple's Accelerate framework. Just shipped v1.3.0:

  • Up to 64 bands of parametric EQ
  • Independent L/R EQ with separate curves per channel
  • REW import — load directly from Room EQ Wizard (Generic equaliser target, one file per channel)
  • Compare Mode — A/B your curve against flat instantly
  • System EQ toggle — bypass processing with one click
  • Real-time level meters to catch distortion
  • Automatic audio routing — follows your macOS selected output device
  • 11 built-in presets, EasyEffects import/export for Linux interop
  • Native light and dark mode
equaliser.knage.net — source at github.com/cvknage/equaliser

Genuinely curious for honest impressions from this crowd. I'm a solo developer so I'd rather hear hard feedback now than discover blind spots later.
 
My first impression.
Nice work and really great to have. Up to now I use Audio Hijack or HLHost for EQ and many other things.
I noticed I cannot send sound to Blackhole any more when Equalizer is running, even when it is not active.
Maybe that cannot be changed but I have to find out whether that is a drawback for me.

Otherwise functionality seems to work fine so far, therefore I have only remarks about the GUI.
- when I open the app window from the menu item the slider goes grey although EQ is active.
EDIT (pic for clarity):
slider2.png


- the ON/OFF in the App window is not prominent enough. It is the same size as meters on/off. Idea: make both buttons way bigger and place them left (under the meters) and right (under the status message)
- the GUI definitely should show the type of filter (including Q) engaged. A PEQ (40Hz) is just too different from a low pass!
- a FR graph (would be nice to have (in particular for stereo to see L and R)

Love it!

EDIT:
- a if the filters do not fit into the window a scroll bar would be nice
- preset names are truncated a bit early, there is plenty of space to show longer preset names (on my screen)
 
Last edited:
My first impression.
Nice work and really great to have. Up to now I use Audio Hijack or HLHost for EQ and many other things.
I noticed I cannot send sound to Blackhole any more when Equalizer is running, even when it is not active.
Maybe that cannot be changed but I have to find out whether that is a drawback for me.

Otherwise functionality seems to work fine so far, therefore I have only remarks about the GUI.
- when I open the app window from the menu item the slider goes grey although EQ is active.
- the ON/OFF in the App window is not prominent enough. It is the same size as meters on/off. Idea: make both buttons way bigger and place them left (under the meters) and right (under the status message)
- the GUI definitely should show the type of filter (including Q) engaged. A PEQ (40Hz) is just too different from a low pass!
- a FR graph (would be nice to have (in particular for stereo to see L and R)

Love it!

Thank you for your feedback, I appreciate it.

when I open the app window from the menu item the slider goes grey although EQ is active.
I am not sure I understand what you mean by this? What slider is it that is going grey for you? (I am either not seeing it on my end or not understanding what you mean)

The driver that Equaliser uses is actually a modified BlackHole 2ch. If you would rather use BlackHole 2ch directly, you can open settings and enable manual device selection, this will allow you to use any virtual driver you like, the catch is you have to match Hz in "Audio Midi Setup" manually.

You can also change the Equaliser driver to "HAL Input" mode in settings, which means the driver works just like BlachHole 2ch, it will allow you to pass the volume through the driver and you can receive it in AU Labs or HostingAU or something like that. This last chaining use case is not thoroughly tested though, so there are most likely gaps in that functionality, but you can try it if you are brave :-D
 
Last edited:
I am not sure I understand what you mean by this? What slider is it that is going grey for you? (I am either not seeing it on my end or not understanding what you mean)
see above (EDIT). It is a minor thing
The driver that Equaliser uses is actually a modified BlackHole 2ch. If you would rather use BlackHole 2ch directly, you can open settings and enable manual device selection, this will allow you to use any virtual driver you like, the catch is you have to match Hz in "Audio Midi Setup" manually.
When I choose Blackhole 2ch (or 16ch) in Settings-Sound it automatically switches back to last ...(Equalizer) output, even when Equalizer is bypassed/not active. I have to quit the app to make a choice.
 
see above (EDIT). It is a minor thing

When I choose Blackhole 2ch (or 16ch) in Settings-Sound it automatically switches back to last ...(Equalizer) output, even when Equalizer is bypassed/not active. I have to quit the app to make a choice.

I’m not seeing the greyed out toggle in the menu bar on my end, will have to investigate.

I see the confusion, I made the bypass so that audio is actually still routed through the Equaliser App, just without applying any EQ. I should probably change it so that the bypass bypasses Equaliser entirely.

Equaliser is meant to automatically pipe your selected macOS output through its own driver when Equaliser is operating in the default automatic mode - it ignores virtual devices.
Equaliser has its own settings view (gear icon top right or cmd+,) there you can put Equaliser in manual mode which will let you control input and output manually, and Equaliser will then not follow your macOS device selection but let you configure as you like.
 
Equaliser is meant to automatically pipe your selected macOS output through its own driver when Equaliser is operating in the default automatic mode - it ignores virtual devices.
I see, but if the (or one) usual output is a virtual one, the automatic is not so automatic any more.

I found the Settings menu in the app (kind of hidden as there is no normal menu of the app in the menu bar).
In manual mode this seems to work but sound routing becomes a little bit complicated. (In Audio Hijack I can "fetch" sound from an app, thereby cutting out the Mac-System Settings, but this can be complicated too).

In automatic mode I find the menu items created on the fly somewhat confusing. And there is a glitch.
When I hit several times very quickly on Blackhole 2ch in Mac-Settings it switches to this output, but in the app the display of routing does not change.

I will use manual mode. It works, I have control and after a few minutes everything is clear and logical.
 
I see, but if the (or one) usual output is a virtual one, the automatic is not so automatic any more.

I found the Settings menu in the app (kind of hidden as there is no normal menu of the app in the menu bar).
In manual mode this seems to work but sound routing becomes a little bit complicated. (In Audio Hijack I can "fetch" sound from an app, thereby cutting out the Mac-System Settings, but this can be complicated too).

In automatic mode I find the menu items created on the fly somewhat confusing. And there is a glitch.
When I hit several times very quickly on Blackhole 2ch in Mac-Settings it switches to this output, but in the app the display of routing does not change.

I will use manual mode. It works, I have control and after a few minutes everything is clear and logical.

Thank you for the honest feedback, this is great :-)

I want to add the option to select individual app audio in the future, but it's somewhat complicated to implement - so I don't know when I will get to it.
Good findings with the bugs you discovered.
May I ask, what is it with the automatic mode that you find somewhat confusing (except for the bugs you found)? Just to be sure I understand correctly.

I will be without my Mac the next few days, so I'll be replying from my phone (hard to format text nicely)..
 
May I ask, what is it with the automatic mode that you find somewhat confusing (except for the bugs you found)? Just to be sure I understand correctly.
The automatic and the fact that the app is rather hidden (no menu, not in App switcher, not in Dock) seems to aim at working invisibly in the background. Normally, choosing sound outputs in System Settings is transparent in respect to virtual outputs. Now this is broken from something nearly invisible and there is no warning or message. At the same time choosing a real output has some magic going on, when a new (rerouted) output pops up and is highlighted. One has to get used to that. "Automagic" can be great, but it is really hard to get right.
As I said, other solutions (Audio Hijack) are complicated too, but at least they operate more in the open.

For me it is much more logical to choose "Equaliser" as output in System Settings or from the Sound Menu bar itemn (manual mode) and then to define in the app where the sound is supposed to go. For that is would be great to have Equaliser show up in the App Switcher and in the Dock.
It would be perfect for me to have preset and routing in the drop down from the menu bar item of the app.

Now, when I run Equalizer in manual mode the app becomes even less accessible, the item in the Mac menu bar changes and the options in the drop down disappear! Deactivating or choosing the active preset is even more cumbersome than in automatic mode. For quitting it seems like I have to switch to automatic first, then quit from the drop down menu???

And yet another glitch. When I click on a filter to numerically enter the frequency, no matter which number key I press, always "20" is entered. And when I do this for gain, the app adds a ".0" to my input. (Same for Gain in and Gain out.)

EDIT: And lastly I have two feature requests.
First, the essential one: Can you provide the option to delete or at least hide the built-in presets, please?
And second, another nice to have: A loudness function (Fletcher Munson) coupled to the output level would be great.
 
Last edited:
The automatic and the fact that the app is rather hidden (no menu, not in App switcher, not in Dock) seems to aim at working invisibly in the background. Normally, choosing sound outputs in System Settings is transparent in respect to virtual outputs. Now this is broken from something nearly invisible and there is no warning or message. At the same time choosing a real output has some magic going on, when a new (rerouted) output pops up and is highlighted. One has to get used to that. "Automagic" can be great, but it is really hard to get right.
As I said, other solutions (Audio Hijack) are complicated too, but at least they operate more in the open.

For me it is much more logical to choose "Equaliser" as output in System Settings or from the Sound Menu bar itemn (manual mode) and then to define in the app where the sound is supposed to go. For that is would be great to have Equaliser show up in the App Switcher and in the Dock.
It would be perfect for me to have preset and routing in the drop down from the menu bar item of the app.

Now, when I run Equalizer in manual mode the app becomes even less accessible, the item in the Mac menu bar changes and the options in the drop down disappear! Deactivating or choosing the active preset is even more cumbersome than in automatic mode. For quitting it seems like I have to switch to automatic first, then quit from the drop down menu???

And yet another glitch. When I click on a filter to numerically enter the frequency, no matter which number key I press, always "20" is entered. And when I do this for gain, the app adds a ".0" to my input. (Same for Gain in and Gain out.)

EDIT: And lastly I have two feature requests.
First, the essential one: Can you provide the option to delete or at least hide the built-in presets, please?
And second, another nice to have: A loudness function (Fletcher Munson) coupled to the output level would be great.

Thank you very much for taking the time to write all this feedback, very much appreciated.

The manual mode behaviour you are seeing is definitely a bug I failed to catch.. The menu bar item should be just like in automatic mode, but with the added option to manually select the output too.

Presets is supposed to always be available from the menu bar, and in manual mode you should be able to select the output from there too. My assumption was that it was less likely that one wanted to change the input, so I did not put that in the menu bar.

Automatic mode behaviour is by design (except for the bugs you found) but I can see your point in how it can be confusing. I could potentially add a screen on first launch giving you the automatic vs manual choice up front.
I will think about how to improve on the clarity here, as automatic mode will stay.

Regarding the glitchy inputs, that is rather embarrassing, I wanted to add some basic keyboard navigation to the app, changing values with up/down arrow keys, it was getting late and I forgot to test the just entering a number… sorry..

You should be able to delete the supplied presets, just select them and from the small drop down menu, delete them.

The Loudness preset is the Fletcher Munson curve, but I guess you want to add it on top of another curve you already have?
I am planning to in the future implement the functionality where one can stack curves (presets) on top of each other, like for example one for headphone balance, then one for specific genre, then Loudness. Picking any order one wants.

Thanks again for taking the time.
Nothing will happen this week as I don’t have access to my Mac, but I will definitely start by fixing the bugs you identified.
 
Last edited:
Hi ASR,

I mentioned Equaliser briefly in another thread but wanted to give it its own space here in case it's useful to more people.

I built Equaliser because everything I could find was either too limited (10 bands), too cumbersome to get working on a modern Mac (AUNBandEQ in AU Labs), or a proprietary paid option I didn't want to buy. I wanted something easy to use yet powerful enough for most people — so I built it myself.

Equaliser is free, GPL-3.0, and works system-wide on Apple Silicon (macOS 15+). It intercepts your system audio via a BlackHole-forked virtual driver and processes it through a custom biquad DSP engine on Apple's Accelerate framework. Just shipped v1.3.0:

  • Up to 64 bands of parametric EQ
  • Independent L/R EQ with separate curves per channel
  • REW import — load directly from Room EQ Wizard (Generic equaliser target, one file per channel)
  • Compare Mode — A/B your curve against flat instantly
  • System EQ toggle — bypass processing with one click
  • Real-time level meters to catch distortion
  • Automatic audio routing — follows your macOS selected output device
  • 11 built-in presets, EasyEffects import/export for Linux interop
  • Native light and dark mode
equaliser.knage.net — source at github.com/cvknage/equaliser

Genuinely curious for honest impressions from this crowd. I'm a solo developer so I'd rather hear hard feedback now than discover blind spots later.
I might have to spam share it everywhere to get people to try
 
Automatic mode behaviour is by design (except for the bugs you found) but I can see your point in how it can be confusing. I could potentially add a screen on first launch giving you the automatic vs manual choice up front.
Good idea!
I will think about how to improve on the clarity here, as automatic mode will stay.
For many people, automatic will be the preferred choice, I am sure.
My assumption was that it was less likely that one wanted to change the input, so I did not put that in the menu bar.
I agree, but in manual mode, it is about control. And as the input can be switched, it should at least be shown. And then, why not make it a choice too, this would be more logical also from a GUI standpoint.
You should be able to delete the supplied presets, just select them and from the small drop down menu, delete them.
I see. They only catched my eye in the drop down and there I did not think of the possibility for manually deleting them.
The Loudness preset is the Fletcher Munson curve, but I guess you want to add it on top of another curve you already have?
Yes, but aside from not seeing what it really does, this is probably a fixed curve that can only work for a fixed level (relative to a flat curve which is not the correct reference).
A loudness compensations would have to take the output level as an input (relative to a reference) and then adjust the FR accordingly.
So some kind of calibration option is mandatory.
You see, it is a bit more complicated (different outputs will have different output levels and need individual calibration), therefore my classification as "nice to have".

This is how @Weeb Labs implemented it in DSPi Console for Pico 2. You see, the compensations curve looks different to Fletcher Munson.
1770266191651.png

We also have granular control over the loudness compensated volume control. It can be toggled on or off, the listening level can be set and the intensity of the effect can be increased or attenuated to taste. This function is driven by the host's volume control for the USB audio device.
 
Last edited:
Can I take that as an indication that you like Equaliser?
oh I do not use MacOS so I am sending it to friends who do and will get their feedback to post here
 
I've been using Vizzdom Analyzer with EQ
macOS (ver. 1.38)
which has been both the most stable and the most resource efficient.
Physical footprint (peak): 77.1M
vs
Equalizer 1.3.0
Physical footprint (peak): 374.9M

But Equalizer is nicer on my eyes.

Does anyone have a correction file for a MBP 14"?
 
I've been using SoundSource > Toneboosters Equalizer 4 and I've been very happy but keeping eyes open to alternatives and this is a great effort! Keep it up!
I think there are a few things you might want to consider to polish the UX flow.
  • Open Equalizer directly from the menu bar and move these:
    Screenshot 2026-04-04 at 7.59.01.png

    either here:
    Screenshot 2026-04-04 at 7.59.50.png

    or behind a right click..

  • Same for this band-specific menu (move the values and filter types to the main window):
    Screenshot 2026-04-04 at 8.02.33.png
In my opinion, some of the key features require unnecessary clicks / menu diving.

You might also implement these as persistent "Basic" and "Advanced" modes in app preferences for example.

But good work anyways!
 
I've been using Vizzdom Analyzer with EQ
macOS (ver. 1.38)
which has been both the most stable and the most resource efficient.
Physical footprint (peak): 77.1M
vs
Equalizer 1.3.0
Physical footprint (peak): 374.9M

But Equalizer is nicer on my eyes.

Does anyone have a correction file for a MBP 14"?

Ouch.. that peak is rather high.. I was around 44M in a steady state and peaks of 53 in my own testing..
The meters are using some resources, can you try to disable the meters and see what you get? Also SwiftUI can sometimes peak a little high when one is interacting with the UI, but what you are seeing seems too high, I agree.

Thanks for taking the time to try it out.
 
Last edited:
I've been using SoundSource > Toneboosters Equalizer 4 and I've been very happy but keeping eyes open to alternatives and this is a great effort! Keep it up!
I think there are a few things you might want to consider to polish the UX flow.
In my opinion, some of the key features require unnecessary clicks / menu diving.

You might also implement these as persistent "Basic" and "Advanced" modes in app preferences for example.

But good work anyways!

Thanks for trying it out.

All good points. I will keep an open mind to whether I can place some values more directly in the main UI, but to be honest I kinda like the UI more or less as it is.

Edit:
Hmm, maybe the option to make the gain sliders display as a vertical list, with one band per row, that could be nice.
well, maybe if I ever get to it.

I appreciate the feedback regardless of whether I will change something or not - it makes me think.
 
Last edited:
I appreciate the feedback regardless of whether I will change something or not - it makes me think.
Absolutely. My feedback alone shouldn't dictate your design decisions.
Just saying that if you want to put effort into it and make the design more "universally accessible", a design survey might also be useful. I use AI to help prepare design surveys and -research occasionally and it's a really good tool for that.
 
Last edited:
Back
Top Bottom