Roon never followed up in a private messaging/support thread in 2020 after thanking me for the report, filing an internal ticket, and saying they couldn’t commit as to when it would be fixed.
I re-oponed this in 2022. The gist of the reply was that they had no way to do a deep analysis and test it and did I know of any app they could use that does this correctly? Here is my response to that — I guess I can publicize a private message that I wrote, no?
Hi, XXXXX,
No deep analysis is required. If what your devs are missing relates to how corrections are to be applied, I’ve done the homework for you. I re-read ITU-R 1770 and EBU R128 and watched a definitive video from the chairman of the EBU committee that wrote the EBU R128 standard.
(ITU-R 1770 defines how programme loudness is measured, and EBU R128 defines how audio programmes, which in our case are audio tracks and albums, are characterized in terms of loudness, peaks, and dynamic range).
Surprisingly, neither states how to adjust a programme on playback that has one R128 loudness level (measured in LU) so that it plays back equally as loud as another with a different R128 level. One would think that you just increase or decrease the level of each, in dB, according to how much each programme departs from the target level in LUFS.
But is that correct? The standards do not say that an LU is equivalent to a dB!
So I found and watched this video presentation, EBU R128 Introduction, by Florian Camerer from an EBU conference on Oct 27, 2011. He was/is the chairman of the EBU PLOUD working group which wrote the EBU R128 standard. He discusses the new unit, LU, around 23 minutes in.
Between 23:43 and 24:13, Florian says:
So we also have new units, or new loudness measures, now, new loudness units, and we need a relative one, that is called LU, loudness units, yeah. We need a relative one to say, for instance, your programme is 3 LU louder than your program, and of course, it has to be related to a dB, so a step of one LU is a step of one dB. It’s exactly the same. So if you raise the electrical level by one dB, the loudness is raised by one LU.
If roon raises the digital level by one dB, the DAC will raise the electrical level by one dB, and eventually the SPL will increase by one dB, and thus the loudness.
So all your devs have to do is code the arithmetic right to compute the loudness normalization (correction) in dB from the R128 gain in dB and the device target volume level in LUFS. As I analyzed in my bug report, roon is not doing this correctly.
Now you have three things to enable you to fix this:
- the benefit of my hearing the error in the calcs
- roon’s wrong corrections in the Signal Path popup
- the ultimate authority’s word (Florian’s) word that LU and dB are equivalent and that dB adjustments should be used for loudness normalization based on R128 gains
This is a trivial problem compared to most things roon does. And now you have an authority for what is to be done.
Hope this help!
- Eric
Again, I was thanked, and was told that the info I submitted would forwarded to the audio team and they’d follow up. That never happened. So that’s that.
- Eric