<?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=Marnes</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=Marnes"/>
	<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Special:Contributions/Marnes"/>
	<updated>2026-04-29T20:23:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components/Playback_Statistics_v3.x_(foo_playcount)&amp;diff=38299</id>
		<title>Foobar2000:Components/Playback Statistics v3.x (foo playcount)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components/Playback_Statistics_v3.x_(foo_playcount)&amp;diff=38299"/>
		<updated>2025-03-02T20:30:24Z</updated>

		<summary type="html">&lt;p&gt;Marnes: when adding copies of music to my collection and copying tags, the statistics don&amp;#039;t carry over until I also duplicate the date field&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Foobar2000 Legacy Playback statistics components|Legacy Playback statistics components]]&lt;br /&gt;
{{infobox foobar2000 component&lt;br /&gt;
| name                 = Playback Statistics&lt;br /&gt;
| module_name          = foo_playcount&lt;br /&gt;
| developer            = Peter Pawlowski&lt;br /&gt;
| repository           = &lt;br /&gt;
| released             = 2006&lt;br /&gt;
| released_ref         = &lt;br /&gt;
| stable_release       = 3.1.5&lt;br /&gt;
| stable_release_date  = 2023-03-15&lt;br /&gt;
| preview_release      = &lt;br /&gt;
| preview_release_date = &lt;br /&gt;
| foobar2000_minimum   = 1.6&lt;br /&gt;
| foobar2000_maximum   = &lt;br /&gt;
| foobar2000_ui_module = Default UI; Columns UI&lt;br /&gt;
| use                  = Playback statistics&lt;br /&gt;
| license              = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
This component collects and maintains statistics for played songs.&lt;br /&gt;
&lt;br /&gt;
==Statistics==&lt;br /&gt;
The statistics include:&lt;br /&gt;
&lt;br /&gt;
* Time/date first played&lt;br /&gt;
* Time/date last played&lt;br /&gt;
* Playback count&lt;br /&gt;
* Time/date added to the Media Library&lt;br /&gt;
* Rating&lt;br /&gt;
&lt;br /&gt;
==New playback statistics data pinning scheme introduced in version 3.0==&lt;br /&gt;
Playback statistics are now pinned to a combination of artist + album + disc number + track number + track title + date information, contrary to pre-3.0 versions which would pin data to file paths.&lt;br /&gt;
&lt;br /&gt;
The consequences of this behavior are:&lt;br /&gt;
&lt;br /&gt;
* Statistics are shared between redundant copies of the same tracks - useful when you keep separate copies of your music in different formats such as lossy + lossless.&lt;br /&gt;
* Automatic carrying over of statistics when acquiring the same music in another format, as long as tags match.&lt;br /&gt;
* No risk of data loss when moving files around or between computers.&lt;br /&gt;
&lt;br /&gt;
When editing tags, affected playback statistics records are transferred accordingly.&lt;br /&gt;
&lt;br /&gt;
Starting from version 3.0, collection of playback statistics is no longer restricted to your Media Library content. You can use this component without using Media Library at all, however, you should keep your non-ML music referenced from a playlist for foobar2000 to maintain the statistics.&lt;br /&gt;
&lt;br /&gt;
Playback statistics data is no longer dropped when the tracks are removed from the media library. A record gets removed when no matching track has been seen by foobar2000 (in Media Library or in any playlist or in an imported XML backup of playback statistics) for four weeks.&lt;br /&gt;
&lt;br /&gt;
==Title formatting fields==&lt;br /&gt;
; {{code|%first_played%}}&lt;br /&gt;
: Date/time at which the song was played for the first time.&lt;br /&gt;
; {{code|%last_played%}}&lt;br /&gt;
: Date/time at which the song was played last time.&lt;br /&gt;
; {{code|%play_count%}}&lt;br /&gt;
: How many times the song has been played.&lt;br /&gt;
; {{code|%played_per_day%}}&lt;br /&gt;
: Estimate how many times per day the song has been played, based on time first played, time last played and times played.&lt;br /&gt;
; {{code|%added%}}&lt;br /&gt;
: Date/time at which the song was added to the Media Library.&lt;br /&gt;
; {{code|%rating%}}&lt;br /&gt;
: Song&#039;s rating, on a 1–5 scale.&lt;br /&gt;
; {{code|%rating_stars%}}&lt;br /&gt;
: Song&#039;s rating, formatted as up to five stars, e.g. ★★★&lt;br /&gt;
; {{code|%rating_stars_fixed%}}&lt;br /&gt;
: Song&#039;s rating, formatted as five stars, e.g. ★★★☆☆&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; You may need to change your fonts for the stars-formatting fields to produce readable output.&lt;br /&gt;
&lt;br /&gt;
Detailed information about Title formatting for Playback Statistics can be found [[Titleformat_Playback_Statistics|here]].&lt;br /&gt;
&lt;br /&gt;
==XML backup functionality==&lt;br /&gt;
You can export playback statistics to an XML file and import them later, through &#039;&#039;Library =&amp;gt; Playback Statistics&#039;&#039; menu commands, or through context menu on specific tracks. This can be used to easily transfer playback statistics between different foobar2000 installations or profiles.&lt;br /&gt;
&lt;br /&gt;
==Backwards compatibility==&lt;br /&gt;
As with all previous releases, this component is fully backwards compatible with databases created by any versions released publicly before. If you have used an earlier version of the Playback Statistics component before, your existing data will be automatically imported on first run.&lt;br /&gt;
&lt;br /&gt;
If you wish to keep the ability to revert to an older 2.x version, please back up your PlaybackStatistics.dat file before running the new component first time.&lt;br /&gt;
&lt;br /&gt;
==Common sources of confusion==&lt;br /&gt;
Please note that foo_playcount takes over {{code|%RATING%}}, {{code|%PLAY_COUNT%}}, and all other mappings corresponding to its native fields listed above, using these mappings to return the fields from its own database rather than from files themselves. If you want to display such fields from the tags of files rather than from the database, use {{code|$meta(rating)}} and so on in your title-formatting. This behavior has changed in version 3.0: previous versions would fall back to reading the field from the file&#039;s tags when the corresponding field was not present in the database.&lt;br /&gt;
&lt;br /&gt;
It is important to note that the component cannot retrieve data from before it was installed; therefore, it initializes statistics when it is installed. Most uses of the {{code|%ADDED%}} field, for example, will at first return the entire media library; this is because foo_playcount has no way of guessing when the files were actually added because it was not present at the time. Thus, the default value of {{code|%ADDED%}} is set to the time that the component was first loaded. Any items added after foo_playcount is installed will have the field set properly because it is present to detect them.&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{foobar2000|https://www.foobar2000.org/components/view/foo_playcount|Playback Statistics}}&lt;br /&gt;
* {{ha|https://hydrogenaud.io/index.php/topic,82420.0.html}}&lt;/div&gt;</summary>
		<author><name>Marnes</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components/External_Tags_(foo_external_tags)&amp;diff=29371</id>
		<title>Foobar2000:Components/External Tags (foo external tags)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components/External_Tags_(foo_external_tags)&amp;diff=29371"/>
		<updated>2020-10-02T19:03:47Z</updated>

		<summary type="html">&lt;p&gt;Marnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox foobar2000 component&lt;br /&gt;
| name                 = External Tags&lt;br /&gt;
| module_name          = foo_external_tags&lt;br /&gt;
| developer            = Janne Hyvärinen (Case)&lt;br /&gt;
| repository           = &lt;br /&gt;
| released             = 2018-06-14&lt;br /&gt;
| released_ref         = &lt;br /&gt;
| stable_release       = 1.5.8&lt;br /&gt;
| stable_release_date  = 2019-10-21&lt;br /&gt;
| preview_release      = &lt;br /&gt;
| preview_release_date = &lt;br /&gt;
| foobar2000_minimum   = 1.4 alpha&lt;br /&gt;
| foobar2000_maximum   = &lt;br /&gt;
| foobar2000_ui_module = &lt;br /&gt;
| use                  = Tagging&lt;br /&gt;
| license              = ISC (modified)&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;External Tags&#039;&#039;&#039; adds transparent [[tag]]ging support to non-taggable file formats.&lt;br /&gt;
&lt;br /&gt;
External tags can be stored in an SQLite database or written to files in the same directories as the target audio files. This differs from m-TAGS in that the latter creates playlist-like files that must be loaded in place of the actual audio files, while external tags behave just like regular internal tags.&lt;br /&gt;
&lt;br /&gt;
The component was originally created to allow [[ReplayGain]]ing tracker modules.&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116045.msg958300.html#msg958300|External Tags origin story}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Concept==&lt;br /&gt;
&lt;br /&gt;
Some audio file types, like MIDI or game ROM rips, lack file-level tagging support. Vanilla foobar2000 fills this gap by storing tags added to such files in an internal database. These tags are kept in sync with their files across foobar2000&#039;s file operations and conversions, but cannot be accessed outside foobar2000 and are more prone to being lost than file-stored tags.&lt;br /&gt;
&lt;br /&gt;
External Tags is a pseudo-codec component that claims support for storing tags of any audio file type, and defers actual codec operations to each audio format&#039;s preferred codec. It stores tags in either a central SQLite database (similar to foobar2000&#039;s own solution), or in individual .tag files corresponding 1:1 to each audio file.&lt;br /&gt;
&lt;br /&gt;
==Required configuration==&lt;br /&gt;
&lt;br /&gt;
In Preferences &amp;gt; Playback &amp;gt; Decoding, the &amp;quot;External Tags (reader)&amp;quot; decoder, if visible (i.e. in foobar2000 versions &#039;&#039;below&#039;&#039; v1.5 beta 8&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116141.msg974079.html#msg974079|Decoder priority}}&amp;lt;/ref&amp;gt;), must have higher priority than the format to be externally tagged. The &amp;quot;External Tags (writer)&amp;quot; decoder should have lowest priority so that external tags won&#039;t take priority over any format&#039;s native tags by default.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&lt;br /&gt;
External Tags can be configured in Preferences &amp;gt; Advanced &amp;gt; Tagging &amp;gt; External Tags.&lt;br /&gt;
&lt;br /&gt;
Note: several relevant but infrequently used context commands in the Tagging submenu are only visible in the &#039;&#039;extended&#039;&#039; context menu — when you shift-right-click on files — to avoid menu clutter.&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;Create External Tags&amp;quot; command on audio files to open the familiar Properties dialog, and then click OK or Apply to externalize their tags. Any current internal tags will be copied and then left alone. If External Tags is configured to use tag files rather than SQLite, each audio file will now have a corresponding .tag file with the same name: e.g. test.mp3.tag next to test.mp3.&lt;br /&gt;
&lt;br /&gt;
Once a file has external tags, all tag operations are applied to its external tags only.&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116141.msg988525.html#msg988525|Misc. usage facts}}&amp;lt;/ref&amp;gt; File operations &#039;&#039;&#039;in foobar2000&#039;&#039;&#039; will transparently be applied to .tag files belonging to affected audio files so that they stay together. The &amp;quot;Edit file tags&amp;quot; command can be used to delete internal tags from files after copying their values to external tags.&lt;br /&gt;
&lt;br /&gt;
Files may be reverted to default internal tag handling with the &amp;quot;Remove External Tags&amp;quot; command, which will delete any relevant .tag files and SQLite entries.&lt;br /&gt;
&lt;br /&gt;
==Advanced==&lt;br /&gt;
&lt;br /&gt;
[[File:Foo_external_tags-combined-extended-context-menu.png|200px|thumb|right|extended Tagging context menu]]&lt;br /&gt;
&lt;br /&gt;
Manipulation of external tags outside foobar2000 — such as deleting, editing, or restoring .tag files from a backup — will not be reflected in foobar2000 automatically due to its tag cache.&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116141.msg982870.html#msg982870|Tag caching}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: the following paragraph is experimentally determined at the time of writing and subject to future developments and changes.&lt;br /&gt;
&lt;br /&gt;
External Tags keeps an internal inventory of the files it controls the tags of: manually adding a .tag file to an audio file does &#039;&#039;&#039;not&#039;&#039;&#039; configure the file for functional external tagging, and deleting the .tag file of an externally tagged audio file does &#039;&#039;&#039;not&#039;&#039;&#039; revert it to internal tagging. Invoking External Tags commands on files not controlled by External Tags will cause unpredictable behavior: for example, &amp;quot;Edit External Tags&amp;quot; does &#039;&#039;&#039;not&#039;&#039;&#039; bypass internal tags, despite the label.&lt;br /&gt;
&lt;br /&gt;
===Context commands===&lt;br /&gt;
&lt;br /&gt;
TODO: explain remaining context menu commands like Wrap&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116141.msg976218.html#msg976218|Wrap command}}&amp;lt;/ref&amp;gt;, Commit, and Find Edited After&lt;br /&gt;
&lt;br /&gt;
===Interaction with vanilla foobar2000 context commands===&lt;br /&gt;
&lt;br /&gt;
Note: this section applies only to files actually managed by External Tags.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Reload info from file(s)&amp;quot; will update displayed tags with values currently in SQLite and .tag files. Useful after changes to .tag files outside foobar2000.&lt;br /&gt;
* &amp;quot;Remove tags from file(s)&amp;quot; will reset .tag files to their default empty state but not delete them, and subsequent tag changes will continue to be stored by External Tags.&lt;br /&gt;
* &amp;quot;Rewrite file tags&amp;quot; will &#039;&#039;not&#039;&#039; write External Tags back to internal tags, despite the ambiguity with External Tags&#039; &amp;quot;Edit file tags&amp;quot; command. This command is rather intended to flush foobar2000&#039;s cached values to tag storage, i.e. the reverse of &amp;quot;Reload info from file(s)&amp;quot;, which should never be needed.&lt;br /&gt;
&lt;br /&gt;
===.tag file format===&lt;br /&gt;
&lt;br /&gt;
[[File:Foo_external_tags-tag-file-editing.png|200px|thumb|right|.tag file in a text editor]]&lt;br /&gt;
&lt;br /&gt;
.tag files are essentially binary dumped [https://wikipedia.org/wiki/APE_tag APE tags] and can be viewed or edited with an advanced text editor if necessary.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[foobar2000:Components/m-TAGS (foo_tags)|m-TAGS (foo_tags)]], a component that provides opaque external tag storage&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{foobar2000|http://www.foobar2000.org/components/view/foo_external_tags|External Tags}}&lt;br /&gt;
* {{ha|https://hydrogenaud.io/index.php/topic,116141.0.html|External Tags}}&lt;br /&gt;
* [https://foobar.hyv.fi/?view=foo_external_tags Home page]&lt;/div&gt;</summary>
		<author><name>Marnes</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:Foo_external_tags-combined-extended-context-menu.png&amp;diff=29370</id>
		<title>File:Foo external tags-combined-extended-context-menu.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:Foo_external_tags-combined-extended-context-menu.png&amp;diff=29370"/>
		<updated>2020-10-02T18:59:10Z</updated>

		<summary type="html">&lt;p&gt;Marnes: Marnes uploaded a new version of &amp;amp;quot;File:Foo external tags-combined-extended-context-menu.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The extended Tagging context menu with External Tags installed&lt;/div&gt;</summary>
		<author><name>Marnes</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components/External_Tags_(foo_external_tags)&amp;diff=29369</id>
		<title>Foobar2000:Components/External Tags (foo external tags)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components/External_Tags_(foo_external_tags)&amp;diff=29369"/>
		<updated>2020-10-02T18:56:50Z</updated>

		<summary type="html">&lt;p&gt;Marnes: elaborate on the various context commands, bring structure to the Advanced info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox foobar2000 component&lt;br /&gt;
| name                 = External Tags&lt;br /&gt;
| module_name          = foo_external_tags&lt;br /&gt;
| developer            = Janne Hyvärinen (Case)&lt;br /&gt;
| repository           = &lt;br /&gt;
| released             = 2018-06-14&lt;br /&gt;
| released_ref         = &lt;br /&gt;
| stable_release       = 1.5.8&lt;br /&gt;
| stable_release_date  = 2019-10-21&lt;br /&gt;
| preview_release      = &lt;br /&gt;
| preview_release_date = &lt;br /&gt;
| foobar2000_minimum   = 1.4 alpha&lt;br /&gt;
| foobar2000_maximum   = &lt;br /&gt;
| foobar2000_ui_module = &lt;br /&gt;
| use                  = Tagging&lt;br /&gt;
| license              = ISC (modified)&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;External Tags&#039;&#039;&#039; adds transparent [[tag]]ging support to non-taggable file formats.&lt;br /&gt;
&lt;br /&gt;
External tags can be stored in an SQLite database or written to files in the same directories as the target audio files. This differs from m-TAGS in that the latter creates playlist-like files that must be loaded in place of the actual audio files, while external tags behave just like regular internal tags.&lt;br /&gt;
&lt;br /&gt;
The component was originally created to allow [[ReplayGain]]ing tracker modules.&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116045.msg958300.html#msg958300|External Tags origin story}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Concept==&lt;br /&gt;
&lt;br /&gt;
Some audio file types, like MIDI or game ROM rips, lack file-level tagging support. Vanilla foobar2000 fills this gap by storing tags added to such files in an internal database. These tags are kept in sync with their files across foobar2000&#039;s file operations and conversions, but cannot be accessed outside foobar2000 and are more prone to being lost than file-stored tags.&lt;br /&gt;
&lt;br /&gt;
External Tags is a pseudo-codec component that claims support for storing tags of any audio file type, and defers actual codec operations to each audio format&#039;s preferred codec. It stores tags in either a central SQLite database (similar to foobar2000&#039;s own solution), or in individual .tag files corresponding 1:1 to each audio file.&lt;br /&gt;
&lt;br /&gt;
==Required configuration==&lt;br /&gt;
&lt;br /&gt;
In Preferences &amp;gt; Playback &amp;gt; Decoding, the &amp;quot;External Tags (reader)&amp;quot; decoder, if visible (i.e. in foobar2000 versions &#039;&#039;below&#039;&#039; v1.5 beta 8&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116141.msg974079.html#msg974079|Decoder priority}}&amp;lt;/ref&amp;gt;), must have higher priority than the format to be externally tagged. The &amp;quot;External Tags (writer)&amp;quot; decoder should have lowest priority so that external tags won&#039;t take priority over any format&#039;s native tags by default.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&lt;br /&gt;
External Tags can be configured in Preferences &amp;gt; Advanced &amp;gt; Tagging &amp;gt; External Tags.&lt;br /&gt;
&lt;br /&gt;
Note: several relevant but infrequently used context commands in the Tagging submenu are only visible in the &#039;&#039;extended&#039;&#039; context menu — when you shift-right-click on files — to avoid menu clutter.&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;Create External Tags&amp;quot; command on audio files to open the familiar Properties dialog, and then click OK or Apply to externalize their tags. Any current internal tags will be copied and then left alone. If External Tags is configured to use tag files rather than SQLite, each audio file will now have a corresponding .tag file with the same name: e.g. test.mp3.tag next to test.mp3.&lt;br /&gt;
&lt;br /&gt;
Once a file has external tags, all tag operations are applied to its external tags only.&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116141.msg988525.html#msg988525|Misc. usage facts}}&amp;lt;/ref&amp;gt; File operations &#039;&#039;&#039;in foobar2000&#039;&#039;&#039; will transparently be applied to .tag files belonging to affected audio files so that they stay together. The &amp;quot;Edit file tags&amp;quot; command can be used to delete internal tags from files after copying their values to external tags.&lt;br /&gt;
&lt;br /&gt;
Files may be reverted to default internal tag handling with the &amp;quot;Remove External Tags&amp;quot; command, which will delete any relevant .tag files and SQLite entries.&lt;br /&gt;
&lt;br /&gt;
==Advanced==&lt;br /&gt;
&lt;br /&gt;
[[File:Foo_external_tags-combined-extended-context-menu.png|200px|thumb|right|extended Tagging context menu]]&lt;br /&gt;
&lt;br /&gt;
Manipulation of external tags outside foobar2000 — such as deleting, editing, or restoring .tag files from a backup — will not be reflected in foobar2000 automatically due to its tag cache.&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116141.msg982870.html#msg982870|Tag caching}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: the following paragraph is experimentally determined at the time of writing and subject to future developments and changes.&lt;br /&gt;
&lt;br /&gt;
External Tags keeps an internal inventory of the files it controls the tags of: manually adding a .tag file to an audio file does &#039;&#039;&#039;not&#039;&#039;&#039; configure the file for functional external tagging, and deleting the .tag file of an externally tagged audio file does &#039;&#039;&#039;not&#039;&#039;&#039; revert it to internal tagging. Invoking External Tags commands on files not controlled by External Tags will cause unpredictable behavior: for example, &amp;quot;Edit External Tags&amp;quot; does &#039;&#039;&#039;not&#039;&#039;&#039; bypass internal tags, despite the label.&lt;br /&gt;
&lt;br /&gt;
===Context commands===&lt;br /&gt;
&lt;br /&gt;
TODO: explain remaining context menu commands like Wrap&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116141.msg976218.html#msg976218|Wrap command}}&amp;lt;/ref&amp;gt;, Commit, and Find Edited After&lt;br /&gt;
&lt;br /&gt;
===Interaction with vanilla foobar2000 context commands===&lt;br /&gt;
&lt;br /&gt;
Note: this section applies only to files actually managed by External Tags.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Reload info from file(s)&amp;quot; will update displayed tags with values currently in SQLite and .tag files. Useful after file operations outside foobar2000.&lt;br /&gt;
* &amp;quot;Remove tags from file(s)&amp;quot; will reset .tag files to their default empty state but not delete them, and subsequent tag changes will continue to be stored by External Tags.&lt;br /&gt;
* &amp;quot;Rewrite file tags&amp;quot; will &#039;&#039;not&#039;&#039; write External Tags back to internal tags, despite the ambiguity with External Tags&#039; &amp;quot;Edit file tags&amp;quot; command. This command is rather intended to flush foobar2000&#039;s cached values to tag storage, i.e. the reverse of &amp;quot;Reload info from file(s)&amp;quot;, which should never be needed.&lt;br /&gt;
&lt;br /&gt;
===.tag file format===&lt;br /&gt;
&lt;br /&gt;
[[File:Foo_external_tags-tag-file-editing.png|200px|thumb|right|.tag file in a text editor]]&lt;br /&gt;
&lt;br /&gt;
.tag files are essentially binary dumped [https://wikipedia.org/wiki/APE_tag APE tags] and can be viewed or edited with an advanced text editor if necessary.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[foobar2000:Components/m-TAGS (foo_tags)|m-TAGS (foo_tags)]], a component that provides opaque external tag storage&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{foobar2000|http://www.foobar2000.org/components/view/foo_external_tags|External Tags}}&lt;br /&gt;
* {{ha|https://hydrogenaud.io/index.php/topic,116141.0.html|External Tags}}&lt;br /&gt;
* [https://foobar.hyv.fi/?view=foo_external_tags Home page]&lt;/div&gt;</summary>
		<author><name>Marnes</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:Foo_external_tags-combined-extended-context-menu.png&amp;diff=29368</id>
		<title>File:Foo external tags-combined-extended-context-menu.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:Foo_external_tags-combined-extended-context-menu.png&amp;diff=29368"/>
		<updated>2020-10-02T18:09:32Z</updated>

		<summary type="html">&lt;p&gt;Marnes: The extended Tagging context menu with External Tags installed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The extended Tagging context menu with External Tags installed&lt;/div&gt;</summary>
		<author><name>Marnes</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components/External_Tags_(foo_external_tags)&amp;diff=29367</id>
		<title>Foobar2000:Components/External Tags (foo external tags)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components/External_Tags_(foo_external_tags)&amp;diff=29367"/>
		<updated>2020-10-02T00:17:57Z</updated>

		<summary type="html">&lt;p&gt;Marnes: ref some sources&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox foobar2000 component&lt;br /&gt;
| name                 = External Tags&lt;br /&gt;
| module_name          = foo_external_tags&lt;br /&gt;
| developer            = Janne Hyvärinen (Case)&lt;br /&gt;
| repository           = &lt;br /&gt;
| released             = 2018-06-14&lt;br /&gt;
| released_ref         = &lt;br /&gt;
| stable_release       = 1.5.8&lt;br /&gt;
| stable_release_date  = 2019-10-21&lt;br /&gt;
| preview_release      = &lt;br /&gt;
| preview_release_date = &lt;br /&gt;
| foobar2000_minimum   = 1.4 alpha&lt;br /&gt;
| foobar2000_maximum   = &lt;br /&gt;
| foobar2000_ui_module = &lt;br /&gt;
| use                  = Tagging&lt;br /&gt;
| license              = ISC (modified)&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;External Tags&#039;&#039;&#039; adds transparent [[tag]]ging support to non-taggable file formats.&lt;br /&gt;
&lt;br /&gt;
External tags can be stored in an SQLite database or written to files in the same directories as the target audio files. This differs from m-TAGS in that the latter creates playlist-like files that must be loaded in place of the actual audio files, while external tags behave just like regular internal tags.&lt;br /&gt;
&lt;br /&gt;
The component was originally created to allow [[ReplayGain]]ing tracker modules.&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116045.msg958300.html#msg958300|External Tags origin story}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Concept==&lt;br /&gt;
&lt;br /&gt;
Some audio file types, like MIDI or game ROM rips, lack file-level tagging support. Vanilla foobar2000 fills this gap by storing tags added to such files in an internal database. These tags are kept in sync with their files across foobar2000&#039;s file operations and conversions, but cannot be accessed outside foobar2000 and are more prone to being lost than file-stored tags.&lt;br /&gt;
&lt;br /&gt;
External Tags is a pseudo-codec component that claims support for storing tags of any audio file type, and defers actual codec operations to each audio format&#039;s preferred codec. It stores tags in either a central SQLite database (similar to foobar2000&#039;s own solution), or in individual .tag files corresponding 1:1 to each audio file.&lt;br /&gt;
&lt;br /&gt;
==Required configuration==&lt;br /&gt;
&lt;br /&gt;
In Preferences &amp;gt; Playback &amp;gt; Decoding, the &amp;quot;External Tags (reader)&amp;quot; decoder, if visible (i.e. in foobar2000 versions &#039;&#039;below&#039;&#039; v1.5 beta 8&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116141.msg974079.html#msg974079|Decoder priority}}&amp;lt;/ref&amp;gt;), must have higher priority than the format to be externally tagged. The &amp;quot;External Tags (writer)&amp;quot; decoder should have lowest priority so that external tags won&#039;t take priority over any format&#039;s native tags by default.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&lt;br /&gt;
External Tags can be configured in Preferences &amp;gt; Advanced &amp;gt; Tagging &amp;gt; External Tags.&lt;br /&gt;
&lt;br /&gt;
Note: several relevant but infrequently used context commands in the Tagging submenu are only visible in the &#039;&#039;extended&#039;&#039; context menu — when you shift-right-click on files — to avoid menu clutter.&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;Create External Tags&amp;quot; command on audio files to open the familiar Properties dialog, and then click OK or Apply to externalize their tags. Any current internal tags will be copied and then left alone. If External Tags is configured to use tag files rather than SQLite, each audio file will now have a corresponding .tag file with the same name: e.g. test.mp3.tag next to test.mp3.&lt;br /&gt;
&lt;br /&gt;
Once a file has external tags, all tag operations are applied to its external tags only.&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116141.msg988525.html#msg988525|Misc. usage facts}}&amp;lt;/ref&amp;gt; File operations &#039;&#039;&#039;in foobar2000&#039;&#039;&#039; will transparently be applied to .tag files belonging to affected audio files so that they stay together.&lt;br /&gt;
&lt;br /&gt;
Files may be reverted to default internal tag handling with the &amp;quot;Remove External Tags&amp;quot; command, which will delete any relevant .tag files and SQLite entries.&lt;br /&gt;
&lt;br /&gt;
Manipulation of external tags outside foobar2000 — such as deleting, editing, or restoring .tag files from a backup — will not be reflected in foobar2000 automatically due to its tag cache.&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116141.msg982870.html#msg982870|Tag caching}}&amp;lt;/ref&amp;gt; Use foobar2000&#039;s &amp;quot;Tagging &amp;gt; Reload info from file(s)&amp;quot; command to update displayed tags with values currently in SQLite and .tag files. Similarly, &amp;quot;Rewrite file tags&amp;quot; will flush any currently displayed values to external tag storage.&lt;br /&gt;
&lt;br /&gt;
==Advanced==&lt;br /&gt;
&lt;br /&gt;
[[File:Foo_external_tags-tag-file-editing.png|200px|thumb|right|.tag file in a text editor]]&lt;br /&gt;
.tag files are essentially binary dumped [https://wikipedia.org/wiki/APE_tag APE tags] and can be viewed or edited with an advanced text editor if necessary.&lt;br /&gt;
&lt;br /&gt;
TODO: explain remaining context menu commands like Wrap&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116141.msg976218.html#msg976218|Wrap command}}&amp;lt;/ref&amp;gt; and Commit&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[foobar2000:Components/m-TAGS (foo_tags)|m-TAGS (foo_tags)]], a component that provides opaque external tag storage&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{foobar2000|http://www.foobar2000.org/components/view/foo_external_tags|External Tags}}&lt;br /&gt;
* {{ha|https://hydrogenaud.io/index.php/topic,116141.0.html|External Tags}}&lt;br /&gt;
* [https://foobar.hyv.fi/?view=foo_external_tags Home page]&lt;/div&gt;</summary>
		<author><name>Marnes</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components/External_Tags_(foo_external_tags)&amp;diff=29366</id>
		<title>Foobar2000:Components/External Tags (foo external tags)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components/External_Tags_(foo_external_tags)&amp;diff=29366"/>
		<updated>2020-10-01T23:16:36Z</updated>

		<summary type="html">&lt;p&gt;Marnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox foobar2000 component&lt;br /&gt;
| name                 = External Tags&lt;br /&gt;
| module_name          = foo_external_tags&lt;br /&gt;
| developer            = Janne Hyvärinen (Case)&lt;br /&gt;
| repository           = &lt;br /&gt;
| released             = 2018-06-14&lt;br /&gt;
| released_ref         = &lt;br /&gt;
| stable_release       = 1.5.8&lt;br /&gt;
| stable_release_date  = 2019-10-21&lt;br /&gt;
| preview_release      = &lt;br /&gt;
| preview_release_date = &lt;br /&gt;
| foobar2000_minimum   = 1.4 alpha&lt;br /&gt;
| foobar2000_maximum   = &lt;br /&gt;
| foobar2000_ui_module = &lt;br /&gt;
| use                  = Tagging&lt;br /&gt;
| license              = ISC (modified)&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;External Tags&#039;&#039;&#039; adds transparent [[tag]]ging support to non-taggable file formats.&lt;br /&gt;
&lt;br /&gt;
External tags can be stored in an SQLite database or written to files in the same directories as the target audio files. This differs from m-TAGS in that the latter creates playlist-like files that must be loaded in place of the actual audio files, while external tags behave just like regular internal tags.&lt;br /&gt;
&lt;br /&gt;
The component was originally created to allow [[ReplayGain]]ing tracker modules.&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116045.msg958300.html#msg958300|External Tags origin story}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Concept==&lt;br /&gt;
&lt;br /&gt;
Some audio file types, like MIDI or game ROM rips, lack file-level tagging support. Vanilla foobar2000 fills this gap by storing tags added to such files in an internal database. These tags are kept in sync with their files across foobar2000&#039;s file operations and conversions, but cannot be accessed outside foobar2000 and are more prone to being lost than file-stored tags.&lt;br /&gt;
&lt;br /&gt;
External Tags is a pseudo-codec component that claims support for storing tags of any audio file type, and defers actual codec operations to each audio format&#039;s preferred codec. It stores tags in either a central SQLite database (similar to foobar2000&#039;s own solution), or in individual .tag files corresponding 1:1 to each audio file.&lt;br /&gt;
&lt;br /&gt;
==Required configuration==&lt;br /&gt;
&lt;br /&gt;
In Preferences &amp;gt; Playback &amp;gt; Decoding, the &amp;quot;External Tags (reader)&amp;quot; decoder, if visible (i.e. in foobar2000 versions &#039;&#039;below&#039;&#039; v1.5 beta 8), must have higher priority than the format to be externally tagged. The &amp;quot;External Tags (writer)&amp;quot; decoder should have lowest priority so that external tags won&#039;t take priority over any format&#039;s native tags by default.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&lt;br /&gt;
External Tags can be configured in Preferences &amp;gt; Advanced &amp;gt; Tagging &amp;gt; External Tags.&lt;br /&gt;
&lt;br /&gt;
Note: several relevant but infrequently used context commands in the Tagging submenu are only visible in the &#039;&#039;extended&#039;&#039; context menu — when you shift-right-click on files — to avoid menu clutter.&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;Create External Tags&amp;quot; command on audio files to open the familiar Properties dialog, and then click OK or Apply to externalize their tags. Any current internal tags will be copied and then left alone. If External Tags is configured to use tag files rather than SQLite, each audio file will now have a corresponding .tag file with the same name: e.g. test.mp3.tag next to test.mp3.&lt;br /&gt;
&lt;br /&gt;
Once a file has external tags, all tag operations are applied to its external tags only. File operations &#039;&#039;&#039;in foobar2000&#039;&#039;&#039; will transparently be applied to .tag files belonging to affected audio files so that they stay together.&lt;br /&gt;
&lt;br /&gt;
Files may be reverted to default internal tag handling with the &amp;quot;Remove External Tags&amp;quot; command, which will delete any relevant .tag files and SQLite entries.&lt;br /&gt;
&lt;br /&gt;
Manipulation of external tags outside foobar2000 — such as deleting, editing, or restoring .tag files from a backup — will not be reflected in foobar2000 automatically due to its tag cache. Use foobar2000&#039;s &amp;quot;Tagging &amp;gt; Reload info from file(s)&amp;quot; command to update displayed tags with values currently in SQLite and .tag files. Similarly, &amp;quot;Rewrite file tags&amp;quot; will flush any currently displayed values to external tag storage.&lt;br /&gt;
&lt;br /&gt;
==Advanced==&lt;br /&gt;
&lt;br /&gt;
[[File:Foo_external_tags-tag-file-editing.png|200px|thumb|right|.tag file in a text editor]]&lt;br /&gt;
.tag files are essentially binary dumped [https://wikipedia.org/wiki/APE_tag APE tags] and can be viewed or edited with an advanced text editor if necessary.&lt;br /&gt;
&lt;br /&gt;
TODO: explain remaining context menu commands like Wrap and Commit&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[foobar2000:Components/m-TAGS (foo_tags)|m-TAGS (foo_tags)]], a component that provides opaque external tag storage&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{foobar2000|http://www.foobar2000.org/components/view/foo_external_tags|External Tags}}&lt;br /&gt;
* {{ha|https://hydrogenaud.io/index.php/topic,116141.0.html|External Tags}}&lt;br /&gt;
* [https://foobar.hyv.fi/?view=foo_external_tags Home page]&lt;/div&gt;</summary>
		<author><name>Marnes</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components/External_Tags_(foo_external_tags)&amp;diff=29365</id>
		<title>Foobar2000:Components/External Tags (foo external tags)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components/External_Tags_(foo_external_tags)&amp;diff=29365"/>
		<updated>2020-10-01T18:21:31Z</updated>

		<summary type="html">&lt;p&gt;Marnes: the button is not labeled Save...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox foobar2000 component&lt;br /&gt;
| name                 = External Tags&lt;br /&gt;
| module_name          = foo_external_tags&lt;br /&gt;
| developer            = Janne Hyvärinen (Case)&lt;br /&gt;
| repository           = &lt;br /&gt;
| released             = 2018-06-14&lt;br /&gt;
| released_ref         = &lt;br /&gt;
| stable_release       = 1.5.8&lt;br /&gt;
| stable_release_date  = 2019-10-21&lt;br /&gt;
| preview_release      = &lt;br /&gt;
| preview_release_date = &lt;br /&gt;
| foobar2000_minimum   = 1.4 alpha&lt;br /&gt;
| foobar2000_maximum   = &lt;br /&gt;
| foobar2000_ui_module = &lt;br /&gt;
| use                  = Tagging&lt;br /&gt;
| license              = ISC (modified)&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;External Tags&#039;&#039;&#039; adds transparent [[tag]]ging support to non-taggable file formats.&lt;br /&gt;
&lt;br /&gt;
External tags can be stored in an SQLite database or written to files in the same directories as the target audio files. This differs from m-TAGS in that the latter creates playlist-like files that must be loaded in place of the actual audio files, while external tags behave just like regular internal tags.&lt;br /&gt;
&lt;br /&gt;
The component was originally created to allow [[ReplayGain]]ing tracker modules.&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116045.msg958300.html#msg958300|External Tags origin story}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Concept==&lt;br /&gt;
&lt;br /&gt;
Some audio file types, like MIDI or game ROM rips, lack file-level tagging support. Vanilla foobar2000 fills this gap by storing tags added to such files in an internal database. These tags are kept in sync with their files across foobar2000&#039;s file operations and conversions, but cannot be accessed outside foobar2000 and are more prone to being lost than file-stored tags.&lt;br /&gt;
&lt;br /&gt;
External Tags is a pseudo-codec component that claims support for storing tags of any audio file type, and defers actual codec operations to each audio format&#039;s preferred codec. It stores tags in either a central SQLite database (similar to foobar2000&#039;s own solution), or in individual .tag files corresponding 1:1 to each audio file.&lt;br /&gt;
&lt;br /&gt;
==Required configuration==&lt;br /&gt;
&lt;br /&gt;
In Preferences &amp;gt; Playback &amp;gt; Decoding, the &amp;quot;External Tags (reader)&amp;quot; decoder, if visible (i.e. in foobar2000 versions &#039;&#039;below&#039;&#039; v1.5 beta 8), must have higher priority than the format to be externally tagged. The &amp;quot;External Tags (writer)&amp;quot; decoder should have lowest priority so that external tags won&#039;t take priority over any format&#039;s native tags by default.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&lt;br /&gt;
External Tags can be configured in Preferences &amp;gt; Advanced &amp;gt; Tagging &amp;gt; External Tags.&lt;br /&gt;
&lt;br /&gt;
Note: several relevant but infrequently used context commands in the Tagging submenu are only visible in the &#039;&#039;extended&#039;&#039; context menu — when you shift-right-click on files — to avoid menu clutter.&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;Create External Tags&amp;quot; command on audio files to open the familiar Properties dialog, and then click OK or Apply to externalize their tags. Any current internal tags will be copied and then left alone. If External Tags is configured to use tag files rather than SQLite, each audio file will now have a corresponding .tag file with the same name: e.g. test.mp3.tag next to test.mp3.&lt;br /&gt;
&lt;br /&gt;
Once a file has external tags, all tag operations are applied to its external tags only. File operations &#039;&#039;&#039;in foobar2000&#039;&#039;&#039; will transparently be applied to .tag files belonging to affected audio files so that they stay together.&lt;br /&gt;
&lt;br /&gt;
Files may be reverted to default internal tag handling with the &amp;quot;Remove External Tags&amp;quot; command, which will delete any relevant .tag files and SQLite entries.&lt;br /&gt;
&lt;br /&gt;
Manipulation of external tags outside foobar2000 — such as deleting, editing, or restoring .tag files from a backup — will not be reflected in foobar2000 automatically due to foobar2000&#039;s tag cache. Use foobar2000&#039;s &amp;quot;Tagging &amp;gt; Reload info from file(s)&amp;quot; command to update displayed tags with values currently in SQLite and .tag files. Similarly, &amp;quot;Rewrite file tags&amp;quot; will flush any currently displayed values to external tag storage.&lt;br /&gt;
&lt;br /&gt;
==Advanced==&lt;br /&gt;
&lt;br /&gt;
[[File:Foo_external_tags-tag-file-editing.png|200px|thumb|right|.tag file in a text editor]]&lt;br /&gt;
.tag files are essentially binary dumped [https://wikipedia.org/wiki/APE_tag APE tags] and can be viewed or edited with an advanced text editor if necessary.&lt;br /&gt;
&lt;br /&gt;
TODO: explain remaining context menu commands like Wrap and Commit&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[foobar2000:Components/m-TAGS (foo_tags)|m-TAGS (foo_tags)]], a component that provides opaque external tag storage&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{foobar2000|http://www.foobar2000.org/components/view/foo_external_tags|External Tags}}&lt;br /&gt;
* {{ha|https://hydrogenaud.io/index.php/topic,116141.0.html|External Tags}}&lt;br /&gt;
* [https://foobar.hyv.fi/?view=foo_external_tags Home page]&lt;/div&gt;</summary>
		<author><name>Marnes</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components/External_Tags_(foo_external_tags)&amp;diff=29364</id>
		<title>Foobar2000:Components/External Tags (foo external tags)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components/External_Tags_(foo_external_tags)&amp;diff=29364"/>
		<updated>2020-10-01T18:17:34Z</updated>

		<summary type="html">&lt;p&gt;Marnes: minor grammar/brevity/clarity improvements&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox foobar2000 component&lt;br /&gt;
| name                 = External Tags&lt;br /&gt;
| module_name          = foo_external_tags&lt;br /&gt;
| developer            = Janne Hyvärinen (Case)&lt;br /&gt;
| repository           = &lt;br /&gt;
| released             = 2018-06-14&lt;br /&gt;
| released_ref         = &lt;br /&gt;
| stable_release       = 1.5.8&lt;br /&gt;
| stable_release_date  = 2019-10-21&lt;br /&gt;
| preview_release      = &lt;br /&gt;
| preview_release_date = &lt;br /&gt;
| foobar2000_minimum   = 1.4 alpha&lt;br /&gt;
| foobar2000_maximum   = &lt;br /&gt;
| foobar2000_ui_module = &lt;br /&gt;
| use                  = Tagging&lt;br /&gt;
| license              = ISC (modified)&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;External Tags&#039;&#039;&#039; adds transparent [[tag]]ging support to non-taggable file formats.&lt;br /&gt;
&lt;br /&gt;
External tags can be stored in an SQLite database or written to files in the same directories as the target audio files. This differs from m-TAGS in that the latter creates playlist-like files that must be loaded in place of the actual audio files, while external tags behave just like regular internal tags.&lt;br /&gt;
&lt;br /&gt;
The component was originally created to allow [[ReplayGain]]ing tracker modules.&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116045.msg958300.html#msg958300|External Tags origin story}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Concept==&lt;br /&gt;
&lt;br /&gt;
Some audio file types, like MIDI or game ROM rips, lack file-level tagging support. Vanilla foobar2000 fills this gap by storing tags added to such files in an internal database. These tags are kept in sync with their files across foobar2000&#039;s file operations and conversions, but cannot be accessed outside foobar2000 and are more prone to being lost than file-stored tags.&lt;br /&gt;
&lt;br /&gt;
External Tags is a pseudo-codec component that claims support for storing tags of any audio file type, and defers actual codec operations to each audio format&#039;s preferred codec. It stores tags in either a central SQLite database (similar to foobar2000&#039;s own solution), or in individual .tag files corresponding 1:1 to each audio file.&lt;br /&gt;
&lt;br /&gt;
==Required configuration==&lt;br /&gt;
&lt;br /&gt;
In Preferences &amp;gt; Playback &amp;gt; Decoding, the &amp;quot;External Tags (reader)&amp;quot; decoder, if visible (i.e. in foobar2000 versions &#039;&#039;below&#039;&#039; v1.5 beta 8), must have higher priority than the format to be externally tagged. The &amp;quot;External Tags (writer)&amp;quot; decoder should have lowest priority so that external tags won&#039;t take priority over any format&#039;s native tags by default.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&lt;br /&gt;
External Tags can be configured in Preferences &amp;gt; Advanced &amp;gt; Tagging &amp;gt; External Tags.&lt;br /&gt;
&lt;br /&gt;
Note: several relevant but infrequently used context commands in the Tagging submenu are only visible in the &#039;&#039;extended&#039;&#039; context menu — when you shift-right-click on files — to avoid menu clutter.&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;Create External Tags&amp;quot; command on audio files to open the familiar Properties dialog, and then Save to externalize their tags. Any current internal tags will be copied and then left alone. If External Tags is configured to use tag files rather than SQLite, each audio file will now have a corresponding .tag file with the same name: e.g. test.mp3.tag next to test.mp3.&lt;br /&gt;
&lt;br /&gt;
Once a file has external tags, all tag operations are applied to its external tags only. File operations &#039;&#039;&#039;in foobar2000&#039;&#039;&#039; will transparently be applied to .tag files belonging to affected audio files so that they stay together.&lt;br /&gt;
&lt;br /&gt;
Files may be reverted to default internal tag handling with the &amp;quot;Remove External Tags&amp;quot; command, which will delete any relevant .tag files and SQLite entries.&lt;br /&gt;
&lt;br /&gt;
Manipulation of external tags outside foobar2000 — such as deleting, editing, or restoring .tag files from a backup — will not be reflected in foobar2000 automatically due to foobar2000&#039;s tag cache. Use foobar2000&#039;s &amp;quot;Tagging &amp;gt; Reload info from file(s)&amp;quot; command to update displayed tags with values currently in SQLite and .tag files. Similarly, &amp;quot;Rewrite file tags&amp;quot; will flush any currently displayed values to external tag storage.&lt;br /&gt;
&lt;br /&gt;
==Advanced==&lt;br /&gt;
&lt;br /&gt;
[[File:Foo_external_tags-tag-file-editing.png|200px|thumb|right|.tag file in a text editor]]&lt;br /&gt;
.tag files are essentially binary dumped [https://wikipedia.org/wiki/APE_tag APE tags] and can be viewed or edited with an advanced text editor if necessary.&lt;br /&gt;
&lt;br /&gt;
TODO: explain remaining context menu commands like Wrap and Commit&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[foobar2000:Components/m-TAGS (foo_tags)|m-TAGS (foo_tags)]], a component that provides opaque external tag storage&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{foobar2000|http://www.foobar2000.org/components/view/foo_external_tags|External Tags}}&lt;br /&gt;
* {{ha|https://hydrogenaud.io/index.php/topic,116141.0.html|External Tags}}&lt;br /&gt;
* [https://foobar.hyv.fi/?view=foo_external_tags Home page]&lt;/div&gt;</summary>
		<author><name>Marnes</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components/External_Tags_(foo_external_tags)&amp;diff=29362</id>
		<title>Foobar2000:Components/External Tags (foo external tags)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components/External_Tags_(foo_external_tags)&amp;diff=29362"/>
		<updated>2020-10-01T16:03:11Z</updated>

		<summary type="html">&lt;p&gt;Marnes: adding chapters to explain concept, getting started, basic usage, advanced info, and simpler/nuanced config instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox foobar2000 component&lt;br /&gt;
| name                 = External Tags&lt;br /&gt;
| module_name          = foo_external_tags&lt;br /&gt;
| developer            = Janne Hyvärinen (Case)&lt;br /&gt;
| repository           = &lt;br /&gt;
| released             = 2018-06-14&lt;br /&gt;
| released_ref         = &lt;br /&gt;
| stable_release       = 1.5.8&lt;br /&gt;
| stable_release_date  = 2019-10-21&lt;br /&gt;
| preview_release      = &lt;br /&gt;
| preview_release_date = &lt;br /&gt;
| foobar2000_minimum   = 1.4 alpha&lt;br /&gt;
| foobar2000_maximum   = &lt;br /&gt;
| foobar2000_ui_module = &lt;br /&gt;
| use                  = Tagging&lt;br /&gt;
| license              = ISC (modified)&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;External Tags&#039;&#039;&#039; adds transparent [[tag]]ging support for non-taggable file formats. The tags can be stored in SQLite database or written as external files to the same directory as the target audio files. This differs from m-TAGS in that the latter creates a playlist-like file that must be loaded in place of the actual audio files, while External Tags behave just like regular internal tags.&lt;br /&gt;
&lt;br /&gt;
The component was originally created to allow [[ReplayGain]]ing tracker modules.&amp;lt;ref&amp;gt;{{ha|https://hydrogenaud.io/index.php/topic,116045.msg958300.html#msg958300|External Tags origin story}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Concept==&lt;br /&gt;
&lt;br /&gt;
Some audio file types, like MIDI or game ROM rips, have no file-level support for tagging. Foobar solves this by keeping an internal tag database when the user tags a file of which the codec reports not being able to store tags. These tags are then kept in sync with the file during file operations and conversions, but cannot be accessed by external programs and are prone to being lost more easily than file-stored tags.&lt;br /&gt;
&lt;br /&gt;
External Tags is a pseudo-codec component that claims support for reading and writing tags of any audio file type, and defers actual codec operations to each audio format&#039;s preferred codec. It stores tags in either an SQLite database (similar to foobar&#039;s own solution), or in individual .tag files corresponding 1:1 to (and sitting next to) each audio file.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&lt;br /&gt;
In Preferences &amp;gt; Playback &amp;gt; Decoding, the &amp;quot;External Tags (reader)&amp;quot; decoder, if visible (i.e. below Foobar2000 v1.5 beta 8+), must have higher priority than the format to be tagged. The &amp;quot;External Tags (writer)&amp;quot; decoder should have lowest priority so external tags won&#039;t take priority over native tags of any format.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&lt;br /&gt;
Note: several relevant but infrequently used context commands are only visible under Tagging in the extended context menu — i.e. when you shift-right-click on files — to avoid menu clutter.&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;Create External Tags&amp;quot; command on a file or set of files to open the Properties dialog, and then Save to externalize their tags. Any current internal tags will be copied and then left alone. If configured for tag files rather than SQLite, each audio file will now have a corresponding .tag file with the same name (e.g. test.mp3.tag next to test.mp3).&lt;br /&gt;
&lt;br /&gt;
Once a file has external tags, all tag read and write operations are applied to its external tags only. File operations in foobar will transparently apply to any .tag files belonging to affected audio files.&lt;br /&gt;
&lt;br /&gt;
(A) file(s) may be reverted to default internal tag handling with the &amp;quot;Remove External Tags&amp;quot; command, which will delete any relevant .tag file(s) and SQLite entries, and update foobar&#039;s tag cache. Note that manipulation (e.g. deletion) of external tags outside foobar will not appear to affect tags displayed in foobar immediately due to this cache. Use foobar&#039;s own &amp;quot;Tagging &amp;gt; Reload info from file(s)&amp;quot; command to synchronize displayed tags with values currently in SQLite and .tag files. Similarly, &amp;quot;Rewrite file tags&amp;quot; will flush any currently displayed values to external tag storage.&lt;br /&gt;
&lt;br /&gt;
==Advanced==&lt;br /&gt;
&lt;br /&gt;
[[File:Foo_external_tags-tag-file-editing.png|200px|thumb|right|.tag file in a text editor]]&lt;br /&gt;
.tag files are essentially binary dumped [https://wikipedia.org/wiki/APE_tag APE tags] and can be viewed or edited with an advanced text editor if necessary.&lt;br /&gt;
&lt;br /&gt;
TODO: explain remaining context menu commands like Wrap and Commit&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[foobar2000:Components/m-TAGS (foo_tags)|m-TAGS (foo_tags)]], a component that provides opaque external tag storage&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{foobar2000|http://www.foobar2000.org/components/view/foo_external_tags|External Tags}}&lt;br /&gt;
* {{ha|https://hydrogenaud.io/index.php/topic,116141.0.html|External Tags}}&lt;br /&gt;
* [https://foobar.hyv.fi/?view=foo_external_tags Home page]&lt;/div&gt;</summary>
		<author><name>Marnes</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:Foo_external_tags-tag-file-editing.png&amp;diff=29361</id>
		<title>File:Foo external tags-tag-file-editing.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:Foo_external_tags-tag-file-editing.png&amp;diff=29361"/>
		<updated>2020-10-01T15:49:22Z</updated>

		<summary type="html">&lt;p&gt;Marnes: How an External Tags .tag file looks in a text editor.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How an External Tags .tag file looks in a text editor.&lt;/div&gt;</summary>
		<author><name>Marnes</name></author>
	</entry>
</feed>