I created this for my own use. I am sharing it because if I have a need for it, maybe someone else does too....

The m-TAGS format offers a simple yet powerful solution to the media-metadata separation problem, which impacts the efficience of digital music collections and media distribution services alike. An m-TAGS file is media-independent. It just contains metadata (tags) describing a certain media source and a locator which identifies the source to which the metadata applies.

The format of an m-TAGS file is very simple. Each tag is represented by a pair "<tag name>" : "<tag value>", with the special "@" tag containing the location of the media resource. This format allows the defininion of any tag name and the assignment of any value to a tag. Support for multivalued tags is included, as well as for multi-part media indexing.

For a first "taste" of how the m-TAGS mechanism works, select File / m-TAGS / Create m-TAGS (in same folder) from the main menu. Then browse to a folder where you have some audio files and press OK.

A new file will be created in your folder, named !.tags. If you open this file with any text editor, you will see that it contains the metadata of your audio files in plain text. You can edit the metadata directly if you wish.

If you drop the file into a foobar2000 playlist, it looks like your audio files are loaded into the playlist, just as if you had dropped a playlist file. However, if you look at the properties of the playlist entries, you will notice that the !.tags file was loaded instead.

Your audio files will play normally, but any changes to the metadata will be reflected in the !.tags file, and NOT in the audio files. As long as you use m-TAGS files to load your music into foobar2000, your audio files will play normally, but they never be touched by foobar2000. They will be treated as "read-only" audio sources. Even the replaygain tags will be read and written from / to the !.tags file.

Note: keep in mind that also all move / copy / delete file operations will be performed on the m-TAGS files!

Notes (mostly generated by feedback):

1. The component will generate UTF-8 files. It will still be able to read non-UTF-8 files.

2. You can change the default name for multi-reference m-TAGS file from "!" to another name (Preferences / Advanced / Tagging / m-TAGS / m-TAGS creator).

3. There is an option to always write all tags for each media source, without implementing the "cascading" optimization. It may simplify scripting on m-TAGS files (Preferences / Advanced / Tagging / m-TAGS / m-TAGS creator).

4. there is a command line option to create m-TAGS files "in-place" given a certain folder. It behaves exactly as if the provided folder had been selected using "File / m-TAGS / Create m-TAGS (in same folder)". The syntax is:

CODE

foobar2000 /m-TAGS <folder>

If you know how to create a shell context-menu script, then you can use the above command to "m-TAG" on the fly a folder and all subdirs from within Windows Explorer. Obviously, fb2k will start if it is not open. However, if you use

1) you can now write the tags from an m-TAGS file back to the media files;2) m-TAGS will not attempt anymore to automatically load technical information from remote media files (i.e. URI's);3) a new predefined tag "DURATION" allows to specify the duration of a track when technical information is not automatically loaded (it is ignored otherwise);4) a new advanced setting option was added for the m-TAGS creator to retain media file extensions (i.e. scanning "track.mp3" will generate a "track.mp3.tags" file, rather than a "track.tags" file).

Love it so far. Whenever I buy an album, I usually want to alter the tags one way or another, but I also want to keep the files as untouched as possible. I've been generating cuesheets and editing them instead for a while, but this is way more versatile.

The only problem I see now is track-splitting. While this thing can read embedded cuesheets and tag the tracks separately, attempting to embed a cuesheet in a .tags file just gives me a non-functioning tag with the CUESHEET name.

Love it so far. Whenever I buy an album, I usually want to alter the tags one way or another, but I also want to keep the files as untouched as possible. I've been generating cuesheets and editing them instead for a while, but this is way more versatile.

The only problem I see now is track-splitting. While this thing can read embedded cuesheets and tag the tracks separately, attempting to embed a cuesheet in a .tags file just gives me a non-functioning tag with the CUESHEET name.

I use embedded cues all the time. I do NOT use external cue files at all, though. I am not sure that I understand what you are trying to do: embedding a cue sheet in an m-TAGS file? What do you mean for that? m-TAGS files cannot embed cue sheets. You just "m-TAG" either the cue sheet file or the audio file with the embedded cue sheet.

Please give me some more details. I do not understand if this is a bug or if you are trying to do something I did not foresee.