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.
It is fine to use a new calculation method with a new reference loudness, but the values must be converted to the original reference loudness before being written to ReplayGain tags. That way, loudness matching will work on all ReplayGain compatible players across all ReplayGain tagged files.
I believe much of the confusion is because loudness metering and loudness normalization scheme are confounded. These are two separate dimensions but are NOT presented in an orthogonal way. A system should clearly indicate which method was used for measuring loudness (loudness metering) and which gain adjustment scheme was used for loudness normalization (leveling).
Pbelkner's decision to write incompatible data has been criticized numerous times. It's like the guy doesn't even understand the problem of his decision.
I could support use of REPLAYGAIN_ALGORITHM tag to let users and software know what tool generated the numbers but I see no reason to store any other data. Reference level must be 89 dB SPL as stated in the specs.
If user wishes to use other target level he flips a switch in his player (switch being for example preamp slider, could be a dropdown menu to select R128 or ATSC or anything).
I recall original ReplayGain spec suggested storing the algorithm too and perhaps even the fact that user had manually altered the numbers. Perhaps manual adjustment could be identified by storing something like REPLAYGAIN_ALGORITHM=manual.
keep the empty retorts to yourself.
I believe these are the requirements (expressed as User Stories):As a listener ...[blockquote][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. [/blockquote]As a Music Player Software ...[blockquote][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.[/blockquote]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.
If you write ReplayGain tags, you must write the gain required to match the reference level defined in the ReplayGain "standard".
The reference level is calibrated to pink noise with an RMS level that is 14 dB below a full-scale sinusoid which is intended to be played back at 89 dBSPL. This is nowhere near the same thing as -89 dBFS which has no reference to playback volume.Hopefully I got the details right.
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.
I could understand that a user could want to apply RG2 (rg tags+r128 algo), over previous RG1 (rg tags +rg algo).