REPLAYGAIN tags with target level of -14 LUFS

How does Roon handle ReplayGain tags that were generated using EBU R128 with a target level of –14 LUFS?

In library settings you can choose (on local files) to use them or use Roon’s own dynamic range analysis (which I have found less reliable than my old foobar replaygain - it seemed to think some very loud albums such as Opeth’s last are quiet simply because they also have quiet parts and dynamics, but ymmv). You can set a target LUFS at an endpoint (or in Arc) and if using the Replaygain tags it adjusts automatically, knowing the original target LUFS. All my local files have rg tags for both track and album and I still use them.

1 Like

After looking into this more deeply, it seems clear that you should always use EBU R128 with a target of -18 LUFS when generating ReplayGain values. Most media players assume –18 LUFS as the reference point, not -14 LUFS, so choosing a different target can easily lead to inconsistent or unexpected results.

Roon is one example: its Loudness Volume processing is built around the assumption that ReplayGain tags follow the -18 LUFS standard. If you generate ReplayGain at -14 LUFS instead, Roon’s loudness calculations will be off by 4 LUFS. But this isn’t unique to Roon, other players behave similarly.

In theory, the REPLAYGAIN_REFERENCE_LOUDNESS tag could solve this mismatch, but no major software actually supports it, and it appears to be effectively deprecated.

If you prefer playback around -14 LUFS, the correct approach is the one foobar2000 uses: keep ReplayGain tags at -18 LUFS and apply a +4 dB preamp. That preserves compatibility with players that expect the standard reference while still giving you the louder target level you want.

The next question I’ve been thinking about is whether clip prevention should be enabled or not. In my setup I’ve chosen to enable clip prevention, using true‑peak detection with 4x oversampling. This ensures that any inter-sample peaks are caught and prevents unexpected clipping during playback.

What do you think?

If the software is applying replaygain (with known peak value) properly it should be impossible for it to boost beyond clipping. So unless doing something else odd (like an eq that adds to the signal rather than attenuates) I would say that’s unnecessary. I would not ever stand for playback with any chance of clipping to start with personally (so gain if used is applied on a setting to prevent clipping, any eq only attenuates, I don’t use gain when using Roon with Qobuz streaming files of unknown LUFS/rg) so nothing is added at any stages with no headroom

My understanding is that Roon does support it, as referenced towards the end of this…

If you are finding that it doesn’t work this way - ie it’s broken - I guess you need to raise a support request.

I haven’t tried it, because it would require an extra replay gain tag that’s not widely supported. It would introduce new issues.

What is the effect of these settings:

I’ve recalculated and re‑tagged all my files with ReplayGain tags (album + track), clip prevention, 4× oversampling peak calculation, and a target of EBU R128 at –18 LUFS.

Will Roon now use the ReplayGain tags to reach –14 LUFS (i.e., apply a pre‑gain of +4 LUFS), or will it use the ReplayGain values as-is and keep the –18 LUFS target?

What is the effect of enabling or disabling “Use REPLAYGAIN_* tags when present”, and what is the effect of enabling or disabling “REPLAYGAIN_* tags override Roon’s audio analysis”?

It will certainly use these if enabled and it will keep it to whichever target you give it.

You can check this in the signal path during playback.

If a file is rg -10 to meet -18 LUFS and you ask for -14 LUFS it will be attenuating by 6dB not 10.

One issue I’ve found is that if you set the endpoint to use album gain and album gain is not present, it falls back to the largest track gain of the whole album, instead of falling back to track gain, which is what it should do. If my files don’t have an album tag it’s because it’s a lazily mastered compilation with tracks at different volumes and I deliberately want to use track gain on it. Maybe there is a way to copy all those track gains to the album field as a workaround, but in any other player I would not need to consider that.

Thanks, @David_White1 to show me where to look. However, I’m unable to match the numbers. (It should apply album gain)

I believe the option “Use REPLAYGAIN_* tags when present” only takes effect when Roon has not performed its own audio analysis, though I’m not entirely sure in which situations that actually happens.
To get Roon to apply the ReplayGain values in my case, I had to enable “REPLAYGAIN_* tags override Roon’s Audio Analysis.” Once you do that, the math is mathing.
My ReplayGain tags produce slightly louder playback than Roon’s own audio analysis.

Roon definitely follows my local replaygain tags and has analysed all of the music (has visual waveform, DR values etc.)

Yes you need to enable “REPLAYGAIN_* tags override Roon’s Audio Analysis.” for this

In my experience Roon’s audio analysis is odd. I have both ‘Full Dynamic Range’ and regular versions of an album that are medically 5dB different and Roon thinks they are the same, so it fails to play them at the same volume. It also says The Last Will and Testament is very quiet (it’s dynamic compositions but it’s mastered loud and the loud bits are crushed and rg correctly identifies this) and plays it back loud. So I just fell back to my own rg tags that mean I haven’t touched a volume knob in 20 years

1 Like

My first impression is that after cleaning up all my ReplayGain tags and aligning everything to a single standard, volume leveling now performs better than Roon’s Audio Analysis. Previously, my library contained a mix of ReplayGain 2.0 tags (EBU R128 at −18LUFS) and very old ReplayGain 1.0 tags from the early 2000s.