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

Plugin with equal loudness volume control

Opinions on filter behavior for the inverse response of for example ISO 226?

Since it cuts pretty dramatically in the low-end, the inverse would technically be a very significant boost (~+60 dB), which seems impractical. It also introduces dramatic ringing artifacts which send the filter way out of tolerances. For now, I've set a soft limit of 12 dB and hard limit of 18 dB for any given point on the contour. After hitting the soft limit, the gain is proportionally reduced and saturates at 18 dB. The result is looking quite good, the contour shape is retained but it stays within sane gain and hits all tolerances with relatively low FIR tap counts for all sample rates.
 
@mitchco demonstrates how to use TDRNova (free) as a simple dynamic loudness. It works pretty well, depending on how you set it up but you'd have to engage/bypass in your DAW for listening at 50dB vs 80dB so not fully integrated into "on the fly" volume control/processing. I use his HLC and find it and the host an invaluable tool with lots of flexibility beyond signal routing. I used to use MCFX but it became unstable after an OS update, HLC is rock solid - though for us who still cobble together our stuff without fancy apps writing config files is always a fun chore.

 
Opinions on filter behavior for the inverse response of for example ISO 226?

Since it cuts pretty dramatically in the low-end, the inverse would technically be a very significant boost (~+60 dB), which seems impractical. It also introduces dramatic ringing artifacts which send the filter way out of tolerances. For now, I've set a soft limit of 12 dB and hard limit of 18 dB for any given point on the contour. After hitting the soft limit, the gain is proportionally reduced and saturates at 18 dB. The result is looking quite good, the contour shape is retained but it stays within sane gain and hits all tolerances with relatively low FIR tap counts for all sample rates.
Realistically, with the reference level typically between 77 and 83 dB SPL, I believe having a compensation range of -30 / +15 is sufficient. Besides we are at levels at which listening comfort, however accurately compensated, is questionable ...
 

Version 5 introduces a completely new engine under the hood, built around phon-accurate loudness contour modeling. Instead of using approximations or static curves, Smile now calculates and adjusts the EQ response using a perceptual model based on actual phon levels, starting from a baseline of 80 phon.

You can shift the target between 72–88 phon. The result is a tonal shift that feels natural — not because it’s subtle, but because it aligns with how your ears actually work.

I tried using the Demo, but EqAPO cannot read VST3 and none of my other tools find the VST either. e: Audacity works.
 
Last edited:
ApoLoudness v0.3.1 Released: Equal Loudness Contour-Based Volume Control
I've released ApoLoudness v0.3.1, an open-source tool that maintains consistent tone balance across different listening levels by applying equal loudness contour compensation through Equalizer APO, enabling genuine critical listening at hearing-safe 50-60 dB levels while preserving the full sound character that typically requires 75-80 dB exposure. The new version introduces Auto Offset mode for intelligent volume adjustment and a calibration system using smartphone SPL meters to map theoretical calculations to your actual listening environment. Available free under GPLv3 license - would love feedback from the ASR community
ApoLoudnessCalibration_ZRrI9T0NrQ.png
 
RootlessJamesLoudness: System-wide Equal Loudness Compensation for Android
I've developed RootlessJamesLoudness, an open-source Android implementation that brings Fletcher-Munson equal loudness contour compensation to non-rooted devices. Building on the JamesDSP audio engine, it addresses the psychoacoustic challenge where perceived frequency balance changes with SPL - specifically how bass and treble response appears attenuated at lower listening levels compared to the midrange.
The system applies ISO 226:2003 equal loudness contours through real-time DSP processing, enabling critical listening at hearing-safe 60-70 dB levels while maintaining the spectral balance typically perceived at reference 80+ dB levels. This compensates for the ear's non-linear frequency sensitivity, particularly the reduced low-frequency response at moderate volumes.
Key features include automatic loudness compensation curves, system-wide processing without root access. The implementation uses established psychoacoustic principles to maintain consistent tonal balance across volume levels. Available under GPLv3 - interested in ASR community feedback on the psychoacoustic modeling and measurement validation approaches. https://github.com/grisys83/RootlessJamesLoudness
Screenshot_20250607-132522_RootlessJamesDSP.png
Screenshot_20250607-202800_RootlessJamesDSP.png
 
Last edited:
View attachment 465463

Just released a plug-in which is custom made for this purpose. Supports ISO 226:2023, ISO 226:2003, and Fletcher-Munson.

https://apu.software/truegain/
First, thank you very much for the effort into this. Loudness compensation is a sorely overlooked aspect of audio reproduction.

Second, can you please clarify what the difference is between True Gain and Loudness Countour and which (if either) would be appropriate for an end consumer that wishes to apply a loudness compensation curve that automatically scales with volume?
 
First, thank you very much for the effort into this. Loudness compensation is a sorely overlooked aspect of audio reproduction.

Second, can you please clarify what the difference is between True Gain and Loudness Countour and which (if either) would be appropriate for an end consumer that wishes to apply a loudness compensation curve that automatically scales with volume?

TrueGain
  • Applies the delta between Phon levels of ISO 226 or Fletcher-Munson
  • Specifically designed for loudness-compensated gain control
Contour
  • Applies loudness contours directly (not deltas)
  • Supports more contours (includes those which don't have Phon-dependence)
  • Designed more for tone shaping / sidechain eq
It's a bit confusing, but I think it would probably be even more confusing had I combined them lol.
 
Just swinging by to say that I really appreciate the latest contributions to this thread. One of these solutions is bound to work in my EQAPO setup.
 
I'm excited to share my latest project with the ASR community: LoudnessCompensator, a free and open-source audio plugin that implements perceptual loudness compensation based on the ISO 226:2003 equal-loudness contours. Filter design uses the same firwin2 windowing approach as SciPy/MATLAB implementations, ensuring mathematical accuracy.
View attachment 466283
The LICENSE file mentioned in README.md is missing. Is MIT compatible with JUCE which seems to be either proprietary (paid) or AGPLv3?
https://juce.com/get-juce/
https://github.com/juce-framework/JUCE/blob/master/LICENSE.md
Are you likely to add a linux build target?
 
Sadly, Steinberg doesn't approve commercial licenses anymore for VST2 (for new companies, some old ones may still have a valid license).

It's too bad because the plug-in builds for VST2 just fine, it's just not allowed :(
 
Back
Top Bottom