• 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!

A new EQ tool for sound correction based on equal-loudness contours

Quick Waipa

Member
Joined
Sep 17, 2025
Messages
8
Likes
13
I’d like to introduce a free tool I developed for more natural and musical sound correction of PC audio.
It’s based on my own approach that incorporates equal-loudness contours, and it has the following key features:
  • Blends a flat target response with curves derived from equal-loudness contours, aiming for a more musically satisfying correction
  • Maintains clarity and forwardness even at 100% correction (doesn’t sound muddy or recessed)
  • Can be applied system-wide on PC through software such as Equalizer APO

Here’s the project page with the GitHub download, theoretical background, and usage guides:
SONUS CORRECT

I’d greatly appreciate any feedback from this community—measurements, listening impressions, or suggestions for improvement are all very welcome.
 
I admire the substantial effort taken as I'm interested in the topic. However, I found I had to dig fairly deep through the GIT to get an overview of how to hook this into a DSP chain?

Perhaps a short How-To (in English) would be worthwhile? (sorry if I missed it)
 
I admire the substantial effort taken as I'm interested in the topic. However, I found I had to dig fairly deep through the GIT to get an overview of how to hook this into a DSP chain?

Perhaps a short How-To (in English) would be worthwhile? (sorry if I missed it)
I agree, I’m mainly interested in headphone use and it is more difficult to ~properly~ measure these so I would hope to use online-sourced frequency response data. I’ll have to see how feasible it is to import these to REW (lacking polarity information).

That being said, there was a more accessible english guide linked on the site https://note.com/waipa/n/n66fa3f48836a
 
I admire the substantial effort taken as I'm interested in the topic. However, I found I had to dig fairly deep through the GIT to get an overview of how to hook this into a DSP chain?

Perhaps a short How-To (in English) would be worthwhile? (sorry if I missed it)
Thank you very much for your constructive feedback.
I want to create a clearer “User Guide” and articles for English-speaking readers so that more people can try this tool.
 
I bump this, sounds interesting.
Can you give us your subjective listening impressions using the software @Quick Waipa ? Maybe a comparison with traditional room EQ?
 
I bump this, sounds interesting.
Can you give us your subjective listening impressions using the software @Quick Waipa ? Maybe a comparison with traditional room EQ?
Thank you for your comment.
In terms of auditory impression, compared to conventional room EQ using simple flat targets,
・The sound projects forward more
・It sounds clearer
・It sounds more musical
These are the impressions.

In other words, the flat target used in conventional room correction tends to emphasize the midrange and suppress the presence range relative to the typical listener's listening environment. This often results in a “muddy, recessed, accurate but dull” impression. However, the room correction tool I developed can theoretically create a target curve that closely approximates the typical listener's environment. As a result, the soundstage becomes more appealing and musical, even with room correction applied.
Furthermore, the degree to which the listening environment is aligned with that of a typical listener can be freely adjusted without relaxing the correction.
 
1762584354967.png

When I tried generating the files, it showed this on the command console and stopped.
What should I do @Quick Waipa ?
I'm using Windows 10 and Python 3.14.
 
Thank you for trying out the tool!
There may be an issue with the format of your input data (FR data in CSV format). Please verify that it follows the format below:
・No headers or additional columns
・Input data contains only frequency and gain (any extra data like phase will cause errors)
Example:
100, -3
200, -2
300, -1

Example causing an error:
100, -3, 1
200, -2, 2
300, -1, 3

We apologize for the inconvenience caused by the restrictive input format of this homemade tool. Please feel free to ask any questions if you continue to encounter issues.
 
Programmatically, isn't it possible to skip lines where field-cnt is not N, where N=2?
 
・No headers or additional columns
・Input data contains only frequency and gain (any extra data like phase will cause errors)
This worked! REW added text info into the output files. Deleted everything except the numbers, and the issue is gone.
Time to setup and do a listening test :)
 
I have a question about the preamp gains. There are 2 preamp modules in your example config.txt.
One of the modules is meant for "fri_diff" and corrects EQ imbalance. I get that.
The other one makes me scratch my head a bit. Your guide says it's for "Calculating the Ratio of EQ Data Between Artificial Flat Target and Natural Flat Target".
I set them up accordingly, and Equalizer APO shows there's clipping. Should I worry about that?
1762597735322.png
 
I have a question about the preamp gains. There are 2 preamp modules in your example config.txt.
One of the modules is meant for "fri_diff" and corrects EQ imbalance. I get that.
The other one makes me scratch my head a bit. Your guide says it's for "Calculating the Ratio of EQ Data Between Artificial Flat Target and Natural Flat Target".
I set them up accordingly, and Equalizer APO shows there's clipping. Should I worry about that?
View attachment 488904

I'm glad to hear things are going well!
Due to the correction, peaks may occasionally exceed 0dB in certain frequency bands. While this shouldn't cause any issues, if it bothers you, try lowering the overall gain on the preamp so it doesn't exceed 0dB.
 
Tried reading the documentation but I couldn't make much out of it.
Equal loudness concept is familiar to me but I've always read about it in the field of achieving similar tonal balance at different volume levels.

Is this what your program is trying to achieve? Because reading about it didn't give me this impression. Pardon me for the naive question, surely stemming from my ignorance.
 
Tried reading the documentation but I couldn't make much out of it.
Equal loudness concept is familiar to me but I've always read about it in the field of achieving similar tonal balance at different volume levels.

Is this what your program is trying to achieve? Because reading about it didn't give me this impression. Pardon me for the naive question, surely stemming from my ignorance.
Thank you for your question.
As you pointed out, I understand that the concept of the equal loudness contour is frequently used in scenarios involving loudness level adjustment, including the establishment of loudness normalization standards.

My tool does not utilize the equal loudness contour in that manner; instead, it employs it for generating target curves in room correction.
Simply put, by setting the EQ to a target curve that follows the equal loudness contour (which I call the natural flat target), it sounds biologically natural and flat across all frequency ranges to the human ear. This alone can make the sound slightly too sharp. However, by skillfully blending this with a conventional target curve mechanically set flat across all frequencies (which I call the artificial flat target), my tool's core theory enables theoretically “pleasing to the ear” room correction without relying solely on engineering intuition.

My guess is that this room correction sounds better than conventional artificial flat targets because in studios, adjustments closer to a natural flat target are made based on engineering judgment to match the listener's listening environment. In fact, most songs flooding the market today have a slope that follows the equal loudness contour.

If you have any other questions, feel free to ask.
 
Subjective Impressions
For context: I have a setup consisting of Polk T50 floorstanding speakers powered by an Aiyima A07 TPA3255 amplifier. The source is my laptop with Jcally JM20 Max CS43131 USB DAC. The listening room is around 4.3m long, 3.6m wide and 3.25m high. Speakers are placed about 30cm from the front wall. Listening distance is ~160cm.

Previously, for room correction under 1KHz, I use REW with popular room curves like Harman, Toole, etc..., which did the job but I could tell something's amiss. It's like somebody threw a drape over the singers and instruments, even though the room mode boominess around 200-500Hz is already dealt with. I then decided to try out SONUS CORRECT for FR correction in the hopes of better SQ.

For the starting measurements, I take seperate MMM measurements around my LP. Why MMM? Because 9-point measurements are too tedious IMO. I also enable Spinorama-based EQ filters for my speakers while measuring to prevent SONUS from over-correcting (the Polk T50 has an inherent resonance at 1KHz and crossover dip around 2-3KHz). These measurements are var-smoothed in REW for processing by SONUS, which is instantaneous.

Because there're suprisingly large boosts in the 2KHz to 8-9KHz region, I had to set the overall preamp to -9db to prevent digital clipping. Lack of headroom is not a problem thanks to my USB DAC's strong output.

After setting up in EAPO with a ratio of artificial flat/natural flat EQ of 40/60, listening tests with my regular playlist begin. From the outset, there's a strong, positive change to the sound. The aforementioned veil is gone. Every part of the sound, soundstage, instruments, comes to life. The sense of singer(s) standing in front of you is restored. Sharp, clear, very headphone-like in a way. What's even more surprising is there's no harshness. The sound signature is, overall, balanced. Such heavy EQ should've made my ears bleed, but by blending 2 types of EQ, they kind of balance each other out and give me good sound? Another improvement is in low-level listening. Turning down the volume still gives me a very satisfying experience, whereas before I need to listen at high volumes constantly to enjoy music.

Despite this, there're still things I want to make clear. Turning the SONUS config on and off, there's a faint brightness and "flashiness" to the sound, maybe due to my rather high low-cut frequency of 8KHz for natural flat EQ. I still also need to perform A/B testing with conventional Harman curve EQing to definitively say which EQ method is superior. Regardless, SONUS is an integral part of my listening setup now. I've left the settings that worked for me so far in the attached image.

TL;DR: SONUS is great, you should try it out and see if it works for you in lieu of normal room curve-based methods.

Fin
 

Attachments

  • 1764265295176.png
    1764265295176.png
    46.4 KB · Views: 54
Last edited:
I forgot to mention this but I have a bug report @Quick Waipa
If I leave the "EQ data file. yml" textbox empty instead of "eq_R.yml" as default, the program will not process and states that it can't access the source folder. I found out when I delete that textbox to stop creating a yml file in the destination folder
 
Subjective Impressions
For context: I have a setup consisting of Polk T50 floorstanding speakers powered by an Aiyima A07 TPA3255 amplifier. The source is my laptop with Jcally JM20 Max CS43131 USB DAC. The listening room is around 4.3m long, 3.6m wide and 3.25m high. Speakers are placed about 30cm from the front wall. Listening distance is ~160cm.

Previously, for room correction under 1KHz, I use REW with popular room curves like Harman, Toole, etc..., which did the job but I could tell something's amiss. It's like somebody threw a drape over the singers and instruments, even though the room mode boominess around 200-500Hz is already dealt with. I then decided to try out SONUS CORRECT for FR correction in the hopes of better SQ.

For the starting measurements, I take seperate MMM measurements around my LP. Why MMM? Because 9-point measurements are too tedious IMO. I also enable Spinorama-based EQ filters for my speakers while measuring to prevent SONUS from over-correcting (the Polk T50 has an inherent resonance at 1KHz and crossover dip around 2-3KHz). These measurements are var-smoothed in REW for processing by SONUS, which is instantaneous.

Because there're suprisingly large boosts in the 2KHz to 8-9KHz region, I had to set the overall preamp to -9db to prevent digital clipping. Lack of headroom is not a problem thanks to my USB DAC's strong output.

After setting up in EAPO with a ratio of artificial flat/natural flat EQ of 40/60, listening tests with my regular playlist begin. From the outset, there's a strong, positive change to the sound. The aforementioned veil is gone. Every part of the sound, soundstage, instruments, comes to life. The sense of singer(s) standing in front of you is restored. Sharp, clear, very headphone-like in a way. What's even more surprising is there's no harshness. The sound signature is, overall, balanced. Such heavy EQ should've made my ears bleed, but by blending 2 types of EQ, they kind of balance each other out and give me good sound? Another improvement is in low-level listening. Turning down the volume still gives me a very satisfying experience, whereas before I need to listen at high volumes constantly to enjoy music.

Despite this, there're still things I want to make clear. Turning the SONUS config on and off, there's a faint brightness and "flashiness" to the sound, maybe due to my rather high low-cut frequency of 8KHz for natural flat EQ. I still also need to perform A/B testing with conventional Harman curve EQing to definitively say which EQ method is superior. Regardless, SONUS is an integral part of my listening setup now. I've left the settings that worked for me so far in the attached image.

TL;DR: SONUS is great, you should try it out and see if it works for you in lieu of normal room curve-based methods.

Fin
Thank you for the detailed report. Until now, I had only tried SONUS CORRECT in my own environment, so it's a big step forward to learn that good results can be achieved in other people's listening environments as well.
The reason it doesn't sound harsh despite extreme EQ is that it boosts the parts that are difficult to hear due to human auditory characteristics on the equal loudness curve.
If possible, I would be honored if you could also review it in comparison with the Harman curve and others.
Thank you for trying SONUS CORRECT. I hope more people will try this tool.
 
Back
Top Bottom