Now that Amarok can read replay gain tags from almost all the files that it can read metadata from, I feel replay gain support in Amarok is pretty much there. And, yes, all this will be in Amarok 2.1.
A small caveat: the reading of replay gain tags from MP4 files only works if Amarok was built against libMP4v2. Amarok uses its own (home-brewed?) code for reading MP4 tags when it can’t find libMP4v2 at build-time, but it doesn’t support freeform tags and I don’t see the point of implementing that support when libMP4v2 does the job.
Amarok 2.1 will support all the file formats that Amarok 1.4′s replay gain script did (and more), apart from Musepack (mpc). Ironically, this is because of Musepack’s native support for replay gain – rather than abusing metadata tags to store the replay gain information, Musepack has a special field in the file header to specify the values. However, TagLib doesn’t let us at this field, so we’re a bit stuck.
So the state of replay gain support in Amarok is that, for files in the main collection or elsewhere on your computer’s filesystem (so not streaming media and not portable music players), replay gain tags (both album and track mode) will be read from the following formats:
- MP3 (as written by mp3gain/aacgain, Foobar2000 and Mutagen/Quod Libet – yes, there are three different ways of writing the tags to MP3 files)
- OGG Vorbis (as written by vorbisgain and anything compatible)
- OGG FLAC (assuming the tags are stored in the same way as in OGG Vorbis)
- OGG Speex (assuming the tags are stored in the same way as in OGG Vorbis)
- FLAC (as written by flac [with it's --replay-gain switch] and anything compatible)
- WMA/ASF (as written by the Amarok 1.4 replay gain script)
- MP4 (as written by aacgain and anything compatible, providing Amarok was built with libMP4v2)
- WavPack (assuming the tags are stored in a similar way to how mp3gain stores them in MP3 files)
- TrueAudio (assuming the tags are stored in a similar way to how Foobar2000 or QuodLibet/Mutagen store the tags in MP3 files)
In addition, Amarok will use the track mode tags (or the album mode ones if there aren’t any track mode tags) to adjust the gain during playback. I haven’t added an option to switch to album mode (or even disable it, if you really want to) yet, but that will come. I just have to figure out where it should go in the user interface…
Of course, this is only half the functionality provided by the Amarok 1.4 replay gain script. That also parsed and tagged files in the playlist. This could be implemented nicely as a script (I certainly don’t believe it belongs in the core of Amarok). But that’s for another day, and probably another person.