Music tagging rules and Foobar2000 configuration

Posted on December 20, 2011

0


I have recently switched from MediaMonkey to Foobar2000 to manage my digital music library for more flexibility and free DACP support. During the transition period, I realized that I need some general rules on how to tag my music files so that my digital music library doesn’t get messed up when I start to automatically tag them from various online databases such as FreeDB, Discogs and MusicBrainz which unfortunately use different database structures and tagging standards.

The first part of this article presents my tagging rules which describe all mandatory/optional tags and their formats. The second part of this article briefly describes the required configuration in Foobar2000 which fits the tagging rules.

Tagger rules

1. Tags for describing releases

The following table lists all mandatory/optional tags for describing a release:

Tag Name Required Multi-values

Foobar2000
MusicBrainz Tagger

Foobar2000
Discogs Tagger

ALBUM ARTIST Yes Yes Yes Yes
ALBUM Yes No Yes Yes
DATE Yes No Yes Yes, use “Released raw”
GENRE Yes Yes No Yes
STYLE No Yes No Yes
LABEL No Yes Yes Yes, use “Label”
<COUNTRY> No No No Yes, use “Country”
COMMENT No No Yes Yes, use “Release notes“

<CATALOGNUMBER>

No No Yes Yes, use “Catalog #”
<BARCODE> No No Yes No

The description and format of each tag is as follows:

  • ALBUM ARTIST: The main artists of the release. For compilations always use “Various Artists”.
  • ALBUM: The name of the release. For singles this tag should have the same value as the track title.
  • DATE: Releasing date in either yyyy-MM-dd or yyyy format.
  • GENRE: Discogs genres + “Chinese Pop”.
  • LABEL: Publisher of the release.
  • COUNTRY: Releasing country of the release.
  • COMMENT: Release notes and comments of the release.
  • <CATALOGNUMBER>: Catalogue number of the release.
  • <BARCODE>: Bar code of the release.

2. Tags for describing tracks

The following table lists all mandatory/optional tags for describing individual tracks in each release:

Tag Name Required Multi-values

Foobar2000
MusicBrainz Tagger

Foobar2000
Discogs Tagger

ARTIST Yes Yes Yes Yes
TITLE Yes No Yes Yes
TRACKNUMBER Yes No Yes Yes
TOTALTRACKS No No Yes Yes
DISCNUMBER No No Yes Yes
TOTALDISCS No No Yes Yes
COMPOSER No Yes No No
CONDUCTOR No Yes No No

PERFORMER

No Yes No No
<LYRICS> No No No No
<UNSYNCED LYRICS> No No No No
<BACKUP> No No No No

The description and format of each tag is as follows:

  • ARTIST: Multiple values including important credit artists with the roles such as featuring, vocal or remix of the track.
  • TITLE: The title of the track.
  • TRACKNUMBER: The track number, always in two digits.
  • TOTALTRACKS: The number of total track in the release.
  • DISCNUMBER: The disc number.
  • TOTALDISCS: The number of total discs in the release.
  • COMPOSER: The composer(s) of the track, mandatory for classical music.
  • CONDUCTOR: The conductor(s) of the track, mainly for classical music.
  • PERFORMER: The secondary artist(s) not included in the main artist list, mainly used for classical music.
  • <LYRICS>: LCR lyrics with timestamp.
  • <UNSYNCED LYRICS>: Text lyrics without timestamp.
  • <BACKUP>: The information which is mainly used for backup purpose. It should include when and where a backup of the song was taken.

3. Additional tagging rules

Some more additional rules as the following besides the allowed tags described previously:

  • Always try to use Discogs and MusicBrainz to tag music first.
  • When using MusicBrainz tagger, remember to add genre (following the Discogs standard) and releasing country information manually.
  • Important credit artists should be tagged in ARTIST tag, and less important supporting artists should be tagged in PERFORMER tag. The TITLE tag should not contain any artist information, and ARTIST tag should not contain words such as "feat.", "vocal", or "remixed by"etc.
  • For compilations, tag ALBUM ARTIST (which is a multi-value tag) as either multiple artists who contribute to the release or simply "Various Artists".
  • For classical music, it is recommended to tag composer, conductor, soloist, orchestra and any other significant performers in ARTIST and ALBUM ARTIST tags when applicable. In addition to that, COMPOSER, CONDUCTOR and PERFORMER tags should also be used for the corresponding artists.
  • Always manually tag Chinese music and use "Chinese Pop" in GENRE tag.
  • Make sure album cover art is embedded in all music files.
  • Only tag timestamped LCR lyrics in LYRICS tag, and plain text lyrics should go to UNSYNCED LYRICS tag.

Configure Foobar2000

To support the above described tagging rules, some configurations need to be done in Foobar2000 to support editing and displaying them.

1. Editing tags

First, set Preferences->Advanced->Display–>Properties dialog ->Standard fields to:

Album Artist=ALBUM ARTIST;Album Title=ALBUM;Date=DATE;Genre=GENRE;Style=STYLE;
Label=LABEL;Country=COUNTRY;Comment=COMMENT;Artist Name=ARTIST;
Track Title=TITLE;Track Number=TRACKNUMBER;Total Tracks=TOTALTRACKS;
Disc Number=DISCNUMBER;Total Discs=TOTALDISCS;Composer=COMPOSER;
Conductor=CONDUCTOR;Performer=PERFORMER;Backup=BACKUP

This makes sure these tags are displayed in standard properties dialogue even though their don’t have any value associated. Secondly, set Preferences->Advanced->Display–>Properties dialog->Multivalue fields to the following to ensure that all the listed tags are treated as multi-value tags in Foobar2000:

ALBUM ARTIST;GENRE;STYLE;LABEL;ARTIST;COMPOSER;CONDUCTOR;PERFORMER;

2. Displaying tags in playlist

Next, we’ll configure Foobar2000 to display those tags in NG Playlist. Please skip this section if you’re not interested as what information to display is totally subjective. First In the NG Playlist configuration, set playlist group to be the following:

$if2($meta_sep(album artist,', ',' and '),<no artist>)[: %album%]
[' ('%date%[,[ by $meta_sep(label,', ',' and ')][ in %country%]]')']
 - [$meta_sep(genre,', ',' and ') ][/$meta_sep(style,', ',' and ')]

And then add the following columns to the NG playlist:

  • #: [%discnumber%[/%totaldiscs%]-][%tracknumber%][/%totaltracks%]
  • Title: [%title%]
  • Artists: [$meta_sep(artist,’, ‘,’ and ‘)]
  • Composers: [$meta_sep(composer,’, ‘,’ and ‘)]
  • Conductors: [$meta_sep(conductor,’, ‘,’ and ‘)]
  • Performers: [$meta_sep(performer,’, ‘,’ and ‘)]
  • Length: [%_time_elapsed% / ]%_length%

3. File operations based on tags

Foobar2000 includes a file operations plugin which can arrange the music files based on their tags. This works extremely well with the following script that automatically copies or moves music files by their corresponding tags:

$meta_sep(album artist,', ',' and ')/%album%[ '('$year(%date%)')']/
[%discnumber%-]%tracknumber%. [$meta_sep(artist,', ',' and ') - ]%title%
Posted in: HTPC