I use Grip to rip my CD's and encode them to ogg files. Doing that, I
could use vorbisgain to add tags according to the recorded level of each
song, directly in Grip. This makes all songs play at the same level in
i.e. XMMS. However, I want the tags calculated per album, so that the
dynamics is retained as the artist intended it to be, making soft songs
play soft and loud songs play loud.
I have found a way to do this on all albums at once, and in case someone
else would like know how, I thougt I'd post it. It would be nice if
someone more knowledgeable could take a look and see if there are
problems with the procedure, to avoid potential problems.
I have a directory that acts as a 'root' for the structure I store my
ogg's in; it contains a directory for each artist, which contains a
directory for each album of that artist that is encoded. These
directories contain the ogg files.
Here is what I do (in a terminal window):
1. cd to the 'root' directory mentioned above (NOT the directory named
/root nor the root directory (just being overly cautious))
2. enter this
find . -type d -execdir vorbisgain -fa {}/* +
Find goes through every subdirectory recursively and runs the vorbisgain
command on them, one at a time. (Even if there are no oggs there, I
think, but no output is produced in that case.)
The 'f' parameter makes vorbisgain check for old tags, and abort the
processing of that directory, so only newly added albums are processed.
The 'a' parameter makes vorbisgain process the album as a whole instead
of a track at a time.
It is a (terribly) crude way to do this, I know, but it works. And I
worked it out without being a bash guru! ;-)
Hope it is useful.
Frode