As a modern layer, compiling a collection of innovating techniques from a qualitative and serviceable point of vue, foobar 2000 is using tags at their highest possibilities. A tag, for people who don't know the term a text data linked to the audio file giving information about it, located at the beginning or the end of the file. The tag allows the user to link the audio file to a lot of information, as the performer, the year of recording, the track number, but also the price and date of sale, name of the audio engineer, lyrics or even the album art. A real audioplayer must be able to read and display all this information written by the user, but also consider them as a way to organize files, which is fully done by foobar. Foobar one of the few players to be able to fully exploit the tags fields, as it can display all of them, even the rarest ones, but also create them without any boundary to your imagination. Foobar 2000 also uses tags for some uncommon functionalities, as Replaygain full support or a really gapless reading for formats usually having this default (mp3,AAC). To be able to do it, foobar manages all the tag standards given by different formats and modern audio containers (ogg, mp4, mpc, ape, wma), even associating audio format to tag format into unusual but efficient combinations, allowing all supported formats to benefit from tags (information, organization, replaygain, gapless reading).

Formats and their tag standards

(* means container)
picture picture picture picture picture picture picture picture picture
MP3   picture picture picture          
OptimFrog   picture picture picture          
Matroska (*)         picture        
Monkey Audio   picture   picture          
MPC   picture   picture          
TTA   picture   picture          
Ogg (vorbis) (*) picture                
FLAC picture           picture    
AAC (supported via MP4)                 picture
WAV                 picture
Shorten                 picture
WMA               picture  
MP4 (*)               picture  
ALAC           picture      

For files without any proper or existing standard, you can use containers to tag your files.

Information related to mp4/AAC

The AAC/mp4 format is more and more used with the expansion of the use of i-pod, but there are still some dissension noxious for its comprehensiveness (?? good word for that?). mp4 is not an audio format, mp4 is a container, or stuctured multimedia envelope able to manage several audio or video streams. The audio format usually contained in mp4 is AAC (Advanced Audio Coding), rival to mp3 and more evolved format which should replace mp3. AAC, like mp3, is a crude (??) audio format, with no preconceived tag format. And if mp3 has a quasi standard with ID3 (edicted by custom and general behavior), AAC can't and won't be able to have tags into themselves. As a consequence, tagging an AAC file is violating the format and nothing makes it understandable by other players. The solution is given by mp4, advanced container with a documented, modern and complete tag standard. As a consequence, AAC users should put their AAC files into an mp4 envelope, this operation is fast, fully reversible and without any loss of information, the only inconvenient is the lost of compatibility with only AAC readers (as nokia cellphones). Foobar offers two solutions to AAC users:
  • management of AAC format with APEv2 tags, complete and which should normally not create incompatibility problems as they are located at the end of the file and may not be considered as a corruption of the format (as ID3)
  • management of the mp4 format, with its own tag standard, compatible with replaygain and other advantages given by foobar.
  • Some components which can convert AAC to mp4 or other way, allowing any user not to be submitted to specific standards.

foobar2000 and (mp3) tag standards

Mp3 is a very common format but hasn't a proper nor clearly defined tag standard. ID3 is based on common usage. If Apev2 is prefered from developers, for compatibility issues, Peter decided to write by default with ID3v2.4 standard. If you wonder what standard you should use:
  • ID3v1 tags only: good option for people who do not use much tags or having portable devices supporting only this standard
  • ID3v2: for the users using other audioplayers or readers or portable devices supporting only ID3v2
  • ID3v1 et ID3v2: same as before
  • APEv2 tags only: good option for people using only foobar2000 or Media center to read mp3 on their PC
  • APEv2 et ID3v1: good option for people using foobar 2000 and some portable devices or DVD platforms
ID3 tags are written at the beginning of the file, it means that any change needs to rewrite the whole file while. APE tags are usually at the end of the file, any change needs only to rewrite the end of the file, consequently, tagging with APEv2 is quicker, but common audio players or portable devices could consider the file corrupted if the files has APEv2 tags (they don't recognize APE standard). Peter introduced a safe process to rewrite tags: a temporary file is created, consequently, a crash occuring during the rewriting of the file won't corrupt it.

Related topic About ID3 standard and foobar2000 (Peter explanations, different views etc.. Very interesting)

If you really want a standard for mp3 tags, you can use MP4 container, but you will loose compatibility...

Tag fields

Actually you can create any field, but I will detail only some common fields used.
  • Album,artist,tracknumber,discnumber,comment,performer,publisher,label,venue,date,genre : The most common fields
  • Album artist: For Various artists albums or albums with guests, defining an Album artist could be useful to make a difference between the global artist if it exists and the guests. Album artist is also used for Various Artists albums, give it any value, It will be useful to detect those album tnaks to field remapping and especially %track artist%.
  • Various: for various artists albums (usually 1 as value), but no field remapping, that's why album artist is preferred.
  • Single: for single files, useful for UI columns single mode to detect single files.
  • Replaygain tags (replaygain_album_gain , replaygain_track_gain , replaygain_album_peak , replaygain_track_peak )
Related topic Wiki Common fields/standards
Related topic Classical music supertagging! (very interesting thread about tags for classical music)

Create or check tags

Via the contextual menu, use properties. Then a new window will appear:
Then you can Edit, Copy, Add, Remove (a specific field, all fields, or all fields except specific tags).

if you create a new tag, a new window will appear, You will have to enter the Tag name (i.g. artist, title etc..) and it's value (Mozart, Eminem, Metallica..)

Warning !! ID3v1 tags are limited to 30 characters.

Field remapping

Field remapping is a simple way to access to your tags directly.

This is a simple table to sum up the action of field remapping. (taken from the wiki Wiki Field remapping )

%album artist% $if3($meta(album artist),$meta(artist),$meta(composer),$meta(performer))
%album% $if3($meta(album),$meta(venue))
%artist% $if3($meta(artist),$meta(album artist),$meta(composer),$meta(performer))
%disc%, %discnumber% Returns the discnumber. The discnumber is taken from the discnumber tag; if that does not exist, it is taken from the disc tag. If neither exist, the field is undefined.
%track artist% $meta(artist), if $meta(album artist) is different than $meta(artist), otherwise this field is empty.
Warning !! Useful to check various artists albums.
%title% $if2($meta(title),%_filename%)
%track%, %tracknumber% $num($meta(tracknumber),2)
%bitrate% $if2($info(bitrate_dynamic),$info(bitrate))
%channels% Gives mono or stereo instead of 1 or 2
%filesize% size given in bytes
%samplerate% samplerate given in Hertz (Hz)
%codec% $codec()
%playlist_number% $num(%_playlist_number%,$len(%_playlist_total%))


August 30 2007 02:10:13.