Hi has anyone looked at adding R128gain code to metaflac so we can select to use this calculation for RP tags rather than replay gain? Best regards -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/flac-dev/attachments/20140615/1c1ca9c9/attachment.htm
Olav Sunde wrote:> has anyone looked at adding R128gain code to metaflac so we can select > to use this calculation for RP tags rather than replay gain?Why metaflac only? flac is also able to calculate RG values. And, as far as I can see R128GAIN (http://r128gain.sourceforge.net/) is a standalone app, not a library. So probably it would be difficult to reuse its code in flac/metaflac. There is also libebur128 (https://github.com/jiixyj/libebur128/) - "libebur128 is a library that implements the EBU R 128 standard for loudness normalisation. All source code is licensed under the MIT license"; foobar2000 uses it to calculate ReplayGain values. The use of R128 also raises the question about "REPLAYGAIN_REFERENCE_LOUDNESS" tag. Currently flac/metaflac writes "REPLAYGAIN_REFERENCE_LOUDNESS=89.0 dB" but doesn't use it when decoding (it seems that nothing uses this tag). R128 defines reference level differently, so this tag makes little sense for it. IMHO it's better not to write this tag when (meta)flac uses R128 algorithm. (David Robinson, the author of ReplayGain, thinks that such tags are useless: http://www.hydrogenaud.io/forums/index.php?s=&showtopic=67823&view=findpost&p=603622)
I mention metaflac because there are a few shell scripts that use it to write RG tags in a flac music library on Linux. With support for Ebu R128 gain in metaflac (the calculation according to specification, not an external program) it would be easy to use, just change the cmd line for metaflac in the script. Now that metaflac supports sample rates higher than 48kHz this would be a good thing in my view. Of course it would be nice to have this in flac too. As for R128GAIN, I've tried several versions but could not make it work on any of my Linux distros. libebur128 requires compiling. Unfortunately I am not a programmer and I never compile. I am aware that there are discussions on how to insert R128 tags in place of RG tags and make it work properly. I have used RG for a long time, but R128 tags does a better at adjusting perceived volume between albums so I prefer R128. I store music files on a Linux NAS and would like to perform calculations on the same box. With foobar2000 (or JRiver win) I'd have to do this across a Samba mount which is slow(ish) At 00:19 16.06.2014, you wrote:>Olav Sunde wrote: > >> has anyone looked at adding R128gain code to metaflac so we can select >> to use this calculation for RP tags rather than replay gain? > >Why metaflac only? flac is also able to calculate RG values. > >And, as far as I can see R128GAIN (http://r128gain.sourceforge.net/) >is a standalone app, not a library. So probably it would be difficult >to reuse its code in flac/metaflac. > >There is also libebur128 (https://github.com/jiixyj/libebur128/) - >"libebur128 is a library that implements the EBU R 128 standard for >loudness normalisation. All source code is licensed under the MIT license"; >foobar2000 uses it to calculate ReplayGain values. > > > >The use of R128 also raises the question about "REPLAYGAIN_REFERENCE_LOUDNESS" >tag. Currently flac/metaflac writes "REPLAYGAIN_REFERENCE_LOUDNESS=89.0 dB" >but doesn't use it when decoding (it seems that nothing uses this tag). >R128 defines reference level differently, so this tag makes little sense for it. >IMHO it's better not to write this tag when (meta)flac uses R128 algorithm. > >(David Robinson, the author of ReplayGain, thinks that such tags are useless: >http://www.hydrogenaud.io/forums/index.php?s=&showtopic=67823&view=findpost&p=603622) >_______________________________________________ >flac-dev mailing list >flac-dev at xiph.org >http://lists.xiph.org/mailman/listinfo/flac-dev-------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/flac-dev/attachments/20140616/84524d4b/attachment.htm
>The use of R128 also raises the question about "REPLAYGAIN_REFERENCE_LOUDNESS" >tag. Currently flac/metaflac writes "REPLAYGAIN_REFERENCE_LOUDNESS=89.0 dB" >but doesn't use it when decoding (it seems that nothing uses this tag). >R128 defines reference level differently, so this tag makes little sense for >it. IMHO it's better not to write this tag when (meta)flac uses R128 algorithm. >I use it :) To optionally allow adjustment of tracks containing different types of gain tag to a similar overall loudness. Admittedly this isn't common. Files using the original replaygain algorithm with a reference loudness of 83dB are now very rare, but R128 tags are starting to show up (eg. in Opus) and these play at a significantly different (quieter) level to tracks adjusted with the 89dB reference loudness tags. However the volume changes between the two different tagging systems are so dramatic that it is helpful to provide an automatic method of normalising them at least approximately. While adding the option for R128 gain into metaflac (and/or flac) would certainly be useful, I consider that scheme to be poorly suited to music playback. I certainly wouldn't want it to be imposed, or even the default. As the original, and still far more widespread, replaygain quickly discovered using a gain specification designed for movies leaves far too much headroom and hence is too quiet for music, far too quiet for standard commercial rock and pop recordings. R128 is even slightly worse in this respect, being more than 6dB (nominally 9dB, but possibly closer to 6dB in practice) quieter than replaygain. What that means is around 8 of the 16 bits in a typical music recording are unused, and I suspect most people would (rightly or wrongly) be horrified if you told them all their music was suddenly 8 bits. Turning up the volume cannot correct for that, although applying a preamp gain could. Music players that have adopted R128 or are planning it have often adjusted it by several dB to avoid the "too quiet" issue. With no standard in place concerning this and R128 itself being revised it isn't at all clear just what metaflac should do. Personally I think it would be better for players to automatically apply a preamp gain on top of R128 replay gain tags, but unless and until that is widely adopted, it would be unwise for encoders to reply on it.>The use of R128 also raises the question about "REPLAYGAIN_REFERENCE_LOUDNESS" >tag. Currently flac/metaflac writes "REPLAYGAIN_REFERENCE_LOUDNESS=89.0 dB" >but doesn't use it when decoding (it seems that nothing uses this tag). >R128 defines reference level differently, so this tag makes little sense for >it. IMHO it's better not to write this tag when (meta)flac uses R128 algorithm. > >(David Robinson, the author of ReplayGain, thinks that such tags are useless:It's useless only because nobody uses it :) To be honest there is very little need for it today. 99%+ of replaygain tags use the newer 89dB reference and 99%+ of players expect that (at least in their latest versions), so specifying the reference loudness really is useless except for a minuscule minority of situations, and almost certainly the players in those situations don't do anything with the tag anyway. So the only real purpose of the tag would be if it said something other than 89dB. I still parse it, if present, because it does no harm. --ian