Volume Normalization, RG vs R128, album vs track adjustment, use tag info [done in 1.3]

I wanted to get this idea moved over to the feature request forum. I raised it initially in this thread:

  1. Currently roon does its own ReplayGain (RG) scanning of library. It may be creating “album” and “track” level RG values, but nothing I can see confirms this, and in fact everything I see in roon indicates that it only creates “track” level RG information and uses only TRACK adjustments when volume leveling is turned on.

  2. First, it would be nice to have roon simply use the RG tags (album or track) that are already in my file tags. Maybe an option to select that. (In my case, the tags are RG tags that were added by dBpoweramp or foobar2000, and are all based on the EBU R128 algorithm, even though being written as RG tag info.) As noted by others, these RG values seem to be a bit better than what roon is adding.

  3. Secondly, whatever info is used, It would be nice to use either TRACK or ALBUM values to do volume leveling (or “both” see #4 below). For example, in LMS or foobar2000 players, one can choose which type of volume leveling (track or album).

  4. I’m very fond of the “smartgain” approach of LMS (and now also used in foobar2000, if selected). This is where the player automatically recognizes that the tracks being played are coming from different albums and thus uses TRACK RG values. If the player recognizes that the tracks cued up and being played are from the same album, it uses ALBUM RG values (so intersong volume differences are maintained properly).

I realize that in #4, I can achieve this same thing if I simply turn off volume normalize when playing complete albums. But I’m lazy and I like the software to adjust the RG value used automatically for me. (And I fully understand the discussions about best playback using no RG adjustments, 100% volume to DAC, etc. But I also understand that one can have some dB reduction with digital volume control and RG adjustments with no audible degradation of the signal) (that is, with modern digital playback systems, and digital volume controls (particularly in 24 bit domain playing 16 bit files.)


I agree with all of this.


Has there been any progress on this roadmap item? With the auto-queue Radio feature in Roon—starting up Radio when an album finishes playing—intelligent volume leveling is essential.

1 Like

Giving this the ol bump. I posted about this with my previous account. It is the #1 feature I miss from Jriver. R128, and having it properly implemented for tracks vs. albums, is a big big deal when it comes to my enjoyment of music. I believe it is planned, but hoping to see it before the end of the year.


I always have the volume leveling on, because on playing radio or a playlist combined of local tracks and tracks from Tidal the volume needs leveling.
But on playing full albums with gapless transitions from track to track the leveling becomes a pita.

A really good example is the Tidal album “Kitaro - Silk Road, Vol.1”.
Track 1 VL -8.00dB
Track 2 VL -1.63dB
Track 3 VL -6,82dB
These are big differences and because each song flow into the next you hear a volume jump between each song and that makes hearing the album painfull.

You should adjust the volume level like some other players do. The idea is simple:

  • if the song, you want to calculate the volume, is followed in the queue by the next song from the same album, you use the album gain from replay gain for this song and the next one
  • otherwise you use the track gain from replay gain

It’s a simple but effective rule to always have a satisfying volume leveling.

I agree. And so did @brian. This would be like “smart gain” in LMS/Squeezeboxes and foobar2000 does something similar. See this post:

Any news on this topic?

Volume leveling becomes a more and more annoying issue for me.
Today I tried to listen to Patricia Kaas “Carnets de Scènes” album with activated volume leveling and volume leveling jumped from +1,5db to -7db between tracks and that is not bearable if you want to relax hearing music.
Deactivating volume leveling is not a satisfying solution, because if radios kicks in after the end of an album and the album is local and the radio song is from Tidal it is so loud you jump from the sofa hectically searching for the remote. Not really relaxing.

I find myself more often using the old LMS which handles volume leveling perfect (for me), and relinquish the benefits of Roon in favor of my personal stress relaxation.
I like Roon and want it to be THE player in my home, but this issue prevents it. Even more with a working alternative and unfortunately it’s easier for me to live without the benefits of Roon as with this problem.

Maybe you can give me hope for a solution in a not to far future, before I have to decide to renew my subscription and realize I uses LMS more than Roon,

Nothing? :unamused:

I’d be interested in an update too. On my earlier posting in another thread @brian posted that he agreed with my comments.

We are aware of the issues and understand what it will take to make a good product in this area.

Remember, we’ve done nothing but bugfix releases since 1.2–overhauling this feature requires going back and re-doing audio analysis on thousands and thousands of user libraries. That is not something we can take lightly or rush out in a minor release.

As of right now, an overhaul of volume leveling is on the feature list for our next major release. This stuff is always subject to change, but as of now, we are planning to fit it into the schedule.

[quote=“brian, post:6, topic:10561”]
overhauling this feature requires going back and re-doing audio analysis on thousands and thousands of user libraries
[/quote]hoping this will leverage all CPU cores?

Yes, of course :slight_smile:

1 Like

Thanks for the update. I fully understand the timing. We all want it done right rather than fast.

Just letting you guys know–the development work for this feature is done. It will go out with our next major release–likely to be called “1.3”.

I believe that we’ve implemented all four of @garym’s requests. We have also implemented @evand’s request for running analysis on multiple CPU cores concurrently.

We are replacing our ReplayGain analyzer with an R128 compliant analyzer. Audio analysis data previously generated by Roon will be re-generated using R128 in the background automatically (unless audio analysis is disabled by the user), so everyone will have a smooth path forward to the current standard.

There will be settings for using or even preferring data from REPLAYGAIN_* tags (including support for REPLAYGAIN_REFERENCE_LOUDNESS), so that anyone so motivated can bypass our analysis results completely if desired.

Roon will manage track + album adjustments separately, and we’ll have four settings for Volume Leveling: Off, Track, Album, and Auto. Auto corresponds to the “smartgain” behavior described above.


@brian, any chance dynamic range score was slipped in as well seeing as it’s probably an opportune time do do the computation alongside r128?

Yeah, we’re capturing R128 “loudness range”, but not doing anything with it (yet). As you said, it’s easy to capture it while doing the other computations, so may as well.

Other than as a display field, do you have any applications in mind?

It’d be great to display the DR score for every album (on cover tiles as well as when having selected album) and also to be able to Focus on dynamic range > x < y

Explain the motivation–what do you do with that information?

Where I have multiple releases of an album I would want to be able to easily identify the one with the greatest dynamic range (hence dr score readily visible) and it’d be useful to be able to identify problem children in my library to source a better release. Equally I may want to listen to something that has a great DR score - being able to filter using that in conjunction with other filter conditions facilitates that with ease.


Got it. Makes sense. Thanks for explaining.