Visitor comments: Comments about Replay Gain in Linux

Go to the page to which these comments refer.

Showing comments 1–6 (of 6).

More ways to replaygain

I've written a script to automate adding replaygain tags to an entire music library. You can find it here:

Also, Quod Libet doesn't just support using replaygain tags. It also has an excellent plugin for *adding* them for all file types that it can play.

Posted 22nd September 2010 @ 15:37:33 UTC by Ryan

mp3gain 1.5.2+ can also write ID3v2 tags

Newer versions of mp3gain can now also write id3v2 tags: they add the standard RVA2 tags, as well as mp3gain-specific MP3GAIN_ALBUM_MINMAX, MP3GAIN_MINMAX and MP3GAIN_UNDO. The command line option is "-s i".

Note that mp3gain changes more than just tags! It also adjusts the bulk volume level for each MP3 frame (a field in each frame's header). That is a lossless operation because the audio stream is not re-encoded. But you absolutely need the MP3GAIN_UNDO tag if you would like to revert that change.

Posted 19th October 2010 @ 22:29:58 UTC by Hans from Colorado

I made some changes to also incorporate mp3 and vorbis scanning, and to do it as quietly as possible so it can be run via cron.


# Script created by Bobulous, October 2008.
# See
# Modified by Qsx/4011 to also tag mp3 and vorbis files
# This script takes as an argument a directory name,
# then uses metaflac to add Replay Gain tags (for album and
# track gain) to each FLAC, MP3, or Vorbis file in that directory.
# Use find (with -exec) to call this script on
# a directory structure containing FLAC files, so that this
# script is run on each directory in that structure. E.g.
# find ./music/flac -type d -exec ~/ '{}' \;
# Or, better yet, try GNU Parallel to use multiple CPU cores
# See

# Error codes

# Check that the argument passed to this script is a directory.
# If it's not, then exit with an error code.
if [ ! -d "$1" ]
	echo "Arg "$1" is NOT a directory!"

# Count the number of audio files in this directory.
flacnum=`ls "$1" | grep -c \\.flac`
mp3num=`ls "$1" | grep -c \\.mp3`
vorbisnum=`ls "$1" | grep -c \\.ogg`

# If no audio files are found in this directory,
# then exit without error.
test $flacnum -lt 1 && test $mp3num -lt 1 && test $vorbisnum -lt 1 && exit 0

# Run metaflac on the FLAC files in this directory.
test $flacnum -gt 0 && metaflac --add-replay-gain "$1"/*.flac

# Run mp3gain on the MP3 files in this directory.
test $mp3num -gt 0 && mp3gain -q -s i "$1"/*.mp3

# Run vorbisgain on the Vorbis files in this directory.
test $vorbisnum -gt 0 && vorbisgain -afqn "$1"/*.ogg

exit 0

Posted 28th January 2012 @ 19:52:31 UTC by Qsx/4011 from Bellport, New York


I discovered rgain, written in python, which is great!

Posted 15th February 2015 @ 11:44:55 UTC by arnaud

(untitled comment)

Hi, thanks for the article!

I have a suggestion though, both scripts can be replaced with this simple function:

Just stick it in your .bashrc, or .zshrc, or .whateverrc, and call it like this:
$ replaygain ~/Music

It'll work for both FLAC and MP3 records, setting the ReplayGain in album mode, just like your script.

Posted 5th July 2017 @ 16:31:06 UTC by jebus

loudgain ReplayGain 2 tagger for Linux/MacOS/Win10

Thanks for your article, still worth a read, even in 2019!

This is just to let you know that I picked up development of "loudgain" for Linux/MacOs (and Windows 10’s Linux bash). It is a ReplayGain v2 commandline scanner/tagger that follows the EBU R128/ITU BS.1770 specifications, offers the well-known "mp3gain" syntax and can handle MUCH more formats, currently:

FLAC, Ogg, MP2, MP3, MP4, M4A, AAC, ALAC, Opus, ASF, WMA, WAV, WavPack.

It’s free on Open Source software, hosted on GitHub at

Maybe you’d like to check it out or even write an article about it?

All the best,
Matthias a.k.a. "Moonbase59"

Posted 4th September 2019 @ 07:51:33 UTC by Moonbase59 from Germany

Cache was empty or disabled.