Replay Gain

From Hydrogenaudio Knowledgebase
Revision as of 02:57, 9 October 2006 by Kjoonlee (talk | contribs) (→‎[[foobar2000]] replaygain scanner: wav no longer supported)

Replaygain is the name of a technique invented to achieve the same playback volume of audio files. It specifies the reference level of 89dB and an algorithm to measure the perceived loudness of audio data.

Replaygain is different from peak normalization. In peak normalization, you merely ensure that the peak amplitude reaches a certain level. This does not ensure equal loudness. The replaygain technique measures the effective power (i.e. RMS after an Equal Loudness Filter) of the waveform, and amplifies the waveform accordingly. The result is that replaygained waveforms are usually more uniformly amplified that peak-normalized waveforms.


Implementations

There are different replaygain implementations, each with its own uses and strength. Most of them use metadata to indicate the level of the volume change (Volume is adjusted on playback; needs player/decoder support) others modify the audio data itself. Generally it is recommended to use an implementation which uses the metadata and does not touch the audio itself.

In a metadata based solution, information on both types of replaygain can be stored, and the desired playback effect can be switched back and forth in the appropriate player. However, if the audio data is permanently modified, only one type of replaygain can be chosen. Furthermore, if the audio data is modified, you may not be able to restore the original data, especially if the replaygain technique produces a negative amplification.

Replaygain has significant advantages over normalizing. It allows the loudness of a song to be consistant over an entire collection of audio, similar to (but more accurate than) RMS normalizing (this is called 'Track Gain', or 'Radio Gain' in earlier parlance). However, it also allows the loudness of an album to be consistant over a entire music collection, allowing the dynamics of album to remain (This is called 'Album Gain', or 'Audiophile Gain' in earlier parlance). This is usually very important in classical CDs, as there may be quiet segments and loud segments written into different tracks.


MP3Gain

MP3Gain is an implementation of Replaygain. It either modifies target data reversibly, or attaches metadata.


LAME


MPC replaygain

  • Method: Header (similar to Meta data method)
  • Notes: Replaygain values are stored in the header and replaygain is part of the Musepack specifications; therefore any Musepack decoder that does not support replaygain can be considered broken.
  • http://rarewares.org/mpc.html


VorbisGain

Note: Andavari has provided a very useful script to integrate VorbisGain, which is a CLI tool, into Windows Explorer. Please check this section.


FLAC / METAFLAC


WavPack / WVGAIN


Wavegain


foobar2000 replaygain scanner

  • Format:
    • MP3: Values written to APEv2 or ID3v2 tags.
    • MPC: Values written to header.
    • Ogg Vorbis: Values written to Vorbis comment.
    • WavPack: Values written to APEv2 tags.
    • AAC: Values written to APEv2 tags.
    • MP4: Uses its own itunes-compatible tagging system (though itunes does not support replaygain).
    • FLAC: Values written to Vorbis comment.
    • APE: Values written to APEv2 tags.
    • Modules (MOD etc.): Optionally saved into APEv2 tags; otherwise the foobar2000 database is used.
    • All other formats are supported but the replaygain values are saved to the foobar2000 database.
  • You can also choose to only have the replaygain values saved in the foobar2000 database and leave the files untouched.

MediaMonkey

  • Format:
  • In addition to tags, all ReplayGain values are also stored in MediaMonkey's MDB database
  • Does not support Album/Audiophile replaygain
  • Also capable of (irreversibly) changing the volume of MP3 tracks, similar to MP3Gain
  • http://www.mediamonkey.com

Players support

Replaygain being present in the specs of FLAC, MPC, and APE formats, any player that support those formats usually support replaygain.

The situation with MP3 is rather different, as it was not part of the MP3 specs. The APEv2 tags metadata implementation is somewhat becoming the de-facto standard.


Windows

...and probably others.


Linux

For MP3, use the CVS version of the xmms-mad mp3 plugin (it's not yet released as binary, furthermore not available in distribs' versions for now. Meanwhile binaries are available here: custom binaries)
And possibly others, since TagLib added support for APEv2 tags in MP3 files, players using this library (like amaroK and JuK) might support that kind of replaygain tags in the near future.
Requires support to be enabled (via the appropriate python bindings and libraries) for the above formats. Does not support replaygain values stored in APEv2 tags in MP3s. Replaygain values are stored in RVA2 id3v2.4 frames. See the Quod Libet RVA2 / ReplayGain notes.
Foobar2000 style TXXX frames in MP3s are also supported in the latest development releases.

Portable devices

Current development builds of Rockbox for the iRiver H100 and H300 series players support replaygain for some encoder formats. This is a rapidly evolving feature. There are no other portable players known to support replaygain.

The iPod features Soundcheck, which seems to produce roughly the same normalization gains as replaygain, but doesn't provide an Album Gain.


Additional reading