IPB

Welcome Guest ( Log In | Register )

ReplayGain2, ReplayGain2 proposal
jukkap
post Jul 23 2011, 16:33
Post #1





Group: Members
Posts: 26
Joined: 14-July 11
Member No.: 92296



I suggest we discuss about possibility of creating ReplayGain2 specification that would replace the current ReplayGain.

ReplayGain2 would be playback compatible with the current ReplayGain (all current ReplayGain compatible players would work), but it should use ITU-R BS.1770/EBU R128 to calculate gain levels.

Current ReplayGain algorithm is odd and difficult and not properly specified. It also does not work for multichannel audio. ITU-R BS.1770/EBU R128 would overcome these issues.







Go to the top of the page
+Quote Post
 
Start new topic
Replies
Pat_
post Aug 7 2013, 11:13
Post #2





Group: Members
Posts: 10
Joined: 2-August 13
Member No.: 109428



Hi Guys,

It was not my intention to stir things up. I wanted to make a positive contribution. I am but a simple user of file based music looking for ways to enjoy playback of my collection with more or less the same perceived loudness. So what about returning to the basics of the whole discussion? What are the requirements that are to be satisfied by whatever proposed solution?

I believe these are the requirements (expressed as User Stories):

As a listener ...
[US-01] As a listener of file based music I want my music player software to adjust the playback volume of music files from different albums so that I experience approximately the same perceived loudness regardless of the recorded volume of the music files.
[US-02] As a listener of file based music I want to to be able to check whether the calculated gain adjustment across the collection of music files was done using the same or different method of loudness normalization so that -if necessary- I can re-run a loudness normalization to obtain adjustment gains compatible for experiencing equal perceived loudness.


As a Music Player Software ...
[US-03] As a music player software I want only the calculated Album and Track gain adjustment values so that I am not dependent of different loudness normalization methods and reference levels used for determining the playback gain adjustment.
[US-04] As a music player software I want to re-use the existing four REPLAYGAIN_... meta- data tags for reading the gain adjustment across tracks and albums so that I can support the classic RG-1 loudness normalization method (backward compatibility).
[US-04] As a music player software I may choose to process additional meta-data indicating peak values or loudness range so that I can present the user with options whether or not and how the playback volume is to be limited to prevent clipping.
[US-05] As music player software I may choose to check whether the calculated gain adjustment across the collection of music files was done using the same or different loudness normalization method so that I can give a warning to the user that gain adjustment values may be incompatible for experiencing equal perceived loudness.


This would - in my opinion - lead naturally to the following solution design principles:
[P1] The existing four REPLAYGAIN_xxxx tags are re-used and contain the calculated values for gain adjustment by a player.
[P2] At least one additional meta-data tag is required to indicate the loudness normalization method that was used for calculating these values. Optionally an extra tag may be added to hold the calculated Loudness Range

This additional meta-data tag could be the following:
REPLAYGAIN_Loudness_Normalization_Profile
with the following list of values:
  • EBU-R128 (ITU-BS-1770-2 metering@-23 LUFS)
  • RG-1 (2001 spec metering@-89 dBFS)
  • RG-2 (ITU-BS-1770-2 metering@-18 LUFS/dBFS)
  • ATSC-A/85 (ITU-BS-1770 metering@-24 LUFS)


Note: when <empty> this would default to "RG-1" profile.

This post has been edited by Pat_: Aug 7 2013, 11:28
Go to the top of the page
+Quote Post
2Bdecided
post Aug 8 2013, 11:31
Post #3


ReplayGain developer


Group: Developer
Posts: 5364
Joined: 5-November 01
From: Yorkshire, UK
Member No.: 409



QUOTE (Pat_ @ Aug 7 2013, 11:13) *
I believe these are the requirements (expressed as User Stories):

As a listener ...
[US-01] As a listener of file based music I want my music player software to adjust the playback volume of music files from different albums so that I experience approximately the same perceived loudness regardless of the recorded volume of the music files.
[US-02] As a listener of file based music I want to to be able to check whether the calculated gain adjustment across the collection of music files was done using the same or different method of loudness normalization so that -if necessary- I can re-run a loudness normalization to obtain adjustment gains compatible for experiencing equal perceived loudness.


As a Music Player Software ...
[US-03] As a music player software I want only the calculated Album and Track gain adjustment values so that I am not dependent of different loudness normalization methods and reference levels used for determining the playback gain adjustment.
[US-04] As a music player software I want to re-use the existing four REPLAYGAIN_... meta- data tags for reading the gain adjustment across tracks and albums so that I can support the classic RG-1 loudness normalization method (backward compatibility).
[US-04] As a music player software I may choose to process additional meta-data indicating peak values or loudness range so that I can present the user with options whether or not and how the playback volume is to be limited to prevent clipping.
[US-05] As music player software I may choose to check whether the calculated gain adjustment across the collection of music files was done using the same or different loudness normalization method so that I can give a warning to the user that gain adjustment values may be incompatible for experiencing equal perceived loudness.


This would - in my opinion - lead naturally to the following solution design principles:
[P1] The existing four REPLAYGAIN_xxxx tags are re-used and contain the calculated values for gain adjustment by a player.
[P2] At least one additional meta-data tag is required to indicate the loudness normalization method that was used for calculating these values. Optionally an extra tag may be added to hold the calculated Loudness Range

This additional meta-data tag could be the following:
REPLAYGAIN_Loudness_Normalization_Profile
with the following list of values:
  • EBU-R128 (ITU-BS-1770-2 metering@-23 LUFS)
  • RG-1 (2001 spec metering@-89 dBFS)
  • RG-2 (ITU-BS-1770-2 metering@-18 LUFS/dBFS)
  • ATSC-A/85 (ITU-BS-1770 metering@-24 LUFS)


Note: when <empty> this would default to "RG-1" profile.

No Pat, I've already explained exactly why that won't work.

The only reason you think you absolutely need US-02 is because you've defined a way of tagging where different loudness calculations can't co-exist on existing players. If you use the solution I proposed where they can work together, then US-02 becomes a nice-to-have feature for advanced users, not (as in your suggestion) a required feature that turns loudness matching into a nightmare for everyone. Exactly the same is true for US-05.

If you write ReplayGain tags, you must write the gain required to match the reference level defined in the ReplayGain "standard". You can calculate it however you like, but you have to convert it to maintain the same target loudness before you write the tag. You can't rely on the player to do the conversion. The way you deliver your US-03 is by doing exactly what I've said. What you have said makes it impossible!

You are free to write an additional tag to state what conversion has been applied, and even what method was used for the loudness calculation. Players are free to use these in any sensible way.


If there is an easily backwards-compatible way of creating a "version 2" of something, it is foolish to instead choose the non-backwards compatible way.

Cheers,
David.
Go to the top of the page
+Quote Post

Posts in this topic
- jukkap   ReplayGain2   Jul 23 2011, 16:33
- - mobyduck   http://www.hydrogenaudio.org/forums/index....showt...   Jul 23 2011, 16:40
- - Notat   This has been discussed. I believe there's act...   Jul 23 2011, 17:36
- - C.R.Helmrich   QUOTE (jukkap @ Jul 23 2011, 17:33) Repla...   Jul 23 2011, 18:10
- - jukkap   So that is the way to go. I suggest someone will c...   Jul 23 2011, 18:40
- - nazgulord   If I may ask, how different are gain values betwee...   Jul 23 2011, 23:16
- - db1989   R128 versus ReplayGain   Jul 23 2011, 23:31
- - Notat   I've been contacted by jaynyy and we've di...   Oct 8 2012, 22:55
- - Pat_   Suggestion for ReplayGain specification 2.0 ... I...   Aug 2 2013, 15:17
- - 2Bdecided   Writing ReplayGain track and album gain tags with ...   Aug 5 2013, 11:35
- - Pat_   QUOTE (2Bdecided @ Aug 5 2013, 11:35) It ...   Aug 6 2013, 11:01
|- - 2Bdecided   QUOTE (Pat_ @ Aug 6 2013, 11:01) I believ...   Aug 6 2013, 15:40
- - Case   Pbelkner's decision to write incompatible data...   Aug 6 2013, 13:42
|- - 2Bdecided   QUOTE (Case @ Aug 6 2013, 13:42) Pbelkner...   Aug 6 2013, 15:52
|- - pbelkner   QUOTE (Case @ Aug 6 2013, 14:42) Pbelkner...   Aug 6 2013, 17:17
- - [JAZ]   @pbelkner: When you designed and implemented your ...   Aug 6 2013, 20:09
- - Pat_   Hi Guys, It was not my intention to stir things u...   Aug 7 2013, 11:13
|- - 2Bdecided   QUOTE (Pat_ @ Aug 7 2013, 11:13) I believ...   Aug 8 2013, 11:31
|- - [JAZ]   QUOTE (2Bdecided @ Aug 8 2013, 12:31) No ...   Aug 8 2013, 15:48
- - Pat_   QUOTE (2Bdecided @ Aug 8 2013, 11:31) If ...   Aug 8 2013, 14:59
- - greynol   The reference level is calibrated to pink noise wi...   Aug 8 2013, 15:23
- - Pat_   QUOTE (greynol @ Aug 8 2013, 15:23) The r...   Aug 8 2013, 15:38
- - Pat_   QUOTE ([JAZ] @ Aug 8 2013, 15:48)...   Aug 9 2013, 14:47
- - 2Bdecided   Just to be 100% clear: you can use ReplayGain tags...   Aug 9 2013, 17:15


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 28th December 2014 - 02:54