Difference between revisions of "Foobar2000:Components/External Tags (foo external tags)"
Beardgoggles (Talk | contribs) m (Added "See also" section.) |
(adding chapters to explain concept, getting started, basic usage, advanced info, and simpler/nuanced config instructions) |
||
Line 16: | Line 16: | ||
| license = ISC (modified) | | license = ISC (modified) | ||
}} | }} | ||
− | '''External Tags''' adds [[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. | + | '''External Tags''' 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. |
The component was originally created to allow [[ReplayGain]]ing tracker modules.<ref>{{ha|https://hydrogenaud.io/index.php/topic,116045.msg958300.html#msg958300|External Tags origin story}}</ref> | The component was originally created to allow [[ReplayGain]]ing tracker modules.<ref>{{ha|https://hydrogenaud.io/index.php/topic,116045.msg958300.html#msg958300|External Tags origin story}}</ref> | ||
+ | |||
+ | ==Concept== | ||
+ | |||
+ | 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. | ||
+ | |||
+ | 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's preferred codec. It stores tags in either an SQLite database (similar to foobar's own solution), or in individual .tag files corresponding 1:1 to (and sitting next to) each audio file. | ||
+ | |||
+ | ==Prerequisites== | ||
+ | |||
+ | In Preferences > Playback > Decoding, the "External Tags (reader)" decoder, if visible (i.e. below Foobar2000 v1.5 beta 8+), must have higher priority than the format to be tagged. The "External Tags (writer)" decoder should have lowest priority so external tags won't take priority over native tags of any format. | ||
==Usage== | ==Usage== | ||
− | |||
− | + | 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. | |
+ | |||
+ | Use the "Create External Tags" 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). | ||
+ | |||
+ | 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. | ||
+ | |||
+ | (A) file(s) may be reverted to default internal tag handling with the "Remove External Tags" command, which will delete any relevant .tag file(s) and SQLite entries, and update foobar'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's own "Tagging > Reload info from file(s)" command to synchronize displayed tags with values currently in SQLite and .tag files. Similarly, "Rewrite file tags" will flush any currently displayed values to external tag storage. | ||
+ | |||
+ | ==Advanced== | ||
+ | |||
+ | [[File:Foo_external_tags-tag-file-editing.png|200px|thumb|right|.tag file in a text editor]] | ||
+ | .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. | ||
+ | |||
+ | TODO: explain remaining context menu commands like Wrap and Commit | ||
==See also== | ==See also== | ||
− | * [[foobar2000:Components/m-TAGS (foo_tags)|m-TAGS (foo_tags)]], a component that | + | * [[foobar2000:Components/m-TAGS (foo_tags)|m-TAGS (foo_tags)]], a component that provides opaque external tag storage |
==References== | ==References== |
Revision as of 16:03, 1 October 2020
External Tags | |
---|---|
foo_external_tags | |
Developer(s) | Janne Hyvärinen (Case) |
Release information | |
Initial release | June 14, 2018 |
Stable release | 1.5.8 (October 21, 2019) |
foobar2000 compatibility | |
Minimum version | 1.4 alpha |
UI module(s) | N/A |
Additional information | |
Use | Tagging |
License | ISC (modified) |
View all components |
External Tags adds transparent tagging 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.
The component was originally created to allow ReplayGaining tracker modules.[1]
Concept
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.
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's preferred codec. It stores tags in either an SQLite database (similar to foobar's own solution), or in individual .tag files corresponding 1:1 to (and sitting next to) each audio file.
Prerequisites
In Preferences > Playback > Decoding, the "External Tags (reader)" decoder, if visible (i.e. below Foobar2000 v1.5 beta 8+), must have higher priority than the format to be tagged. The "External Tags (writer)" decoder should have lowest priority so external tags won't take priority over native tags of any format.
Usage
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.
Use the "Create External Tags" 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).
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.
(A) file(s) may be reverted to default internal tag handling with the "Remove External Tags" command, which will delete any relevant .tag file(s) and SQLite entries, and update foobar'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's own "Tagging > Reload info from file(s)" command to synchronize displayed tags with values currently in SQLite and .tag files. Similarly, "Rewrite file tags" will flush any currently displayed values to external tag storage.
Advanced
.tag files are essentially binary dumped APE tags and can be viewed or edited with an advanced text editor if necessary.
TODO: explain remaining context menu commands like Wrap and Commit
See also
- m-TAGS (foo_tags), a component that provides opaque external tag storage
References
- ↑ External Tags origin story on hydrogenaudio
External links
- External Tags on foobar2000.org
- External Tags on hydrogenaudio
- Home page