Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: ISO 226:2003 based loudness correction (Read 20358 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

ISO 226:2003 based loudness correction

Low volume music sounds very thin in my living room, while being great at mid to high levels. That comes at no surprise and doesn't need further discussion when you note that the curves vary with sound pressure.

Is there any plugin which would apply the difference curve between a chosen reference sound level, for example the 40 phon curve (plus 40 dB) minus the 80 phon curve?

I know, all this is not perfect for music, since equal loudness contours are derived from stationary signals. Still, I expect the result to be better than just doing nothing and have drowned lows and mid-highs.

PS Or has anyone got the raw data, so that I could calculate EQ presets myself?

ISO 226:2003 based loudness correction

Reply #1
We used to call this sort of compensation "Loudness" and it was found on most receivers. It looks like that term has been occulted by "Loudness war" and the like and it is not so common on equipment anymore. Just dial up the bass a little when you lower the volume and you should be good.

ISO 226:2003 based loudness correction

Reply #2
We used to call this sort of compensation "Loudness" and it was found on most receivers. It looks like that term has been occulted by "Loudness war" and the like and it is not so common on equipment anymore. Just dial up the bass a little when you lower the volume and you should be good.


IME loudness contours were victims of the high end's obsession with avoiding equalization.

ISO 226:2003 based loudness correction

Reply #3
PS Or has anyone got the raw data, so that I could calculate EQ presets myself?

http://www.mathworks.com/matlabcentral/fileexchange/7028

Plug-in for which software? Foobar? In any case, I don't know of any such plug-in, but it sounds like a nice project to do

Chris
If I don't reply to your reply, it means I agree with you.


ISO 226:2003 based loudness correction

Reply #5
PS Or has anyone got the raw data, so that I could calculate EQ presets myself?

http://www.mathworks.com/matlabcentral/fileexchange/7028

Plug-in for which software? Foobar? In any case, I don't know of any such plug-in, but it sounds like a nice project to do

Chris


That's really great, thanks! I have never used Matlab before. I am installing it right now and will give it a try. Maybe I can modify the function to output the difference between two given phon levels. My plan for now, as there does not seem to be any Foobar plugin for this, yet, is to create 2 or 3 presets with a parametric equalizer and then create convolution files for Foobar. Anything further would cost too much time, that I don't have right now.


What do you guys think would be the best reference curve? What's a typical SPL of a rather loud but still comfortable listening session?

ISO 226:2003 based loudness correction

Reply #6
Surely it wouldn't be too hard to have two audio streams, one 'dry' and one EQed with the severest curve from the Fletcher-Munson curve set. Adjust the gain of the EQed version with a floating inverted average level detector with appropriately tweaked attack and decay times and use that to control the amount of EQed audio added to the 'dry' audio for auto-loudness?

So, at your highest reference signal level, all you get is the 'dry' audio. As the average signal level from the source drops, more of the EQed version is progressively added to the 'dry' audio. It wouldn't be exactly precise, but I'd expect it to be a fairly close approximation of what should be happening for equal loudness across a fairly wide volume range.

Although, when you consider that, back in the good old days, loudness controls were implemented with enough accuracy to make them worthwhile by just adding a couple of RC networks for each channel around the volume pot, I'm not convinced that a particularly high level of precison is required in practice.

Note that I speak from the POV of an electronics design engineer, not a software engineer, so what I could probably achieve (after a fashion) at a prototype level in a few days in analogue hardware may be a completely different kettle of fish in software.

ISO 226:2003 based loudness correction

Reply #7
Maybe I'm misreading the original post, but I thought he was referring to the change in perceived bass when he turns his volume control up and down, not when the musical piece gets louder and softer?

 

ISO 226:2003 based loudness correction

Reply #8
Matlab is great! I have uploaded my first results [a href='index.php?showtopic=83607']here[/a]. Reference level was 90 phon. The resulting plots are based on the function iso226(difference) - iso226(90). I was quite impressed about the range of values. A 30dB loudness correction seems to imply EQing of over 16dB for some frequencies. Can that be correct?

PS Thank you, pdq, yes.

ISO 226:2003 based loudness correction

Reply #9
A 30dB loudness correction seems to imply EQing of over 16dB for some frequencies. Can that be correct?

Not sure. After some tuning by ear, I found that about 10 dB of low-frequency EQing sounds best for 30-40 dB loudness correction.

[Edit: Just noticed that I misread the plots (log-linear thing). At 100 Hz, both of our filters boost by about 7-10 dB for 30 dB loudness correction. So the results seem quite close to each other.]

I just managed to design a simple 5th-order parametric IIR correction filter. See the corresponding upload thread. This should work fine as a static loudness correction filter, i.e. one coupled to the volume knob, as pdq described above.

PM me if you're interested in further details.

Chris

P.S.: Yes, Matlab is great
If I don't reply to your reply, it means I agree with you.

ISO 226:2003 based loudness correction

Reply #10
Next I'll try to replicate the curves exactly in iZotope Ozone and then upload the resulting convolution files for general Foobar use. I probably won't find the time to do that before the middle of the week. We'll see.

I think a perceptual, digital volume control would be a great product! One would dial in once at which sound pressure levels a set of speakers appears to have the flattest frequency response. All volume changes would then just be EQing of the sort iso226(attenuation) - iso226(reference) for the frequency range covered by the standard and just flat attenuation for the rest.

ISO 226:2003 based loudness correction

Reply #11
Maybe I'm misreading the original post, but I thought he was referring to the change in perceived bass when he turns his volume control up and down, not when the musical piece gets louder and softer?

Yes. The original proposal should work fine if all source material has ReplayGain applied before loudness correction.

If it doesn't then you get less loudness correction on quiet tracks than on loud ones as the volume control will have be set higher for the quiet ones providing less loudness correction for the same output signal level. Providing some means of tracking the source level (preferably with a very fast attack time and a very slow release time) reduces this problem.

I'm thinking of the way an olde worlde RC network loudness control behaves in relation to different source levels where its effectiveness is considerably reduced with quieter sources due to having to crank the volume pot up. If this software behaves differently then I stand corrected.

ISO 226:2003 based loudness correction

Reply #12
Yes, the application of ReplayGain before processing would be mandatory.

ISO 226:2003 based loudness correction

Reply #13
I used to have an old Harmon Kardon 100+ Quad receiver. A real dinosaur...But it had a real neat Loudness button that was unlike any other loudness button Ive seen...Some where I still have the Booklet that came with it and in that booklet It described how it worked (I know a real "cock" tease of a statement. Sorry Its at the bottom of a box in storage. From what I remember its effect became less pronounced and cut off at a certain point the more you turned up the volume  . I do remember this though...It added high as well as low frequencies...In other words it followed  a predefined curve and the louder the music got the less of a curve was used. Was very advanced stuff for 1974...I can not recall ever seeing a "Loudness" controll that did any more than pump the bass up +6-8db at 70-100 khz ala Sony's Groove Button..... after that. I myself have about 3 predifined EQ settings used for low level listening...
Talk amongst yourselves...I find this facinating!

ISO 226:2003 based loudness correction

Reply #14
From what I remember its effect became less pronounced and cut off at a certain point the more you turned up the volume  . I do remember this though...It added high as well as low frequencies...

That was fairly common practice for the era, I believe. I've had several amplifiers dating from the mid 70s onward with loudness controls that have behaved exactly as you describe.

ISO 226:2003 based loudness correction

Reply #15
From what I remember its effect became less pronounced and cut off at a certain point the more you turned up the volume  . I do remember this though...It added high as well as low frequencies...

That was fairly common practice for the era, I believe. I've had several amplifiers dating from the mid 70s onward with loudness controls that have behaved exactly as you describe.


Why did they stop making the "Loudness Button"? its nice to have if you also use your system for low level listening...

ISO 226:2003 based loudness correction

Reply #16
Why did they stop making the "Loudness Button"? its nice to have if you also use your system for low level listening...

It was easy to implement when the volume control was a potentiometer. You added a tap part way up in volume and hung some equalization circuitry on it.

These days the volume control is digital, so you would have to do it in firmware I guess.

ISO 226:2003 based loudness correction

Reply #17
…when you note that the curves vary with sound pressure.

Note that the curves vary VERY considerably with sound pressure in the low frequencies (from about 700 Hz to 20 Hz), and practically insignificantly in the rest of the frequency range in the reasonable listening volume range.
…has anyone got the raw data, so that I could calculate EQ presets myself?

You need no data other than the equal loudness contours (version 2003) you’ve cited.
You choose the maximum, reasonable for you, listening sound pressure level in dB (say 100 dB) and the minimum, reasonable for you, listening sound pressure level in dB (say 50 dB).

Then you take the differences in dB of ordinates values for all frequencies from 20 to 700 Hz for the 100 dB and 50 dB curves. This will be the whole range of gradual control of bass of your future “loudness” control. On the low frequencies INCREASING side, if you wish it only for listening sound pressure levels (SPL) LOWER than the SPL “natural” for the natural sound source listened electro-acoustically (for example, a big symphony orchestra listened to at 50…60 dB SPL).

And also on the low frequencies DECREASING side, if you wish it also for listening sound pressure levels (SPL) HIGHER than the SPL “natural” for the natural sound source listened electro-acoustically (for example, a flute or a normal human speech listened to at 90…95 dB SPL).

By “loudness control” I mean only a separate, independent equal loudness contours compensation device, not notorious “loudness compensated volume controls”, that allow NO comparison between the “natural” SPL for a natural sound source, and its SPL listened electro-acoustically, and therefore, almost never fitting the due corrections.
This is probably the single most important reason I've chosen Yamaha receivers for my 2.0 and 2.1 systems.  They have a variable loudness contour.

Exactly, although only for the low frequencies INCREASING side, i.e. for listening sound pressure levels (SPL) LOWER than the SPL “natural” for the natural sound source listened electro-acoustically.
What do you guys think would be the best reference curve?

What “reference curve”? For an equal loudness contours compensation device, there is none.
What's a typical SPL of a rather loud but still comfortable listening session?

Typical? What for? And isn’t it the SPL of a listening session rather loud but still comfortable for YOU and/or your companions?
…at your highest reference signal level…

For the equal loudness contours compensation domain, there is NO other “reference” SPL than the SPL of the natural sound source that a system listener wishes to listen to electro-acoustically.

When you listen, electro-acoustically, to a natural sound source at a SPL LOWER that the SPL “natural” for this natural sound source, and you wish to impart to its sound a tonal balance you are accustomed to at its natural SPL, you will apply, by means of your equal loudness contours compensation device, an increase of low frequencies to the degree you wish.

When you listen, electro-acoustically, to a natural sound source at a SPL HIGHER that the SPL “natural” for this natural sound source, and you wish to impart to its sound a tonal balance you are accustomed to at its natural SPL, you will apply, by means of your equal loudness contours compensation device, a decrease of low frequencies to the degree you wish.
…I'm not convinced that a particularly high level of precision is required in practice.

Quite right. It’s determined only by the listener’s preference and his personal experience.
Matlab…
A 30dB loudness correction seems to imply EQing of over 16dB for some frequencies. Can that be correct?

I don’t know what you mean by “30dB loudness correction”, but the difference of ordinate values of the equal loudness contours, for example, for 20 Hz between 100 phon et 50 phon reaches 23 dB.

ISO 226:2003 based loudness correction

Reply #18
Thank you for your comments. However, have a look at the earlier posts in the thread, most of what you advice has actually already been cleared up. The data, that I had asked for, has been provided by C.R. Helmrich and the process itself has been laid out conceptually:

ref: reference SPL
tgt: target SPL

Apply Replay Gain (ref = 89 dB) -> Apply a filter corresponding to the iso226(ref) - iso226(tgt) function (see Matlab code).

If anyone still sees a problem with the above, I'd be thankful for any help.

That's basically it. Due to a lack of time, the implementation is going to consist of only a few convolution presets for Foobar right now. A dynamic approach, where the volume control would modify a set of equalizer parameters or choose corresponding convolution presets would be nice, but it hasn't been programmed, yet. Actually, there is even already an implementation within Sox. So the only thing really missing is a nice GUI integration for media players.

ISO 226:2003 based loudness correction

Reply #19
…have a look at the earlier posts in the thread, most of what you advice has actually already been cleared up.

Before writing my answer, I had read the whole thread, but it doesn’t seem to me anything of what I’ve tried to explain is cleared.
ref: reference SPL
tgt: target SPL

To me, no “reference”, “target” etc. SPLs can be applied for the equal loudness contours compensation, as I said. The only criterion applicable is the listener’s preference.
If anyone still sees a problem with the above...

I do, and really crucial.
…the volume control would modify a set of equalizer parameters or choose corresponding convolution presets would be nice…

My explanation why the volume control CANNOT be used for equal loudness contours compensation control, is tacitly ignored.
Equal loudness contours compensation control can be only a discrete circuit unit.

ISO 226:2003 based loudness correction

Reply #20
I really don't see your problem. tgt and ref are user modifiable parameters. Maybe it is just a different use of words, I call "reference" what you seem to call "natural".

By experiment I have also found out that the choice of ref is really not that significant, att = ref - tgt is the only variable making a real difference. The difference between ref = 90, tgt = 70 and ref = 60, tgt = 40, att = 20 is below .5 dB for each band.

I also do not agree that the only significant range is 20...700 Hz. For example, why omit a over 2 dB difference at 12.5 kHz for an 18 dB attenuation? And while we're at it. Why not just model perfectly? A four band parametric EQ is sufficient to get an accuracy of +/- .5 dB with respect to the mathematically derived curve. I'm very impressed by the results so far.

ISO 226:2003 based loudness correction

Reply #21
I'm wondering if Fedot means that the pre- and post-ReplayGain values for each track (or at least the difference between them) would be required to calculate the natural and target loudness levels respectively? After all, a track that's intended to be quieter originally should still sound quieter in terms of tonal quality after correction if the relative apparent loudness level of the track is to be representative of reality.

From the experiments I carried out when designing an analogue loudness control for a home-made preamp many years ago, I'd agree with you that a degree of correction is also desirable at the higher end of the audio spectrum.

ISO 226:2003 based loudness correction

Reply #22
I swept the variable loudness control on my receiver a long while back and it was basically a midrange cut, IIRC.  Whether or not it sounded natural is in the ears of the beholder.  I feel that it is provided I'm not going much past -8dB (as indicated on the control) and the volume when the loudness control is at 0dB is fairly loud.

ISO 226:2003 based loudness correction

Reply #23
Results are [a href='index.php?act=findpost&pid=722690']online[/a].

If needed, I might add a moderate -5 dB version later.

PS: Judging by ear I think the filter needs even more highs than the alternate version. What do you think?

ISO 226:2003 based loudness correction

Reply #24
Thanks for your nice experiment and fine results
Using foobar convolver and enjoying your effect right now
Highs are fine by me, although I always boost highs and lower bass in general listening

What's your reason for using Ozone instead built-in parametric equalizer, maybe lower number of bands provided in CEP/Au, or something else?