<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.hydrogenaudio.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bassbins</id>
	<title>Hydrogenaudio Knowledgebase - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hydrogenaudio.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bassbins"/>
	<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Special:Contributions/Bassbins"/>
	<updated>2026-04-29T18:17:01Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Encouraged_Tag_Standards&amp;diff=9761</id>
		<title>Foobar2000:Encouraged Tag Standards</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Encouraged_Tag_Standards&amp;diff=9761"/>
		<updated>2006-01-06T20:30:40Z</updated>

		<summary type="html">&lt;p&gt;Bassbins: /* ALBUM ARTIST */ spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Disclaimer ==&lt;br /&gt;
The guidelines described in this document have been agreed upon by a group of foobar2000 users and titleformatting scripts authors. Adherence to these guidelines is not required to be able to use foobar2000, though some components or pre-made titleformatting scripts may require or enforce the use of a particular tag.&lt;br /&gt;
&lt;br /&gt;
== Discussion and comments ==&lt;br /&gt;
You can leave comments about this page on the [[Foobar2000_Talk:Encouraged_Tag_Standards|Talk page]]. However, real discussion, proposals for new tag-standards, and decisions should happen in the [http://www.hydrogenaudio.org/forums/index.php?showtopic=31530 forum-thread], because more people will notice it there and be able to give input.&lt;br /&gt;
&lt;br /&gt;
== Codesnippets and foobar2000 versions ==&lt;br /&gt;
The codesnippets are meant for use in Foobar2000 v0.8. Because of the new field-remappings introduced in v0.9, they do not work with current beta-versions of foobar2000. Once v0.9final gets released this page will be updated with compliant v0.9 code.&lt;br /&gt;
&lt;br /&gt;
== General Tag Construction ==&lt;br /&gt;
&lt;br /&gt;
* Use an easily understood English field name.&lt;br /&gt;
* Prefix album-related information with &amp;quot;ALBUM &amp;quot;, ie. &amp;quot;ALBUM ARTIST&amp;quot;, &amp;quot;ALBUM SUBTITLE&amp;quot;.&lt;br /&gt;
* Avoid use of non-alphabetical characters. For serial fields (for a bad example, FIELD1, FIELD2, etc.), merely enter them in the order that you wish them to be read in.&lt;br /&gt;
* Try to avoid the use of underscores. Spaces are easier to type, more legible, and as easily useable in Tagz. Spaces are also preferable to no spaces.&lt;br /&gt;
&lt;br /&gt;
== Overview of Current Recommendations ==&lt;br /&gt;
&lt;br /&gt;
FIELD NAME [format] (component)&lt;br /&gt;
&lt;br /&gt;
* ALBUM ARTIST [e.g., Various Artists, The Foobar Collective] (none)&amp;lt;br&amp;gt;&#039;&#039;Notes&#039;&#039;: Field name is ALBUM ARTIST, with &#039;&#039;no underscore&#039;&#039;.  Tag should exist if and only if an album is by multiple artists, and be contained in every track.  Track-specific artists should be entered in the ARTIST tag, never in the TITLE tag.&amp;lt;br&amp;gt;[http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Encouraged_Tag_Standards#ALBUM_ARTIST (more about this standard)]&lt;br /&gt;
* FIRST_PLAYED and LAST_PLAYED [2005-03-22 19:00:00...] ([http://www.hydrogenaudio.org/forums/index.php?showtopic=20719 foo_playcount])&amp;lt;br&amp;gt;&#039;&#039;Notes&#039;&#039;: These two tags use underscores instead of spaces - reason for this was to make it consistent with the already existing PLAY_COUNTER-tag. Any amount or type of data may be placed after the time.  Compliant TAGZ code shall use $substr() instead of $right() when extracting substrings from this field.&amp;lt;br&amp;gt;&#039;&#039;See also&#039;&#039;: [http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Tips_%26_Tricks#Standardize_my_PLAY_DATE_and_PLAY_TIME_fields Standardize my PLAY_DATE and PLAY_TIME fields]&amp;lt;br&amp;gt;[http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Encouraged_Tag_Standards#FIRST_PLAYED_and_LAST_PLAYED (more about this standard)]&lt;br /&gt;
&lt;br /&gt;
=== ALBUM ARTIST ===&lt;br /&gt;
&#039;&#039;Basics&#039;&#039;:&lt;br /&gt;
*the tag-fieldname used for declaring and describing albums/split-EPs or split-singles which contain various artists is &amp;quot;ALBUM ARTIST&amp;quot; (separated with space, not underscore)&lt;br /&gt;
*tag should only exist if an album contains various artists. It should NOT be created when an album does not contain various artists.&lt;br /&gt;
*the tag can contain the overall artist of an album(like i.e. &amp;quot;the foo-bar collective&amp;quot;), multiple artists(i.e. with split-EPs) or if an album does not have a clear overall artist (for example with compilations) just &amp;quot;Various Artists&amp;quot;. Simply said: you&#039;re free to enter whatever you like as long as it describes the overall album-wide artist(s).&lt;br /&gt;
*every track in a V.A.-album has to contain this tag with the same value&lt;br /&gt;
*the track-specific artist should be entered into the ARTIST-tag&lt;br /&gt;
*the TITLE-tag should only contain the track-title&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reasons for this standard&#039;&#039;:&lt;br /&gt;
*it solves all issues regarding albums which contain multiple artists with just one tag&lt;br /&gt;
*it is already in widespread use&lt;br /&gt;
*sortable and searchable with low effort&lt;br /&gt;
*keeping the ARTIST-tag trackspecific allows to find tracks in V.A.-albums as well when searching for a certain artist (DB-friendly)&lt;br /&gt;
*keeping the TITLE-tag title-specific allows sorting and searching of V.A.-albums by title (DB-friendly)&lt;br /&gt;
*allows meaningful determination and display of V.A.-Albums with a minimum amount of code&lt;br /&gt;
*avoids resource-hungry and unsafe &amp;quot;guessing&amp;quot; of V.A.-albums via the filepath&lt;br /&gt;
*easy to remember and type in manually&lt;br /&gt;
*does not disrupt existing systems when the ARTIST- and TITLE-tag are already track specific (easy transition)&lt;br /&gt;
*can coexist with additional directory-based sorting and marking&lt;br /&gt;
*can be used for split-EPs and split-singles as well&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Code snippets&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 // check if an album is V.A.&lt;br /&gt;
 $if(%album artist%,$puts(album_is_va,1))&lt;br /&gt;
&lt;br /&gt;
 // For sorting by artist in an album-context replace %artist% - %album% with:&lt;br /&gt;
 $if2(%album artist%,%artist%) - %album%&lt;br /&gt;
&lt;br /&gt;
 // singlemode display without %album artist%-support&lt;br /&gt;
 [%artist% - ][%album% - ][%title%]&lt;br /&gt;
 // singlemode display with %album artist%-support&lt;br /&gt;
 // note: if your display supports both, albummode and singlemode, then you&lt;br /&gt;
 // may want to use the above version instead in singlemode - depends on taste&lt;br /&gt;
 [$if2(%album artist%,%artist%) - ][%album% - ]$if(%album artist%,[%artist% - ])[%title%]&lt;br /&gt;
&lt;br /&gt;
 // How to easily integrate %album artist% into an albummode-display:&lt;br /&gt;
 // in the albummode-column, replace %artist% with:&lt;br /&gt;
 $if2(%album artist%,[%artist%])&lt;br /&gt;
 // in the title-column, replace %title% with:&lt;br /&gt;
 $if(%album artist%,[%artist% - ])[%title%]&lt;br /&gt;
&lt;br /&gt;
=== FIRST_PLAYED and LAST_PLAYED ===&lt;br /&gt;
&#039;&#039;Basics&#039;&#039;:&lt;br /&gt;
* the tag-fieldname used for storing info when a song was played the first time is &amp;quot;FIRST_PLAYED&amp;quot;&lt;br /&gt;
* the tag-fieldname used for storing info when a song was played the last time is &amp;quot;LAST_PLAYED&amp;quot;&lt;br /&gt;
* tags contain date and time in the following format at the beginning: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot; (with 24hours-format)&lt;br /&gt;
* additional info may be appended after the above info&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Reasons for this standard&#039;&#039;:&lt;br /&gt;
* the [http://www.hydrogenaudio.org/musepack/klemm/www.personal.uni-jena.de/~pfk/mpp/sv8/time.html APE-dateformat] (derived from ISO) is internationally neutral&lt;br /&gt;
* sortable&lt;br /&gt;
* easily readable and recognizable&lt;br /&gt;
* format can be verified with TAGZ&lt;br /&gt;
* can be included in formatting-strings without reformatting it (pro for amateur tagz-coders)&lt;br /&gt;
* choosing a new fieldname avoids confusion with the existing ambigious play_date tag&lt;br /&gt;
* field name is easy to understand/recognize/remember and short enough to type in manually&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Code snippets&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 // verify tag-format (we check the pos. of the first dash and &amp;quot;:&amp;quot;)&lt;br /&gt;
 // using $len for verification is strongly unrecommended!&lt;br /&gt;
 $if(&lt;br /&gt;
 $and($strcmp($strstr(%last_played%,-),5),$strcmp($strstr(%last_played%,:),14))&lt;br /&gt;
 ,$puts(last_played_is_valid,1)&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
 // disassemble the timestamp for later reformatting or calcuations&lt;br /&gt;
 $puts(last_played_year,$substr(%last_played%,1,4))&lt;br /&gt;
 $puts(last_played_month,$substr(%last_played%,6,7))&lt;br /&gt;
 $puts(last_played_day,$substr(%last_played%,9,10))&lt;br /&gt;
 $puts(last_played_hour,$substr(%last_played%,12,13))&lt;br /&gt;
 $puts(last_played_min,$substr(%last_played%,15,16))&lt;br /&gt;
 $puts(last_played_sec,$substr(%last_played%,18,19))&lt;br /&gt;
&lt;br /&gt;
 // display only the date of last_played (without reformatting)&lt;br /&gt;
 $left(%last_played%,10)&lt;br /&gt;
&lt;br /&gt;
 // display only the time of last_played (without reformatting)&lt;br /&gt;
 // the use of $right is strongly unrecommended!&lt;br /&gt;
 $substr(%last_played%,12,19)&lt;br /&gt;
&lt;br /&gt;
The above code-snippets can be used for FIRST_PLAYED as well (just replace last_played with first_played).&lt;br /&gt;
&lt;br /&gt;
== Obsolete and Deprecated Tag Standards ==&lt;br /&gt;
&lt;br /&gt;
=== PLAY_DATE and PLAY_TIME ===&lt;br /&gt;
&lt;br /&gt;
Deprecated tags produced by old versions of foo_playcount.  Default format DDMMYY for PLAY_DATE and HHMMSS (24hr) for PLAY_TIME.  See [http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Encouraged_Tag_Standards#FIRST_PLAYED_and_LAST_PLAYED FIRST_PLAYED and LAST_PLAYED].&lt;/div&gt;</summary>
		<author><name>Bassbins</name></author>
	</entry>
</feed>