HydrogenAudio

Hosted Forums => foobar2000 => 3rd Party Plugins - (fb2k) => Topic started by: luigimercurio on 2012-09-24 03:51:08

Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-24 03:51:08
m-TAGS (foo_tags)

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.

Download the component on the foobar2000 website (http://www.foobar2000.org (http://www.foobar2000.org)) or here: http://m-tags.org/foo_tags.zip (http://m-tags.org/foo_tags.zip)

For additional information and technical details please visit http://m-tags.org (http://m-tags.org)


Usage

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: [Select]
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

Code: [Select]
foobar2000 /quiet /m-TAGS <folder>


then you can "m-TAG" your folders without opening fb2k's main window.

----------------------------------------------------------------------------------------

Version 1.0 now available. Main upgrades are:

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).

----------------------------------------------------------------------------------------

Version 1.02 fixes some issues with archived (zip/rar) files.

----------------------------------------------------------------------------------------

Version 1.03 adds the ability to edit durations as a regular tag ("%DURATION%"), and fixes a small glitch regarding local vs. remote locators

-----------------------------------------------------------------------------------------

Version 1.1 adds a few significant features:

1) m-TAGS files now encapsulate album art data. They reflect album art data present in the media file, and allow editing of the album art, but, abiding to m-TAGS philosophy, the album art is NOT inserted/removed into the media file until explicitely requested via the Tagging/Write m-TAGS to media files menu command. Album art is kept in binary files located in the folder where the m-TAGS file is.

2) "Pure" m-TAGS files are now supported. These are files without locators. They do not encapsulate any playable media, but they can be used by other input components to store metadata without having to write a specialized mechanism. All metadata i/o (including album art data i/o) can be deferred to the m-TAGS component. An instance of the input component may be obtained by simply calling input_entry::g_open_for_info_read(p_info_read_instance, NULL, <path to m-TAGS file>, p_abort) or input_entry::g_open_for_info_write(p_info_write_instance, NULL, <path to m-TAGS file>, p_abort).

The extension for a pure m-TAGS file is ".mtags". Note that you must obtain an m-TAGS input instance to load/save tags from/into an ".mtags" file using fb2k's SDK, because these files will NOT be recognized as media files (as they are not, indeed media files, nor files encapsulating media). As such, they will be trated in a playlist context just like any other non-recognized file.

When you use fb2k SDK calls, you MUST append an asterisk to the file path, because the pseudo-extension ".mtags*" IS recognized by the m-TAGS input component, while ".mtags" IS NOT (as previously explained). For example, if you want to store your metadata in a file named "C:/Music/My Album/album.mtags" then you can obtain an m-TAGS I/O instance by calling input_entry::g_open_for_info_write(p_info_write_instance, NULL, "C:/Music/My Album/album.mtags*", p_abort).

Similarly, you can obtain an album art editor for the same file by calling album_art_editor::g_get_interface(p_album_art_editor, "C:/Music/My Album/album.mtags*").

3) Input instances and album art editors may be opened for files which do not exist yet. In such case, m-TAGS automatically creates an empty, single-tracked m-TAGS component, and the file is only created if tags are edited and committed. This way, there is no need to physically create a pure m-TAGS file until it is actually needed (i.e. until tags are edited by the user or tags are insterted by the calling input component and a commit requested).

This mechanism is expecially useful when writing input components which offer support for network URI's. Developers may concentrate on connection and decoding issues, leaving m-TAGS to carry out metadata and album art I/O operations on pure m-TAGS files stored in a designated folder. These files could be indexed so that if a network URI is loaded again, the metadata is automatically loaded.

-----------------------------------------------------------------------------------------

Version 1.12 fixes a few nasty issues. Thanks a million to WilB and RiCON for the unvaluable help. Version 1.1 and 1.11 are deprecated. Please upgrade.

------------------------------------------------------------------------------------------

Version 1.13 fixes a nasty bug in the JSON parser which made the component crash foobar2000 on windows XP. Many many thanks to Nisto for his cooperation and his patience.

Also, this version supports transcoding of streamed media.

Title: m-TAGS component (foo_tags)
Post by: hyakukv on 2012-09-24 05:01:05
Wow! I was just thinking of this today. What a coincidence.

This might be what I need. So this mod does not add any tags to the audio file at all? I needed a way to tag audio files but still continue seeding them to others.
Title: m-TAGS component (foo_tags)
Post by: romor on 2012-09-24 06:54:27
Interesting idea and great file format choice
foobar2000.org CSS rip? Funny

I tried it, and it crashed foobar without crash dump (latest foobar on XP up to date)
First crash was when I hit Cancel on opened dialog to browse for mtag location, and second time when I tried to access command from context menu. No third time, I removed it.

What I noticed in this small interval, is that it asks user to browse for location to save this mtag file, while I expected that this file should be placed in same folder as audio file(s) itself.
For me this is annoying in the same way as foobar' own cover embedding, when user has to browse for location and items source folder isn't considered - that's why I never use it.
Title: m-TAGS component (foo_tags)
Post by: tpijag on 2012-09-24 12:56:17
hyakukv

After reading the OP, are you really needing someone to spend time answering your question?
Quote
your audio files will play normally, but they never be touched by foobar2000. They will be treated as "read-only"

Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-24 13:12:27
Wow! I was just thinking of this today. What a coincidence.

This might be what I need. So this mod does not add any tags to the audio file at all? I needed a way to tag audio files but still continue seeding them to others.


No, it does not touch the audio files at all.

I do not understand what you mean when you say "seeding them to others", so I do not know if you can accomplish that.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-24 13:29:43
Interesting idea and great file format choice
foobar2000.org CSS rip? Funny

I tried it, and it crashed foobar without crash dump (latest foobar on XP up to date)
First crash was when I hit Cancel on opened dialog to browse for mtag location, and second time when I tried to access command from context menu. No third time, I removed it.

What I noticed in this small interval, is that it asks user to browse for location to save this mtag file, while I expected that this file should be placed in same folder as audio file(s) itself.
For me this is annoying in the same way as foobar' own cover embedding, when user has to browse for location and items source folder isn't considered - that's why I never use it.


romor:

Thanks for taking the time to tell me about the crash.

When did you download the component? I had a name clash problem and I substituted the DLL last Saturday. It should (hopefully) work now: http://m-tags.org/foo_tags,dll (http://m-tags.org/foo_tags,dll).

If it still crashes (or if you'd rather not bother reinstalling it), then would you please be kind enough to let me know what components do you have installed? My "name clash" issue still produced crash reports, so the problem you experience may be a different one, after all.

-------------------

As for the file location, you can choose it to be the same one where the audio files are. In fact, this is how I use it myself, and that is why I created a menu item "Create m-TAGS (in same folder)" to do just that. The location you have to browse for is the location of the audio files. If you select the root folder where all your files are, then it will create m-TAGS files in all the subfolders where it finds audio files, i.e. you can "m-tag" your whole library "in-place" in one shot. Note that if you do that, then you should also change "Preferences / Shell Intagration / Restrict incoming files to" to "*.tags" (again, that is what I do myself). Otherwise if you drop a folder in foobar2000, then both the m-TAGS file(s) and the original media files will be loaded (i.e. all your files will be duplicated). This does not happen, of course if you choose a separate folder as the location of the m-TAGS files.

The reason that it asks you to choose a folder in the context menu is that in general you can select files from your playlist that are located in different folders. If they are all in the same folder, then you just have to select that folder.
Title: m-TAGS component (foo_tags)
Post by: romor on 2012-09-24 13:47:24
That is the version I've tried, I downloaded it couple of minutes before reporting. It's bit exact with current link you posted
Don't know, but usually foobar catches the crash and creates dump. In both cases I experienced crash, crash files are created but empty.
I'll PM you my component list.

---
Great to learn about avoiding browse dialog, I guess I didn't have enough time to see everything
Thanks
Title: m-TAGS component (foo_tags)
Post by: Kohlrabi on 2012-09-24 13:52:10
Wow! I was just thinking of this today. What a coincidence.

This might be what I need. So this mod does not add any tags to the audio file at all? I needed a way to tag audio files but still continue seeding them to others.

I do not understand what you mean when you say "seeding them to others", so I do not know if you can accomplish that.
It's a reference to online file sharing via BitTorrent (http://en.wikipedia.org/wiki/Bittorrent), where you offer, or "seed", files to other users via a peer to peer network. This tool will save file sharers from having to create copies of their (likely ill-begotten) gains for tagging.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-24 15:01:19
Quote
It's a reference to online file sharing via BitTorrent (http://en.wikipedia.org/wiki/Bittorrent), where you offer, or "seed", files to other users via a peer to peer network. This tool will save file sharers from having to create copies of their (likely ill-begotten) gains for tagging.


Yes, you can do that, although... you shouldn't !!!


As long you use m-TAGS, foobar2000 will leave the files alone when you change tags. Playback will work as usual.
Title: m-TAGS component (foo_tags)
Post by: Andreasvb on 2012-09-24 18:15:33
Some things I've noticed:

- The sorting in EsPlaylist is very strange (using: %album% %date%. Sort incoming files: %path%).
- The !.tags-file only list the first track with ALBUM. I guess it only shows if a track differs from a tag, (to keep it smaller and more efficient, maybe?)

Found that Waveform Seekbar didn't displayed the waveform (with analyze tracks not in media library disabled). Adding !.tags in Restrict to under File types in Media Library solved it.
Title: m-TAGS component (foo_tags)
Post by: MrMonkey on 2012-09-24 18:27:42
It's a reference to online file sharing via BitTorrent (http://en.wikipedia.org/wiki/Bittorrent), where you offer, or "seed", files to other users via a peer to peer network. This tool will save file sharers from having to create copies of their (likely ill-begotten) gains for tagging.

BitTorrent can be and is used to distribute music legally (e.g. etree.org) just as Foobar2000 is used to play and organize music regardless of the source.  Both are tools that can be used as the user sees fit.
Title: m-TAGS component (foo_tags)
Post by: sevenarts on 2012-09-24 20:09:32
This is a great concept, and one that I'd love to implement for my own collection.

One problem comes to mind immediately: no portable MP3 player currently supports this kind of tagging, so to really be useful to anyone with one of these devices, there'd have to be some kind of on-the-fly writing of ID3/whatever tags to files transferred to the player, the same way that lossless files are often transcoded to MP3 on the fly when transferring to a portable device that can't handle lossless codecs.

Title: m-TAGS component (foo_tags)
Post by: Kohlrabi on 2012-09-24 20:09:38
It's a reference to online file sharing via BitTorrent (http://en.wikipedia.org/wiki/Bittorrent), where you offer, or "seed", files to other users via a peer to peer network. This tool will save file sharers from having to create copies of their (likely ill-begotten) gains for tagging.

BitTorrent can be and is used to distribute music legally (e.g. etree.org) just as Foobar2000 is used to play and organize music regardless of the source.  Both are tools that can be used as the user sees fit.
I'm not blaming the protocol for its users, but I wanted to make sure that the most common use of it didn't go unmentioned.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-24 20:58:59
It's a reference to online file sharing via BitTorrent (http://en.wikipedia.org/wiki/Bittorrent), where you offer, or "seed", files to other users via a peer to peer network. This tool will save file sharers from having to create copies of their (likely ill-begotten) gains for tagging.

BitTorrent can be and is used to distribute music legally (e.g. etree.org) just as Foobar2000 is used to play and organize music regardless of the source.  Both are tools that can be used as the user sees fit.


I agree. It was just a comment to the "ill-begotten" gains. :-)
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-24 21:42:44
Some things I've noticed:

- The sorting in EsPlaylist is very strange (using: %album% %date%. Sort incoming files: %path%).
- The !.tags-file only list the first track with ALBUM. I guess it only shows if a track differs from a tag, (to keep it smaller and more efficient, maybe?)

Found that Waveform Seekbar didn't displayed the waveform (with analyze tracks not in media library disabled). Adding !.tags in Restrict to under File types in Media Library solved it.


Andreas:

- I cannot be too specific about the esPlaylist issue, because I do not know what you mean for "strange". But maybe the following will help.

By default, m-tags generates ONE m-tags file per folder, and foobar2000 treats that as a multitrack file (with subindexes for each track). If you sort by %path%, your results may be "weird" because the %path% does not contain the track index. That is why it is recommended to always sort by %path_sort% (which understands indexes) rather than by %path% in foobar2000. If this is the problem, as I suspect, then you may avoid it either by changing the sorting rule from %path% to %path_sort%, or by cheking the option "Preferences / Advanced / Tagging / m-TAGS / Create a separate m-TAGS file for each source file". This way, rather than seeing a "!.tags" file, you should end up with one ".tags" file per audio file.

- You are right about your observation. The m-TAGS file obeys the following rule:

"If a tag set does not contain a tag, the value of that tag is the same as that tag's value in the previous set" (see http://m-tags.org/Overview.html) (http://m-tags.org/Overview.html))

That is because, conceivably, you could create an m-TAGS file manually and it would be quite tedious (and error-prone) to write the same things over and over.

- I do not know much about the Waveform Seekbar, but I am glad that the solution was simple.


Thanks a lot for the comments.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-24 21:56:44
This is a great concept, and one that I'd love to implement for my own collection.

One problem comes to mind immediately: no portable MP3 player currently supports this kind of tagging, so to really be useful to anyone with one of these devices, there'd have to be some kind of on-the-fly writing of ID3/whatever tags to files transferred to the player, the same way that lossless files are often transcoded to MP3 on the fly when transferring to a portable device that can't handle lossless codecs.


If you transcode your files before copying them onto the portable device, then you do not have a problem, because if you transcode a file loaded into foobar2000 via an m-TAGS file, then the transcoded (output) file will indeed contain the same tag values present in the m-TAGS file.

If you do NOT transcode, then you will have to copy the tags back into the media files. With foobar2000 you can do that by simply copying and pasting the tags from and to the respective "Metadata" tabs of the "Properties" window. You can also do it in batch (all-at-once).
Title: m-TAGS component (foo_tags)
Post by: Andreasvb on 2012-09-24 22:51:13
Works with %path_sort%, thanks.
Title: m-TAGS component (foo_tags)
Post by: BenB on 2012-09-24 23:03:58
I'll preface all of this by saying I use Columns UI.


Very promising plugin but it has issues with folders with names containing letters with diacritical marks or punctuation.

If said folder is opened as the source folder using File > m-TAGS > Create m-TAGS (in same folder), it will fail. (Interestingly, if you open a folder as source without diacritics in its name but containing subfolders that do have them, it works).

If said folder is opened as the source folder using File > m-TAGS > Create m-TAGS (in separate folder), it will fail to create a file but will create a destination folder with a name cut off at where it encounters diacritics or punctuation. (Unfortunately, I could only delete the folders using an elevated command prompt  I believe this may have been caused by selecting a destination folder which had diacritics in its name. I'm not really interested in trying to re-create this).

If contents of said folder are selected in a playlist by clicking on a Grouping or by selecting them, using right-click Tagging > Create m-TAGS file resulted in a file containing all tracks, all of which loaded and played in foobar if I selected a destination folder which didn't contain diacritics or punctuation in its name (Oddly however, it seems to cause foobar to immediately add the tags file to the library. I have to investigate this further to be sure). Selecting the contents folder as the destination folder results in failure to create a file but will create a destination folder (again with a name cut off at where it encounters diacritics or punctuation) in the parent folder (Luckily I was able to simply delete the folders).

Other things I noticed:

Using right-click Tagging > Create m-TAGS file in Album List Panel has varying degrees of success. Selecting various parent nodes usually resulted in 1) creation of a file containing all tracks of which either only the first album/folder or random tracks from various albums/folders loaded in foobar 2) creation of a file which either did not contain all tracks or did not contain all albums/folders 3) failure to create a file.

Selecting a parent Grouping (%album artist% in this case) in NG Playlist and using right-click Tagging > Create m-TAGS file resulted in a file that contained all tracks from all albums/folders, all of which loaded and played in foobar  .

A person cannot access network files/folders using File > m-TAGS > Create m-TAGS (in same folder) or File > m-TAGS > Create m-TAGS (in separate folder) if using a limited account.

One question:

I'm not too familiar with foobar. Is the file path not accessible for use with File > m-TAGS > Create m-TAGS (in same folder)? I'm wondering why one has to set the source and destination with this option.

EDIT:
I am using an administrative account on W7 64.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-24 23:49:33
Ben:

The first problem (diacritical marks) should be fixed: http://m-tags.org/foo_tags.dll (http://m-tags.org/foo_tags.dll)

It was due to the fact that I had removed the transcoding to UTF-8 of file paths selected through the main window (and that should also explain why diacritical marks were working in subdirs: they were still properly transcoded to UTF-8). UTF-8 transcoding is back.....

Thanks for pointing out the Album List panel issue. I had never used the file creator within that panel. I confirm the odd behaviour and I will look into it.

I am not sure about your comment on the "limited accounts". If you have a limited account on the network, then I assume it is just right that you cannot access the network files. Maybe I am not understanding, though....

Regarding your final question: Yes the file path is accessible, but the "Create m-TAGS (in same folder)" does not use information on the playlist or album list. They may be all empty, at that. The "right click" version uses the paths. The main menu commands can create m-TAGS files from a folder, traversing all the subdirectories, whatever this folder is. You can select your C:\ folder and it will create m-TAGS files for ALL your media in the C disk. Again, I hope I understood the question!
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-25 00:55:16
Other things I noticed:

Using right-click Tagging > Create m-TAGS file in Album List Panel has varying degrees of success. Selecting various parent nodes usually resulted in 1) creation of a file containing all tracks of which either only the first album/folder or random tracks from various albums/folders loaded in foobar 2) creation of a file which either did not contain all tracks or did not contain all albums/folders 3) failure to create a file.


Ben:

It looks like foobar2000 does not like modeless operations when it comes to the album list handles. I changed the operation to modal (i.e. blocking) and it seems to work. The random results were due to f2k releasing the handle list before the operation was completed, with obvious random results.

You can download the (hopefully) fixed version: http://m-tags.org/foo_tags.dll (http://m-tags.org/foo_tags.dll)
Title: m-TAGS component (foo_tags)
Post by: BenB on 2012-09-25 01:25:24
Thanks for the UTF-8 fix. Good deal.

The network folders are accessible but not with your component via m-TAGS File menu entries. What I meant by "limited" account was someone using a Standard user account on their computer instead of an Administrator account. The dialog that opens when using m-TAGS File menu entries doesn't allow for choosing a source folder beyond the user account which renders them useless to a Standard user whose media is stored on the network. (Conversely, the dialog that opens when using m-TAGS right-click menu does allow one to select a destination folder on the network when using a Standard account).

Yes, you answered my question regarding Create m-TAGS (in same folder). Thank you.

EDIT:

The Album list issues appear to be gone. Thanks again for another fix.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-25 02:20:12
The network folders are accessible but not with your component via m-TAGS File menu entries. What I meant by "limited" account was someone using a Standard user account on their computer instead of an Administrator account. The dialog that opens when using m-TAGS File menu entries doesn't allow for choosing a source folder beyond the user account which renders them useless to a Standard user whose media is stored on the network. (Conversely, the dialog that opens when using m-TAGS right-click menu does allow one to select a destination folder on the network when using a Standard account).


Ben:

The main difference between the "context" operation and the "main menu" operations is that the first uses "GetSaveFileName" to browse for files, while the second uses "SHBrowseForFolder". It looks like something that works in the first does not work in the second. I am not a Windows networking super-expert, so you may know better than me. I played a bit with the BROWSEINFO flags used by SHBrowseForFolder and I changed them to "BIF_SHAREABLE | BIF_NEWDIALOGSTYLE | BIF_NONEWFOLDERBUTTON" (I had "BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE | BIF_NONEWFOLDERBUTTON"). Alas, I have no way to test the changes on my network (everything works on mine). If you know what I should change, or if you can test the DLL with the new flags (http://m-tags.org/foo_tags.dll), I will welcome your help and feedback.
Title: m-TAGS component (foo_tags)
Post by: BenB on 2012-09-25 04:50:09
No, I still cannot access network folders on the NAS from a Standard account. My knowledge is rather limited. I'm sorry I cannot help you beyond testing. Someone may be able to help you with the problem if you posted an inquiry in the Development forum.

I'm using W7 64 bit.

Title: m-TAGS component (foo_tags)
Post by: romor on 2012-09-25 10:28:38
FYI I run m-tags in local encoding (reason: it does not crash here), but looking forward to working utf-8 version

Wanted to show off with this idea of storing foobar library data in portable format as json is, which can be handled by any decent environment or trivially converted to XML and what not
Check it out: http://nbviewer.ipython.org/url/dl.dropbox...nb/m-tags.ipynb (http://nbviewer.ipython.org/url/dl.dropbox.com/u/30782742/ipynb/m-tags.ipynb)
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-25 13:58:52
FYI I run m-tags in local encoding (reason: it does not crash here), but looking forward to working utf-8 version

Wanted to show off with this idea of storing foobar library data in portable format as json is, which can be handled by any decent environment or trivially converted to XML and what not
Check it out: http://nbviewer.ipython.org/url/dl.dropbox...nb/m-tags.ipynb (http://nbviewer.ipython.org/url/dl.dropbox.com/u/30782742/ipynb/m-tags.ipynb)


The UTF-8 version is the currently downloadable one: http://m-tags.org/foo_tags.dll (http://m-tags.org/foo_tags.dll)

You may very well have downloaded it already without knowing.

As for your python scripting demo, I find it very interesting. You point out that if the tags are in a single file, as opposed to "one-per-media-file", then things need to be approached differently. This is VERY MUCH the case, and it is because, by way of optimization, m-TAGS does not store all tag values for all entries, but "cascades" the values through the entries. This means that you would have to write a special algorithm to read the m-TAGS file.

I have the algorithm, of course. Let me know if you need it. But I wonder if I should add an option to create m-TAGS files WITHOUT cascading the values, for people who would like to take advantage of their JSON format for scripting. The inpact in space and loading time would probably be minimal anyway.
Title: m-TAGS component (foo_tags)
Post by: sevenarts on 2012-09-25 14:14:35
A few notes now that I've experimented a little more with this component:

- It would be really nice to have a preferences setting to control the naming of the !.tags file, especially with title formatting. If I have a .tags file for an album, I'd want to name it something like %album artist% - %date% - %album%.

- There should also be a preferences setting to control if creating m-tags in a seperate directory mimics the original directory structure or just creates a flat list - obviously, that could only be done and would only make sense if the !.tags files were instead named according to a title formatting pattern. Probably, it'd make sense to set up at least 2 title formatting patterns - one for creating m-tags in the same directory, one for separate directory.

- I don't use embedded artwork, but instead have folder.jpg in the same directory as the songs. If I create the .tags files in the same directory, the artwork displays correctly in foobar. But if I create the .tags files in a seperate folder, no artwork displays - obviously because foobar is loading the .tags file, not the audio files, and there may be no way around this, but it is inconvenient.

- On a related note, if the m-tags file isn't in the same folder as the audio files, even embedded artwork doesn't display.
Title: m-TAGS component (foo_tags)
Post by: romor on 2012-09-25 14:53:08
The UTF-8 version is the currently downloadable one: http://m-tags.org/foo_tags.dll (http://m-tags.org/foo_tags.dll)

You may very well have downloaded it already without knowing.


Ah, I thought you just reverted to previous version, but after downloading it it seems that it's not the same as initial utf-8 version.
I installed it now, and hope for no crash

And even if it would crash I won't go back to version with user locale


Quote
As for your python scripting demo, I find it very interesting. You point out that if the tags are in a single file, as opposed to "one-per-media-file", then things need to be approached differently. This is VERY MUCH the case, and it is because, by way of optimization, m-TAGS does not store all tag values for all entries, but "cascades" the values through the entries. This means that you would have to write a special algorithm to read the m-TAGS file.

I have the algorithm, of course. Let me know if you need it. But I wonder if I should add an option to create m-TAGS files WITHOUT cascading the values, for people who would like to take advantage of their JSON format for scripting. The inpact in space and loading time would probably be minimal anyway.

Thanks,

that should be simple in Python (assuming cascaded json file loaded in `dat` object):

Code: [Select]
for d in dat:                                   # for each json object
    for k in dat[0].keys():                     # for each key in json's top object
        if k not in d.keys():                   # if key doesn't exist in any of json's (cascaded) objects
            d.update({k : dat[0].get(k)})       # update the object


Result is updated uncascaded dictionary object `dat` (consider it json object)

I guess this can be further simplified in oneliner iterator/comprehension or so, but this way it's easier to see the logic


To repeat it again, I find your idea excellent.
You expose all metadata in portable format, writing new metadata should be faster then writing it in media file. Various benefits to keeping media readonly.
I wonder why no one else explored such possibility. Only drawback, if I can say it like that, could be that this concept may be confusing to regulars
I myself also will spend some time experimenting until I get familiar with this workflow

Cheers
Title: m-TAGS component (foo_tags)
Post by: romor on 2012-09-25 19:00:00
Noticed 2 issues with latest version:

1. Although it declares as UTF-8, it seems that does not read UTF-8, but in local codepage. It understands UTF-8 just fine if I retag m-tags afterwards, but while reading tags from files, metadata is normalized in user locale

2. Option to create tags in separate folder is dangerous if folder for storing m-tags is chosen inside location of source files. Explanation:

root
+ artist1
+ artist2

If I make m-tags folder as root subfolder and select root as source, then recursion makes additional ghost folders as it reads also this m-tags folder (I guess traversing is alphabetic so perhaps all artist with names starting in anything "lower" then M in this example are ghosted)
Title: m-TAGS component (foo_tags)
Post by: romor on 2012-09-25 21:35:49
3. It changes foobar' working/default path, which is the folder where foobar executable is located. I'm not sure which command does this, perhaps menu command - create m-tags in same folder.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-26 03:51:19
Noticed 2 issues with latest version:

1. Although it declares as UTF-8, it seems that does not read UTF-8, but in local codepage. It understands UTF-8 just fine if I retag m-tags afterwards, but while reading tags from files, metadata is normalized in user locale

2. Option to create tags in separate folder is dangerous if folder for storing m-tags is chosen inside location of source files. Explanation:

root
+ artist1
+ artist2

If I make m-tags folder as root subfolder and select root as source, then recursion makes additional ghost folders as it reads also this m-tags folder (I guess traversing is alphabetic so perhaps all artist with names starting in anything "lower" then M in this example are ghosted)


romor:

1. That should be fixed now: http://m-tags.org/foo_tags.dll (http://m-tags.org/foo_tags.dll). Please let me know....

2. You are really pushing it...... Yes it is traversed in alphabetical order, so you are right. I MAY decide to put in a check for such an irresponsible user behaviour :-)
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-26 04:15:14
3. It changes foobar' working/default path, which is the folder where foobar executable is located. I'm not sure which command does this, perhaps menu command - create m-tags in same folder.


Can you be a little more specific? I do not notice this behaviour.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-26 04:31:48
A few notes now that I've experimented a little more with this component:

- It would be really nice to have a preferences setting to control the naming of the !.tags file, especially with title formatting. If I have a .tags file for an album, I'd want to name it something like %album artist% - %date% - %album%.

- There should also be a preferences setting to control if creating m-tags in a seperate directory mimics the original directory structure or just creates a flat list - obviously, that could only be done and would only make sense if the !.tags files were instead named according to a title formatting pattern. Probably, it'd make sense to set up at least 2 title formatting patterns - one for creating m-tags in the same directory, one for separate directory.

- I don't use embedded artwork, but instead have folder.jpg in the same directory as the songs. If I create the .tags files in the same directory, the artwork displays correctly in foobar. But if I create the .tags files in a seperate folder, no artwork displays - obviously because foobar is loading the .tags file, not the audio files, and there may be no way around this, but it is inconvenient.

- On a related note, if the m-tags file isn't in the same folder as the audio files, even embedded artwork doesn't display.


- I will add an option to change to "!" to soemething else. I will not mess around with title formats, though, because it may lead to disastrous results. If you want to rename the m-TAGS files, all you have to do is load them into fb2k and use the fb2k contextual file operations to move / copy / rename them. You can use title formatting too, in this case. However, remember to check the option "Preferences / Advanced / Tagging / m-TAGS / m-TAGS creator / Only use absolute paths in references", otherwise the locators in the m-TAGS files will be invalid if you move or copy the files (rename is ok, of course).

- Same as above

- The artwork is an issue. Not for me as I always keep my m-TAGS files together with the media files, but I understand the struggle! One solution is of course to keep all non-audio files together with the m-TAGS files rather than with the media. After all, these files can be considered "tag-like" in nature, as they are not directly related to the audio sources, and they may also may change in time (you may get a cover with better resolution, you may rescan the booklet, etc.). Otherwise, if the relationship m-TAG file / audio files is fixed (for example, the m-TAGS folder structure replicated the audio files structure) then you can easily add a new Album Art source in "Preferences / Display".

- That is strange. It should be an always-or-never situation, independent of file colocation. I guess it depends on the way fb2k reads theembedded artwork. I may investigate this.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-26 04:47:53
UPDATE

New version here: http://m-tags.org/foo_tags.dll (http://m-tags.org/foo_tags.dll)

New additions:

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

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

3. Added 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. I added 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: [Select]
foobar2000 /m-TAGS <folder>


If you know how to create a shell context-menu script (it is quite easy in XP, I do not know about W7), 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, f you use

Code: [Select]
foobar2000 /quiet /m-TAGS <folder>


then you can "m-TAG" your folders without opening fb2k's main window.
Title: m-TAGS component (foo_tags)
Post by: romor on 2012-09-26 09:21:26
1. That should be fixed now: http://m-tags.org/foo_tags.dll (http://m-tags.org/foo_tags.dll). Please let me know....

Works!

2. You are really pushing it...... Yes it is traversed in alphabetical order, so you are right. I MAY decide to put in a check for such an irresponsible user behaviour :-)

It's not the point that it's alphabetical of course, but it includes it's own folder and makes .tags files for created .tags files. It can't create m-tags for .tags! Anyhow it seems like you have corrected that

Can you be a little more specific? I do not notice this behaviour.

Command that changes foobar folder is context menu command "create m-tags files".
It's bad practice, and other components depend on it. This is last issue involving such practice: http://www.hydrogenaudio.org/forums/index....st&p=805524 (http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=85107&view=findpost&p=805524)
Others also if you search the forums


Have a nice day
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-26 14:24:34
The m-TAGS mechanism is created to create .tags from .tags indeed! That is because I want to be able to create different views from files I loaded via m-TAGS!

Let me give you an example. If I own Frank Sinatra's "Complete Reprise Studio Recordings" box, then I may m-TAG it and load the m-TAG files into fb2k. At that point, by properly selecting the various subsets of tracks, I can recreate EVERY original album, EVERY single and even any of the gazillion Frank's compilations put out by Reprise. m-TAGS would take the tags from the original m-TAGS file(s) and copy them into my "extracted" m-TAGS files. Then, all I have to do is to change the album related tags (%album%, %track number%) in each of them and I am done. Just have to add the artwork to the folders and I have a nice Sinatra Reprise discography without physical duplication!

This feature is very important. That is why m-TAGS files should not be in a subfolder of the files to which they point. For the software there is no way (unless I add complicated checks, and the again someone may not want them) to figure out if an m-TAG file should be processed or not, because it cannot figure out what the user's intentions were when he created the m-TAG files. Even if I add a check for when the files are created the first time (i.e. do not parse what I just created) there is no way to enforce such a rule if you RESCAN the same folder (and subfolders) a second time.

-----------------

As for the foobar folder issue, I will definitely look into it.


Thanks again!
Title: m-TAGS component (foo_tags)
Post by: romor on 2012-09-26 15:18:52
The m-TAGS mechanism is created to create .tags from .tags indeed! That is because I want to be able to create different views from files I loaded via m-TAGS!

If that the case than it fails at some point.
Tags created from other tags, as in above described scenario, produce non valid tags. Try it yourself. BTW I use each tags file for each file option.
It's also interesting that it's same behavior  for both relative and absolute paths
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-26 15:57:49
The m-TAGS mechanism is created to create .tags from .tags indeed! That is because I want to be able to create different views from files I loaded via m-TAGS!

If that the case than it fails at some point.
Tags created from other tags, as in above described scenario, produce non valid tags. Try it yourself. BTW I use each tags file for each file option.
It's also interesting that it's same behavior  for both relative and absolute paths


Would you be able to send me a log and one of the misconstructed tags files?
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-26 16:26:48
The m-TAGS mechanism is created to create .tags from .tags indeed! That is because I want to be able to create different views from files I loaded via m-TAGS!

If that the case than it fails at some point.
Tags created from other tags, as in above described scenario, produce non valid tags. Try it yourself. BTW I use each tags file for each file option.
It's also interesting that it's same behavior  for both relative and absolute paths


Never mind. I see what happens and I know why. I will fix it later today.




Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-09-26 22:07:16
If that the case than it fails at some point.
Tags created from other tags, as in above described scenario, produce non valid tags. Try it yourself. BTW I use each tags file for each file option.
It's also interesting that it's same behavior  for both relative and absolute paths


Should be fixed. Let me know if it works for you, please!

http://m-tags.org/foo_tags.dll (http://m-tags.org/foo_tags.dll)

Title: m-TAGS component (foo_tags)
Post by: BenB on 2012-09-26 22:14:48

- On a related note, if the m-tags file isn't in the same folder as the audio files, even embedded artwork doesn't display.

- That is strange. It should be an always-or-never situation, independent of file colocation. I guess it depends on the way fb2k reads theembedded artwork. I may investigate this.


If I'm remembering correctly, whether foobar shows external/folder artwork or embedded artwork depends upon size when both are present. Foobar displays whichever is larger. So... it may be that foobar detects the folder artwork as being larger (but cannot display it) and thus fails to display the embedded artwork.

@sevenarts:
Try removing the artwork from one of your folders and see if foobar will display the embedded artwork. On the other hand, if you're a Columns UI user, you can try going to Preferences > Display > Columns UI > Artwork tab and selecting Embedded artwork under Built-in foobar2000 artwork reader mode:.
Title: m-TAGS component (foo_tags)
Post by: BoraBora on 2012-09-28 00:44:33
The m-TAGS mechanism is created to create .tags from .tags indeed! That is because I want to be able to create different views from files I loaded via m-TAGS!

Audio tags frustrated me for years because I couldn't do that. Your idea is positively brilliant! A thousand thanks!
Title: m-TAGS component (foo_tags)
Post by: Eclipsed Moon on 2012-09-30 08:27:40
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.
Title: m-TAGS component (foo_tags)
Post by: zaede on 2012-09-30 21:26:43
Very nice tool for creating virtual albums

Many thanks!
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-10-02 18:08:43
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.
Title: m-TAGS component (foo_tags)
Post by: hyakukv on 2012-10-03 05:44:53
Hi. Thanks for this app. It works the way I wanted it to.

Is it possible to somehow change or locate the music source? In case I move the music to a different location. Thanks.
Title: m-TAGS component (foo_tags)
Post by: Eclipsed Moon on 2012-10-03 14:00:42
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.

A file that already has an embedded cue in it works fine.  An external cue works fine, too, but I'm trying to reduce how many extra files I'm using.

If I understand correctly from looking at files in a hex editor, an embedded cuesheet is actually simply another tag, and when foobar2000 sees it, it knows what to do.  If it's a tag in m-TAGS, though, foobar2000 still sees it, but doesn't know what to do, and it only shows up as an extra tag in the Properties dialog.  So, as you said, m-TAGS cannot embed a cuesheet, but I don't understand just why it can't.
Title: m-TAGS component (foo_tags)
Post by: hyakukv on 2012-10-03 18:05:54
I'm actually having problems playing certain tracks in my library. I'm sure the .tags! file points to the correct location of the song files.

I'm getting the following error:
Quote
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Fujitou_Chika_-_K-ON!_character_image_song_series_-_Manabe_Nodoka_[w_scans]_(FLAC)\!.tags" / index: 1

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Various_Artists_-_K-ON!_Official_Band_Yarou_yo!!_[w_scans]_(FLAC)\DISC 1\!.tags" / index: 17

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Hyakkoku_Hajime_-_K-ON!_ORIGINAL_SOUND_TRACK_[w_scans]_(FLAC)\!.tags" / index: 18

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Various_Artists_-_K-ON!_Official_Band_Yarou_yo!!_[w_scans]_(FLAC)\DISC 1\!.tags" / index: 13

Do you know how I could fix this? I was thinking a feature that allows u to change the path of source file would fix it. I'm trying to avoid recreating the m-TAGS files, because I have created a lot of tags for these songs already.
Title: m-TAGS component (foo_tags)
Post by: foomark on 2012-10-05 08:17:08
I'd like to try this new component but i'm not able to download it :S
My browser load the page http://m-tags.org (http://m-tags.org) forever, with no success.
Is it down or it's just a problem of mine?
Title: m-TAGS component (foo_tags)
Post by: BenB on 2012-10-05 19:57:53
The site appears to be down. I haven't had the chance to download and try the latest "version".
Title: m-TAGS component (foo_tags)
Post by: romor on 2012-10-05 20:32:40
You can grab last version from here: http://db.tt/WB4rkiRt (http://db.tt/WB4rkiRt)

I'll remove the file when it becomes obsolete
Title: m-TAGS component (foo_tags)
Post by: hyakukv on 2012-10-05 21:26:58
I'm actually having problems playing certain tracks in my library. I'm sure the .tags! file points to the correct location of the song files.

I'm getting the following error:
Quote
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Fujitou_Chika_-_K-ON!_character_image_song_series_-_Manabe_Nodoka_[w_scans]_(FLAC)\!.tags" / index: 1

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Various_Artists_-_K-ON!_Official_Band_Yarou_yo!!_[w_scans]_(FLAC)\DISC 1\!.tags" / index: 17

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Hyakkoku_Hajime_-_K-ON!_ORIGINAL_SOUND_TRACK_[w_scans]_(FLAC)\!.tags" / index: 18

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Various_Artists_-_K-ON!_Official_Band_Yarou_yo!!_[w_scans]_(FLAC)\DISC 1\!.tags" / index: 13

Do you know how I could fix this? I was thinking a feature that allows u to change the path of source file would fix it. I'm trying to avoid recreating the m-TAGS files, because I have created a lot of tags for these songs already.


I noticed that the fields <@REFERENCED_FILE> is empty and <REFERENCED_INDEX> is "-1" for all the songs that are getting the above error. On songs that are working <@REFERENCED_FILE> points to the exact location of the songs, and <@REFERENCED_INDEX> is 0. On all songs <@> field is the relative path to the song.

Title: m-TAGS component (foo_tags)
Post by: tofu on 2012-10-08 07:40:46
thank you!

i can get rid of mediamonkey now!

all this needs is the ability to manually or auto rescan the selected directory for added files and it will be perfect

edit: and be able to ignore cue files and playlists
Title: m-TAGS component (foo_tags)
Post by: elemiah on 2012-10-08 13:36:59
Hello !

It's not a important feature, but what about adding the ability to have some tags that are still written to the targeted file?
It would be useful for those who tag rating and last played info in the file.

Is it possible?
Title: m-TAGS component (foo_tags)
Post by: MrMonkey on 2012-10-09 13:58:30
I've tried connectiong to the m-tags.org website many times over the last few days to take a look at the plugin.  The site always seems to be down.
Down For Everyone (http://www.downforeveryoneorjustme.com/m-tags.org) reports it's not just my connection either.
Title: m-TAGS component (foo_tags)
Post by: hyakukv on 2012-10-11 20:02:29
I'm actually having problems playing certain tracks in my library. I'm sure the .tags! file points to the correct location of the song files.

I'm getting the following error:
Quote
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Fujitou_Chika_-_K-ON!_character_image_song_series_-_Manabe_Nodoka_[w_scans]_(FLAC)\!.tags" / index: 1

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Various_Artists_-_K-ON!_Official_Band_Yarou_yo!!_[w_scans]_(FLAC)\DISC 1\!.tags" / index: 17

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Hyakkoku_Hajime_-_K-ON!_ORIGINAL_SOUND_TRACK_[w_scans]_(FLAC)\!.tags" / index: 18

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Various_Artists_-_K-ON!_Official_Band_Yarou_yo!!_[w_scans]_(FLAC)\DISC 1\!.tags" / index: 13

Do you know how I could fix this? I was thinking a feature that allows u to change the path of source file would fix it. I'm trying to avoid recreating the m-TAGS files, because I have created a lot of tags for these songs already.


I noticed that the fields <@REFERENCED_FILE> is empty and <REFERENCED_INDEX> is "-1" for all the songs that are getting the above error. On songs that are working <@REFERENCED_FILE> points to the exact location of the songs, and <@REFERENCED_INDEX> is 0. On all songs <@> field is the relative path to the song.


I hope the creator of this plugin comes back. There are still some problems with the functionality
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-10-27 15:58:40
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.

A file that already has an embedded cue in it works fine.  An external cue works fine, too, but I'm trying to reduce how many extra files I'm using.

If I understand correctly from looking at files in a hex editor, an embedded cuesheet is actually simply another tag, and when foobar2000 sees it, it knows what to do.  If it's a tag in m-TAGS, though, foobar2000 still sees it, but doesn't know what to do, and it only shows up as an extra tag in the Properties dialog.  So, as you said, m-TAGS cannot embed a cuesheet, but I don't understand just why it can't.


OK, I am back. Sorry for the "disappearance".

You are right. An embedded cue file works and an external cue file works too. But ypou cannot embed a cue file in m-tags, because a cue file is an "index" file that identifies parts of a media file. As that is not the purpose of m-tags, there is no point in embedding it (m-tags can refer to parts of a media file, but not "define" them, so it can use a cue file, but not contain it or substitute for it).

If you want to reduce the number of files, I suggest that you just do as I do: always embed the cue file into the media file (where it really belongs, as it pertains to the media structure rather than its metadata). On fb2k, just use "Utilities/ Edit cue sheet" from the context menu and import the cue sheet into the media file (cannot do that for WAV files, though).

I actually thought of making m-tags "index-aware", so that cue files could be eliminated altogether, but I ended up thinking that this would be too dangerous a practice, because cue files are the proper recognized method of doing that for CD-originated media and also because it could break the gapless playing feature. Besides, if you use m-tags with other media, then the problem compounds (embedding IFO's for DVD media??? What about TIFFs?)

Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-10-27 16:13:10
Hi. Thanks for this app. It works the way I wanted it to.

Is it possible to somehow change or locate the music source? In case I move the music to a different location. Thanks.


Yes. the locator is editable as any other tag. Its name is "@". If you use scripts, then you can access it as "@" when writing, and as "$info(@)" when reading. For example, if you relocate an album to a different folder, you can use the the "Properties / Tools / Automatically fill values..." window like this:

Source: "Other..." / "$replace($info(@),'/<old folder>/','/<new folder>/')"
Pattern: @

After you click "OK" you will se the "@" tag listed among the tags. If you click "Apply", then the locators will be changed in the m-tags files.
Of course you can do the same with masstagger, or you can "Add new filed..." manually in the properties window and manually edit the locator (Field name = @).

You could even display the "@" tag on the playlist (as a column on the Columns UI interface, for example) and edit it directly there. But I cannot frankly foresee that anyone would want the locator shown in the playlist! LOL

Needless to say, because an m-tags file is a text file, you can also directly edit the file or write an external script to change the locator ("@") tags.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-10-27 16:16:12
You can grab last version from here: http://db.tt/WB4rkiRt (http://db.tt/WB4rkiRt)

I'll remove the file when it becomes obsolete


Thanks romor. The site is up now, but keep your copy, for now!
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-10-27 16:33:47
thank you!

i can get rid of mediamonkey now!

all this needs is the ability to manually or auto rescan the selected directory for added files and it will be perfect

edit: and be able to ignore cue files and playlists


The ability to rescan is there. Just rescan the folder(s) and make sure that "File / Preferences / Advanced / Tagging / m-TAGS / m-TAGS creator / Replace existing files" is unchecked. the m-TAGS creator does not rewrite existing m-TAGS files if that checkbox is unchecked, so rescanning is equivalent to updating.

As for the other request, playlists are already ignored. CUE files are not ignored because they are part of the media bundle (just like an IFO file is part of a DVD media, and not just the VOB files). The rule applied is that if a CUE file has the same name as another media file (e.g. Image.cue / Image.flac), then only the CUE file is scanned (because that is the file containing the media structure information and possibly some basic metadata).

If you embed the CUE file into the media files, then you can remove the CUE files altogether and live happily everafter without CUE files around. In this case the media file are scanned, the embedded CUE files are found and processed, and the m-TAGS files are properly created.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-10-27 16:39:16
Hello !

It's not a important feature, but what about adding the ability to have some tags that are still written to the targeted file?
It would be useful for those who tag rating and last played info in the file.

Is it possible?


It is possible, but it would be in contrast with the core mission of m-TAGS, which is never to touch the media files, so it is not going to be implemented. But why would you want to do that, if I may ask? I would imagine that, for example, the last played info would be the LAST thing anyone would want to have directly into the media file. In fact m-TAGS was created in order to prevent just that from happening.

Title: m-TAGS component (foo_tags)
Post by: tofu on 2012-10-27 16:41:29
Thanks for the reply. My album rips with a single cue file in the directory seem to double up on my playlist. The doubled files pointing to the cue error out, while the ones pointing to the flac (and other audio formats) are fine.

I guess the only solution would be for me to delete the cue files, but I was hoping to preserve my torrents' directory structure as they follow a set of strict ripping rules.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-10-27 16:48:28
I'm actually having problems playing certain tracks in my library. I'm sure the .tags! file points to the correct location of the song files.

I'm getting the following error:
Quote
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Fujitou_Chika_-_K-ON!_character_image_song_series_-_Manabe_Nodoka_[w_scans]_(FLAC)\!.tags" / index: 1

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Various_Artists_-_K-ON!_Official_Band_Yarou_yo!!_[w_scans]_(FLAC)\DISC 1\!.tags" / index: 17

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Hyakkoku_Hajime_-_K-ON!_ORIGINAL_SOUND_TRACK_[w_scans]_(FLAC)\!.tags" / index: 18

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Various_Artists_-_K-ON!_Official_Band_Yarou_yo!!_[w_scans]_(FLAC)\DISC 1\!.tags" / index: 13

Do you know how I could fix this? I was thinking a feature that allows u to change the path of source file would fix it. I'm trying to avoid recreating the m-TAGS files, because I have created a lot of tags for these songs already.


I noticed that the fields <@REFERENCED_FILE> is empty and <REFERENCED_INDEX> is "-1" for all the songs that are getting the above error. On songs that are working <@REFERENCED_FILE> points to the exact location of the songs, and <@REFERENCED_INDEX> is 0. On all songs <@> field is the relative path to the song.


I hope the creator of this plugin comes back. There are still some problems with the functionality



The behaviour you observe is the correct behavior of m-TAGS when it does not find the files referenced by the locator (@) tags. It is usually due to the files having been moved after creating the m-TAGS file, but it may be a bug caused by some peculiar characteristic of the media files' names.

Please check the "File / Preferences / Advanced / Tagging / m-TAGS / Enable verbose logging". Then open "View / Console" and check "Write log". Then replicate the error and send me the log file.

Thank you.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-10-27 16:50:58
Thanks for the reply. My album rips with a single cue file in the directory seem to double up on my playlist. The doubled files pointing to the cue error out, while the ones pointing to the flac (and other audio formats) are fine.

I guess the only solution would be for me to delete the cue files, but I was hoping to preserve my torrents' directory structure as they follow a set of strict ripping rules.


Can you please send me the names of a CUE / FLAC (or whatever other format) pair of files? And also the contents of one of the CUE files? Thank you.
Title: m-TAGS component (foo_tags)
Post by: r3v0 on 2012-11-21 17:39:09
Hi, I'm trying your component and I found a bug I think.
I use the DUI playlist view and Simplaylist side by side,
and when dropping the *.tags file onto one of both everything looks fine,
but when I switch to the other playlist view, the playlist entries are replaced with the *real* files.
Title: m-TAGS component (foo_tags)
Post by: r3v0 on 2012-11-21 19:23:41
Hi, I'm trying your component and I found a bug I think.
I use the DUI playlist view and Simplaylist side by side,
and when dropping the *.tags file onto one of both everything looks fine,
but when I switch to the other playlist view, the playlist entries are replaced with the *real* files.


Strangely, I can't reproduce it anymore now???
Title: m-TAGS component (foo_tags)
Post by: hyakukv on 2012-11-27 07:36:15
I'm actually having problems playing certain tracks in my library. I'm sure the .tags! file points to the correct location of the song files.

I'm getting the following error:
Quote
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Fujitou_Chika_-_K-ON!_character_image_song_series_-_Manabe_Nodoka_[w_scans]_(FLAC)\!.tags" / index: 1

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Various_Artists_-_K-ON!_Official_Band_Yarou_yo!!_[w_scans]_(FLAC)\DISC 1\!.tags" / index: 17

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Hyakkoku_Hajime_-_K-ON!_ORIGINAL_SOUND_TRACK_[w_scans]_(FLAC)\!.tags" / index: 18

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"N:\Black Box\foobar2000\m-TAGS\[LonE] K-ON! Music Collection\[LonE]_Various_Artists_-_K-ON!_Official_Band_Yarou_yo!!_[w_scans]_(FLAC)\DISC 1\!.tags" / index: 13

Do you know how I could fix this? I was thinking a feature that allows u to change the path of source file would fix it. I'm trying to avoid recreating the m-TAGS files, because I have created a lot of tags for these songs already.


I noticed that the fields <@REFERENCED_FILE> is empty and <REFERENCED_INDEX> is "-1" for all the songs that are getting the above error. On songs that are working <@REFERENCED_FILE> points to the exact location of the songs, and <@REFERENCED_INDEX> is 0. On all songs <@> field is the relative path to the song.


I hope the creator of this plugin comes back. There are still some problems with the functionality



The behaviour you observe is the correct behavior of m-TAGS when it does not find the files referenced by the locator (@) tags. It is usually due to the files having been moved after creating the m-TAGS file, but it may be a bug caused by some peculiar characteristic of the media files' names.

Please check the "File / Preferences / Advanced / Tagging / m-TAGS / Enable verbose logging". Then open "View / Console" and check "Write log". Then replicate the error and send me the log file.

Thank you.


Hi. I noticed this happens to song directories that have .flac soundtracks and additional .cue files.

Here is a directory I have troubles in:
(http://i.imgur.com/EivJ1.png)

Notice how I have 3 different .cue file (kanji, romaji, and original). Now look at my foobar2000 playlist, notice how there is also 3 of the album listed in it.
(http://i.imgur.com/wUYXU.png)

This is what happens when I play any of these songs:
(http://i.imgur.com/jBuBh.png)

I solved this problem by editing the !.tags file for each of the directories that have this problem. I just removed the entries with the .cue in them.
I hope this helps!
Title: m-TAGS component (foo_tags)
Post by: Fire on 2012-12-04 20:50:05
I second hyakukv.

There are lots of good sites that the album must be split by tracks, and in the same directory of the album it must have the cue file as other files, like log, etc.
And it isn't uncommon to see this even in scene lossless releases. I have a lot of releases in this format, being really painful to edit every !.tags file by hand, and for this reason I would love if there was an option to exclude cue files.

One possible suggestion may be to reverse the current approach: only read the cue file if there is an media file with the same name, otherwise don't read the cue file.
Or another suggestion that may futureproof it is to make a textfield where the user can fill "restrict to" or "exclude" file types, just like the "restrict to" option on foobar media library preferences, with a default value already in there.

Thanks!
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2012-12-13 22:35:08
Sorry for the delay.

Well, philosophically, I do not agree with the need for .cue files for split tracks. It is exactly to avoid that that I created m-tags.

However I am definitely sensitive to the difficulty of getting out of habits or to the delicacies imposed by legacy systems.

I will look into the "restrict to certain kinds of files" solution. It sounds reasonable independently of the cue issue.


But please wait until January, as I am on vacation.... Thanks !!!
Title: m-TAGS component (foo_tags)
Post by: dubwai on 2012-12-17 19:16:36
Media-metadata separation problem already solved by foo_input_monkey.dll.
Two years ago, when I start use private trackers, I start searching solution to solve problem, how to get proper tags (or just replaygain info) in my musical collection without modification files, because I want to seed all what I download. And I find solution with foo_input_monkey.dll. It allows to use Monkey's Audio Image Link File (APL) native in foobar2000. APL is simple file, with path to media and APE tags (http://wiki.hydrogenaudio.org/index.php?title=APEv2_specification). One APL file = one track. Path to source can be relative, exact or just name of file in the same directory. APE tags fully specification support, so in fb2k I can get anything I want, for example multi value tags and etc. It’s standard APE tags, witch works with all fb2k functions natively: convector, all taggers (discogs, mb, cddb, etc), etc. This example of APL file:
Spoiler (click to show/hide)

As you can see, you can use with any codec type of source files, works with everything witch supported by fb2k. Only bad thing that foobar2000 can create natively APL files, only for image .ape files with .cue. And it’s main reason why I post to this thread. Maybe author want to not to create own bicycle and just wrote plugin for already exciting solution of metadata separation problem.
But you may ask, how you say that you find solution, when this link files can be done only for ape image+cue files? Answer is simple, I wrote simple vbs script. And my work flow, now very simple and quick. First of all, I download music content from whatcd. Then, I give to script path of the album (all whatcd torrents must be in separate folders:) and he create APL files file_name.apl for MP3 or FLAC files, witch it found in directory what I give to him. It practice, I just enter to folder what I download in total commander and hit only one button with start script, another solutions maybe more automatic, for example automatic start script, when utorrent finish downloading, but I don’t try it, because I add to collection not all what I download. Then my fb2k collection settings to monitor only *APL files in my music directories, so when APL files created it automatic adds to fb2k collection. When this apl file with only path to file and without tags gets in foobar2000, fb2k read tags of source files and wrote them to APL files. So in collection your new albums already get tags from original files, and then you can correct them as you wish.
Already size of my collection is ~2TB (MP3 and FLAC) and all it, foobar2000 see throw apl files. I don't find any problems with this solution. But year ago one of my hdd start damage, so many music files was damaged, but I just copy it to another hdd, start recheck hash in utorrent, download damage pieces and main things, that it don’t touch my fb2k collection tags and statistic. WOW! I love p2p!
So again, my English is not perfect, may be I wrote not well for understanding, what I mean, but I think that this solution is already perfect works for this kind of problem, except creating apl files. Because in m-tags I don't find any advantage over APL method. So may be author of m-tags want to solve problem with creating apl files with foo_plugin, and start populized it (web site) because vbs method not trivial to understand for average p2p user.

This my vbs script:
Spoiler (click to show/hide)

This random apl file from my collection:
Spoiler (click to show/hide)


P.S. Also I will glad to answer any questions, because I want to get more seeds on torrents  And may be anyone adds any info about APL files to hydrogenaudio wiki, and maybe gives link to solution, how to used them to solve metada separation problem.
Title: m-TAGS component (foo_tags)
Post by: romor on 2012-12-17 20:02:19
WTF?
Whats use of CreateObject("OlePrn.OleCvt.1")?
Wait! Don't answer.

You can do what your script does in two line batch file, as you are just copying same template for each file in all subfolders.

This component purpose if way above letting you tag seeds, so I see your post off-topic and inappropriate.
Title: m-TAGS component (foo_tags)
Post by: dubwai on 2012-12-17 20:52:30
romor
I also, don't want to discuss my script, because I am not author of it. Also you are right, it searches files recursive. When two years ago, I try to wrote this script in batch I have some errors with encoding, because if create apl files not in UTF-8 without BOM (in batch I don't find how to do it), fb2k have some errors. I don't remember exact problem, but if you wish i can find my notes about this. Also I don't see problem, if this realization bigger then 2 lines works for me around two years without errors.

The main idea of my post, was to show, that fb2k (because this topic in fb2k forums) already have a native (Peter author of foo_monkeys_input) working solution of problem, that describe author of this topic. Only difference in format of storing metadata. APE tags instead JSON.
Title: m-TAGS component (foo_tags)
Post by: Ket on 2012-12-24 21:57:22
nthing the request for the ability to ignore .cue files :) I've only just come across this component and I can tell it's going to save me a lot of heartache in the future!
I'm too impatient to wait until January though (although I'm going to have to).
But thanks for creating this in the first place!
Title: m-TAGS component (foo_tags)
Post by: gabri.ns on 2013-06-28 09:28:43
my experience using this:


hope it can be fixed soon

my request is:


hope it will be realized
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-08-13 13:58:57
my experience using this:
  • it work great with local file. but,
  • it can't be used to tag opened remote file, using windows share. mtags file created, can be opened, but can't be played.
  • when trying to create mtag using file>mtag menu, remote shared folder only show administrative share, like C$, D$, dll. other share doesn't show up.


hope it can be fixed soon

my request is:
  • updating exist file instead of replacing it when creating mtags file, giving possibility to create single db.
  • when creating mtags file from opened file, add possibility to automatically replace selected file with mtags one, so we don't have to delete them from playlist and manually adding mtags file.


hope it will be realized



Can you please send me logs of your attempted operations?
Title: m-TAGS component (foo_tags)
Post by: EpicForever on 2013-08-13 20:20:07
I needed some technical detail, but as m-tags.org website is down I have to ask the question here rather than get it there. Can I use this component as a temporary container for preserving metadata? My scenario: I got FLAC file, well tagged (using custom fields). I noticed it has a glitch somewhere so I opened wave editor, removed the glitch and saved it. In most cases wave editor discards most of metadata, and preserves only few standard fields. In worst case tagging is not supported in wave editor at all. Other situation: I got old mp3 file - well tagged, with custom fields - that's obvious. Finally it gets released digitally, so I buy the new mp3 at Beatport. I put the same name for new file as for old one and overwrite old one with new one. In both cases I need a way to preserve tags in an external container to restore them back in edited FLAC or newer mp3 file. It is possible with foobar with Media Library disabled or at least with disabled real time monitoring of ML folders. But since I started using ML i don't want to disable it. Does m-TAGS have option/command to first save metadata to .tags file, and then to write them into mp3/flac files from .tags file?
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-08-13 22:57:11
I needed some technical detail, but as m-tags.org website is down I have to ask the question here rather than get it there. Can I use this component as a temporary container for preserving metadata? My scenario: I got FLAC file, well tagged (using custom fields). I noticed it has a glitch somewhere so I opened wave editor, removed the glitch and saved it. In most cases wave editor discards most of metadata, and preserves only few standard fields. In worst case tagging is not supported in wave editor at all. Other situation: I got old mp3 file - well tagged, with custom fields - that's obvious. Finally it gets released digitally, so I buy the new mp3 at Beatport. I put the same name for new file as for old one and overwrite old one with new one. In both cases I need a way to preserve tags in an external container to restore them back in edited FLAC or newer mp3 file. It is possible with foobar with Media Library disabled or at least with disabled real time monitoring of ML folders. But since I started using ML i don't want to disable it. Does m-TAGS have option/command to first save metadata to .tags file, and then to write them into mp3/flac files from .tags file?


The site is up now.

At any rate, it is quite easy. Load both the FLAC and the m-TAGS file into foobar, then open the properties of the m-TAGS file; then select and copy (Ctrl-C) all tags. Then open the properties of the FLAC file, select the same tags and paste (Ctrl-V).

Please note that if you have custom fields, then you will have to either first add the same fields to the FLAC file (in the same order as in the m-TAGS file!!!), or (easier, if your custom fields are always the same) set those fields as YOUR standard fields in "Preferences/Advanced/Tagging/Properties dialog/Standard fields". In the latter case, the fields will always show in the properties dialog, and always in the proper order.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-08-13 23:00:26
In any case, you're better off making proper use of m-TAGS, so that you never have to deal with embedded tags anymore at all. It is the reason why I created it in the first place: never to touch the media file!
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-08-14 00:51:29
!!!!! NEW RELEASE !!!!!

Fixed (hopefully) a bug that prevented resolution of paths on network shared drives.

Also, added the much demanded option to exclude certain kinds of files. The excluded extensions may be separated by commas, colons, semicolons, spaces, or '|'.

Let me know if it works! Thanks to all for the patience.
Title: m-TAGS component (foo_tags)
Post by: EpicForever on 2013-08-14 17:24:14
Thanks for your reply. That is really nice option  Anyway I thought that there might be specific command in the component like "import from", "export to". Anyway it is good thing for my purposes.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-08-15 19:07:45
Thanks for your reply. That is really nice option  Anyway I thought that there might be specific command in the component like "import from", "export to". Anyway it is good thing for my purposes.


It would be too error prone to do an export (the import is done by default).

But the rationale for the tool is the opposite, i.e. to allow collectors to AVOID doing what you are trying to do. If you work with the m-TAGS files instead of the original media files, then you can replace the media files all the times you want, without ever loosing your tags. And viceversa, you can changeor add all the tags you want without ever worrying if those tags are supported by the media format.
Title: m-TAGS component (foo_tags)
Post by: Rescator on 2013-08-17 15:09:13
Interesting! I'll try and factor this into this http://m-tags.org/Overview.html (http://m-tags.org/Overview.html)
While I'd rather have seen a XML solution instead of JSON, I do like the way that say multiple composers for example are handled in http://m-tags.org/Overview.html (http://m-tags.org/Overview.html)
Title: m-TAGS component (foo_tags)
Post by: Anakunda on 2013-08-22 18:07:50
This plugin crashes foobar2000 on starup, where can I send the crash report?
Title: m-TAGS component (foo_tags)
Post by: gabri.ns on 2013-08-23 04:59:26
Can you please send me logs of your attempted operations?

sorry for the late reply.
this is when creating mtags from shared folder
Code: [Select]
m-TAGS:: Number of tracks: 8
m-TAGS:: Cannot open referenced file as media source: file://\\/citose-marketin/mp3/_others/02 Windstruck OST - Knockin On Heaven-_s Door (Orchestra Ver.).mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
m-TAGS:: Cannot open referenced file as media source: file://\\/citose-marketin/mp3/_others/02. All you need is love - Lynden David Hall.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
m-TAGS:: Cannot open referenced file as media source: file://\\/citose-marketin/mp3/_others/03 Set Fire to the Rain.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
m-TAGS:: Cannot open referenced file as media source: file://\\/citose-marketin/mp3/_others/04 Windstruck OST - Changing Clothes (Stay Pizzicato Ver.).mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
m-TAGS:: Cannot open referenced file as media source: file://\\/citose-marketin/mp3/_others/12 Blue Suede Shoes.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
m-TAGS:: Cannot open referenced file as media source: file://\\/citose-marketin/mp3/_others/14 - vanessa williams - save the best for last [etmusica com] [grupoet].mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
m-TAGS:: Cannot open referenced file as media source: file://\\/citose-marketin/mp3/_others/15-leona_lewis-stop_crying_your_heart_out.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
m-TAGS:: Cannot open referenced file as media source: file://\\/citose-marketin/mp3/_others/16 when youre gone acoustic version.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
Properties dialog refresh: 0:00.000057
Properties dialog display refresh: 0:00.001556

and this is when trying to play the file
Code: [Select]
Opening track for playback: "C:\Users\kadiv Peng-I\Downloads\Compressed\asd.tags" / index: 1
m-TAGS:: Cannot open referenced file as media source: file://\\/citose-marketin/mp3/_others/02 Windstruck OST - Knockin On Heaven-_s Door (Orchestra Ver.).mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"C:\Users\kadiv Peng-I\Downloads\Compressed\asd.tags" / index: 1
Opening track for playback: "C:\Users\kadiv Peng-I\Downloads\Compressed\asd.tags" / index: 2
m-TAGS:: Cannot open referenced file as media source: file://\\/citose-marketin/mp3/_others/02. All you need is love - Lynden David Hall.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"C:\Users\kadiv Peng-I\Downloads\Compressed\asd.tags" / index: 2
Opening track for playback: "C:\Users\kadiv Peng-I\Downloads\Compressed\asd.tags" / index: 3
m-TAGS:: Cannot open referenced file as media source: file://\\/citose-marketin/mp3/_others/03 Set Fire to the Rain.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"C:\Users\kadiv Peng-I\Downloads\Compressed\asd.tags" / index: 3
Opening track for playback: "C:\Users\kadiv Peng-I\Downloads\Compressed\asd.tags" / index: 4
m-TAGS:: Cannot open referenced file as media source: file://\\/citose-marketin/mp3/_others/04 Windstruck OST - Changing Clothes (Stay Pizzicato Ver.).mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"C:\Users\kadiv Peng-I\Downloads\Compressed\asd.tags" / index: 4
Opening track for playback: "C:\Users\kadiv Peng-I\Downloads\Compressed\asd.tags" / index: 5
m-TAGS:: Cannot open referenced file as media source: file://\\/citose-marketin/mp3/_others/12 Blue Suede Shoes.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"C:\Users\kadiv Peng-I\Downloads\Compressed\asd.tags" / index: 5
Opening track for playback: "C:\Users\kadiv Peng-I\Downloads\Compressed\asd.tags" / index: 6
m-TAGS:: Cannot open referenced file as media source: file://\\/citose-marketin/mp3/_others/14 - vanessa williams - save the best for last [etmusica com] [grupoet].mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"C:\Users\kadiv Peng-I\Downloads\Compressed\asd.tags" / index: 6
Opening track for playback: "C:\Users\kadiv Peng-I\Downloads\Compressed\asd.tags" / index: 7
m-TAGS:: Cannot open referenced file as media source: file://\\/citose-marketin/mp3/_others/15-leona_lewis-stop_crying_your_heart_out.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"C:\Users\kadiv Peng-I\Downloads\Compressed\asd.tags" / index: 7
Opening track for playback: "C:\Users\kadiv Peng-I\Downloads\Compressed\asd.tags" / index: 8
m-TAGS:: Cannot open referenced file as media source: file://\\/citose-marketin/mp3/_others/16 when youre gone acoustic version.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"C:\Users\kadiv Peng-I\Downloads\Compressed\asd.tags" / index: 8

but this bug already fixed
the other is this

(http://farm8.staticflickr.com/7404/9575022400_823ea8b7d1_o.png) (http://www.flickr.com/photos/38970128@N02/9575022400/)

when open shared folder, all that showed up is administrative folder,
when it should be look like this

(http://farm8.staticflickr.com/7450/9575022344_2dc0689cf3_o.png) (http://www.flickr.com/photos/38970128@N02/9575022344/)

btw, thanks for the fix recently...
and thanks for this plugins b^-^
Title: m-TAGS component (foo_tags)
Post by: BenB on 2013-08-23 13:56:50
...
all that showed up is administrative folder
...

Call me crazy, but I don't think exposing hidden administrative shares is the proper way to access shared files/folders on a network 
Title: m-TAGS component (foo_tags)
Post by: gabri.ns on 2013-08-23 15:07:02
well, i'm not... please see bottom image, its what show up on explorer.
image on top is what showed by m-tags when trying to access shared folder.
Title: m-TAGS component (foo_tags)
Post by: marc2003 on 2013-08-23 15:25:26
does mapping drives to shares work? you'd could use that in the meantime if it does.
Title: m-TAGS component (foo_tags)
Post by: gabri.ns on 2013-08-24 04:11:49
yes, it can... there is alot more other way to accomplish that.
but what i try to say here is that there is bug in that plug in.
honestly, i rarely use menu to create m-tags, i'd prever loading
the file to playlist, select all, and then create m-tags from context menu.
i trying to use the menu because this flow doesn't work well before for
shared folder... and that's why i trying the menu, to check wether its work,
and there i found the bug.

@EpicForever:
you can accomplish what you are trying to do using masstagger.
i've seen an option to copy tag between file. all you have to do is
add list of source file, then add the new file, select all, and copy tag.
Title: m-TAGS component (foo_tags)
Post by: kariol on 2013-08-24 19:59:36
Hi. When I tried foo_tags the titles occured twice at the playlist.

Is there any switch to hide the music files - or must the tags be removed from that files?
Title: m-TAGS component (foo_tags)
Post by: gabri.ns on 2013-08-24 21:27:38
Hi. When I tried foo_tags the titles occured twice at the playlist.

Is there any switch to hide the music files - or must the tags be removed from that files?

IMO, thus m-tags file is like a playlist, altough it is NOT.
you can load thus file, delete specific track, reselect all, and recreate the m-tags file.
you can do this even if the actual file is not there...

the other thing you can do is, open notepad, drag those m-tags file to notepad, remove duplicate entry, save it.
it is fully human readable, almost like xml file.
Title: m-TAGS component (foo_tags)
Post by: kariol on 2013-08-26 15:11:53
After installing/copying the foo_tags.dll I run "create m-TAGs in same folder". The use of a separate folder did not work so I tried "same folder". The doubled entries come from the new *.tags.  The tagged wave-file (*.wav or *.flac) and the new *.tags are part of every album. That does not change if I run "remove duplicate".

Perhaps I could delete all the *.tags, then remove all the tags of the music-files, and try to undelete or restore the tag-files. But I hope that there is a better way to solve that problem. Something like a switch that foobar does not look for tags in *.wav or *.flac.


Title: m-TAGS component (foo_tags)
Post by: BenB on 2013-08-26 16:23:16
You could try excluding either the mtags files (kind of defeats the purpose of using this component though) or the media files' types under Shell Integration to avoid duplicates. You might need to rescan your library after editing that setting for it to have an effect.

I'm just guessing here.
Title: m-TAGS component (foo_tags)
Post by: kariol on 2013-08-26 18:26:45
You could try excluding either the mtags files (kind of defeats the purpose of using this component though) or the media files' types under Shell Integration to avoid duplicates.

Thank You. Excluding the media files at Media Library seems to work. Next try will be Restrict to *.TAGS, may be the better solution. But I will need a second installation of foobar to select new added media files and write tags for the first time. 
Title: m-TAGS component (foo_tags)
Post by: kariol on 2013-08-28 14:12:13
Now I am afraid that m-TAGS might not be usable in real life. The same foo_tags.dll -in similar situations- generates in one case a single "!.tags" file each folder, but in the other case one file for each single media-file. The !.tags files work at one foobar installation, but copied to another pc they show a "?" under Duration and "TAGS" under Codec at the playlist.
Title: m-TAGS component (foo_tags)
Post by: kariol on 2013-08-29 12:21:37
Files from a pc with windows 7 foob. 1.2.6. copied to a pc windows xp foob. 1.2.2.

Some of the tags do not work. For me there is (viewed with editor and hex editor) no difference between working and non working *.tags.

A screenshot (http://www.diy-hifi-forum.eu/forum/picture.php?albumid=955&pictureid=14138)

Title: m-TAGS component (foo_tags)
Post by: gabri.ns on 2013-08-29 12:34:50
you said before that one off a case is tags file created for each file, and the other  for each folder.
which one is on your WinXP?
Title: m-TAGS component (foo_tags)
Post by: kariol on 2013-08-29 13:34:57
you said before that one off a case is tags file created for each file, and the other  for each folder.
which one is on your WinXP?
Sorry that I did not mention what should be the reason for that difference. As default the WinXP foobar seems to have an activated switch (m-TAGS sub menu advanced > tagging  ...) to write a file each media (or I must have done that settings earlier and did not remember or realize the effects?). Windows 7 foobar had not by default. I changed the switch at the Win7 foobar submenu to get a file each media. Next step was file > m-TAGS > create in same folder, next I copied media and tags files (the whole album folder) to the  pc with WinXP.

With the !.tags file copied from Win7 to the WinXP PC each whole album did not work under foobar. With a tags file each media some title work and some not really (like the linked screenshot shows).
Title: m-TAGS component (foo_tags)
Post by: BenB on 2013-08-29 16:34:09
Just so I make sure I'm understanding your posts correctly, what you are saying regarding "work" is in reference to the display of metadata/technical info? The files actually play in all instances regardless of settings or no?
Title: m-TAGS component (foo_tags)
Post by: kariol on 2013-08-29 17:44:35
Just so I make sure I'm understanding your posts correctly, what you are saying regarding "work" is in reference to the display of metadata/technical info? The files actually play in all instances regardless of settings or no?

They play.

(My first problem with generating the m-Tags file(s) in a separate directoy was caused by a recursive never ending loop. The directory for the m-tag file was reindexed by foobar. )

But later my description "do not work" depends on the wrong display. When I now compare a single "!.tags" for each directory or album with the other setting (one file for each media file) it is similar. All entries with a question mark instead of the runtime are playable too. At the !.tags all entries have a "?". The *.tags (one for each title of an album) are mixed, some have "?" and some have not.

In both cases files are copied from the Win7 PC (where they show no errors) to a Win XP PC. When I delete the *.tags at the Win XP PC and let foobar m-TAGS index the media files, the new *.tags display without error.


Title: m-TAGS component (foo_tags)
Post by: gabri.ns on 2013-08-29 18:05:58
has you try comparing both created by Win7 n WinXP?
Title: m-TAGS component (foo_tags)
Post by: kariol on 2013-08-29 19:11:41
has you try comparing both created by Win7 n WinXP?


Comparing with an editor or hex-editor I cannot find differences. The wave media files are the same too. The properties and rights seem to be the same.

But I just opened a !.tags file with an editor, just inserted a space in a text, then deleted the space und saved the file. Now it works. I guess that the file has the same content as before with some properties (of the file) changed.
Title: m-TAGS component (foo_tags)
Post by: gabri.ns on 2013-08-30 03:38:07
it maybe have something to do with BOM Marker
Title: m-TAGS component (foo_tags)
Post by: kariol on 2013-08-30 17:57:47
it maybe have something to do with BOM Marker


Now I compared a !.tags file fresh at Win7 and after saving with an editor under Win XP. The editor shortens the file from 1441 to 1438 bytes, in hex the missing part at the beginning was "EF BB BF". After that the file works under WinXP.

But the (error-free) files which are generated from the Win XP foobar/m-TAGS come with "EF BB BF" and show for me no difference compared with the Win7 files. And when I add an comment to that file via foobar the !.tags gets that heading BOM again and works without errors.

I could not find any difference at the file properties, but are there additional properties or descriptions which get lost by copying the file from 7 to XP?
Title: m-TAGS component (foo_tags)
Post by: BenB on 2013-08-30 19:53:50
I'm curious to know if foobar on both comps had scanned the media files prior to your using this component. foobar stores information from the files in its database, so if not, might it be possible that the XP machine simply doesn't display the missing info because it doesn't have it in its database and it isn't present in the .tags file?
Title: m-TAGS component (foo_tags)
Post by: kariol on 2013-08-30 21:04:52
..] might it be possible that the XP machine simply doesn't display the missing info because it doesn't have it in its database and it isn't present in the .tags file?

The XP machine is monitoring and only looking for *.tags. The new files are found a short time after copying.

Perhaps there is an encoding problem between Win 7 and XP. Something like a wrong default encoding and some critical tolerance (by foobar or m-TAGS?) between unicode and utf-8. Or similar problems from the network connection, but I have not seen such problems before.


Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-09-02 16:35:56
This reply is for Kapriol, but anyone who's having the same issues is welcome to read.

1) The EF BB BF header.

This is a header that signals to Windows that the file is encoded as UTF-8. This was a requested feature, as it is the only way to properly and portably support unicode characters in the m-TAGS files. Your editor is removing that header and saving the files with another encoding (Windows 1252, I guess), which is just as fine if you do not use foreign characters. Both fb2k and m-TAGS will deal with the file, but if you edit it (using the masstagger, the property window, the inline editor, or whatever means) under fb2k it will again be saved in UTF-8 (therefore inserting the encoding header).

2) The duplicate tags issue

If you create the m-TAGS in the same folder you will obviously get BOTH the tags of the m-TAGS file AND the tags of the original files into fb2k when you load that folder. This is because the m-TAGS file is treated just like a media file (so fb2k loads both the m-tags and the "regular" media file). The suggestion to use an appropriate configuration for "Preferences / Shell Integration" was correct.

The proper way to deal with the issue, if you create the m-TAGS files in the same folder (which is what I do, btw), is to restrict the incoming files to "*.tags", BOTH IN THE SHELL INTEGRATION WINDOW AND IN THE LIBRARY WINDOW.

That said, now you face the issue of creating the m-TAGS files. If you restrict the interface to m-TAGS files, the others will not be loaded, and when you load a folder that does NOT contain m-TAGS yet, you get... well, nothing!

There are two ways to "properly" deal with the creation of new m-TAGS files. The WRONG solution is to use the context menu "Tagging / Create m-TAGS file". That functionality is intended to create an alternate playlist starting with a set of files. For example, it can be used to "re-create" a Beatles' US album properly selecting the appropriate tracks from the official UK releases and creating an m-TAGS file in a new folder. Then that folder can be loaded into fb2k, and the tags edited to create proper album and tracknumber tracks. Finally, you can put the proper cover in the new folder, and, voila', you have, say, "Meet the Beatles" without duplicating tracks.

But that's not what you are trying to do, so... forget the context menu! Here are the two "proper" ways to create a new m-TAGS file in the same folder:

1) Use "File / m-TAGS / Create m-TAGS (in same folder)". You just select the folder to tag, and it is going to be done. If you have several folder to tag, then just select a parent folder of all of them. The folder scan process will automatically skip all folders that do not contain recognizable media, as well as all folders were m-TAGS files are already present. So, m-TAGS will be created JUST FOR THE NEW FOLDERS. As a matter of fact, you can just scan an entire drive and create m-TAGS for all "new" folders in one shot.

2) If you are a batch or command line fan (as I am), then you can use the command line version. The command is:

<Folder where you installed fb2k>\foobar2000.exe  /quiet /m-TAGS "<Folder to tag>"

Please note that fb2k does not need to be running in order to run this command. You can run it from a command prompt, from a cygwin shell (if you have that), within a batch file, etc. Again, you can run it on a drive, and it will scan the entire drive in one shot.

Also, and this will be useful if you are NOT a command line buff, you can create a shell context menu entry. Here is how, if you are not an expert:

[blockquote]
Run regedit
Create a registry Key HKEY_CLASSES_ROOT/Folder/shell/m-TAGS
Edit its "(Default)" Value to be Create m-TAGS
Under the m-TAGS key, create a new Key command
Edit its "(Default)" Value to be <Folder where you installed fb2k>\foobar2000.exe /quiet /m-TAGS "%L"[/blockquote]

After that, you'll see that when you right-click on a folder in Windows Explorer, an item "create m-TAGS" will show up. If you run the command, then the m-TAGS scanner will scan the folder and all subfolders.

I hope this helps. Let me know if you have questions.
Title: m-TAGS component (foo_tags)
Post by: kariol on 2013-09-03 13:07:51
I hope this helps. Let me know if you have questions.

Thank you.

to 2) new files / new tags (not a question):
Although the media files are not indexed by fb2k it is possible to create (even empty) m-TAGS.

to 1) BOM /  EF BB BF header:
Perhaps that feature does not work as you expect. The m-TAGS files (all with BOM) behave different when they are copied from Win7 to XP. May be that some special characters or line breaks (/n) in a comment field were treated different. Or could one of the foobar2k versions (1.2.6, 1.2.2) have a bug?


Title: m-TAGS component (foo_tags)
Post by: sokeking on 2013-09-03 13:44:08
Hey guys,

as stated over here (http://www.hydrogenaudio.org/forums/index.php?showtopic=102518&st=0&gopid=843714&#entry843714) I'm currently looking for a solution that allows me to overlay the metadata of webradios. As recommended by another user, I tried to acchieve this through m-TAGS. However, I didn't really get that far, since the plugin itself doesn't seem to work with normal files either.

Here's what I've tried:
1. create an m-tag file in the same folder of an album - works fine.
2. alter the m-tags within that file, start foobar and see e.g. the altered %title% - doesn't work.
3. change the tags of an file through properties, open m-tag file to see those changes there (instead of in the tags of the mp3 file) - doesn't work.

Am I doing anything wrong? I'm using foobar v1.2.9 Portable without any highlevel customization on Windows 7.
Title: m-TAGS component (foo_tags)
Post by: db1989 on 2013-09-03 13:48:17
As stated in the OP, you have to load the m-TAGS playlist-type file into fb2k, not the referenced audio files, and access the tags through the former. It sounds like you just kept trying to read/write the m-TAGS through the target files themselves.
Title: m-TAGS component (foo_tags)
Post by: sokeking on 2013-09-03 14:00:39
Bloody hell, I'm so stupid. Sorry and thank you so much, db1989!!!

By the way: it works fine with radio as well. PERFECT!!!!
Title: m-TAGS component (foo_tags)
Post by: db1989 on 2013-09-03 14:06:14
Haha.
Title: m-TAGS component (foo_tags)
Post by: sokeking on 2013-09-03 14:11:11
/* EDIT */
Hmm... but unfortunately it doesn't work while listening to the radio.


Great to hear!

Edit: Hmm. Maybe luigimercurio can offer an explanation in the other thread about how it apparently can’t work on currently playing streams, if that’s what you mean.


@luigimercurio can you?! That would be really awesome!!!

To explain it in more detail: the element in my playlist holds the m-tag data. As soon as I start the stream the metadata shown in the playlist and in popup+ seems to be replaced by the streamed info. When looking into the element's properties, I just see the m-tags.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-09-03 14:14:04
I hope this helps. Let me know if you have questions.

Thank you.

to 2) new files / new tags (not a question):
Although the media files are not indexed by fb2k it is possible to create (even empty) m-TAGS.

to 1) BOM /  EF BB BF header:
Perhaps that feature does not work as you expect. The m-TAGS files (all with BOM) behave different when they are copied from Win7 to XP. May be that some special characters or line breaks (/n) in a comment field were treated different. Or could one of the foobar2k versions (1.2.6, 1.2.2) have a bug?


Kariol:

I apologize, but I do not understand your first comment.

As for the second one, can you send me some trace? "Does not work" is not too specific. What happens? It does not load at all? Or are some tags broken? I have both XP and W7 computers at home and they all read/write from the same shared hard drive. I have never experienced a problem with the files. Are you editing them manually?
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-09-03 14:26:22
/* EDIT */
Hmm... but unfortunately it doesn't work while listening to the radio.


Great to hear!

Edit: Hmm. Maybe luigimercurio can offer an explanation in the other thread about how it apparently can’t work on currently playing streams, if that’s what you mean.


@luigimercurio can you?! That would be really awesome!!!


Again, "It doesn't work" does not help me too much! Can you send me a trace? Please enable the verbose logging in Preferences / Advanced / Tagging / m-TAGS and send me a log file.

Also, additional details about what happens (does it stop playing? Doesn't play at all? Do tags get lost while playing???) would be great.

But perhaps most importantly, what are you trying to do? m-TAGS is static. It won't reflect tags changes from a stream. If the playing stream changes tags on the fly, m-TAGS won't "update" those tags. In that sense, it is safe to say that "it does not work with streams". It is not made for that. ;-)
Title: m-TAGS component (foo_tags)
Post by: sokeking on 2013-09-03 14:33:24
Thanks for your fast reply. I guess, you've missed my edit, which explains my purpose in a little more detail. But essentially you've got it. I'm trying to use the m-TAGS instead of the streamed meta data. It's to bad this doesn't work. m-TAGS seems to be a great plugin and just perfect for such a purpose.

Don't know if it helps, but here's my log. The m-TAGS are just dummy entries for testing:
Quote
Opening track for playback: "D:\sunshine.tags" / index: 1
CREATING TAGS
OPENING file://D:\sunshine.tags
[
  {
      "@" : "http://stream.hoerradar.de:80/sunshinelive-mp3-192?sABC=50708o38%230%23%23|0",
      "ALBUM" : "SSL",
      "ARTIST" : "Sunshine",
      "TITLE" : "Sunshine Live",
      "TOTALTRACKS" : "12",
      "TRACKNUMBER" : "12"
  }
]
[
  {
      "@" : "http://stream.hoerradar.de:80/sunshinelive-mp3-192?sABC=50708o38%230%23%23|0",
      "ALBUM" : "SSL",
      "ARTIST" : "Sunshine",
      "TITLE" : "Sunshine Live",
      "TOTALTRACKS" : "12",
      "TRACKNUMBER" : "12"
  }
]
Retrieving file statistics
Opening track 1
Resolving referenced path: http://stream.hoerradar.de:80/sunshinelive...o38%230%23%23|0 (http://stream.hoerradar.de:80/sunshinelive-mp3-192?sABC=50708o38%230%23%23|0)
Canonical path: http://stream.hoerradar.de:80/sunshinelive...o38%230%23%23|0 (http://stream.hoerradar.de:80/sunshinelive-mp3-192?sABC=50708o38%230%23%23|0)
m-TAGS:: REFERENCED FILE: http://stream.hoerradar.de:80/sunshinelive...o38%230%23%23|0 (http://stream.hoerradar.de:80/sunshinelive-mp3-192?sABC=50708o38%230%23%23|0) [0]
Reading tags: file://D:\sunshine.tags [1]
TAGS->INFO
{
  "@" : "http://stream.hoerradar.de:80/sunshinelive-mp3-192?sABC=50708o38%230%23%23|0",
  "ALBUM" : "SSL",
  "ARTIST" : "Sunshine",
  "TITLE" : "Sunshine Live",
  "TOTALTRACKS" : "12",
  "TRACKNUMBER" : "12"
}
Title: m-TAGS component (foo_tags)
Post by: db1989 on 2013-09-03 14:50:17
To explain it in more detail: the element in my playlist holds the m-tag data. As soon as I start the stream the metadata shown in the playlist and in popup+ seems to be replaced by the streamed info. When looking into the element's properties, I just see the m-tags.
Now we seem to have a proper explanation of the problem at last.

Disable this:

Preferences > Networking > Enable dynamic track titles
Title: m-TAGS component (foo_tags)
Post by: sokeking on 2013-09-03 15:01:15
I'm sorry for not providing it properly in the first place.

Unfortunately, disabling the dynamic track titles doesn't allow me to get the title and artist of the track currently played in the webradio. What I'd like to have is some kind of a merge between m-TAGS. More precisely, I wanna define e.g. %album% with m-TAGS while %title% and %artist% are used from the info provided by the stream.

I guess that's impossible, right?! :-)

/* edit */
The name of that option actually indicates that mainly the track titles should be altered dynamically, nothing else right?! This also comes appearant when taking a quick look at the respective wiki entry (http://wiki.hydrogenaudio.org/index.php?title=Foobar2000%3a%50references:Networking). As a consequence, it actually should work to do what I want, since only %title% and %artist% are replaced by the stream.
Title: m-TAGS component (foo_tags)
Post by: marc2003 on 2013-09-03 15:29:43
i'm not really sure how any of this works but perhaps you can configure your playlist view to display %album% instead of %title whenever a stream is playing?

Code: [Select]
$if($stricmp($left(%path%,4),http),%album%,%title%)


edit: thinking about it, %path% will probably reference the m-tags file in which case, ignore me.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-09-03 15:38:05
i'm not really sure how any of this works but perhaps you can configure your playlist view to display %album% instead of %title whenever a stream is playing?

Code: [Select]
$if($stricmp($left(%path%,4),http),%album%,%title%)


edit: thinking about it, %path% will probably reference the m-tags file in which case, ignore me.


%path% will refer to the m-TAGS file, but $info(@) will contain the stream url.
Title: m-TAGS component (foo_tags)
Post by: db1989 on 2013-09-03 15:40:03
I guess that's impossible, right?! :-)
If you mean picking and choosing which fields are displayed from which of the two available sources (core or m-TAGS), altering the default behaviour, then yes, I guess so.

Quote
The name of that option actually indicates that mainly the track titles should be altered dynamically, nothing else right?! This also comes appearant when taking a quick look at the respective wiki entry (http://wiki.hydrogenaudio.org/index.php?title=Foobar2000%3a%50references:Networking). As a consequence, it actually should work to do what I want, since only %title% and %artist% are replaced by the stream.
Artist and title, not just title.

Does dynamic titling only override those two fields from m-TAGS, or does it replace all of your m-TAGS-source fields?
Title: m-TAGS component (foo_tags)
Post by: sokeking on 2013-09-03 15:49:34
@marc2003 although it doesn't work, that's basically a good idea (see below).

@luigimercurio is it possible to access the m-TAGS e.g. by %mtag_title% or through some function?

@db1989 yeah, artist and title, but nothing else. For example, neither %album% nor anything else should be "overwritten" by the stream. The dynamic titling doesn't override anything. Still, while streaming the tags are empty, except the title and artist which are the streamed ones. If i stop the stream, the m-TAGS are used again.
Title: m-TAGS component (foo_tags)
Post by: db1989 on 2013-09-03 15:51:55
OK, so the method used to invoke the dynamic titling seems to effectively cause the stream itself to be reloaded in place of the m-TAGS reference. I wonder if there is a way for the respective first- and third-party developers to work around this, at least as an option.
Title: m-TAGS component (foo_tags)
Post by: sokeking on 2013-09-03 15:54:45
For more detail. This is what happens:
Quote
Config (mTAG): %title% = 'T'; %artist% = 'A'; %album% = 'B'
State 1: Not streaming. %title% = 'T'; %artist% = 'A'; %album% = 'B'
State 2: Streaming. %title% = 'DYNAMIC_T'; %artist% = 'DYNAMIC_A'; %album% = ''
State 3: Not streaming. %title% = 'T'; %artist% = 'A'; %album% = 'B'


What should happen in State 2 is:
Quote
State 2: Streaming. %title% = 'DYNAMIC_T'; %artist% = 'DYNAMIC_A'; %album% = 'B'


I actually would try to work it out. But I have no experience in foobar development :-)
Title: m-TAGS component (foo_tags)
Post by: db1989 on 2013-09-03 15:55:37
Yes, you want the dynamic metadata to only override the two fields it provides, rather than also deleting all other fields.
Title: m-TAGS component (foo_tags)
Post by: foosion on 2013-09-03 21:10:50
OK, so the method used to invoke the dynamic titling seems to effectively cause the stream itself to be reloaded in place of the m-TAGS reference.
Dynamic metadata is provided by the decoder of the stream. If the decoder wants to expose the static tags as part of the dynamic tags, it has to explicitly do that.
I wonder if there is a way for the respective first- and third-party developers to work around this, at least as an option.
It should be possible. I think the m-tags component wraps the decoder of the referenced file/stream inside its own decoder. Thus it could enrich the dynamic metadata returned by the stream decoder with static tags.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-09-04 04:10:36
@marc2003 although it doesn't work, that's basically a good idea (see below).

@luigimercurio is it possible to access the m-TAGS e.g. by %mtag_title% or through some function?

@db1989 yeah, artist and title, but nothing else. For example, neither %album% nor anything else should be "overwritten" by the stream. The dynamic titling doesn't override anything. Still, while streaming the tags are empty, except the title and artist which are the streamed ones. If i stop the stream, the m-TAGS are used again.


M-TAGS wraps the media file, so the title is just %title%. What you are really asking for is a way to access time m-TAGS after they are overwritten by the dynamic stream. I believe that dynamic tags completely overwrite the m-TAGS, as the disappearance of %album% seems to prove. So, even the obvious solution of changing the tag name (to something like %fixed_album% instead of %album%) would still not work. But maybe someone may try that?
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-09-04 04:14:43
OK, so the method used to invoke the dynamic titling seems to effectively cause the stream itself to be reloaded in place of the m-TAGS reference.
Dynamic metadata is provided by the decoder of the stream. If the decoder wants to expose the static tags as part of the dynamic tags, it has to explicitly do that.
I wonder if there is a way for the respective first- and third-party developers to work around this, at least as an option.
It should be possible. I think the m-tags component wraps the decoder of the referenced file/stream inside its own decoder. Thus it could enrich the dynamic metadata returned by the stream decoder with static tags.


It does indeed. I will have to look at how dynamic stream tags are implemented in the SDK and see if there is a way to do this "integration"
Title: m-TAGS component (foo_tags)
Post by: foosion on 2013-09-04 07:22:41
Check input_decoder::get_dynamic_info_track() (http://foosion.foobar2000.org/doxygen/latest/classinput__decoder.html#a7dd203831b6907f6f3e53beeff6c8251).
Title: m-TAGS component (foo_tags)
Post by: sokeking on 2013-09-04 11:54:03
Awesome!!!! Thank you so much :-)

Please let me know, if there's anything I can do (but I rather doubt it, since I have no experience in Foobar Dev).
Title: m-TAGS component (foo_tags)
Post by: db1989 on 2013-09-04 12:43:58
I love it when a plan comes together!
Title: m-TAGS component (foo_tags)
Post by: kariol on 2013-09-04 17:22:07
I apologize, but I do not understand your first comment.

I am afraid that I cannot improve my English skills in a short time. For me the essential aspect is, that m-TAGS searches for media files independent of the foobar settings (like excluded files). So that comment was something like a summary, not a question.

As for the second one, can you send me some trace? "Does not work" is not too specific. What happens? It does not load at all? Or are some tags broken? I have both XP and W7 computers at home and they all read/write from the same shared hard drive. I have never experienced a problem with the files. Are you editing them manually?

This screenshot (http://www.diy-hifi-forum.eu/forum/picture.php?albumid=955&pictureid=14138) shows the problem.
The questionmarks (duration at playlist) are wrong and the properties (lower part of the image, "other") are shown without general.

I have a new album folder with some media files on a W7 computer. I let fb2k/foo-tags create the m-TAGS files on W7. (In this case one tag file for each media file but a single !.tags file has similar effects too later on the XP computer). On that first W7 computer everthing looks fine. Next I copy or move the whole new directory/album-folder (using the W7- PC) to an accessable network directory on a XP computer. Next I copy or move ( using the target XP-PC) the new directory from that place to another place on the same XP PC, where all the media files are stored for fb2k. f2bk is monitoring and finds the new music, but I have the problems like you can see at the screenshot (http://www.diy-hifi-forum.eu/forum/picture.php?albumid=955&pictureid=14138) (same image as above). Some of the new entries are shown wrong, but all media are playable.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-09-04 18:39:45
I love it when a plan comes together!



OK, done. Load the new DLL: http://m-tags.org/foo_tags.dll (http://m-tags.org/foo_tags.dll)

Now m-TAGS merges its tags with the dynamic info. Please note that m-TAGS takes precedence, i.e. the dynamic tag is shown if the m-TAGS file does NOT contain that tag.

Let me know if it works.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-09-04 18:54:04
I apologize, but I do not understand your first comment.

I am afraid that I cannot improve my English skills in a short time. For me the essential aspect is, that m-TAGS searches for media files independent of the foobar settings (like excluded files). So that comment was something like a summary, not a question.


I got it. Yes, m-TAGS ignores the foobar settings, because when you use m-TAGS the foobar settings may very well restrict the allowed files to *.tags, so m-TAGS would not see anything but its own files!

Quote
As for the second one, can you send me some trace? "Does not work" is not too specific. What happens? It does not load at all? Or are some tags broken? I have both XP and W7 computers at home and they all read/write from the same shared hard drive. I have never experienced a problem with the files. Are you editing them manually?

This screenshot (http://www.diy-hifi-forum.eu/forum/picture.php?albumid=955&pictureid=14138) shows the problem.
The questionmarks (duration at playlist) are wrong and the properties (lower part of the image, "other") are shown without general.

I have a new album folder with some media files on a W7 computer. I let fb2k/foo-tags create the m-TAGS files on W7. (In this case one tag file for each media file but a single !.tags file has similar effects too later on the XP computer). On that first W7 computer everthing looks fine. Next I copy or move the whole new directory/album-folder (using the W7- PC) to an accessable network directory on a XP computer. Next I copy or move ( using the target XP-PC) the new directory from that place to another place on the same XP PC, where all the media files are stored for fb2k. f2bk is monitoring and finds the new music, but I have the problems like you can see at the screenshot (http://www.diy-hifi-forum.eu/forum/picture.php?albumid=955&pictureid=14138) (same image as above). Some of the new entries are shown wrong, but all media are playable.


I think I know what's happening. The hint is that you say that all files play anyway. The key is how the monitor works. When files are moved, the monitor catches the new files as they are added. This means that if the "!.tags" file is copied before some of the media files, then the library will load the "!.tags" file, but it cannot properly resolve all locators within it (becuase the media files are just not there yet). Hence, the "?"'s that you see. There are three solutions:

1) Make sure that the "!.tags" file is the last one copied (not very practical);
2) Touch (i.e. change the date or rewrite) the "!.tags" file after copying all files, so that the monitor re-loads it (still not too practical);
3) Explicitly reload the "!.tags" file, by running "Tagging / Reload info from file(s)" from the context menu, after all files are moved (most practical).

Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-09-04 20:37:32
I apologize, but I do not understand your first comment.

I am afraid that I cannot improve my English skills in a short time. For me the essential aspect is, that m-TAGS searches for media files independent of the foobar settings (like excluded files). So that comment was something like a summary, not a question.



I forgot to mention that, as of last month's build, m-TAGS has its own exclusion list, configurable in the advanced preferences.
Title: m-TAGS component (foo_tags)
Post by: sokeking on 2013-09-05 12:31:34
OK, done. Load the new DLL: http://m-tags.org/foo_tags.dll (http://m-tags.org/foo_tags.dll)

Now m-TAGS merges its tags with the dynamic info. Please note that m-TAGS takes precedence, i.e. the dynamic tag is shown if the m-TAGS file does NOT contain that tag.

Let me know if it works.


Works perfect!!!!! Thank you so much!!!! This is just incredible - finally I got my webradio's listed the way I want. 
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-09-05 14:11:32
OK, done. Load the new DLL: http://m-tags.org/foo_tags.dll (http://m-tags.org/foo_tags.dll)

Now m-TAGS merges its tags with the dynamic info. Please note that m-TAGS takes precedence, i.e. the dynamic tag is shown if the m-TAGS file does NOT contain that tag.

Let me know if it works.


Works perfect!!!!! Thank you so much!!!! This is just incredible - finally I got my webradio's listed the way I want. 


You are welcome, and thanks for pointing out a behavior that I had totally overlooked.
Title: m-TAGS component (foo_tags)
Post by: kariol on 2013-09-05 16:57:17
I think I know what's happening. The hint is that you say that all files play anyway. The key is how the monitor works. When files are moved, the monitor catches the new files as they are added. This means that if the "!.tags" file is copied before some of the media files, then the library will load the "!.tags" file, but it cannot properly resolve all locators within it (becuase the media files are just not there yet). Hence, the "?"'s that you see. There are three solutions:

1) Make sure that the "!.tags" file is the last one copied (not very practical);
2) Touch (i.e. change the date or rewrite) the "!.tags" file after copying all files, so that the monitor re-loads it (still not too practical);
3) Explicitly reload the "!.tags" file, by running "Tagging / Reload info from file(s)" from the context menu, after all files are moved (most practical).

Thank you very much, that seems to be the right analysis!

When I close fb2k before copying and run again after copying everything is fine.

Solution Nr. 3 is more comfortable. The context menu shows  Tagging / create m-TGAS file, I guess you mean Properties / Tools / Reload info.

Title: m-TAGS component (foo_tags)
Post by: marc2003 on 2013-09-05 17:20:07
if you hold shift when you right click, you will see reload info under the tagging context menu.

you can customise the context menu so it appears without having to hold down shift under file>preferences>display>context menu.

and you've already discovered the properties dialog>tools button does the same thing as well.
Title: m-TAGS component (foo_tags)
Post by: NoahTheDuke on 2013-09-05 20:36:47
I think m-tags.org is down again. :-(
Title: m-TAGS component (foo_tags)
Post by: emte on 2013-09-06 10:29:08
Quote
OK, done. Load the new DLL: http://m-tags.org/foo_tags.dll (http://m-tags.org/foo_tags.dll)

Now m-TAGS merges its tags with the dynamic info. Please note that m-TAGS takes precedence, i.e. the dynamic tag is shown if the m-TAGS file does NOT contain that tag.

Let me know if it works.


I'd prefer just the opposite. I want dynamic title to be displayed if it's available and m-tag title if the former is missing.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-09-08 13:29:26
Quote
OK, done. Load the new DLL: http://m-tags.org/foo_tags.dll (http://m-tags.org/foo_tags.dll)

Now m-TAGS merges its tags with the dynamic info. Please note that m-TAGS takes precedence, i.e. the dynamic tag is shown if the m-TAGS file does NOT contain that tag.

Let me know if it works.


I'd prefer just the opposite. I want dynamic title to be displayed if it's available and m-tag title if the former is missing.


I won't do that, because then a "hard-headed" input module could "force its own will", practically making m-TAGS useless. You can, however, use $if2(%<dynamic tag>%,%<m-TAGS tag>%) to achieve that, as long as the tags have different names (say "Title" and "M_Title").
Title: m-TAGS component (foo_tags)
Post by: rykiff on 2013-09-11 22:58:45
Awesome plugin, I was really excited to find something like this.

Does m-TAGS work with masstagger, as long as I don't use XP and run into the utf-8 header issue? I'd like to use it to keep the formatting tagging capabilities of masstagger, but without editing any of my my music files directly.

Thanks!
Title: m-TAGS component (foo_tags)
Post by: kode54 on 2013-09-11 23:27:30
It certainly should work with masstagger, or any other tag editing utility which uses the player's input specific internal tag reading and writing interfaces.
Title: m-TAGS component (foo_tags)
Post by: rykiff on 2013-09-12 09:47:56
Ah thank you for the confirmation, so far it's working perfectly! Although I did run into the problem referenced (and fixed) here:

!!!!! NEW RELEASE !!!!!

Fixed (hopefully) a bug that prevented resolution of paths on network shared drives.

Also, added the much demanded option to exclude certain kinds of files. The excluded extensions may be separated by commas, colons, semicolons, spaces, or '|'.

Let me know if it works! Thanks to all for the patience.

But sadly I can't find the option to use this functionality to exclude cue files in the creation of the tags files in the preferences dialog, or documentation telling how to do so. Thanks!

EDIT: Found it [File / Preferences / Advanced / Tagging / m-TAGS / m-TAGS creator / Excluded extensions :] thanks for the awesomely powerful plugin, luigi!
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-09-13 23:56:22
Ah thank you for the confirmation, so far it's working perfectly! Although I did run into the problem referenced (and fixed) here:

!!!!! NEW RELEASE !!!!!

Fixed (hopefully) a bug that prevented resolution of paths on network shared drives.

Also, added the much demanded option to exclude certain kinds of files. The excluded extensions may be separated by commas, colons, semicolons, spaces, or '|'.

Let me know if it works! Thanks to all for the patience.

But sadly I can't find the option to use this functionality to exclude cue files in the creation of the tags files in the preferences dialog, or documentation telling how to do so. Thanks!

EDIT: Found it [File / Preferences / Advanced / Tagging / m-TAGS / m-TAGS creator / Excluded extensions :] thanks for the awesomely powerful plugin, luigi!


You're welcome, and the UTF-8 issue should not be an issue at all on XP. I use XP myself.


Title: m-TAGS component (foo_tags)
Post by: rykiff on 2013-10-14 17:58:28
All has been well in the world of music using m-tag. However there is one thing that I can't seem to figure out... when m-tag generates .tag files for music, it doesn't append the file name as a placeholder for the title in the metadata if it the title is blank (which is fine with me). However, foobar's default behavior for displaying title information when it can't be found in the metadata is to display the file name... which it references as the !.tag file, leaving me with hundreds of ! titles for music that has no metadata. Is there a way to alter this behavior so that m-tag sets a title placeholder for metadata-less music based on the file name?

I noticed that the file names are referenced in the "other properties" category as <@>, but I have no idea how I would append a script in the title column for displaying said information when the title is missing. Something like $if(%title%,%title%,%@%)?

EDIT: Figured it out, just change the title script to $if($meta(title) missing,%title%,$info(@))
Title: m-TAGS component (foo_tags)
Post by: rykiff on 2013-10-14 19:24:47
Whoops, double post...

Figured it out, this will let you play files without metadata and display all titles correctly (m-tag files with no metadata will have a ! appended to the end).

$if($meta(title) missing,%title%,$if($info(@) missing,$info(@) - !, %filename%))
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-10-17 00:25:59
I think you should be able to just use $if2($meta(title),$info(@) - !)

Keep in mind that $info(@REFERENCED_FILE) contains the full path to the media file, in case you prefer that. If you do not like the "file://" prefix, use $substr().
Title: m-TAGS component (foo_tags)
Post by: rykiff on 2013-11-18 18:54:55
Nice thank you. So far my foobar experience has been headache free with m-tags, however I would like to accomplish what I think sokeking has done by adding radio stations to my library using m-tags to format the titles. However, when I right click a loaded radio station and generate a m-tags file for it, I get this error:
Code: [Select]
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\RY\Downloads\#Music\#Radio\!.tags" / index: 1

Honestly I'm at a loss of what to do, when I check the .tags file everything looks in order:
Code: [Select]
[
   {
      "@" : "http://eu1.fastcast4u.com:9300/|0",
      "GENRE" : "JAZZ, FUSION, WORLD",
      "TITLE" : "Dcsoundstream- Music with a mix of Jazz, Fusion, & World",
      "URL" : "http://www.DCSOUNDSTREAM.COM"
   }
]

If anyone could offer some insight on this, I would be extremely thankful. Being able to have all of my webradios listed in my library with custom tags would be wonderful.
Title: m-TAGS component (foo_tags)
Post by: rykiff on 2013-11-19 12:02:57
Ahh interesting, if I swap my radio URL with the one sokeking's post it works perfectly. No idea why, would the streaming protocol being different break the functionality? I can load both radio stations perfectly from a playlist, but m-tags only opens one.
Title: m-TAGS component (foo_tags)
Post by: rykiff on 2013-11-20 12:29:39
Weird, I was able to fix this by checking "Only use absolute paths in references" in Tagging > m-TAGs > m-TAGs creator. All is well now, once again, thank you for the awesomely powerful plugin! Being able to tweak my songs to an OCD level of tagging without touching the source file is a dream come true. 
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2013-12-02 02:07:11
Weird, I was able to fix this by checking "Only use absolute paths in references" in Tagging > m-TAGs > m-TAGs creator. All is well now, once again, thank you for the awesomely powerful plugin! Being able to tweak my songs to an OCD level of tagging without touching the source file is a dream come true. 


Sorry for the delay, but would you be able to please turn verbose output on and reproduce the error? Absolute paths should have no effect when dealing with http links (as demonstrated by your '@' locator), so there may be a strange bug. I would like to see what happens and your traces would be very valuable.
Title: m-TAGS component (foo_tags)
Post by: rykiff on 2013-12-16 00:30:18
Hey Luigi, it might've been my own human error. Looking back I think the error in playback was due to the |0 appended to the end of each stream url when creating a tag file for it. The streams work with absolute paths both checked and unchecked. Sorry for the misunderstanding! 
Title: m-TAGS component (foo_tags)
Post by: neothe0ne on 2013-12-31 00:35:52
Do you have any plans to define a tag for external artwork?  e.g. "@" points to the audio file, what if a "@art" could point to an external image file?  (And the component would present it to foobar2000 as embedded art perhaps?)
Title: m-TAGS component (foo_tags)
Post by: Porcus on 2013-12-31 20:31:59
I would never dare leaving the actual media file without tags or other identifying information, and likely I will go on overwriting the media files every now and then. But m-TAGS could be what I am looking for in between (and indeed at)  those "major" updates, if the following is possible (or might be implemented) with fb2k + m-TAGS:


I use FLAC, a format with audio checksums. I could fill a <CRC> tag into the metadata file, but I don't want to match that to a <CRC> tag in the media file -- I want it checked against the audio itself.  What about:

- a command to check whether tagsfile's CRC value matches the audio checksum?
- maybe an automatic check upon playback, done if and when the track is played from start to finish, so it does not occupy the drive's I/O?
- in case I by accident drop a media file in the wrong folder: (2) locate it, CRC based, akin to fb2k's Quicksearch for same?

Then the following:
- a "commit to mediafile" function with a post-overwrite checksum check? Purpose being: by default I want to write to tagfile, but once in a while I want to update the media files -- for example now at year-end doing a "main update" to one backup set. Then my workflow would be (1) update the backupdrive by writing new tagfiles only; (2) whenever tagfile is newer than media file, commit tags to it (3) verify audio of the updated file against the CRC tag.


BTW, is it possible to use wildcards in filenames? In case I change the media file name, I would want to search for [patternbeforetracknumber][tracknumber] * rather than a specific file name.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2014-01-29 16:44:32
Do you have any plans to define a tag for external artwork?  e.g. "@" points to the audio file, what if a "@art" could point to an external image file?  (And the component would present it to foobar2000 as embedded art perhaps?)


You can definitely create an "artwork" tag. You can create any tag you want. Just use "Properties/Tools/Add new field", or write a script if you want to automate the process.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2014-01-29 16:51:32
I would never dare leaving the actual media file without tags or other identifying information, and likely I will go on overwriting the media files every now and then. But m-TAGS could be what I am looking for in between (and indeed at)  those "major" updates, if the following is possible (or might be implemented) with fb2k + m-TAGS:


I use FLAC, a format with audio checksums. I could fill a <CRC> tag into the metadata file, but I don't want to match that to a <CRC> tag in the media file -- I want it checked against the audio itself.  What about:

- a command to check whether tagsfile's CRC value matches the audio checksum?
- maybe an automatic check upon playback, done if and when the track is played from start to finish, so it does not occupy the drive's I/O?
- in case I by accident drop a media file in the wrong folder: (2) locate it, CRC based, akin to fb2k's Quicksearch for same?

Then the following:
- a "commit to mediafile" function with a post-overwrite checksum check? Purpose being: by default I want to write to tagfile, but once in a while I want to update the media files -- for example now at year-end doing a "main update" to one backup set. Then my workflow would be (1) update the backupdrive by writing new tagfiles only; (2) whenever tagfile is newer than media file, commit tags to it (3) verify audio of the updated file against the CRC tag.


BTW, is it possible to use wildcards in filenames? In case I change the media file name, I would want to search for [patternbeforetracknumber][tracknumber] * rather than a specific file name.


I am familiar with FLAC. I will not break the transparency of m0tags, though, just a add media specific tools. You can create a CRC tag anyway you want (you can write a script to do that, if you are proficient with scripts).

As for the "commit" structure, it is against the whole reason for m-tags, so no. But you can do it via copy and paste. It is quite easy with foobar, and you can copy all tags to your media files in one shot, just using the Properties window.

Last but not least: wildcards. The original draft of m-tags contained wildcard support. However, I removed it because it makes it too slow (you have to browse the entire directory structure from the first wildcard on). Even it I restrict the wildcards to the last segment, I still have to browse the whole directory, then figure out which files matches best. Doable, but slow, so.... I removed it.
Title: m-TAGS component (foo_tags)
Post by: Peruchoa on 2014-06-20 17:57:01
Luigi...help !

I created my music folders separated from my audio tracks...fine.

Later, cheking every folder I realized that folder that had corrupted audio tracks didn't create the folder tracks at all...Ok.

My question is...How your componet can notify me when that happens ?

Than you very much in advance.

Peruchoa.


Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2014-06-22 14:11:52
Luigi...help !

I created my music folders separated from my audio tracks...fine.

Later, cheking every folder I realized that folder that had corrupted audio tracks didn't create the folder tracks at all...Ok.

My question is...How your componet can notify me when that happens ?

Than you very much in advance.

Peruchoa.


Peruchoa:

Can you be a little more precise? The m-Tags files are created independently of media file corruption. Only if all media files in a folder have wrong extensions, then the m-Tags file is not created at all (because no file is recognized as a media file).
Title: m-TAGS component (foo_tags)
Post by: Peruchoa on 2014-07-09 00:00:01
Hello...

Using m-Tags to create my tags from metatags is an excellent tool.

Now, before using m-Tags I fired video files in Media Player Classic from a button with no problems.

On the script created by m-Tags I see that uses slashs (/) instead of backslashs to find the real file.

I used $INFO(@) but I can't launch the original name of the file due to the slash character.

How I could do it?

Thank you.
Title: m-TAGS component (foo_tags)
Post by: Peruchoa on 2014-07-09 02:26:35
Corrected...

Thank You Luigi.

----

Luigi...help !

I created my music folders separated from my audio tracks...fine.

Later, cheking every folder I realized that folder that had corrupted audio tracks didn't create the folder tracks at all...Ok.

My question is...How your componet can notify me when that happens ?

Than you very much in advance.

Peruchoa.


Peruchoa:

Can you be a little more precise? The m-Tags files are created independently of media file corruption. Only if all media files in a folder have wrong extensions, then the m-Tags file is not created at all (because no file is recognized as a media file).

Title: m-TAGS component (foo_tags)
Post by: mindbomb on 2014-08-15 02:02:36
I love this, but I wish it was more network friendly. You can't create m-tags from files on a network drive or use m tags from another computer on the network it seems.
Title: m-TAGS component (foo_tags)
Post by: mindbomb on 2014-08-16 04:45:18
oh wait, you can, I just had to edit out the reference to the drive name in the .tags and it started working for me. ie, "///john-pc/f$/FLAC/Band -album/song.flac" to "///john-pc/FLAC/Band -album/song.flac" I have absolute paths on. In this case, I was using network shared folders.
Title: m-TAGS component (foo_tags)
Post by: mindbomb on 2014-08-19 19:22:05
Okay, I ran into one more issue. There is a problem if you try to create mtags for a file that has combining unicode characters. Ie, the á in Janelle Monáe. It turns into a? and then the file cannot be found.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2014-08-22 18:53:48
I needed some technical detail, but as m-tags.org website is down I have to ask the question here rather than get it there. Can I use this component as a temporary container for preserving metadata? My scenario: I got FLAC file, well tagged (using custom fields). I noticed it has a glitch somewhere so I opened wave editor, removed the glitch and saved it. In most cases wave editor discards most of metadata, and preserves only few standard fields. In worst case tagging is not supported in wave editor at all. Other situation: I got old mp3 file - well tagged, with custom fields - that's obvious. Finally it gets released digitally, so I buy the new mp3 at Beatport. I put the same name for new file as for old one and overwrite old one with new one. In both cases I need a way to preserve tags in an external container to restore them back in edited FLAC or newer mp3 file. It is possible with foobar with Media Library disabled or at least with disabled real time monitoring of ML folders. But since I started using ML i don't want to disable it. Does m-TAGS have option/command to first save metadata to .tags file, and then to write them into mp3/flac files from .tags file?


The site is up now, so I do not know if you got your question answered already. You can do what you need. First create the m-Tags files. Then, when you have the new file, import both sets of files into a playlist, open both "Properties" panels (i.e. the tags), and do a copy and paste between the two.

Just as a reminder: I created m-Tags FOR THE VERY PURPOSE of NOT having to do what you are trying to do. Once you have the m-Tags files, you do not need to update the metadata in the media files anymore. Just replace the old media files with the new ones and use only the m-Tags file(s) in your playlists. It will "magically" work. Only if you pass from, say, mp3 to flac, then you have to change the locators (the "@" fields) to point to the flac files rather than the mp3 files. You can do this manually (m-Tags files are text files) or within foobar2000 using the masstagger or the property editor.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2014-08-22 18:56:51
Okay, I ran into one more issue. There is a problem if you try to create mtags for a file that has combining unicode characters. Ie, the a? in Janelle Mona?e. It turns into a? and then the file cannot be found.


This is strange. m-Tags save the files in UTF-8 format, which preserves Unicode characters. I have TONS of accented characters in my own files. Can you send me a log (turn on verbose logging in "Preferences/Advanced/Tagging/m-Tags", please).
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2014-08-22 18:59:19
oh wait, you can, I just had to edit out the reference to the drive name in the .tags and it started working for me. ie, "///john-pc/f$/FLAC/Band -album/song.flac" to "///john-pc/FLAC/Band -album/song.flac" I have absolute paths on. In this case, I was using network shared folders.


I use ONLY network shared folders. It is actually strange that "///john-pc/f$/FLAC/Band -album/song.flac" does not work and "///john-pc/FLAC/Band -album/song.flac" does. It should be the other way around. In general, the best way to use network shared drives is to mount them (i.e. assign a local drive letter to them).
Title: m-TAGS component (foo_tags)
Post by: mindbomb on 2014-08-23 01:26:35
Okay, I ran into one more issue. There is a problem if you try to create mtags for a file that has combining unicode characters. Ie, the a? in Janelle Mona?e. It turns into a? and then the file cannot be found.


This is strange. m-Tags save the files in UTF-8 format, which preserves Unicode characters. I have TONS of accented characters in my own files. Can you send me a log (turn on verbose logging in "Preferences/Advanced/Tagging/m-Tags", please).


yes, you were correct. This error seems to have happened because I edited the tags myself, and they were lost when the encoding changed. So, user error.
Title: m-TAGS component (foo_tags)
Post by: zoomorph on 2014-10-17 19:57:05
Thanks... this is a nice component. :-)

Any way to get the actual file pointed to via title formatting? (ie. %path_sort% gets the tags file and the index...)
EDIT: $info(@) works

Any way to get $info(@) used by other components without modifying them individually? I see a lot of "!.tags".

How about getting %filesize% of the actual audio file rather than the tags file... anyone know of a way?

Finally, any way to monitor active music folders and automatically update tags files when new stuff is added? (This is a stretch. :-)
Title: m-TAGS component (foo_tags)
Post by: zoomorph on 2014-11-03 01:02:41
Some other ideas for features:
- Write tags to file button
- Write tag to file button (a single tag, on the properties page)
- Update tag from file (a single tag, on the properties page)
Title: m-TAGS component (foo_tags)
Post by: kode54 on 2014-12-02 03:26:20
Does this support sub-indexes into any given audio file? That would be valuable for keeping cue sheets unmodified, as well as for tagging a number of untaggable formats that my various components support.

I assume it also supports inputs which may have dynamic information, and may play indefinitely until stopped by the user, if so configured.
Title: m-TAGS component (foo_tags)
Post by: CarlitoGil on 2014-12-04 04:18:44
I use this to backup my metadata.
It runs automatically and, even if I use /quiet,  it shows the progress bar.

I'd like to hide it completely.
Title: m-TAGS component (foo_tags)
Post by: kode54 on 2014-12-04 07:32:13
For which this component may use core_api::is_quiet_mode_enabled() to detect.
Title: m-TAGS component (foo_tags)
Post by: Porcus on 2014-12-06 16:58:36
Some other ideas for features:
- Write tags to file button
- Write tag to file button (a single tag, on the properties page)
- Update tag from file (a single tag, on the properties page)


I have requested the option of committing tag to file as well (this page), but the author thinks it is contrary to intention to use m-tags only temporarily.

The consequence is that I have tried it once and never ever used it again.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2014-12-10 13:44:37
Does this support sub-indexes into any given audio file? That would be valuable for keeping cue sheets unmodified, as well as for tagging a number of untaggable formats that my various components support.

I assume it also supports inputs which may have dynamic information, and may play indefinitely until stopped by the user, if so configured.



Kode, you can add any tag you wish to any format playable by FB2K. It should support dynamic information, although I did not heavily test for that. The way it works is that dynamic information is "merged" with m-tags metadata. More specifically, dynamic information is used as long as there is no m-tags metadata tag with the same name. You can get more information on how dynamic behaviour is currently implemented if you go back to my September 4-5 exchanges with SOKEKING. Any additional feedback/suggestions on this topic would be welcome.

As far as sub-indexes go, I gave much thought to the idea of "cueing" from within m-tags (although my goal was the opposite of yours, i.e. to get rid of the dependence from cue sheets, rather than preserving them), but decided against it because I thought that 1) cueing is more a structural element then a metadata element; 2) The implementation would inevitably be scarcely portable and very much dependant on the player's architecture, and even impossible in some cases. That said, I am still open to the idea. But I would like to understand better what you mean for sub-indexes and how you would like to see them implemented.

Regarding, the ability of not showing the progress bar when in quiet mode, I kept the progress bar because I found no way to write to stdout. So, in quiet mode, there is no way for me to show the progress without... well, the progress bar! If you know of a way to write to stdout without breaking anything, then I'll definitely look into that!
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2014-12-10 13:49:14
Some other ideas for features:
- Write tags to file button
- Write tag to file button (a single tag, on the properties page)
- Update tag from file (a single tag, on the properties page)


As Porcus says, I am not too inclined to implement the "write to media file" feature. However, keep in mind that you can easily export the tags from m-tags to media files using the properties page. Just open the properties page of the m-tags file, select and copy all tags (Ctrl-C), then open the properties page of the media files, select the same tags and paste (Ctrl-V). Then save. Your tags are copied.

As for the last suggestion... I have no control over the properties page!
Title: m-TAGS component (foo_tags)
Post by: CarlitoGil on 2014-12-11 23:54:37
I kept the progress bar because I found no way to write to stdout. [...] If you know of a way to write to stdout without breaking anything, then I'll definitely look into that!


Thanks for replying, and a lot of thanks for the component.

I suggest that if a log file is specified then no progress bar is shown.
Title: m-TAGS component (foo_tags)
Post by: Porcus on 2014-12-12 14:59:43
keep in mind that you can easily export the tags from m-tags to media files using the properties page. Just open the properties page of the m-tags file, select and copy all tags (Ctrl-C), then open the properties page of the media files, select the same tags and paste (Ctrl-V). Then save. Your tags are copied.


And if they do not appear in precisely the same order? Then tags are copied to the wrong place, I assume?

Using m-tags would have the big advantage of fewer writes to the actual media files. Fantastic, I want that.
Counter that against an unsafe overwrite of a few thousand of my media files. No. Then it is useless to me.
Title: m-TAGS component (foo_tags)
Post by: CarlitoGil on 2014-12-13 07:00:01
I use the option to create a .tags files for each audio file, but sometimes there may be two files with the same name but different extensions.

In which case only one .tags file survives.

Like this:

01 – Title.flac
01 – Title.mp3
01 – Title.tags


Please add an option to keep the original extension.

Like so:

01 – Title.flac
01 – Title.flac.tags
01 – Title.mp3
01 – Title.mp3.tags
Title: m-TAGS component (foo_tags)
Post by: un autre moi on 2015-01-22 17:26:18
Quote from: Local references link=msg=0 date=
Local references may also identify a resource contained within an archive file (e.g. a ".zip" or ".rar" file) or a resource identified within the contents of a file (e.g. a track in a ".cue" file, or a specific chapter in a movie), etcetera.
I see that it works for audio files in ZIP archives, which is great, but it doesn't work for RAR archives, unfortunately. Could support for this type of archives be added there, too?
Title: m-TAGS component (foo_tags)
Post by: Chaos_Therum on 2015-01-27 10:57:48
It would be great if we could move the actual audio files along with the m-tags. I like to keep a nicely organized library, and that seems not possible using m-tags as my primary tagging system. I love the idea of treating media as read only but if I can't organize based on the tags it is a big hiccup in my system. I guess the best alternative would be to get my m-tags all nice and then to write them then organize the files based on that then recreate the m-tags file but that seems to kind of defeat the purpose of m-tags. Not even sure if this is possible but it would be nice to have. Another nice feature is if you could add the option to add the m-tags on the fly. So as you go to write metadata it creates a *.tags file and writes and reads from that instead once again not even sure if this is possible but it would be quite nice.
Title: m-TAGS component (foo_tags)
Post by: romor on 2015-01-30 04:37:40
Luigi, I'm trying to use mtags as a container for http streams. It works interesting and almost well, except this:

It seems that for every track your component instructs foobar to "parse" referenced file, and in this case loading tags file in foobar takes too much time, i.e. ~2s for single track, which I guess will depend from server to server. I would assume similar to happen with local network paths, too.

When updating single tag for single track from this mtags collection, it re-parses all tracks all over again.


Is it absolutely necessary to parse referenced files, or can you please add option that will allow skipping this step?
Title: m-TAGS component (foo_tags)
Post by: flight16 on 2015-04-07 16:02:48
I like the idea behind this plugin, but the hard-coded filename is a deal-breaker for me.  When I was doing my own designing and brain-storming, I came up with a similar solution but it linked the audio file to the database using a UUID embedded in a tag in the audio file.  Would you consider allowing that as an alternative to the filename? 

By the way, is there a repository for the source code someplace?  I would like to implement a few pet (no pressure on you to integrate them into master).
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-06-18 21:04:49
Luigi, I'm trying to use mtags as a container for http streams. It works interesting and almost well, except this:

It seems that for every track your component instructs foobar to "parse" referenced file, and in this case loading tags file in foobar takes too much time, i.e. ~2s for single track, which I guess will depend from server to server. I would assume similar to happen with local network paths, too.

When updating single tag for single track from this mtags collection, it re-parses all tracks all over again.


Is it absolutely necessary to parse referenced files, or can you please add option that will allow skipping this step?


Romor:

I am about to post a new version that will NOT parse remote files. I am having the same problem that you are experiencing. I just have to remember HOW to upload.... LOL
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-06-18 21:05:50
I like the idea behind this plugin, but the hard-coded filename is a deal-breaker for me.  When I was doing my own designing and brain-storming, I came up with a similar solution but it linked the audio file to the database using a UUID embedded in a tag in the audio file.  Would you consider allowing that as an alternative to the filename? 

By the way, is there a repository for the source code someplace?  I would like to implement a few pet (no pressure on you to integrate them into master).


Are you referring to the "hard-coded" locator (the "@" tag), or to the name of the m-tags file itself?
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-06-18 21:08:15
It would be great if we could move the actual audio files along with the m-tags. I like to keep a nicely organized library, and that seems not possible using m-tags as my primary tagging system. I love the idea of treating media as read only but if I can't organize based on the tags it is a big hiccup in my system. I guess the best alternative would be to get my m-tags all nice and then to write them then organize the files based on that then recreate the m-tags file but that seems to kind of defeat the purpose of m-tags. Not even sure if this is possible but it would be nice to have. Another nice feature is if you could add the option to add the m-tags on the fly. So as you go to write metadata it creates a *.tags file and writes and reads from that instead once again not even sure if this is possible but it would be quite nice.


I am interested in what you say, as organization is the primary goal of m-tags. But can you give me a specific example? I am not sure that I understand.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-06-18 21:59:04
Quote from: Local references link=msg=0 date=
Local references may also identify a resource contained within an archive file (e.g. a ".zip" or ".rar" file) or a resource identified within the contents of a file (e.g. a track in a ".cue" file, or a specific chapter in a movie), etcetera.
I see that it works for audio files in ZIP archives, which is great, but it doesn't work for RAR archives, unfortunately. Could support for this type of archives be added there, too?


m-TAGS passes the handling of .rar files straight to foobar2000. It works for me. Can you send me some additional information? (enable tracing in m-TAGS, and send me the log, if you can).
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-06-19 11:41:25
Version 1.0 now available for download on www.foobar2000.org (http://www.foobar2000.org). Main upgrades are:

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).
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-06-20 02:26:58
I use the option to create a .tags files for each audio file, but sometimes there may be two files with the same name but different extensions.

In which case only one .tags file survives.

Like this:

01 – Title.flac
01 – Title.mp3
01 – Title.tags


Please add an option to keep the original extension.

Like so:

01 – Title.flac
01 – Title.flac.tags
01 – Title.mp3
01 – Title.mp3.tags


Done. Check the new version :-)
Title: m-TAGS component (foo_tags)
Post by: un autre moi on 2015-06-23 17:00:00
Quote from: Local references link=msg=0 date=
Local references may also identify a resource contained within an archive file (e.g. a ".zip" or ".rar" file) or a resource identified within the contents of a file (e.g. a track in a ".cue" file, or a specific chapter in a movie), etcetera.
I see that it works for audio files in ZIP archives, which is great, but it doesn't work for RAR archives, unfortunately. Could support for this type of archives be added there, too?

m-TAGS passes the handling of .rar files straight to foobar2000. It works for me. Can you send me some additional information? (enable tracing in m-TAGS, and send me the log, if you can).

I downloaded the newest version (1.0), but unfortunately the problem spread to m-TAGS files referring to tracks in folders packed in ZIP archives, too. Actually, if audio files are packed directly in the archive, i.e. not in a folder, they can still be played back. So I have returned to the previous version (0.1), which I had saved, and all files in ZIP archives play well again.
Having noticed that, I realized that may also be the problem with RAR in the older version of the component (0.1). So I performed a test, I created the RAR archive containing an audio file not put in a folder, and voilà – it works!

Playback error
Code: [Select]
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Musique\La Femme\beko_36 la femme.rar.tags" / index: 1

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Musique\La Femme\beko_36 la femme.rar.tags" / index: 2

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Musique\La Femme\beko_36 la femme.rar.tags" / index: 3

Console
Code: [Select]
Selected file: F:\Musique\La Femme\beko_36 la femme.rar.tags
TO: file://F:\Musique\La Femme\beko_36 la femme.rar.tags
m-TAGS:: Number of tracks: 3
Processing unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)\36a1_ la femme ressort.mp3 | F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)\36a1_ la femme ressort.mp3
Retrieving metadata
INFO->TAGS
{
  "ALBUM" : "beko_36",
  "ARTIST" : "La Femme",
  "DATE" : "2010",
  "TITLE" : "La Femme Ressort",
  "TRACKNUMBER" : "1"
}
Retrieved metadata
Processing unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)\36a2_ françoise.mp3 | F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)\36a2_ françoise.mp3
Retrieving metadata
INFO->TAGS
{
  "ALBUM" : "beko_36",
  "ARTIST" : "La Femme",
  "DATE" : "2010",
  "TITLE" : "Françoise",
  "TRACKNUMBER" : "2"
}
Retrieved metadata
Processing unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)\36b_ sur la planche.mp3 | F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)\36b_ sur la planche.mp3
Retrieving metadata
INFO->TAGS
{
  "ALBUM" : "beko_36",
  "ARTIST" : "La Femme",
  "DATE" : "2010",
  "TITLE" : "Sur La Planche",
  "TRACKNUMBER" : "3"
}
Retrieved metadata
Writing m-TAGS file: file://F:\Musique\La Femme\beko_36 la femme.rar.tags
[
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "La Femme Ressort",
      "TRACKNUMBER" : "1"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0",
      "TITLE" : "Françoise",
      "TRACKNUMBER" : "2"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0",
      "TITLE" : "Sur La Planche",
      "TRACKNUMBER" : "3"
  }
]
CREATING TAGS
OPENING file://F:\Musique\La Femme\beko_36 la femme.rar.tags
[
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "La Femme Ressort",
      "TRACKNUMBER" : "1"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0",
      "TITLE" : "Françoise",
      "TRACKNUMBER" : "2"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0",
      "TITLE" : "Sur La Planche",
      "TRACKNUMBER" : "3"
  }
]
[
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "La Femme Ressort",
      "TRACKNUMBER" : "1"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "Françoise",
      "TRACKNUMBER" : "2"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "Sur La Planche",
      "TRACKNUMBER" : "3"
  }
]
Retrieving file statistics
Reading tags: file://F:\Musique\La Femme\beko_36 la femme.rar.tags [1]
Opening track 1
Resolving referenced path: beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0
archive ref_file: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3
Canonical path: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3
m-TAGS:: Cannot open referenced file as media source: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
TAGS->INFO
{
  "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0",
  "ALBUM" : "beko_36",
  "ARTIST" : "La Femme",
  "DATE" : "2010",
  "TITLE" : "La Femme Ressort",
  "TRACKNUMBER" : "1"
}
Reading tags: file://F:\Musique\La Femme\beko_36 la femme.rar.tags [2]
Opening track 2
Resolving referenced path: beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0
archive ref_file: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3
Canonical path: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3
m-TAGS:: Cannot open referenced file as media source: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
TAGS->INFO
{
  "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0",
  "ALBUM" : "beko_36",
  "ARTIST" : "La Femme",
  "DATE" : "2010",
  "TITLE" : "Françoise",
  "TRACKNUMBER" : "2"
}
Reading tags: file://F:\Musique\La Femme\beko_36 la femme.rar.tags [3]
Opening track 3
Resolving referenced path: beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0
archive ref_file: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3
Canonical path: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3
m-TAGS:: Cannot open referenced file as media source: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
TAGS->INFO
{
  "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0",
  "ALBUM" : "beko_36",
  "ARTIST" : "La Femme",
  "DATE" : "2010",
  "TITLE" : "Sur La Planche",
  "TRACKNUMBER" : "3"
}
DESTROYING TAGS
DESTROYING TAGS
Opening track for playback: "F:\Musique\La Femme\beko_36 la femme.rar.tags" / index: 1
CREATING TAGS
OPENING file://F:\Musique\La Femme\beko_36 la femme.rar.tags
[
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "La Femme Ressort",
      "TRACKNUMBER" : "1"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0",
      "TITLE" : "Françoise",
      "TRACKNUMBER" : "2"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0",
      "TITLE" : "Sur La Planche",
      "TRACKNUMBER" : "3"
  }
]
[
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "La Femme Ressort",
      "TRACKNUMBER" : "1"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "Françoise",
      "TRACKNUMBER" : "2"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "Sur La Planche",
      "TRACKNUMBER" : "3"
  }
]
Retrieving file statistics
Opening track 1
Resolving referenced path: beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0
archive ref_file: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3
Canonical path: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3
m-TAGS:: Cannot open referenced file as media source: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
Reading tags: file://F:\Musique\La Femme\beko_36 la femme.rar.tags [1]
TAGS->INFO
{
  "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0",
  "ALBUM" : "beko_36",
  "ARTIST" : "La Femme",
  "DATE" : "2010",
  "TITLE" : "La Femme Ressort",
  "TRACKNUMBER" : "1"
}
DESTROYING TAGS
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Musique\La Femme\beko_36 la femme.rar.tags" / index: 1
CREATING TAGS
OPENING file://F:\Musique\La Femme\beko_36 la femme.rar.tags
[
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "La Femme Ressort",
      "TRACKNUMBER" : "1"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0",
      "TITLE" : "Françoise",
      "TRACKNUMBER" : "2"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0",
      "TITLE" : "Sur La Planche",
      "TRACKNUMBER" : "3"
  }
]
[
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "La Femme Ressort",
      "TRACKNUMBER" : "1"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "Françoise",
      "TRACKNUMBER" : "2"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "Sur La Planche",
      "TRACKNUMBER" : "3"
  }
]
Opening track 1
Resolving referenced path: beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0
archive ref_file: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3
Canonical path: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3
m-TAGS:: Cannot open referenced file as media source: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
DESTROYING TAGS
Opening track for playback: "F:\Musique\La Femme\beko_36 la femme.rar.tags" / index: 2
CREATING TAGS
OPENING file://F:\Musique\La Femme\beko_36 la femme.rar.tags
[
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "La Femme Ressort",
      "TRACKNUMBER" : "1"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0",
      "TITLE" : "Françoise",
      "TRACKNUMBER" : "2"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0",
      "TITLE" : "Sur La Planche",
      "TRACKNUMBER" : "3"
  }
]
[
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "La Femme Ressort",
      "TRACKNUMBER" : "1"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "Françoise",
      "TRACKNUMBER" : "2"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "Sur La Planche",
      "TRACKNUMBER" : "3"
  }
]
Retrieving file statistics
Opening track 2
Resolving referenced path: beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0
archive ref_file: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3
Canonical path: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3
m-TAGS:: Cannot open referenced file as media source: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
Reading tags: file://F:\Musique\La Femme\beko_36 la femme.rar.tags [2]
TAGS->INFO
{
  "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0",
  "ALBUM" : "beko_36",
  "ARTIST" : "La Femme",
  "DATE" : "2010",
  "TITLE" : "Françoise",
  "TRACKNUMBER" : "2"
}
DESTROYING TAGS
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Musique\La Femme\beko_36 la femme.rar.tags" / index: 2
Opening track for playback: "F:\Musique\La Femme\beko_36 la femme.rar.tags" / index: 3
CREATING TAGS
OPENING file://F:\Musique\La Femme\beko_36 la femme.rar.tags
[
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "La Femme Ressort",
      "TRACKNUMBER" : "1"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0",
      "TITLE" : "Françoise",
      "TRACKNUMBER" : "2"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0",
      "TITLE" : "Sur La Planche",
      "TRACKNUMBER" : "3"
  }
]
[
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "La Femme Ressort",
      "TRACKNUMBER" : "1"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "Françoise",
      "TRACKNUMBER" : "2"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "Sur La Planche",
      "TRACKNUMBER" : "3"
  }
]
Retrieving file statistics
Opening track 3
Resolving referenced path: beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0
archive ref_file: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3
Canonical path: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3
m-TAGS:: Cannot open referenced file as media source: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
Reading tags: file://F:\Musique\La Femme\beko_36 la femme.rar.tags [3]
TAGS->INFO
{
  "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0",
  "ALBUM" : "beko_36",
  "ARTIST" : "La Femme",
  "DATE" : "2010",
  "TITLE" : "Sur La Planche",
  "TRACKNUMBER" : "3"
}
DESTROYING TAGS
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Musique\La Femme\beko_36 la femme.rar.tags" / index: 3
CREATING TAGS
OPENING file://F:\Musique\La Femme\beko_36 la femme.rar.tags
[
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "La Femme Ressort",
      "TRACKNUMBER" : "1"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0",
      "TITLE" : "Françoise",
      "TRACKNUMBER" : "2"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0",
      "TITLE" : "Sur La Planche",
      "TRACKNUMBER" : "3"
  }
]
[
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "La Femme Ressort",
      "TRACKNUMBER" : "1"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "Françoise",
      "TRACKNUMBER" : "2"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "Sur La Planche",
      "TRACKNUMBER" : "3"
  }
]
Opening track 2
Resolving referenced path: beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0
archive ref_file: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3
Canonical path: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3
m-TAGS:: Cannot open referenced file as media source: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
DESTROYING TAGS
Opening track for playback: "F:\Musique\Nun\Nun - Nun (2014)\02. Evoke The Sleep.mp3"
CREATING TAGS
OPENING file://F:\Musique\La Femme\beko_36 la femme.rar.tags
[
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "La Femme Ressort",
      "TRACKNUMBER" : "1"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0",
      "TITLE" : "Françoise",
      "TRACKNUMBER" : "2"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0",
      "TITLE" : "Sur La Planche",
      "TRACKNUMBER" : "3"
  }
]
[
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a1_ la femme ressort.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "La Femme Ressort",
      "TRACKNUMBER" : "1"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36a2_ françoise.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "Françoise",
      "TRACKNUMBER" : "2"
  },
  {
      "@" : "beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0",
      "ALBUM" : "beko_36",
      "ARTIST" : "La Femme",
      "DATE" : "2010",
      "TITLE" : "Sur La Planche",
      "TRACKNUMBER" : "3"
  }
]
Opening track 3
Resolving referenced path: beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3|0
archive ref_file: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3
Canonical path: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3
m-TAGS:: Cannot open referenced file as media source: unpack://rar|47|file://F:\Musique\La Femme\beko_36 la femme.rar|beko_36 la femme (2010)/36b_ sur la planche.mp3 [0]
m-TAGS:: REFERENCED FILE:  [-1]
DESTROYING TAGS
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-06-24 16:04:55
Quote
I downloaded the newest version (1.0), but unfortunately the problem spread to m-TAGS files referring to tracks in folders packed in ZIP archives, too. Actually, if audio files are packed directly in the archive, i.e. not in a folder, they can still be played back. So I have returned to the previous version (0.1), which I had saved, and all files in ZIP archives play well again.
Having noticed that, I realized that may also be the problem with RAR in the older version of the component (0.1). So I performed a test, I created the RAR archive containing an audio file not put in a folder, and voilà – it works!

Playback error
Code: [Select]
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Musique\La Femme\beko_36 la femme.rar.tags" / index: 1

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Musique\La Femme\beko_36 la femme.rar.tags" / index: 2

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Musique\La Femme\beko_36 la femme.rar.tags" / index: 3

Please download the component again. There was a glitch with the treatment of archives ('/' versus '\' kind of problem: fb2k is not very flexible with interchanging the slashes). I could only test with .zip archives, as I do not use Winrar. Please let me know what happens.
Title: m-TAGS component (foo_tags)
Post by: un autre moi on 2015-06-25 04:44:57
Please download the component again. There was a glitch with the treatment of archives ('/' versus '\' kind of problem: fb2k is not very flexible with interchanging the slashes). I could only test with .zip archives, as I do not use Winrar. Please let me know what happens.

It works perfectly for ZIP now, however the problem remains for RAR, files in directories do not play.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-06-27 05:43:55
It works perfectly for ZIP now, however the problem remains for RAR, files in directories do not play.


Can you please make a rar and email it to Luigi@Miami-re.com?

I am travelino and I cannot work on it now, but I will look at it when I get back.

Also, did you recreate the m-TAGS file, or are you testing with a pre-existing one? This is important.
Title: m-TAGS component (foo_tags)
Post by: un autre moi on 2015-06-29 00:17:57
Also, did you recreate the m-TAGS file, or are you testing with a pre-existing one? This is important.

I have sent you the RAR archive on the above-mentioned address. Yes, I always recreated the m-TAGS file, I hadn't stored the old ones which had not worked.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-07-14 16:47:04
Also, did you recreate the m-TAGS file, or are you testing with a pre-existing one? This is important.

I have sent you the RAR archive on the above-mentioned address. Yes, I always recreated the m-TAGS file, I hadn't stored the old ones which had not worked.


Please check your email. I sent you an updated version of the plugin. Let me know if you still have issues.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-08-18 01:18:58
Release 1.03 now available :-)
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-08-25 03:22:03
Version 1.1 just released. It adds a few significant features:

1) m-TAGS files now encapsulate album art data. They reflect album art data present in the media file, and allow editing of the album art, but, abiding to m-TAGS philosophy, the album art is NOT inserted/removed into the media file until explicitely requested via the Tagging/Write m-TAGS to media files menu command. Album art is kept in binary files located in the folder where the m-TAGS file is.

2) "Pure" m-TAGS files are now supported. These are files without locators. They do not encapsulate any playable media, but they can be used by other input components to store metadata without having to write a specialized mechanism. All metadata i/o (including album art data i/o) can be deferred to the m-TAGS component. An instance of the input component may be obtained by simply calling input_entry::g_open_for_info_read(p_info_read_instance, NULL, <path to m-TAGS file>, p_abort) or input_entry::g_open_for_info_write(p_info_write_instance, NULL, <path to m-TAGS file>, p_abort).

The extension for a pure m-TAGS file is ".mtags". Note that you must obtain an m-TAGS input instance to load/save tags from/into an ".mtags" file using fb2k's SDK, because these files will NOT be recognized as media files (as they are not, indeed media files, nor files encapsulating media). As such, they will be trated in a playlist context just like any other non-recognized file.

When you use fb2k SDK calls, you MUST append an asterisk to the file path, because the pseudo-extension ".mtags*" IS recognized by the m-TAGS input component. For example, if you want to store your metadata in a file named "C:/Music/My Album/album.mtags" then I can obtain an m-TAGS I/O instance by calling input_entry::g_open_for_info_write(p_info_write_instance, NULL, "C:/Music/My Album/album.mtags*", p_abort).

Similarly, you can obtain an album art editor for the same file by calling album_art_editor::g_get_interface(p_album_art_editor, "C:/Music/My Album/album.mtags*").

3) Input instances and album art editors may be opened for files which do not exist yet. In such case, m-TAGS automatically creates an empty, single-tracked m-TAGS component, and the file is only created if tags are edited and committed. This way, there is no need to physically create a pure m-TAGS file until it is actually needed (i.e. until tags are edited by the user or tags are insterted by the calling input component and a commit requested).

This mechanism is expecially useful when writing input components which offer support for network URI's. Developers may concentrate on connection and decoding issues, leaving m-TAGS to carry out metadata and album art I/O operations on pure m-TAGS files stored in a designated folder. These files could be indexed so that if a network URI is loaded again, the metadata is automatically loaded.
Title: m-TAGS component (foo_tags)
Post by: WilB on 2015-08-25 15:35:45
Thanks for the new version and the great plug-in.

I have been creating mixed m-TAG files that reference youtube links and my own media files. All was working well with the previous version I used (1.02). Now the displayed track lengths are messed up with 1.1. It seems that as soon as a flac file is referenced in the "@ " field all the subsequent youtube links that are referenced display the duration of that flac file. Even though the youtube links have their own "DURATION" fully specified, it is ignored. If the m-TAGS file is sorted such that the youtube links are first and then followed by the flac references then the track lengths display correctly. But this is an inadequate work around because loading the album with, e.g. album list\"by folder structure", then gives the tracks in the wrong order. Please can this be corrected or is there something else I should be doing?

Since installing 1.1 I have had to kill foobar2000 several times with task manager. Prior to that I have not had to do this, so this appears to be down to 1.1 but seeing as there is no crash log I cannot be sure.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-08-25 16:37:07
Thanks for the new version and the great plug-in.

I have been creating mixed m-TAG files that reference youtube links and my own media files. All was working well with the previous version I used (1.02). Now the displayed track lengths are messed up with 1.1. It seems that as soon as a flac file is referenced in the "@ " field all the subsequent youtube links that are referenced display the duration of that flac file. Even though the youtube links have their own "DURATION" fully specified, it is ignored. If the m-TAGS file is sorted such that the youtube links are first and then followed by the flac references then the track lengths display correctly. But this is an inadequate work around because loading the album with, e.g. album list\"by folder structure", then gives the tracks in the wrong order. Please can this be corrected or is there something else I should be doing?

Since installing 1.1 I have had to kill foobar2000 several times with task manager. Prior to that I have not had to do this, so this appears to be down to 1.1 but seeing as there is no crash log I cannot be sure.


Thanks a lot for the report. Can you please do the following?

1) Download it again from here (http://m-tags.org/foo_tags.dll) (it is an updated version)

2) Open the console and make it create a log file

3) Turn the verbose logging on (in Preferences/Advanced/Tagging/m-TAGS)

4) Reproduce the crash

5) Send me the log file (or publish it here)

About the duration issue: m-TAGS "cascades" tags. I did notice that the cascading was not properly handled when generating m-TAGS files through the m-TAGS creator. In other words, if an encapsulated media URI did not have a known duration, then the creator "forgot" to create an empty DURATION tag, so the duration would cascade from the previous tag. This seems to be what happens with your files. The updated version SHOULD fix this. Can you please let me know if it does?

Thanks again!!!
Title: m-TAGS component (foo_tags)
Post by: WilB on 2015-08-25 18:34:55
Since the log file is rather long I have sent it to you at the home page address: info@m-tags.org. I hope that's OK
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-08-25 22:00:21
Since the log file is rather long I have sent it to you at the home page address: info@m-tags.org. I hope that's OK


Fine. I already replied.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-08-26 20:32:31
1.11 is out. It fixes some issues about media with unknown durations
Title: m-TAGS component (foo_tags)
Post by: RiCON on 2015-08-27 00:40:59
Two consistent crashes with the .dll posted here in the thread: http://j.fsbn.eu/crash%20reports.7z (http://j.fsbn.eu/crash%20reports.7z)
Don't know if the version in foobar2000 components page is more recent but I had a crash with it too: http://j.fsbn.eu/crash%20reports-1.11.7z (http://j.fsbn.eu/crash%20reports-1.11.7z)

I would really like to listen to my music. Is there some place where I could get 0.1 again? Nevermind, used File History to get 0.1 again. Pity about not having embedded art, but at least it plays even with newer tags.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-08-27 04:25:48
Two consistent crashes with the .dll posted here in the thread: http://j.fsbn.eu/crash%20reports.7z (http://j.fsbn.eu/crash%20reports.7z)
Don't know if the version in foobar2000 components page is more recent but I had a crash with it too: http://j.fsbn.eu/crash%20reports-1.11.7z (http://j.fsbn.eu/crash%20reports-1.11.7z)

I would really like to listen to my music. Is there some place where I could get 0.1 again? Nevermind, used File History to get 0.1 again. Pity about not having embedded art, but at least it plays even with newer tags.

Thanks for the report.

Can you please let me know what's the action (i.e. YOUR action) which caused the crashes?

Also, only one of the crash reports has the traces enabled. Can you reproduce the first two with traces enabled as well?

Finally (but maybe the first thing to try): can you please check the behaviour of this version:  http://m-tags.org/foo_tags.dll (http://m-tags.org/foo_tags.dll)?


Thanks again!
Title: m-TAGS component (foo_tags)
Post by: RiCON on 2015-08-27 13:21:06
First time crashing I remember it crashing right after starting one song (that used m-tags). The others I think I was playing a song (not using m-tags) after restarting foobar2000 and then on changing to another one that used m-tags crashed it. The third time it took a few seconds after starting a m-tags song before crashing.

I'll try that dll with a clean version of fb2k.

Btw, my m-tags environment is:

"Music" library
|- m-tags (just m-tags with relative paths that point to m-tags files in "m-tagged")
|- m-tagged (media files as they were downloaded/ripped with !.tags in each folder with relative paths that point to media files)
|- rest (just media files that i don't mind modifying)

Seems to have stopped crashing but now you need to remake every m-tags file if you're thinking of changing tags, since it'll add
Code: [Select]
"DURATION" : [],

to every first file in an old m-tags file without that tag and error in that track:
Code: [Select]
Decoding failure at 0:00.000 (Unsupported format or corrupted file)


Using "Write m-TAGS to media files" on a m-tag pointing to another m-tag also seems to delete every @ reference in the latter.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-08-27 17:53:11
First time crashing I remember it crashing right after starting one song (that used m-tags). The others I think I was playing a song (not using m-tags) after restarting foobar2000 and then on changing to another one that used m-tags crashed it. The third time it took a few seconds after starting a m-tags song before crashing.

I'll try that dll with a clean version of fb2k.

Btw, my m-tags environment is:

"Music" library
|- m-tags (just m-tags with relative paths that point to m-tags files in "m-tagged")
|- m-tagged (media files as they were downloaded/ripped with !.tags in each folder with relative paths that point to media files)
|- rest (just media files that i don't mind modifying)

Seems to have stopped crashing but now you need to remake every m-tags file if you're thinking of changing tags, since it'll add
Code: [Select]
"DURATION" : [],

to every first file in an old m-tags file without that tag and error in that track:
Code: [Select]
Decoding failure at 0:00.000 (Unsupported format or corrupted file)


Using "Write m-TAGS to media files" on a m-tag pointing to another m-tag also seems to delete every @ reference in the latter.


OK. Great (so to speak). The crashing is the sensitive thing. I can fix the rest. Thanks for the input!
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-08-27 23:43:12
RiCON:

Do you mind downloading the dll again (http://m-tags.org/foo_tags.dll (http://m-tags.org/foo_tags.dll)) and let me know if

1) you still see crashes;
2) you still have the duration issue;
3) you still see the rewrite of m-TAGS files (they should not be rewritten at all).

What puzzles me the most is the duration issue, because I cannot replicate the "Unsupported format or corrupted file" error. Even if the duration is set to [], the file should play (and it does, for me), as such duration should be simply ignored!


Thanks a lot!
Title: m-TAGS component (foo_tags)
Post by: RiCON on 2015-08-28 16:54:25
No crashes;

There's still some kind of issue with the first (media) file. Unless I restart fb2k it can't be accessed if I did some operation with m-Tags. It's not tampering with the file, I think, but it's keeping it locked for some reason, unable to be read until you close the program. Sort of like, with v0.1 you had to close foobar after creating m-Tags because fb2k kept the file handles open even when not reading/writing the media files, so you couldn't move the files until you closed the program, but they could still be read.

The duration issue is probably related to mixing old m-tags with new. I'll check if it happens again later.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-08-28 18:29:15
No crashes;

There's still some kind of issue with the first (media) file. Unless I restart fb2k it can't be accessed if I did some operation with m-Tags. It's not tampering with the file, I think, but it's keeping it locked for some reason, unable to be read until you close the program. Sort of like, with v0.1 you had to close foobar after creating m-Tags because fb2k kept the file handles open even when not reading/writing the media files, so you couldn't move the files until you closed the program, but they could still be read.

The duration issue is probably related to mixing old m-tags with new. I'll check if it happens again later.


The lock issue is interesting. I ported m-TAGS to the latest SDK. I wonder if there is an issue with that. m-TAGS only accesses the files via the SDK, and trusts fb2k to close the handles (there is no "close()" method, neither for the input components, nor for the file instances). Input methods and files are closed via destructor, and I wonder if there is a glitch there. I will make a point to explicitly destroy my encapsulated inputs, just to make sure. But on a "write" (if that's the "operation you refer to") the encapsulated file is not even opened!!!

And why just the FIRST file, I wonder??? First or last is totally transparent to m-TAGS. It opens the input methods the same way, and it does NOT pre-open the first encapsulated file, either.

When you say "I did some operation with m-TAGS", what do you mean? A "write" operation (updating tags)? Or playing? And what file is locked? The encapsulated file or the m-TAGS file itself?
Title: m-TAGS component (foo_tags)
Post by: RiCON on 2015-08-28 19:18:08
I'm grabbing a fresh CD with a foobar2000 with only foo_tags.dll to run experiments.

Media library is set like my regular foobar2000 install, i.e.:
Code: [Select]
Library
|- "m-tagged"
   |- media that should remain untouched
      |- !.tags with relative paths to media in each album
|- "m-tags"
   |- contains folders for each artist\album in "m-tagged"
       |- .tags that point to the respective .tags file in "m-tagged"
|- "rest"
   |- media that I don't care remains pristine (don't contain .tags)
|- "temp"
   |- temporary place where I create the original .tags files after downloading/ripping a fresh album

So basically, I can't restrict my Media Library to just *.tags, since I need to also scan for *.flac, *.mp3, etc.

1 - Ripped a fresh album, placed it in a folder in "temp", enqueue the .flac files in fb2k
2 - "Create m-TAGS file" in the same folder as the media (in "temp")
3 - Remove media from fb2k to avoid changing the files by mistake and enqueue the created !.tags file
4 - Add/change tags as needed
At this point, in every track the codec changed from FLAC to TAGS. This didn't happen with v0.1, but it's not critical.
5 - Tested every track to see if it plays, it does with no problem.
6 - Remove tracks from the playlist in fb2k, move folder with media and !.tags to "m-tagged" where it will remain
7 - On moving the folder, Windows complains that the files are open in foobar2000, so I close it and try to move them again. They get moved.
Logfile until now: http://j.fsbn.eu/fb2k-tags-run1.log (http://j.fsbn.eu/fb2k-tags-run1.log)
8 - Reopen fb2k and enqueue the "!.tags" in "m-tagged" and check if tracks work. They do and the codec shows "FLAC".
9 - "Create m-TAGS file" from the tracks, this time in an organized manner in "m-tags\<artist>\(<year>) <album>\!.tags")
10 - Album shows up in Media Library, so I remove the tracks from "m-tagged" and add the ones from Media Library to the playlist. Tracks work.
11 - I forget to add/change a tag, so I change it (tracks change to codec "TAGS" again) and try to "Write m-TAGS to media files". Tracks still play fine.
Log shows it skipped because the source is a m-TAGS file.
Logfile from step 8 until now: http://j.fsbn.eu/fb2k-tags-run2.log (http://j.fsbn.eu/fb2k-tags-run2.log)

So basically: no crashes; no issues with seek/duration (probably because I used v1.1 .tags throughout the process instead of mixing); but still the file handles remaining open after creating m-TAGS, even if not playing them; codec change after changing tags (comes back to proper codec after restarting).

It would be cool to be able to use old format m-TAGS though, in case I need to change a tag in an old album.

Sorry for the lengthy report.

EDIT: the opened file handle is actually on the folder itself, not on any of the files.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-08-29 04:13:34
I'm grabbing a fresh CD with a foobar2000 with only foo_tags.dll to run experiments.

Media library is set like my regular foobar2000 install, i.e.:
Code: [Select]
Library
|- "m-tagged"
   |- media that should remain untouched
      |- !.tags with relative paths to media in each album
|- "m-tags"
   |- contains folders for each artist\album in "m-tagged"
       |- .tags that point to the respective .tags file in "m-tagged"
|- "rest"
   |- media that I don't care remains pristine (don't contain .tags)
|- "temp"
   |- temporary place where I create the original .tags files after downloading/ripping a fresh album

So basically, I can't restrict my Media Library to just *.tags, since I need to also scan for *.flac, *.mp3, etc.

1 - Ripped a fresh album, placed it in a folder in "temp", enqueue the .flac files in fb2k
2 - "Create m-TAGS file" in the same folder as the media (in "temp")
3 - Remove media from fb2k to avoid changing the files by mistake and enqueue the created !.tags file
4 - Add/change tags as needed
At this point, in every track the codec changed from FLAC to TAGS. This didn't happen with v0.1, but it's not critical.
5 - Tested every track to see if it plays, it does with no problem.
6 - Remove tracks from the playlist in fb2k, move folder with media and !.tags to "m-tagged" where it will remain
7 - On moving the folder, Windows complains that the files are open in foobar2000, so I close it and try to move them again. They get moved.
Logfile until now: http://j.fsbn.eu/fb2k-tags-run1.log (http://j.fsbn.eu/fb2k-tags-run1.log)
8 - Reopen fb2k and enqueue the "!.tags" in "m-tagged" and check if tracks work. They do and the codec shows "FLAC".
9 - "Create m-TAGS file" from the tracks, this time in an organized manner in "m-tags\<artist>\(<year>) <album>\!.tags")
10 - Album shows up in Media Library, so I remove the tracks from "m-tagged" and add the ones from Media Library to the playlist. Tracks work.
11 - I forget to add/change a tag, so I change it (tracks change to codec "TAGS" again) and try to "Write m-TAGS to media files". Tracks still play fine.
Log shows it skipped because the source is a m-TAGS file.
Logfile from step 8 until now: http://j.fsbn.eu/fb2k-tags-run2.log (http://j.fsbn.eu/fb2k-tags-run2.log)

So basically: no crashes; no issues with seek/duration (probably because I used v1.1 .tags throughout the process instead of mixing); but still the file handles remaining open after creating m-TAGS, even if not playing them; codec change after changing tags (comes back to proper codec after restarting).

It would be cool to be able to use old format m-TAGS though, in case I need to change a tag in an old album.

Sorry for the lengthy report.

EDIT: the opened file handle is actually on the folder itself, not on any of the files.


Thanks a lot for the extensive report. No need to apologize!!!

New version in http://m-tags.org/foo_tags.dll (http://m-tags.org/foo_tags.dll).

This shoud fix what you noticed in point 4/11 (flac-2-tags) and in point 11 (skipped file).

I really do not know what to say about the file lock issues. I solely use the SDK functions to open and operate on files (that may actually be the problem!). I did notice this behaviour in the past: basically moving files works from within fb2k, using the "File operations/Move to" menu, but not in windows. And of course, it is way easier to move files with windows explorer! Although, admittedly, that leaves fb2k with orphan playlist entries. So I cannot blame Peter too much for being "jealous" about the files....

I really do not know what you mean with "It would be cool to be able to use old format m-TAGS though, in case I need to change a tag in an old album."

What's the "old format"???

P.S. This has nothing to do with the technical issues: I am glad to see that you are a classical music collector! :-)
Title: m-TAGS component (foo_tags)
Post by: RiCON on 2015-08-29 06:08:38
Can't really remember how to reproduce the issue. I think it was that one time I changed something and it removed the @file references from the .tags file. Tried changing tags in an old m-TAGS made with v0.1 now and it worked (even added DURATION). Tried creating an m-TAGS pointing to an old m-TAGS and it worked too. Seems to be not be an issue anymore, if it even was.

Also tried moving from "temp" to "m-tagged" through fb2k move dialog and it also complained there:
Code: [Select]
Removing "D:\library\temp\Saburo Moroi - (2002) Symphony No. 3" failed: File is already in use

1 out of 15 operations failed.


It's not that much of a problem, I usually create m-tags in batches anyway so it's not like I have to restart fb2k that much. And I could just close it and remove the empty dirs afterwards, but there are some cases where media files are in a subfolder and I don't think fb2k can copy upper levels too.

The codec changing to TAGS on changing values appears to be fixed, thanks for fixing it, even though it looked like just a cosmetic issue!
Title: m-TAGS component (foo_tags)
Post by: zeremy on 2015-09-01 22:29:32
I would like to thank you for this component.

I am using it to create m-tags for streams urls (internet radio).
Using the component I can finally bypass all of foobar2000 limitations with streams  ( no writable tagging support)  which have troubled me in the past.
I can now create tags for streams which can be distributed and used by anyone.

Update 1.1 with album data support makes it possible to add the stream logo file , which is recognized by the native art viewer.

example files @ https://www.dropbox.com/s/g43mumkpej60xbh/m...xample.rar?dl=0 (https://www.dropbox.com/s/g43mumkpej60xbh/m-tags%20stream%20example.rar?dl=0)

If the m-tag contains %artist% or %title% tags , the dynamic track titles and not displayed.

Thanks again and keep up the great work.!!


Title: m-TAGS component (foo_tags)
Post by: amalone on 2015-09-03 01:09:28
If I add a folder with m-Tags files to the Media Library, foobar crashes using 1.12. No problems with previous versions. The example file from the previous post runs fine with version 1.03 installed, but crashes with 1.12. Windows XP sp3, foobar 1.3.8. Any ideas? Thanks.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-09-05 21:49:55
I would like to thank you for this component.

I am using it to create m-tags for streams urls (internet radio).
Using the component I can finally bypass all of foobar2000 limitations with streams  ( no writable tagging support)  which have troubled me in the past.
I can now create tags for streams which can be distributed and used by anyone.

Update 1.1 with album data support makes it possible to add the stream logo file , which is recognized by the native art viewer.

example files @ https://www.dropbox.com/s/g43mumkpej60xbh/m...xample.rar?dl=0 (https://www.dropbox.com/s/g43mumkpej60xbh/m-tags%20stream%20example.rar?dl=0)

If the m-tag contains %artist% or %title% tags , the dynamic track titles and not displayed.

Thanks again and keep up the great work.!!


I am not sure about the example files you sent. They do NOT contain %artist% nor %title%.

Anyway, the dynamic tracks are not displayed because m-TAGS takes precedence over them. m-TAGS is typically used to retag or fix wrong tags, so it assumes that you want to overwrite the underlying stream tags.

If you need to use, for example, dynamic artist only when present, you should have another name for the tag, say "%default artist%, instead of artist. Then, in your playlist column settings, just set the display to $if2(%artist%,%default artist%), and set the "Linked meta field" to "DEFAULT ARTIST". This way, fb2k displays the dynamic artist if present, or defaults to the m-TAGS "default artist" otherwise. You may also want to set the column "Linked meta field" to "DEFAULT ARTIST" instead of ARTIST, so you do not add an "ARTIST" tag in m-TAGS by mistake.

The previous instructions assume that you use Columns UI.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-09-05 21:52:16
If I add a folder with m-Tags files to the Media Library, foobar crashes using 1.12. No problems with previous versions. The example file from the previous post runs fine with version 1.03 installed, but crashes with 1.12. Windows XP sp3, foobar 1.3.8. Any ideas? Thanks.


It may be due to the fact that 1.12 uses a different fb2k SDK. Or, more likely, there is a bug....

I do not see a previous post from you. Can you please send me a log file? In Preferences/Advanced/Tagging/m-TAGS check "Enable verbose logging", then open the Console (View/Console) and check "Write Log". Having a snippet from one of your m-TAGS files would be great too!
Title: m-TAGS component (foo_tags)
Post by: Bonaparte on 2015-09-06 11:11:33
Hi all,

Is there a way to use original file paths for album art?
I've tried to add $info to the search patterns:
$info(@)\..\cover.jpg
$info(@)\..\folder.jpg

This doesn't work because foobar2000 replaces slashes, backslashes and colons with dashes and after that looks for an artwork.

For instance, if an original file is located in
D:\Music\Jazz\Billie Holiday\file.flac
it translates to
.TAGS PATH\D--Music-Jazz-Billie Holiday\file.flac\_\cover.jpg
.TAGS PATH\D--Music-Jazz-Billie Holiday\file.flac\_\folder.jpg
(I used Process Monitor (https://technet.microsoft.com/en-us/sysinternals/bb896645) to see it.)

Using $directory_path and replacing backslashes with slashes don't help much.

-------------------------
I'm also experimenting with my standalone batch script for .tags generation http://pastebin.com/MMm1jCn8 (http://pastebin.com/MMm1jCn8) (requires ffprobe (http://sourceforge.net/projects/ffprobe/), jq (https://stedolan.github.io/jq/) and an empty bom.txt with the BOM signature). It needs some fixes of field mapping but overall it works.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-09-06 18:38:14
Hi all,

Is there a way to use original file paths for album art?
I've tried to add $info to the search patterns:
$info(@)\..\cover.jpg
$info(@)\..\folder.jpg

This doesn't work because foobar2000 replaces slashes, backslashes and colons with dashes and after that looks for an artwork.

For instance, if an original file is located in
D:\Music\Jazz\Billie Holiday\file.flac
it translates to
.TAGS PATH\D--Music-Jazz-Billie Holiday\file.flac\_\cover.jpg
.TAGS PATH\D--Music-Jazz-Billie Holiday\file.flac\_\folder.jpg
(I used Process Monitor (https://technet.microsoft.com/en-us/sysinternals/bb896645) to see it.)

Using $directory_path and replacing backslashes with slashes don't help much.

-------------------------
I'm also experimenting with my standalone batch script for .tags generation http://pastebin.com/MMm1jCn8 (http://pastebin.com/MMm1jCn8) (requires ffprobe (http://sourceforge.net/projects/ffprobe/), jq (https://stedolan.github.io/jq/) and an empty bom.txt with the BOM signature). It needs some fixes of field mapping but overall it works.


The only way I could make it work is:
$substr($replace($replace(%__@%,'?','\'),'\\',':\'),2,$strrchr(%__@%,'?'))cover.jpg
$substr($replace($replace(%__@%,'?','\'),'\\',':\'),2,$strrchr(%__@%,'?'))folder.jpg

Not perfect... but it works, if locators are absolute (i.e. they start with a '/'). If your script is creating (improperly, but that's what your script seems to be doing) "scheme" locator (i.e. locators starting with a drive letter and colon), then this should work:

$substr($replace($replace(%__@%,'?','\'),'\\',':\'),1,$strrchr(%__@%,'?'))cover.jpg
$substr($replace($replace(%__@%,'?','\'),'\\',':\'),1,$strrchr(%__@%,'?'))folder.jpg

Let me know what happens!
Title: m-TAGS component (foo_tags)
Post by: zeremy on 2015-09-06 19:10:40
I would like to thank you for this component.

I am using it to create m-tags for streams urls (internet radio).
Using the component I can finally bypass all of foobar2000 limitations with streams  ( no writable tagging support)  which have troubled me in the past.
I can now create tags for streams which can be distributed and used by anyone.

Update 1.1 with album data support makes it possible to add the stream logo file , which is recognized by the native art viewer.

example files @ https://www.dropbox.com/s/g43mumkpej60xbh/m...xample.rar?dl=0 (https://www.dropbox.com/s/g43mumkpej60xbh/m-tags%20stream%20example.rar?dl=0)

If the m-tag contains %artist% or %title% tags , the dynamic track titles and not displayed.

Thanks again and keep up the great work.!!


I am not sure about the example files you sent. They do NOT contain %artist% nor %title%.

Anyway, the dynamic tracks are not displayed because m-TAGS takes precedence over them. m-TAGS is typically used to retag or fix wrong tags, so it assumes that you want to overwrite the underlying stream tags.

If you need to use, for example, dynamic artist only when present, you should have another name for the tag, say "%default artist%, instead of artist. Then, in your playlist column settings, just set the display to $if2(%artist%,%default artist%), and set the "Linked meta field" to "DEFAULT ARTIST". This way, fb2k displays the dynamic artist if present, or defaults to the m-TAGS "default artist" otherwise. You may also want to set the column "Linked meta field" to "DEFAULT ARTIST" instead of ARTIST, so you do not add an "ARTIST" tag in m-TAGS by mistake.

The previous instructions assume that you use Columns UI.


My comment "If the m-tag contains %artist% or %title% tags , the dynamic track titles and not displayed." was just to warn users if they add them dynamic metadata will NOT be displayed because as you replied  m-TAGS takes precedence over them.

When creating a m-tag from an url radio station ( shoutcast / icecast) , foobar adds the station name to the title tag. This must be removed or as I do move to a new tag %STREAMNAME%.

There is no need for remapping artist field, as url internet stations have no default artist.

Thanks again..
Title: m-TAGS component (foo_tags)
Post by: Bonaparte on 2015-09-07 05:02:10
The only way I could make it work is:
$substr($replace($replace(%__@%,'?','\'),'\\',':\'),2,$strrchr(%__@%,'?'))cover.jpg
$substr($replace($replace(%__@%,'?','\'),'\\',':\'),2,$strrchr(%__@%,'?'))folder.jpg

Not perfect... but it works, if locators are absolute (i.e. they start with a '/'). If your script is creating (improperly, but that's what your script seems to be doing) "scheme" locator (i.e. locators starting with a drive letter and colon), then this should work:

$substr($replace($replace(%__@%,'?','\'),'\\',':\'),1,$strrchr(%__@%,'?'))cover.jpg
$substr($replace($replace(%__@%,'?','\'),'\\',':\'),1,$strrchr(%__@%,'?'))folder.jpg

Let me know what happens!

Thanks for the hint, this works for me:
$directory_path($directory_path($replace($replace($replace($substr(%__@%,2,$strrchr(%__@%,'-')),'--',':\'),'-','\'),' \ ',' - ')))\folder.jpg

In my system special symbols are replaced with dashes -, not question marks ?. It makes the solution less reliable, filenames with dashes and without spaces around them still won't work. Well, better than nothing.
Indeed, my script generates improper paths atm, I'm still trying to figure out how to make string replacement work in jq, maybe I'll just go with php-cli.

Almost forgot: m-TAGS doesn't open network shares in dialog windows, even mounted as network drives (they're just hidden). Without it, I can't use the function "Create m-TAGS (in separate folder)", could you take a look at it? Thanks again.
Title: m-TAGS component (foo_tags)
Post by: Bonaparte on 2015-09-07 11:03:58
More universal solution:
$directory_path($replace($replace($replace($replace($substr($info(@REFERENCED_FILE),8,$len($info(@REFERENCED_FILE))),'--',':\'),'-','\'),' \',' -'),'\ ','- '))\folder.jpg

There is a case, when this won't work as expected. If a .tags file contains more than one album, ELPlaylist will use same cover, from the first album, for all albums in the file. All because of this:
$albumart($get(art.left),$get(art.top),$get(art.size),$get(art.size),0,front nokeepaspect,,)
Parameter 0 means it uses first file in the group (which is same for all entries), 1 - will try to find a cover for each entry, and it will work. But it's gonna be awfully slow: if you have 5 templates for album covers (cover, front, folder etc.), 100 songs will make 5*100 HDD queries.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-09-07 14:32:14
More universal solution:
$directory_path($replace($replace($replace($replace($substr($info(@REFERENCED_FILE),8,$len($info(@REFERENCED_FILE))),'--',':\'),'-','\'),' \',' -'),'\ ','- '))\folder.jpg

There is a case, when this won't work as expected. If a .tags file contains more than one album, ELPlaylist will use same cover, from the first album, for all albums in the file. All because of this:
$albumart($get(art.left),$get(art.top),$get(art.size),$get(art.size),0,front nokeepaspect,,)
Parameter 0 means it uses first file in the group (which is same for all entries), 1 - will try to find a cover for each entry, and it will work. But it's gonna be awfully slow: if you have 5 templates for album covers (cover, front, folder etc.), 100 songs will make 5*100 HDD queries.


I agree that using @referenced_file is the proper way. Locators are context-sensitive, @referenced_file is the locator's canonical path, and it is always absolute AND always contains the scheme. Also, locators contain track indexes, which are a nuisance when extracting paths.

If you are using ELPlaylist (I do too), then you have to regroup to get separate covers. I think ELPlaylist uses 0 as a group index, not a file index.
Title: m-TAGS component (foo_tags)
Post by: Bonaparte on 2015-09-07 15:04:43
If you are using ELPlaylist (I do too), then you have to regroup to get separate covers. I think ELPlaylist uses 0 as a group index, not a file index.

No luck, looks like 0 is rather a mode id.

BTW, I've fixed my script (http://pastebin.com/MMm1jCn8): the problem was backslashes in Windows, not jq, generated paths are now correct. Time for heavy scripting!
Title: m-TAGS component (foo_tags)
Post by: strangeluck on 2015-09-21 19:57:51
Almost forgot: m-TAGS doesn't open network shares in dialog windows, even mounted as network drives (they're just hidden). Without it, I can't use the function "Create m-TAGS (in separate folder)", could you take a look at it? Thanks again.

Same problem here, I'd also appreciate a fix for this if possible. Thank you.
Title: m-TAGS component (foo_tags)
Post by: Bonaparte on 2015-09-21 21:31:17
I work on a script which indexes music files, creates .tags files and keeps the collection up to date: fixes paths, moves orphaned files and adds new releases.
Here it is: https://github.com/vensko/mtags-sync (https://github.com/vensko/mtags-sync) (very early beta!)

I'd like to keep this thing cross-platform, because, personally, I use it on my NAS, therefore all functions were reproduced with third-party components. Even though it's written in PHP, it should work correctly with most Unicode file names and tags. It's fully compatible with the m-TAGS plugin for foobar2000, but creates .tags a little differently: all valid .CUEs and files with CUESHEET tags are treated separately and have their own .tags.

Each directory/.cue/cuesheet tag is identified by an id, formed with combined file durations. Sometimes, calculated file durations might differ from the ones by the foobar2000 plugin. If you put your old .tags into the target folder, and durations match - everything's ok. Otherwise, the .tags will be just overwritten. That's the main reason why import of existing .tags was shelved. In other words, create .tags solely by the script and you'll be fine.

Both music and .tags files can be freely deleted/renamed/moved inside their folders, and the script will update your .tags to reflect these changes.
There are some presumptions. As you already know, each directory is identified by a combination of durations of files inside it. Hence your collection has to be release-oriented: each album/ep/single has to be located in its own directory/.cue/CUESHEET tag. Deleted or added media file changes the directory id, and it becomes a new release.
Title: m-TAGS component (foo_tags)
Post by: zeremy on 2015-09-24 08:40:52
@luigimercurio

One small issue.

If the m-TAGS:: REFERENCED FILE: is HTTP and points to a file (eg http://mp3stream4.abradio.cz/depeche64.mp3) (http://mp3stream4.abradio.cz/depeche64.mp3))
I get a popup "Attached editing picture failure: Access denied."

I am trying to add external image using .tags.front.bin

Sample tag
Code: [Select]
[
  {
    "@": "http://mp3stream4.abradio.cz/depeche64.mp3",
    "STREAM_NAME": "Radio Depeche Mode",
    "STREAM_DESCRIPTION": "Radio Depeche Mode",
    "STREAM_GENRE": "Rock",
    "STREAM_BITRATE": "64",
    "STREAM_WEBPAGE": "http://www.abradio.cz",
    "STREAM_ID": "0783218226"
  }
]

Verbose Log
Code: [Select]
[10:36:57] m-TAGS:: Creating album art extractor for file://C:\FooTunein\m-tags\0783218226\0783218226.tags
[10:36:57] m-TAGS:: CREATING TAGS
[10:36:57] m-TAGS:: CREATING ALBUM ART EDITOR INSTANCE
[10:36:57] m-TAGS:: Loading locator
[10:36:57] m-TAGS:: OPENING file://C:\FooTunein\m-tags\0783218226\0783218226.tags
[10:36:57] m-TAGS:: Resolving locator: [url=http://mp3stream4.abradio.cz/depeche64.mp3]http://mp3stream4.abradio.cz/depeche64.mp3[/url]
[10:36:57] m-TAGS:: tags_path: file://C:\FooTunein\m-tags\0783218226\0783218226.tags
[10:36:57] m-TAGS:: locator: [url=http://mp3stream4.abradio.cz/depeche64.mp3]http://mp3stream4.abradio.cz/depeche64.mp3[/url]
[10:36:57] m-TAGS:: path: [url=http://mp3stream4.abradio.cz/depeche64.mp3]http://mp3stream4.abradio.cz/depeche64.mp3[/url]
[10:36:57] m-TAGS:: Resolved path: [url=http://mp3stream4.abradio.cz/depeche64.mp3]http://mp3stream4.abradio.cz/depeche64.mp3[/url]
[10:36:57] m-TAGS:: Canonical path: [url=http://mp3stream4.abradio.cz:80/depeche64.mp3]http://mp3stream4.abradio.cz:80/depeche64.mp3[/url]
[10:36:57] m-TAGS:: REFERENCED FILE: [url=http://mp3stream4.abradio.cz:80/depeche64.mp3]http://mp3stream4.abradio.cz:80/depeche64.mp3[/url] [0]
[10:36:57] m-TAGS:: Opening internal editor
[10:36:57] m-TAGS:: DESTROYING TAGS
Title: m-TAGS component (foo_tags)
Post by: Bonaparte on 2015-09-25 21:06:46
Biography Server plugin has a neat feature, allowing automatic download of missing cover art:
(https://i.imgur.com/lSydzVq.png)
It works in ELPlaylist for normal media files using $albumart function, but does not for m-tags. Is there any chance to use it with .tags as well?
Title: m-TAGS component (foo_tags)
Post by: peterr on 2015-09-28 18:01:38
Thanks for this great component! One question/suggestion: Could there be a command line option for creating m-tags in seperate folders, too? That would help a lot with my setup.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-10-11 13:35:15
Biography Server plugin has a neat feature, allowing automatic download of missing cover art:
(https://i.imgur.com/lSydzVq.png)
It works in ELPlaylist for normal media files using $albumart function, but does not for m-tags. Is there any chance to use it with .tags as well?


I do not know how the component works. However, m-tags is NOT an artwork viewer. It provides embedded artwork capabilities 'as if' the artwork was embedded in the media file. It should be the Biography Server responsibility to understand that artwork is missing. In other words, m-TAGS just presents the artwork (or lack thereof) exactly the same way any other artwork plugin does. So, it SHOULD work if the other component uses the standard api's.

By the way, I use ELPlaylist myself, and the artwork shows ok. But I do not know how Biography Server works, again. Try to ask its developer how he/she accesses the media artwork, and maybe I'll have a solution.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-10-11 13:37:01
Thanks for this great component! One question/suggestion: Could there be a command line option for creating m-tags in seperate folders, too? That would help a lot with my setup.


Maybe...... I'll look into it.
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-10-11 13:42:02
@luigimercurio

One small issue.

If the m-TAGS:: REFERENCED FILE: is HTTP and points to a file (eg http://mp3stream4.abradio.cz/depeche64.mp3) (http://mp3stream4.abradio.cz/depeche64.mp3))
I get a popup "Attached editing picture failure: Access denied."

I am trying to add external image using .tags.front.bin

Sample tag
Code: [Select]
[
  {
    "@": "http://mp3stream4.abradio.cz/depeche64.mp3",
    "STREAM_NAME": "Radio Depeche Mode",
    "STREAM_DESCRIPTION": "Radio Depeche Mode",
    "STREAM_GENRE": "Rock",
    "STREAM_BITRATE": "64",
    "STREAM_WEBPAGE": "http://www.abradio.cz",
    "STREAM_ID": "0783218226"
  }
]

Verbose Log
Code: [Select]
[10:36:57] m-TAGS:: Creating album art extractor for file://C:\FooTunein\m-tags\0783218226\0783218226.tags
[10:36:57] m-TAGS:: CREATING TAGS
[10:36:57] m-TAGS:: CREATING ALBUM ART EDITOR INSTANCE
[10:36:57] m-TAGS:: Loading locator
[10:36:57] m-TAGS:: OPENING file://C:\FooTunein\m-tags\0783218226\0783218226.tags
[10:36:57] m-TAGS:: Resolving locator: [url=http://mp3stream4.abradio.cz/depeche64.mp3]http://mp3stream4.abradio.cz/depeche64.mp3[/url]
[10:36:57] m-TAGS:: tags_path: file://C:\FooTunein\m-tags\0783218226\0783218226.tags
[10:36:57] m-TAGS:: locator: [url=http://mp3stream4.abradio.cz/depeche64.mp3]http://mp3stream4.abradio.cz/depeche64.mp3[/url]
[10:36:57] m-TAGS:: path: [url=http://mp3stream4.abradio.cz/depeche64.mp3]http://mp3stream4.abradio.cz/depeche64.mp3[/url]
[10:36:57] m-TAGS:: Resolved path: [url=http://mp3stream4.abradio.cz/depeche64.mp3]http://mp3stream4.abradio.cz/depeche64.mp3[/url]
[10:36:57] m-TAGS:: Canonical path: [url=http://mp3stream4.abradio.cz:80/depeche64.mp3]http://mp3stream4.abradio.cz:80/depeche64.mp3[/url]
[10:36:57] m-TAGS:: REFERENCED FILE: [url=http://mp3stream4.abradio.cz:80/depeche64.mp3]http://mp3stream4.abradio.cz:80/depeche64.mp3[/url] [0]
[10:36:57] m-TAGS:: Opening internal editor
[10:36:57] m-TAGS:: DESTROYING TAGS

Can you tell me what are you using to add the album art? The GUI or some add-on?
Title: m-TAGS component (foo_tags)
Post by: zeremy on 2015-10-11 14:57:02
@luigimercurio

One small issue.

If the m-TAGS:: REFERENCED FILE: is HTTP and points to a file (eg http://mp3stream4.abradio.cz/depeche64.mp3) (http://mp3stream4.abradio.cz/depeche64.mp3))
I get a popup "Attached editing picture failure: Access denied."

I am trying to add external image using .tags.front.bin

Sample tag
Code: [Select]
[
  {
    "@": "http://mp3stream4.abradio.cz/depeche64.mp3",
    "STREAM_NAME": "Radio Depeche Mode",
    "STREAM_DESCRIPTION": "Radio Depeche Mode",
    "STREAM_GENRE": "Rock",
    "STREAM_BITRATE": "64",
    "STREAM_WEBPAGE": "http://www.abradio.cz",
    "STREAM_ID": "0783218226"
  }
]

Verbose Log
Code: [Select]
[10:36:57] m-TAGS:: Creating album art extractor for file://C:\FooTunein\m-tags\0783218226\0783218226.tags
[10:36:57] m-TAGS:: CREATING TAGS
[10:36:57] m-TAGS:: CREATING ALBUM ART EDITOR INSTANCE
[10:36:57] m-TAGS:: Loading locator
[10:36:57] m-TAGS:: OPENING file://C:\FooTunein\m-tags\0783218226\0783218226.tags
[10:36:57] m-TAGS:: Resolving locator: [url=http://mp3stream4.abradio.cz/depeche64.mp3]http://mp3stream4.abradio.cz/depeche64.mp3[/url]
[10:36:57] m-TAGS:: tags_path: file://C:\FooTunein\m-tags\0783218226\0783218226.tags
[10:36:57] m-TAGS:: locator: [url=http://mp3stream4.abradio.cz/depeche64.mp3]http://mp3stream4.abradio.cz/depeche64.mp3[/url]
[10:36:57] m-TAGS:: path: [url=http://mp3stream4.abradio.cz/depeche64.mp3]http://mp3stream4.abradio.cz/depeche64.mp3[/url]
[10:36:57] m-TAGS:: Resolved path: [url=http://mp3stream4.abradio.cz/depeche64.mp3]http://mp3stream4.abradio.cz/depeche64.mp3[/url]
[10:36:57] m-TAGS:: Canonical path: [url=http://mp3stream4.abradio.cz:80/depeche64.mp3]http://mp3stream4.abradio.cz:80/depeche64.mp3[/url]
[10:36:57] m-TAGS:: REFERENCED FILE: [url=http://mp3stream4.abradio.cz:80/depeche64.mp3]http://mp3stream4.abradio.cz:80/depeche64.mp3[/url] [0]
[10:36:57] m-TAGS:: Opening internal editor
[10:36:57] m-TAGS:: DESTROYING TAGS

Can you tell me what are you using to add the album art? The GUI or some add-on?

To be more specific , the reference file is NOT a physical mp3 file , but the streams URL just ENDS with .mp3.
So my guess was that the component is trying to load a mp3 file , which it is actually not and failing.

With the GUI Right-click > Tagging > Attach Pictures > Front cover I get the  popup "Attached editing picture failure: Access denied.

Even if an external script save's the image to the folder as  .tags.front.bin , it is not recognized and not displayed in art viewer/playlist.

The same error happens with stream URL's that end with .ogg or .opus but not with .aac.

I know that your component was not designed for streams , but you can see what I have been able to accomplish with it @ http://zeremy.deviantart.com/art/FooTunein-562901851 (http://zeremy.deviantart.com/art/FooTunein-562901851)

Thanks again.
Title: m-TAGS component (foo_tags)
Post by: WilB on 2015-10-20 12:26:34
Automatic generation of m-TAGS files  using album track lists from MusicBrainz and last.fm

Download  script here (https://www.hydrogenaud.io/forums/index.php?s=&showtopic=105522&view=findpost&p=909274). Full details and requirements are here (https://www.hydrogenaud.io/forums/index.php?s=&showtopic=105522&view=findpost&p=909160). Albums  can be built from exclusively media library tracks, exclusively YouTube links  or a mixture of both where media library tracks are preferred. MusicBrainz will  often (but not always) give better results for albums than last.fm.
Title: m-TAGS component (foo_tags)
Post by: Matt248 on 2015-11-17 20:56:42
Can two m-tags files or more be created for the same source file. Such that for example one contains Discogs tags and the other Musicbrainz or last.fm tags.

Also whats the best practice when storing artist related info, if is saved in every album m-tag isn't it redundant, for example related artists.

I have been getting some crashes when the m-tag files is being created from File>Menu>M-Tags>Create M-Tags in the same folder and also from the contextual menu. Foo_Tags version 1.12 and Foobar latest 1.3.9
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-12-31 18:47:11
To be more specific , the reference file is NOT a physical mp3 file , but the streams URL just ENDS with .mp3.
So my guess was that the component is trying to load a mp3 file , which it is actually not and failing.

With the GUI Right-click > Tagging > Attach Pictures > Front cover I get the  popup "Attached editing picture failure: Access denied.

Even if an external script save's the image to the folder as  .tags.front.bin , it is not recognized and not displayed in art viewer/playlist.

The same error happens with stream URL's that end with .ogg or .opus but not with .aac.

I know that your component was not designed for streams , but you can see what I have been able to accomplish with it @ http://zeremy.deviantart.com/art/FooTunein-562901851 (http://zeremy.deviantart.com/art/FooTunein-562901851)

Thanks again.


The component is actually built for streams, and I use it regularly for that. However, the behaviour of fb2k is undetermined if a stream ends with a "well-known" extension. The algorithm to find an input method in fb2k just browses through all input methods until one matches the url. If the "default" mp3 input method is found before the input method which would properly load the stream, then you get an error. Unfortunately, the behaviour is also random, because it depands on DLL loading order, and it may change with each every start of fb2k. In other words it may work sometimes, but not always.

I asked peter to address the issue and to match by PREFIX first, then by SUFFIX, but it may not be in his priority to-do list.

I solved the issue creating my own input method with corrects the links. In other words, I create locators which do NOT contain the ".mp3" extension, which is appended by the input method before actually loading and decoding the stream (using ffmpeg).
Title: m-TAGS component (foo_tags)
Post by: luigimercurio on 2015-12-31 18:53:11
Can two m-tags files or more be created for the same source file. Such that for example one contains Discogs tags and the other Musicbrainz or last.fm tags.

Also whats the best practice when storing artist related info, if is saved in every album m-tag isn't it redundant, for example related artists.

I have been getting some crashes when the m-tag files is being created from File>Menu>M-Tags>Create M-Tags in the same folder and also from the contextual menu. Foo_Tags version 1.12 and Foobar latest 1.3.9


Yes, you can create as many m-TAGS files for the same media file as you want.

As for the artist info, unless you use another extension to grab it from an external source, you can embed it in m-TAGS the exact same way you would with regular media files. If you do not do that with regular media files, then you should not do that with m-TAGS. Keep in mind, however, that m-TAGS has one advantage with respect to embedded media tags. If you have album-wide m-TAGS files, all tags pertaining to the whole album are only written ONCE in the m-TAGS file.

Regarding the crashes, can you turn debugging on and send me a log file?
Title: m-TAGS component (foo_tags)
Post by: Nisto on 2016-01-03 23:29:51
I'm having the same issue under the same versions as Matt248. I don't mean to sound disrespectful, but it feels seriously broken (I've tested m-TAGS in the past and experienced issues then too). Anyway, since it keeps crashing on automatic m-TAGS creation via the GUI, I tried creating a !.tags file manually instead, following the syntax presented on your site. When I loaded that, it crashed immediately. After that, it got as far as foobar2000 crashing literally every time, the second it opened. I had to manually uninstall the plugin from my foobar2000 folder to stop the madness. Since I only have logs left from the latter issue, it's all I can provide (the m-TAGS file creation issue had a different call path, that's all I know).

Code: [Select]
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 02149217h
Access violation, operation: read, address: 00000004h
Last win32 error: 38

Call path:
folder watcher thread=>watch loop=>input_entry::g_open_for_info_read

Code bytes (02149217h):
021491D7h:  CF C7 45 FC 02 00 00 00 E8 8C DE FF FF 8B F0 3B
021491E7h:  37 74 18 8D 45 E8 50 8D 4E 10 E8 AA E7 FF FF 84
021491F7h:  C0 74 08 83 C6 18 E9 99 00 00 00 8B 45 0C 85 C0
02149207h:  74 18 85 DB 74 14 E8 0E 03 00 00 53 8B 08 8B 01
02149217h:  FF 50 04 8B C8 8B 45 0C EB 02 8B CB 89 4D C0 85
02149227h:  DB 74 09 33 C9 85 C0 0F 95 C1 EB 02 8B C8 89 4D
02149237h:  C4 68 38 1D 1B 02 8D 4D C8 C6 45 FC 03 E8 17 E0
02149247h:  FF FF 8B 7D F0 8D 45 C0 50 C6 45 FC 04 8B 3F 8B

Stack (0475F2DCh):
0475F2BCh:  00E80000 0111A600 00000000 00000000
0475F2CCh:  0012FBB8 00000006 0001FB80 00000002
0475F2DCh:  0475F370 2D63B4CD 0475F618 0475F618
0475F2ECh:  0475F360 0475F364 7C91003D 40179101
0475F2FCh:  00150000 00000000 05E900B8 0475F314
0475F30Ch:  02169A4D 0475F618 0475F340 0475F370
0475F31Ch:  00000002 05E96C18 0475F3BC 02187FA1
0475F32Ch:  00000002 0475F340 02147B06 0475F370
0475F33Ch:  00000002 0475F3C8 02145C0C 0475F370
0475F34Ch:  2D63B435 00000001 0475F618 0475F401
0475F35Ch:  0000FDE8 05E900B8 00000005 0024F017
0475F36Ch:  0024F01A 2D630040 0024C090 0475F440
0475F37Ch:  0024C090 00000001 0000000F FFFFFFFF
0475F38Ch:  0475F3D4 02146CB0 001E4DF0 00000000
0475F39Ch:  00000002 05E96C10 05E96C00 2D63B429
0475F3ACh:  0000000B 0024F01B 0024F01C 2D63B435
0475F3BCh:  0475F430 02187B08 00000000 0475F43C
0475F3CCh:  021460EB 0475F408 2D63B3C1 00000001
0475F3DCh:  0475F618 0475F454 0475F438 02147C31
0475F3ECh:  2D63B3C5 00000000 0475F618 0475F454

Registers:
EAX: 00000000, EBX: 0475F370, ECX: 021B1D48, EDX: 00000000
ESI: 05E96AD8, EDI: 001E6C08, EBP: 0475F330, ESP: 0475F2DC

Crash location:
Module: foo_tags
Offset: 9217h

Loaded modules:
foobar2000                      loaded at 00400000h - 005CF000h
ntdll                            loaded at 7C900000h - 7C9AF000h
kernel32                        loaded at 7C800000h - 7C8F6000h
COMCTL32                        loaded at 773D0000h - 774D3000h
msvcrt                          loaded at 77C10000h - 77C68000h
ADVAPI32                        loaded at 77DD0000h - 77E6B000h
RPCRT4                          loaded at 77E70000h - 77F02000h
Secur32                          loaded at 77FE0000h - 77FF1000h
GDI32                            loaded at 77F10000h - 77F59000h
USER32                          loaded at 7E410000h - 7E4A1000h
SHLWAPI                          loaded at 77F60000h - 77FD6000h
WINMM                            loaded at 76B40000h - 76B6D000h
DSOUND                          loaded at 73F10000h - 73F6C000h
ole32                            loaded at 774E0000h - 7761D000h
VERSION                          loaded at 77C00000h - 77C08000h
UxTheme                          loaded at 5AD70000h - 5ADA8000h
SHELL32                          loaded at 7C9C0000h - 7D1D7000h
zlib1                            loaded at 62E80000h - 62E9F000h
shared                          loaded at 10000000h - 1002D000h
imagehlp                        loaded at 76C90000h - 76CB8000h
dbghelp                          loaded at 59A60000h - 59B01000h
COMDLG32                        loaded at 763B0000h - 763F9000h
CRYPT32                          loaded at 77A80000h - 77B15000h
MSASN1                          loaded at 77B20000h - 77B32000h
gdiplus                          loaded at 4EC50000h - 4EDF6000h
WINHTTP                          loaded at 4D4F0000h - 4D549000h
IMM32                            loaded at 76390000h - 763AD000h
LPK                              loaded at 629C0000h - 629C9000h
USP10                            loaded at 74D90000h - 74DFB000h
msctfime                        loaded at 755C0000h - 755EE000h
foo_converter                    loaded at 011C0000h - 01248000h
foo_input_tta                    loaded at 01270000h - 012B2000h
foo_verifier                    loaded at 012E0000h - 01322000h
foo_input_caf                    loaded at 01350000h - 013A5000h
foo_input_amr                    loaded at 013D0000h - 01417000h
foo_playback_custom              loaded at 01440000h - 01487000h
WINSPOOL                        loaded at 73000000h - 73026000h
OLEAUT32                        loaded at 77120000h - 771AB000h
foo_midi                        loaded at 016D0000h - 01945000h
BASS                            loaded at 01960000h - 019B0000h
MSACM32                          loaded at 77BE0000h - 77BF5000h
BASSMIDI                        loaded at 019B0000h - 019E8000h
foo_input_usf                    loaded at 01F20000h - 01FAC000h
foo_ui_std                      loaded at 01FC0000h - 020CE000h
MSIMG32                          loaded at 76380000h - 76385000h
foo_skip                        loaded at 020F0000h - 02126000h
foo_ac3                          loaded at 01E90000h - 01EC1000h
foo_tags                        loaded at 02140000h - 021CA000h
foo_dumb                        loaded at 021D0000h - 022C8000h
foo_flv                          loaded at 024D0000h - 024EB000h
foo_fileops                      loaded at 02510000h - 0255E000h
foo_input_dts                    loaded at 02D80000h - 02DE7000h
foo_input_tak                    loaded at 02E00000h - 02E46000h
tak_deco_lib                    loaded at 01E10000h - 01E31000h
foo_dsp_eq                      loaded at 01E40000h - 01E77000h
foo_psf                          loaded at 02F60000h - 02FBD000h
foo_rgscan                      loaded at 02FD0000h - 03031000h
foo_unpack                      loaded at 03060000h - 030AC000h
foo_dsp_effect                  loaded at 030D0000h - 03115000h
foo_texttools                    loaded at 03130000h - 03164000h
foo_dsp_std                      loaded at 03190000h - 031D2000h
foo_cdda                        loaded at 03200000h - 03251000h
foo_acm_packet_decoder          loaded at 03280000h - 032C2000h
foo_input_monkey                loaded at 032F0000h - 03338000h
foo_wave_seekbar                loaded at 03360000h - 03509000h
WS2_32                          loaded at 71AB0000h - 71AC7000h
WS2HELP                          loaded at 71AA0000h - 71AA8000h
PSAPI                            loaded at 76BF0000h - 76BFB000h
IPHLPAPI                        loaded at 76D60000h - 76D79000h
MSVCP120                        loaded at 03520000h - 03591000h
MSVCR120                        loaded at 035A0000h - 0368E000h
mswsock                          loaded at 71A50000h - 71A8F000h
hnetcfg                          loaded at 662B0000h - 66308000h
wshtcpip                        loaded at 71A90000h - 71A98000h
foo_input_vgmstream              loaded at 03720000h - 03865000h
libvorbis                        loaded at 03880000h - 038BE000h
libmpg123-0                      loaded at 038D0000h - 03911000h
libg7221_decode                  loaded at 03930000h - 03955000h
libg719_decode                  loaded at 03970000h - 03993000h
at3plusdecoder                  loaded at 039B0000h - 03A1E000h
foo_input_std                    loaded at 03A60000h - 03BBB000h
avcodec-fb2k-56                  loaded at 669C0000h - 66B9E000h
avutil-fb2k-54                  loaded at 6B540000h - 6B5CA000h
foo_dsp_resampler                loaded at 03BE0000h - 03D38000h
foo_adpcm                        loaded at 04290000h - 042EB000h
foo_quicktag                    loaded at 04300000h - 04334000h
foo_input_mdx                    loaded at 04360000h - 043B3000h
foo_input_aodsf                  loaded at 043E0000h - 04414000h
foo_gep                          loaded at 04430000h - 04631000h
frontend_direct3d9              loaded at 04C60000h - 04CB0000h
d3d9                            loaded at 4FDD0000h - 4FF76000h
d3d8thk                          loaded at 6D990000h - 6D996000h
d3dx9_42                        loaded at 050D0000h - 052B5000h
SciLexer                        loaded at 052C0000h - 05362000h
CoreAudioToolbox                loaded at 05370000h - 0585B000h
CoreFoundation                  loaded at 04EE0000h - 0507E000h
MSVCR100                        loaded at 78AA0000h - 78B5F000h
objc                            loaded at 04E30000h - 04E5B000h
MSVCP100                        loaded at 78050000h - 780B9000h
ASL                              loaded at 04E70000h - 04E81000h
libdispatch                      loaded at 04EA0000h - 04EB6000h
libicuin                        loaded at 05860000h - 059A3000h
libicuuc                        loaded at 059B0000h - 05AAC000h
icudt49                          loaded at 4AD00000h - 4BF38000h
d3dcompiler_42                  loaded at 05F90000h - 06177000h

Stack dump analysis:
Address: 7C91003Dh (ntdll+1003Dh), symbol: "RtlFreeHeap" (+130h)
Address: 02169A4Dh (foo_tags+29A4Dh)
Address: 02187FA1h (foo_tags+47FA1h)
Address: 02147B06h (foo_tags+7B06h)
Address: 02145C0Ch (foo_tags+5C0Ch)
Address: 02146CB0h (foo_tags+6CB0h)
Address: 02187B08h (foo_tags+47B08h)
Address: 021460EBh (foo_tags+60EBh)
Address: 02147C31h (foo_tags+7C31h)
Address: 02187B50h (foo_tags+47B50h)
Address: 02145877h (foo_tags+5877h)
Address: 02179157h (foo_tags+39157h)
Address: 02187AB0h (foo_tags+47AB0h)
Address: 021460FDh (foo_tags+60FDh)
Address: 7C90E900h (ntdll+E900h), symbol: "strchr" (+113h)
Address: 7C9101C0h (ntdll+101C0h), symbol: "RtlAllocateHeap" (+11Ch)
Address: 7C9101BBh (ntdll+101BBh), symbol: "RtlAllocateHeap" (+117h)
Address: 02179157h (foo_tags+39157h)
Address: 02169A36h (foo_tags+29A36h)
Address: 0214565Dh (foo_tags+565Dh)
Address: 02187B50h (foo_tags+47B50h)
Address: 02145548h (foo_tags+5548h)
Address: 02143C37h (foo_tags+3C37h)
Address: 02187A48h (foo_tags+47A48h)
Address: 02145499h (foo_tags+5499h)
Address: 02165FDAh (foo_tags+25FDAh)
Address: 02179101h (foo_tags+39101h)
Address: 0218E648h (foo_tags+4E648h)
Address: 0218DAB8h (foo_tags+4DAB8h)
Address: 02142C00h (foo_tags+2C00h)
Address: 0218B770h (foo_tags+4B770h)
Address: 0215E45Fh (foo_tags+1E45Fh)
Address: 0218A5A8h (foo_tags+4A5A8h)
Address: 0215E9C9h (foo_tags+1E9C9h)
Address: 0218BBD0h (foo_tags+4BBD0h)
Address: 0218A638h (foo_tags+4A638h)
Address: 0215C67Ah (foo_tags+1C67Ah)
Address: 021AE28Ch (foo_tags+6E28Ch)
Address: 0218A1FAh (foo_tags+4A1FAh)
Address: 0215EC1Fh (foo_tags+1EC1Fh)
Address: 021AE28Ch (foo_tags+6E28Ch)
Address: 0218A6A8h (foo_tags+4A6A8h)
Address: 0050C87Bh (foobar2000+10C87Bh)
Address: 00559008h (foobar2000+159008h)
Address: 0050B90Bh (foobar2000+10B90Bh)
Address: 0050B96Ah (foobar2000+10B96Ah)
Address: 00559008h (foobar2000+159008h)
Address: 044FC348h (foo_gep+CC348h)
Address: 0443A03Fh (foo_gep+A03Fh)
Address: 005266DFh (foobar2000+1266DFh)
Address: 0050BFC5h (foobar2000+10BFC5h)
Address: 021AE28Ch (foo_tags+6E28Ch)
Address: 0057F740h (foobar2000+17F740h)
Address: 00547F3Ch (foobar2000+147F3Ch)
Address: 00559008h (foobar2000+159008h)
Address: 021AE28Ch (foo_tags+6E28Ch)
Address: 030995B8h (foo_unpack+395B8h)
Address: 0054FFC4h (foobar2000+14FFC4h)
Address: 00526733h (foobar2000+126733h)
Address: 0050BA11h (foobar2000+10BA11h)
Address: 0052674Eh (foobar2000+12674Eh)
Address: 00441342h (foobar2000+41342h)
Address: 7C90E900h (ntdll+E900h), symbol: "strchr" (+113h)
Address: 7C914298h (ntdll+14298h), symbol: "RtlDetermineDosPathNameType_U" (+72Eh)
Address: 7C910098h (ntdll+10098h), symbol: "RtlFreeHeap" (+18Bh)
Address: 7C910021h (ntdll+10021h), symbol: "RtlFreeHeap" (+114h)
Address: 7C91003Dh (ntdll+1003Dh), symbol: "RtlFreeHeap" (+130h)
Address: 7C90FF0Dh (ntdll+FF0Dh), symbol: "RtlFreeHeap" (+0h)
Address: 7C8109EFh (kernel32+109EFh), symbol: "CreateFileW" (+1FFh)
Address: 7C90D7BCh (ntdll+D7BCh), symbol: "NtQueryInformationFile" (+Ch)
Address: 7C810AB6h (kernel32+10AB6h), symbol: "GetFileSizeEx" (+1Dh)
Address: 7C810B1Ah (kernel32+10B1Ah), symbol: "GetFileSize" (+13h)
Address: 00440478h (foobar2000+40478h)
Address: 00440484h (foobar2000+40484h)
Address: 00511EBAh (foobar2000+111EBAh)
Address: 0050CC1Ah (foobar2000+10CC1Ah)
Address: 0050D21Eh (foobar2000+10D21Eh)
Address: 0050D0E3h (foobar2000+10D0E3h)
Address: 00527BECh (foobar2000+127BECh)
Address: 0043FBDEh (foobar2000+3FBDEh)
Address: 0043FC39h (foobar2000+3FC39h)
Address: 7C90D7BCh (ntdll+D7BCh), symbol: "NtQueryInformationFile" (+Ch)
Address: 7C831C63h (kernel32+31C63h), symbol: "GetFileTime" (+2Eh)
Address: 0040CBB0h (foobar2000+CBB0h)
Address: 0054C754h (foobar2000+14C754h)
Address: 0309D414h (foo_unpack+3D414h)
Address: 0057F740h (foobar2000+17F740h)
Address: 00532554h (foobar2000+132554h)
Address: 00440F6Fh (foobar2000+40F6Fh)
Address: 0053256Eh (foobar2000+13256Eh)
Address: 004417EDh (foobar2000+417EDh)
Address: 0054C754h (foobar2000+14C754h)
Address: 00445DEFh (foobar2000+45DEFh)
Address: 0053284Dh (foobar2000+13284Dh)
Address: 0044265Fh (foobar2000+4265Fh)
Address: 7C910040h (ntdll+10040h), symbol: "RtlFreeHeap" (+133h)
Address: 00530F08h (foobar2000+130F08h)
Address: 0044267Fh (foobar2000+4267Fh)
Address: 7C80932Eh (kernel32+932Eh), symbol: "GetTickCount" (+0h)
Address: 7C91003Dh (ntdll+1003Dh), symbol: "RtlFreeHeap" (+130h)
Address: 00530F08h (foobar2000+130F08h)
Address: 00443DFAh (foobar2000+43DFAh)
Address: 7C80932Eh (kernel32+932Eh), symbol: "GetTickCount" (+0h)
Address: 00440D56h (foobar2000+40D56h)
Address: 00440D94h (foobar2000+40D94h)
Address: 00532C1Ah (foobar2000+132C1Ah)
Address: 0044473Ah (foobar2000+4473Ah)
Address: 7C80932Eh (kernel32+932Eh), symbol: "GetTickCount" (+0h)
Address: 00547F58h (foobar2000+147F58h)
Address: 0054C59Ch (foobar2000+14C59Ch)
Address: 0058018Ch (foobar2000+18018Ch)
Address: 004446F4h (foobar2000+446F4h)
Address: 00532D41h (foobar2000+132D41h)
Address: 00444DA1h (foobar2000+44DA1h)
Address: 00547F3Ch (foobar2000+147F3Ch)
Address: 00547F3Ch (foobar2000+147F3Ch)
Address: 00547F58h (foobar2000+147F58h)
Address: 00547F3Ch (foobar2000+147F3Ch)
Address: 00513019h (foobar2000+113019h)
Address: 7C8106E9h (kernel32+106E9h), symbol: "CreateThread" (+22h)
Address: 00532F70h (foobar2000+132F70h)
Address: 004445EAh (foobar2000+445EAh)
Address: 10002846h (shared+2846h), symbol: "uPrintCrashInfo_OnEvent" (+B9h)
Address: 0054C4B0h (foobar2000+14C4B0h)
Address: 00532FCAh (foobar2000+132FCAh)
Address: 00444518h (foobar2000+44518h)
Address: 00532FDDh (foobar2000+132FDDh)
Address: 004F9C5Ch (foobar2000+F9C5Ch)
Address: 00523BB0h (foobar2000+123BB0h)
Address: 004F9DABh (foobar2000+F9DABh)
Address: 00512FF3h (foobar2000+112FF3h)
Address: 4BA878C2h (icudt49+D878C2h)
Address: 00516410h (foobar2000+116410h)
Address: 0051307Dh (foobar2000+11307Dh)
Address: 7C80B713h (kernel32+B713h), symbol: "GetModuleFileNameA" (+1B4h)
Address: 7C839AC0h (kernel32+39AC0h), symbol: "ValidateLocale" (+2B0h)
Address: 7C80B720h (kernel32+B720h), symbol: "GetModuleFileNameA" (+1C1h)
Address: 00513019h (foobar2000+113019h)

Environment:
App: foobar2000 v1.3.9
UI: Default User Interface 0.9.5

Components:
Core (2015-11-02 13:34:32 UTC)
    foobar2000 core 1.3.9
foo_ac3.dll (2013-02-28 02:21:29 UTC)
    AC3 decoder 0.9.7
foo_acm_packet_decoder.dll (2014-05-16 20:57:56 UTC)
    ACM Packet Decoder 0.0.1
foo_adpcm.dll (2015-02-23 21:33:35 UTC)
    kode's ADPCM decoders 1.11
foo_cdda.dll (2015-11-02 13:30:24 UTC)
    CD Audio Decoder 3.0
foo_converter.dll (2015-11-02 13:30:32 UTC)
    Converter 1.5
foo_dsp_effect.dll (2015-04-03 04:24:09 UTC)
    Effect DSP 0.16
foo_dsp_eq.dll (2015-11-02 13:30:52 UTC)
    Equalizer 1.0
foo_dsp_resampler.dll (2013-12-15 10:56:08 UTC)
    SoX Resampler 0.8.3
foo_dsp_std.dll (2015-11-02 13:30:38 UTC)
    Standard DSP Array 1.3.1
foo_dumb.dll (2015-11-15 01:14:08 UTC)
    DUMB module decoder 1.0.158
foo_fileops.dll (2015-11-02 13:30:04 UTC)
    File Operations 2.2.1
foo_flv.dll (2013-08-24 23:19:09 UTC)
    Flash Video Decoder 0.9.6
foo_gep.dll (2015-12-28 18:46:05 UTC)
    Game Emu Player 1.193
foo_input_amr.dll (2014-11-04 12:58:28 UTC)
    AMR 输入 1.1.1
foo_input_aodsf.dll (2013-02-28 02:22:24 UTC)
    DSF decoder / Audio Overload SDK 1.4.8u3 0.10
foo_input_caf.dll (2014-05-15 11:50:39 UTC)
    CAF Decoder 0.0.10
foo_input_dts.dll (2014-06-10 01:25:33 UTC)
    DTS decoder 0.3.3
foo_input_mdx.dll (2013-02-28 01:59:12 UTC)
    MDC input 1.0.1
    MDX input 1.1.0
foo_input_monkey.dll (2013-05-24 13:21:18 UTC)
    Monkey's Audio Decoder 2.1.7
foo_input_std.dll (2015-11-02 13:34:32 UTC)
    Standard Input Array 1.0
foo_input_tak.dll (2013-10-13 03:38:21 UTC)
    TAK Decoder 0.4.7
foo_input_tta.dll (2013-02-28 01:59:12 UTC)
    TTA Audio Decoder 3.0
foo_input_usf.dll (2015-05-31 14:47:58 UTC)
    LazyUSF 2.2.39
foo_input_vgmstream.dll (2015-10-13 14:23:26 UTC)
    vgmstream plugin r1050-32-gec99511
foo_midi.dll (2015-10-13 14:23:26 UTC)
    MIDI synthesizer host 1.247
foo_playback_custom.dll (2013-06-08 01:56:52 UTC)
    Playback Statistics Custom 1.5.1
foo_psf.dll (2015-10-13 14:23:26 UTC)
    AOPSF 2.1.9
foo_quicktag.dll (2013-06-08 01:01:34 UTC)
    Quick Tagger 1.0.3
foo_rgscan.dll (2015-11-02 13:31:02 UTC)
    ReplayGain Scanner 2.2.2
foo_skip.dll (2015-02-01 23:16:05 UTC)
    Skip Track 1.9.7
foo_tags.dll (2016-01-03 22:14:52 UTC)
    m-TAGS 1.12
foo_texttools.dll (2013-02-28 01:59:12 UTC)
    Text Tools 1.0.5
foo_ui_std.dll (2015-11-02 13:34:32 UTC)
    Default User Interface 0.9.5
foo_unpack.dll (2015-11-02 13:30:38 UTC)
    ZIP/GZIP/RAR Reader 1.7.1
foo_verifier.dll (2014-09-30 22:35:38 UTC)
    File Integrity Verifier 1.1.2
foo_wave_seekbar.dll (2014-02-16 11:07:57 UTC)
    Waveform seekbar 0.2.45

Recent events:
Loading DLL: E:\Programs\bin\aud\foobar2000\components\foo_input_std.dll
Loading DLL: E:\Programs\bin\aud\foobar2000\user-components\foo_dsp_resampler\foo_dsp_resampler.dll
Loading DLL: E:\Programs\bin\aud\foobar2000\user-components\foo_adpcm\foo_adpcm.dll
Loading DLL: E:\Programs\bin\aud\foobar2000\user-components\foo_quicktag\foo_quicktag.dll
Loading DLL: E:\Programs\bin\aud\foobar2000\user-components\foo_input_mdx\foo_input_mdx.dll
Loading DLL: E:\Programs\bin\aud\foobar2000\user-components\foo_input_aodsf\foo_input_aodsf.dll
Loading DLL: E:\Programs\bin\aud\foobar2000\user-components\foo_gep\foo_gep.dll
Components loaded in: 0:00.135334
Pre config read
Configuration read in: 0:00.003987
Starting playlist loading
User Interface initialized in: 0:00.016461
Processing commandline
initquit::init entry
Autoplaylists initialized in: 0:00.106688
foo_input_caf: C:\Program Files\Common Files\Apple\Apple Application Support\CoreAudioToolbox.dll version 7.9.8.6
initquit::init exit
Startup time : 0:00.436680
Seekbar: taking Direct3D9 path.
Seekbar: Frontend initialized.
Shutting down...


Machine specifications:
OS: Windows 5.1.2600 Service Pack 3 x86
CPU: Intel® Core™2 Duo CPU    E8200  @ 2.66GHz, features: MMX SSE SSE2 SSE3 SSE4.1
CPU threads: 2
Audio: Realtek HD Audio output
Title: m-TAGS component (foo_tags)
Post by: Nisto on 2016-01-05 02:31:48
Also, question; can you possibly propagate the "location" info from sources in properties windows? For example, here I would've liked to seen the FLAC file's info instead of the tag file's info:
(http://i.imgur.com/TNcHI1H.png)

(sorry for double-posting, I'm unable to edit my previous post)
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-01-28 23:54:44
Nisto:

You are not at all disrespectful. If it is broken... it is broken!

I looked at the log. I really wish you could produce my traces. It would be great if you could turn the detailed trace on. But you cannot do it without loading the library, and you cannot load the library without crashing fb2k... catch 22!

For what I can see the issue seems to be related to fb2k's folder watching task. My HORRIBLE fear is that I have met yet another dependency problem. Here is what I fear: m-TAGS relies on the media input components to read media info. If the folder watching task call m-TAGS BEFORE a media input component is loaded, a crash is probably guaranteed.

The problem is that there is no way in fb2k to force a component to be loaded AFTER the others. If you could eliminate all folders from the media library, and after that install foo_tags.dll, could you let me know if it still crashes? If it does not, then please turn the verbose logging on, then try to add the folders back and see if it does crash.

On the other hand, I find it quite strange that the folder watching task would be started before loading ALL components.... so, on with other possibilities....

I noticed a couple of things in the trace:

1) It looks like the file that sparks the folder watch tag read is a zipped file. Do you have m-TAGS files INSIDE zipped files? That could be a hint.

2) I see that that foo_gep is in the stack trace. Do you have GBS, GYM, HES, KSS, NSF, NSFE, SAP, SPC, or VGM files???


---------------------------------------

As for propagating the location, I cannot, because fb2k does not ask m-TAGS for an "alternative" location. The media file location is, however contained in the "@REFERENCED_FILE" pseudo-tag. You can use $info(@REFERENCED_FILE) to display it (there is also a @REFERENCED_INDEX pseudo-tag for multitrack files).
Title: Re: m-TAGS component (foo_tags)
Post by: Nisto on 2016-01-29 10:33:33
Well, actually, I can load the library, but loading any .tags file does cause it to crash. Where would I turn on detailed logging? I don't see any option in the advanced settings with m-TAGS v0.1 (which I've resorted to now). Do you mean verbose logging? That's enabled in my current setup and I doubt it was off when I last tried the latest version.

You could be right about dependencies. Lots of module and video game music formats have components doing wonky things with tags that may "dominate" other components. But I was only testing FLAC files with m-TAGS last I posted here.

I already did try the latest m-TAGS version on a clean portable installation of fb2k v1.3.9, with no watch folder or library stuff configured whatsoever, and it still crashed with standard FLAC files.

I have no archives in my library/watched folders, and certainly no archive anywhere on my computer with m-TAGS files in it.

Yes, I do have GBS, GYM, NSF(E), SPC and VGM files.

That's too bad about the location info. I actually already thought of utilizing the @REFERENCED_FILE tag as best I could once I discovered it, but sadly... I'm battling another bug there: paths longer than 177 bytes (?!) fail to display, and a false value (or "?") is returned. That is, 177 bytes starting from the driver letter, to the final letter of the extension, e.g.: E:\Music\song.flac = 18 bytes. Do you know anything about this? Again, I've tried this on a clean portable installation as well, and I'm having the same issue there.
Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-02-14 01:19:48
Hi,

First of all, thanks for this component, It gets me around some issues I had with different audio formats and storage formats.

As a result of the storage format differences (single image file versus separate track files) I've got two wishes that currently don't seem to be possible with m-TAGS.

I would like to be able to specify via command line (foobar2000 /m-TAGS folder) whether it should use the folder wide method or the file for each track method. I've added this command to use with the Run Services component and it would be awesome if I didn't need to switch this option on/off in Advanced config options.

the second wish would be to be able to specify the folder wide name using the title formatting features, e.g. %album% - %artist%.mtag when using folder wide format. It currently doesn't seem to support using tag fields to construct the name (or I must be doing it wrong)

Title: Re: m-TAGS component (foo_tags)
Post by: Nisto on 2016-02-18 02:08:23
Oh yeah, I've come across another minor bug/annoyance. If I select multiple items in a playlist where at least one item has a certain tag (name), the selection properties element just shows "(unknown)" for the item(s) that doesn't have the tag. I assume it has to do with the empty array ([]) in the JSON-style data for those items (which clears tags for subsequent items if they're not actually defined there), but is there any way you could properly discard this redundant data? Or does this have something to do with foobar2000 at the core level?

A picture probably helps explain what I mean better, if needed:
(https://dl.dropboxusercontent.com/u/48454461/img/fb2k-mtags-unktagval.png)
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-02-20 13:06:24
Oh yeah, I've come across another minor bug/annoyance. If I select multiple items in a playlist where at least one item has a certain tag (name), the selection properties element just shows "(unknown)" for the item(s) that doesn't have the tag. I assume it has to do with the empty array ([]) in the JSON-style data for those items (which clears tags for subsequent items if they're not actually defined there), but is there any way you could properly discard this redundant data? Or does this have something to do with foobar2000 at the core level?


This is an annoyance, but not a bug. The "empty array" is used to signal absence of a certain tag. Without it, the playcount of 21 and the rating of 30 would "cascade" from the previous track. fb2k CORRECTLY interprets the missing tag as "unknown". The component which is responsible to display the track on the playlist maps "absence" to 0 (which, I guess is what you want). But the component has no control over the standard fb2k matadata windows, hence the "unknown". The only way to "correct" this is to explicitely initialize to 0 the playcount (and rating? But isn't "unknown" actually more correct in this case?) of each track.

If you look at the foo_playcount title format reference (http://wiki.hydrogenaud.io/index.php?title=Foobar2000:Titleformat_Playback_Statistics), you will see that all playcount fields are not initialized to 0 by default, but rather "the field does not exist". And it could not be otherwise, because the component does not even know of the existence of the media until it is played.
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-02-20 13:17:33
Hi,

First of all, thanks for this component, It gets me around some issues I had with different audio formats and storage formats.

As a result of the storage format differences (single image file versus separate track files) I've got two wishes that currently don't seem to be possible with m-TAGS.

I would like to be able to specify via command line (foobar2000 /m-TAGS folder) whether it should use the folder wide method or the file for each track method. I've added this command to use with the Run Services component and it would be awesome if I didn't need to switch this option on/off in Advanced config options.

the second wish would be to be able to specify the folder wide name using the title formatting features, e.g. %album% - %artist%.mtag when using folder wide format. It currently doesn't seem to support using tag fields to construct the name (or I must be doing it wrong)



Can you tell me what is the final goal? That is, what is the file structure that you aim to create? Maybe I can suggest a solution that would not require me to add more code just for a very specific requirement.
Title: Re: m-TAGS component (foo_tags)
Post by: Nisto on 2016-02-21 16:41:53
Aah, you're absolutely right. I didn't realize it showed "unknown" for non-.tags files (where a tag that's present in other files is missing) as well. I thought it was an m-TAGS exclusive thing. Never noticed it before, humph..
Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-02-24 03:31:56
Hi,

First of all, thanks for this component, It gets me around some issues I had with different audio formats and storage formats.

As a result of the storage format differences (single image file versus separate track files) I've got two wishes that currently don't seem to be possible with m-TAGS.

I would like to be able to specify via command line (foobar2000 /m-TAGS folder) whether it should use the folder wide method or the file for each track method. I've added this command to use with the Run Services component and it would be awesome if I didn't need to switch this option on/off in Advanced config options.

the second wish would be to be able to specify the folder wide name using the title formatting features, e.g. %album% - %artist%.mtag when using folder wide format. It currently doesn't seem to support using tag fields to construct the name (or I must be doing it wrong)



Can you tell me what is the final goal? That is, what is the file structure that you aim to create? Maybe I can suggest a solution that would not require me to add more code just for a very specific requirement.
The goal is as I described. I have different storage formats (single file cd images and separate tracks. For the folders containing those single images (FLAC) I use 'separate tag files' but for my collection folders containing separate mp3's I use the single-file-for-whole-folder format.

Currently I have the Run Services component assigned to fire the foobar /m-TAG command, but have* to switch the configuration each time when processing a different type storage folder..

To be honest, I'm not about to change my storage preferences to fit the tools but rather looking for ways to have the tools fit my preferences.
(*)I could kludge it with an extra, barebones fb2k portable install, configured for the other method so I don't have to dive 4 layers deep into configuration to switch a flag each time. But that seems a bit overkill since it means having two instances running side by side.

I can appreciate you not wanting to add mode code for a specific wish, but I'd be already glad if it got put on a 2bd list for a future release.

PS. And it's not about wanting to create a certain file structure, it's about trying to fit it to an already existing folder/filestructure, which is way too big to reorganize into a different one.

EDIT: I forgot about the title formatting. As a result of the .tags files being able to be used as 'playlists' similar to cue files. I've started using this option to get around display limitations when using hardlinked or symbolic linked files. (tag information reflecting the values of the original). m-TAG allows me to specify different tag values for the 'links'.  But to benefit from this I need to make .tags files visible to foobar via restricted extension search. But by having Foobar ignore the original sound files, I am faced with a library tree that is showing the same tagfile name in each folder. If I could have them named via title formatting attributes, at least the names would reflect what they point at in the library tree view,
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-02-25 15:27:03

The goal is as I described. I have different storage formats (single file cd images and separate tracks. For the folders containing those single images (FLAC) I use 'separate tag files' but for my collection folders containing separate mp3's I use the single-file-for-whole-folder format.

Currently I have the Run Services component assigned to fire the foobar /m-TAG command, but have* to switch the configuration each time when processing a different type storage folder..

To be honest, I'm not about to change my storage preferences to fit the tools but rather looking for ways to have the tools fit my preferences.
(*)I could kludge it with an extra, barebones fb2k portable install, configured for the other method so I don't have to dive 4 layers deep into configuration to switch a flag each time. But that seems a bit overkill since it means having two instances running side by side.

I can appreciate you not wanting to add mode code for a specific wish, but I'd be already glad if it got put on a 2bd list for a future release.

PS. And it's not about wanting to create a certain file structure, it's about trying to fit it to an already existing folder/filestructure, which is way too big to reorganize into a different one.

EDIT: I forgot about the title formatting. As a result of the .tags files being able to be used as 'playlists' similar to cue files. I've started using this option to get around display limitations when using hardlinked or symbolic linked files. (tag information reflecting the values of the original). m-TAG allows me to specify different tag values for the 'links'.  But to benefit from this I need to make .tags files visible to foobar via restricted extension search. But by having Foobar ignore the original sound files, I am faced with a library tree that is showing the same tagfile name in each folder. If I could have them named via title formatting attributes, at least the names would reflect what they point at in the library tree view,

Can I ask you why do you use separate tag files for single FLAC images? It would make more sense to use a single file (well, at least that's what I do), but I am sure I am missing something
Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-03-01 12:00:14
... snip ...

Can I ask you why do you use separate tag files for single FLAC images? It would make more sense to use a single file (well, at least that's what I do), but I am sure I am missing something
I've got each flac image stored in it's own 'album' folder and also depending heavily on the album list panel for it's folder view. Since folder-wide tag files all use the same name, it makes it harder to locate with the tree showing a lot of same named entries (it shows the filename of the tag instead of the album name). The Per-File method at least solves part of this visual annoyance by creating files with the same name as the media file. (In the case of a flac image that would be "album - artist"). 

But, since for collection folders with a lot of single tracks, the folder-wide method is much better suited, I like those files to reflect the name of the folder they're contained in... 

So, having a command line option to have it switch file type, and the use of title formatting in specifying folder-wide names, would make it the ultimate solution for me without having to do any manual after-the-fact managing. As it is, I'm 99.9% there.

EDIT: This may not be so obvious as I thought, but for completeness sake. I have configured foobar to ignore the media files themselves, otherwise it would show duplicate entries (once from the tag file(s) and once from the media file itself)
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-03-03 03:31:26
... snip ...

Can I ask you why do you use separate tag files for single FLAC images? It would make more sense to use a single file (well, at least that's what I do), but I am sure I am missing something
I've got each flac image stored in it's own 'album' folder and also depending heavily on the album list panel for it's folder view. Since folder-wide tag files all use the same name, it makes it harder to locate with the tree showing a lot of same named entries (it shows the filename of the tag instead of the album name). The Per-File method at least solves part of this visual annoyance by creating files with the same name as the media file. (In the case of a flac image that would be "album - artist"). 

But, since for collection folders with a lot of single tracks, the folder-wide method is much better suited, I like those files to reflect the name of the folder they're contained in... 

So, having a command line option to have it switch file type, and the use of title formatting in specifying folder-wide names, would make it the ultimate solution for me without having to do any manual after-the-fact managing. As it is, I'm 99.9% there.

EDIT: This may not be so obvious as I thought, but for completeness sake. I have configured foobar to ignore the media files themselves, otherwise it would show duplicate entries (once from the tag file(s) and once from the media file itself)

I have a humongous collection, and it is pretty much structured like yours. I only use folder-wide tag files because the collection is hosted on networked drives and it takes much less to download one file than many, to say nothing about the wasted space.

I use the same panel, and I am 'annoyed' by the bangs as well. But the obvious solution was NOT to use the folder view. You can create a customized path view which simply replaces the last segment of the path (i.e. the file name) with whatever tags FROM the file that you wish, or hide it completely, for which you could simply use "$replace($directory_path(%path%),\,|)".

If you are not expert on how to do it, I can do it for you, but I need to have an example of one of your flac folders and an explanation of how you want the tree to look.

P.S. I exclude the media files too. That is actually the correct way to use m-TAGS.
Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-03-03 11:56:50
...lots of snipping...

I have a humongous collection, and it is pretty much structured like yours. I only use folder-wide tag files because the collection is hosted on networked drives and it takes much less to download one file than many, to say nothing about the wasted space.

I use the same panel, and I am 'annoyed' by the bangs as well. But the obvious solution was NOT to use the folder view. You can create a customized path view which simply replaces the last segment of the path (i.e. the file name) with whatever tags FROM the file that you wish, or hide it completely, for which you could simply use "$replace($directory_path(%path%),\,|)".

If you are not expert on how to do it, I can do it for you, but I need to have an example of one of your flac folders and an explanation of how you want the tree to look.

P.S. I exclude the media files too. That is actually the correct way to use m-TAGS.

I'm not too worried about space waste, as it is even a per-album .tags file is on average already 40-60KB with all the additional Discogs/MusicBrainz info tagged on. I even found a couple that were close to 200KB for the one album...Seems tag frames like Discogs_Release_Notes get attached to every track, even though they appear to be the exact same for every track in the album... Thought that wasn't supposed to happen with repeated info but could be mistaken.

Indeed, I have also started experimenting with the different views I can make in the album list panel. So I won't be needing to take you up on that very kind offer, as this will be a good opportunity for me to get to grip with the various other functions. Already spent a good deal of time in finding out how to get the playing track highlighted in the DUI view, so this will just be a next step.

Still, if you happen to be working on it for whatever other reason ... ;)
Title: Re: m-TAGS component (foo_tags)
Post by: Omega_Cypher on 2016-03-07 14:39:12
Thank you luigimercurio for this wonderful tool, it perfectly solved my problems with my massive music collection!

But I do found a small annoyance regarding album arts. I usually store each of my music album in a single file with embedded album arts. When I single-click select a track from the playlist, the album art loads just fine. But when I use the toolbar or double-click to play the track, the album art sometimes turn into "[no image]". And when I skip to another track in the same album or other albums while playing, the album arts will never show up.

I only ticked the "Create a separate m-tags file for each source file" option. Am I doing something wrong?

Thank you.
Title: Re: m-TAGS component (foo_tags)
Post by: wolfsong on 2016-03-09 17:51:17
The m-tags.org (http://m-tags.org) website seems to be down. Is this still an active component?
Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-03-10 02:53:14
it seems to does that from time to time, almost as if hosted on personal PC
Title: Re: m-TAGS component (foo_tags)
Post by: kode54 on 2016-03-10 03:15:44
Appears to be DailyRazor's shared hosting. Shared hosting automatically sucks.
Title: Re: m-TAGS component (foo_tags)
Post by: rykiff on 2016-03-14 01:38:19
Been using m-tags 3 years now and still going strong! By far my favorite foobar plugin. I recently updated to 1.13 and was ecstatic to find that it is compatible with foo_input_spotify. This has allowed me to create m-tags for loaded spotify URIs and add them to my media library, along with being able to modify rating, add gain, save album artwork, etc...

I just have one gripe though: when I load the spotify songs via "File > Add Location", the track length is displayed. (The songs have a "duration" property under general if I open up the dialog). However, if I write an m-tag file, the duration property is seemingly left out.

Is there a way to force m-tag to include or 'search' for specific tags in the source file when generating an m-tag file? I would love to be able to make m-tag look for that duration property and then include it in the m-tag file.

I've already gone through and added "duration" to a few generated spotify m-tag files to make sure it worked, and sure enough that adds the song length back into the m-tag track listings rather than the '?' missing entry. Thanks!
Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-03-16 01:22:18
I have a strange problem, after some reading I found how to use m-TAGS for internet radio streams.

I have 3 radio stations that start with the name Q-Music. Also have 3 separate .tags files for them (since I only went this route to be able to attach station logo as artwork).

Not sure why or what causes it, but everytime I try attaching a front cover (context menu -> tagging) using either the "Manage.."or "Attach..." entries, I get an "Access denied" on these 3 files.

Console doesn't tell me a thing about the why...
Code: [Select]
[02:17:19] m-TAGS:: Creating album art extractor for file://Z:\Music\MusicMP3\@Radio Stations\Q-Music Het Foute Uur.tags
[02:17:19] m-TAGS:: CREATING TAGS
[02:17:19] m-TAGS:: CREATING ALBUM ART EDITOR INSTANCE
[02:17:19] m-TAGS:: Loading locator
[02:17:19] m-TAGS:: OPENING file://Z:\Music\MusicMP3\@Radio Stations\Q-Music Het Foute Uur.tags
[02:17:19] m-TAGS:: using path
[02:17:19] m-TAGS:: file is UTF-8
[02:17:19] m-TAGS:: checking length
[02:17:19] m-TAGS:: parsing json
[02:17:19] m-TAGS:: [
   {
      "@" : "http://icecast-qmusic.cdp.triple-it.nl:80/Qmusic_nl_fouteuur_96.mp3|0",
      "GENRE" : "Top 40",
      "RADIO_STATION" : "Q-Music Het Foute Uur",
      "URL" : "http://www.qmusic.nl"
   }
]
 (211 chars)
[02:17:19] m-TAGS:: making canonical tags
[02:17:19] m-TAGS:: checking tags size
[02:17:19] m-TAGS:: appending tags
[02:17:19] m-TAGS:: Resolving locator: http://icecast-qmusic.cdp.triple-it.nl:80/Qmusic_nl_fouteuur_96.mp3|0
[02:17:19] m-TAGS:: tags_path: file://Z:\Music\MusicMP3\@Radio Stations\Q-Music Het Foute Uur.tags
[02:17:19] m-TAGS:: locator: http://icecast-qmusic.cdp.triple-it.nl:80/Qmusic_nl_fouteuur_96.mp3|0
[02:17:19] m-TAGS:: path: http://icecast-qmusic.cdp.triple-it.nl:80/Qmusic_nl_fouteuur_96.mp3|0
[02:17:19] m-TAGS:: Resolved path: http://icecast-qmusic.cdp.triple-it.nl:80/Qmusic_nl_fouteuur_96.mp3|0
[02:17:19] m-TAGS:: Canonical path: http://icecast-qmusic.cdp.triple-it.nl:80/Qmusic_nl_fouteuur_96.mp3
[02:17:19] m-TAGS:: Media is remote
[02:17:19] m-TAGS:: REFERENCED FILE: http://icecast-qmusic.cdp.triple-it.nl:80/Qmusic_nl_fouteuur_96.mp3 [0]
[02:17:19] m-TAGS:: Opening internal editor
[02:17:19] m-TAGS:: DESTROYING TAGS

All I get is that internal popup.

Now here's the weird part, if I rename one of the .tags files to "Qmusic" instead of "Q-Music", there's no problem but the "Manage...." dialog still says the file is named "Q-Music.tags" on it's caption. And the attached image ends up being created as "Q-Music.tags.front.bin"

EDIT: I am aware that the locator references a .mp3 file... but that's how the station's stream is named, can't help that, it's NOT a real MP3, just the stream address
Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-03-16 02:44:27
sigh, nothing is ever easy....

I'm now stuck with 3 stations I can either not attach a picture to, or if I rename the tag files, the tags.front.bin files get a different name and won't show anyway, and the Album Art panel refuses even to show all m-tagged artwork... only shows files ending in an image extension... sigh...

EDIT1:
Ok, I think I've found a clue to the cause... me thinks m-TAG is trying to access the remote location as a physical mp3 to extract the embedded artwork (coz that's where I told the built-in FB2K artwork reader to look) However, I'm actually using the Columns UI artwork reader for artwork ... the built-in one only seems to kick-in if there's no external sources

EDIT2: Well, it's got nothing to do with the built-in one... if I completely disable the built-in artwork reader, it still don't show the artwork for those 3 stations (went ahead and just renamed the image files myself to tags.front.bin files instead of using the Manage option... )
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-03-16 04:02:55
Thank you luigimercurio for this wonderful tool, it perfectly solved my problems with my massive music collection!

But I do found a small annoyance regarding album arts. I usually store each of my music album in a single file with embedded album arts. When I single-click select a track from the playlist, the album art loads just fine. But when I use the toolbar or double-click to play the track, the album art sometimes turn into "[no image]". And when I skip to another track in the same album or other albums while playing, the album arts will never show up.

I only ticked the "Create a separate m-tags file for each source file" option. Am I doing something wrong?

Thank you.

If you skip back to the first song does the album art appear again?
Title: Re: m-TAGS component (foo_tags)
Post by: Omega_Cypher on 2016-03-16 09:07:37
If you skip back to the first song does the album art appear again?

Thank you for the reply.

Unfortunately no. Once the album art disappear, as long as the music is playing the DUI album art panel won't load anything. I have to stop the playback and single-click select another track to make it load album art again.

Oh and by the way I have all my music converted to wavpack format with embedded cue and album art stored in apeV2 tags.
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-03-16 23:41:25
Been using m-tags 3 years now and still going strong! By far my favorite foobar plugin. I recently updated to 1.13 and was ecstatic to find that it is compatible with foo_input_spotify. This has allowed me to create m-tags for loaded spotify URIs and add them to my media library, along with being able to modify rating, add gain, save album artwork, etc...

I just have one gripe though: when I load the spotify songs via "File > Add Location", the track length is displayed. (The songs have a "duration" property under general if I open up the dialog). However, if I write an m-tag file, the duration property is seemingly left out.

Is there a way to force m-tag to include or 'search' for specific tags in the source file when generating an m-tag file? I would love to be able to make m-tag look for that duration property and then include it in the m-tag file.

I've already gone through and added "duration" to a few generated spotify m-tag files to make sure it worked, and sure enough that adds the song length back into the m-tag track listings rather than the '?' missing entry. Thanks!

There are two ways to explicitly specify a DURATION in m-TAGS:

1) Add the "DURATION" tag to the m-TAGS file you generate. This is what you tried successfully already and it is the most efficient way if a media source is remote;

2) Under Preferences/Advanced/Tagging/m-TAGS/Media prefxes add the propert locator prefix to the "Local" list (something like "http://www.spotify.com" or whatever the common location prefix is for spotify links.

There is a BIG diference between the two approaches. m-TAGS does NOT go online to collect information unless a locator matches the "Local" prefixes. This is done to avoid going over the internet for each remote link. A collection of 10,000 links would take a humongous amount of time to load. The "DURATION" tag was introduced to overcome the drawback of not having length information for remote tracks. If the track length is known (and it usually is, because most streaming sites show it) then the "DURATION" tag can be used to locally preserve the length information, avoiding the necessity to open remote connections.

Obviously, if you add the prefix to the "Local" list, the opposite happens. m-TAGS treats the media as local, therefore asks fb2k to "go and get" the information from the media source, i.e. it opens a connection.

My guess is that the foo_input_spotify component creates LOCAL files encapsulating the remote links. So, in your case the second solution is probably the correct one. Check how the locators look like, and add to the Local list the longest common prefix of the spotify locators (I do not know how do they look). m-TAGS should then treat them as local resources (which they are) and ask fb2k to "go and get" the length.

Let me know if it works.
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-03-16 23:43:15
Appears to be DailyRazor's shared hosting. Shared hosting automatically sucks.

You got it right. In any event, the fb2k components page is the authoritative page for downloads, not m-TAGS.org (even if they are in sync).
Title: Re: m-TAGS component (foo_tags)
Post by: rykiff on 2016-03-17 23:54:20
Adding 'spotify:' to the local affixes resolved the issue. Thank you Luigi!

Also @Omega_Cypher: I had a similar issue with an earlier version of m-tags, but resolved it using the Biography View plugin to display album art, might help in your situation.
Title: Re: m-TAGS component (foo_tags)
Post by: Omega_Cypher on 2016-03-18 12:54:32
Adding 'spotify:' to the local affixes resolved the issue. Thank you Luigi!

Also @Omega_Cypher: I had a similar issue with an earlier version of m-tags, but resolved it using the Biography View plugin to display album art, might help in your situation.

Thank you for the suggestion rykiff, but unfortunately using the biography view plugin to load the embedded album arts in my library is still pretty inconsistent. It sometimes will keep the album art displaying when I skip in the same album, but immediately fails loading when I skip to the next album.

I also found out when a music file is playing through m-tag you cannot access the "manage album artwork" function, it will return an error saying "file already in use". The same is when said music file is not playing but set to "read only". Is this possibly related to the inconsistency of loading album arts through m-tags?
Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-03-19 15:36:05
@luigimercurio

Got a suggestion for a possible future release. I don't know if you are aware of the existence of the CUE Playlist Filter (http://wintense.com/plugins/foo_cuefilter) component, but what it does is it automatically hides files referenced by a cuesheet from showing on your playlists to prevent duplicate listings, leaving only the cuesheet entries to show.

Similar functionality would be very useful for m-TAG too for users that are still in the process of converting from internal to external tagging. On top of that it adds a bit of flexibility since you don't need to use the system wide method of hiding certain extensions from showing in playlists.
Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-03-23 02:07:09
I've run into a situation that may lead to an m-TAG file not reflecting the actual tag values of the media files.

Due to our setup, media files may get their tag content updated from other sources.
When this occurs, normally the changed information would be read into FB2K via context menu > Tagging > "Reload info from file(s)"

However, for those files for which an m-TAG exists, the information is only reread from the m-TAG file and any changes to the actual media files are ignored.

Sadly this cannot be avoided, so this situation causes an additional workflow to recreate the m-TAG files for these media files in order to get the modified data read in.
Title: Re: m-TAGS component (foo_tags)
Post by: Semyon on 2016-03-25 16:59:34
How to enable dynamic tags from stream? It shows me tags from *.tags file only.

P.S. Preferences --> Networking --> "Enable dynamic track titles" is enabled. Versions of foobar2000 and m-tags are latest.
Title: Re: m-TAGS component (foo_tags)
Post by: Bero1707 on 2016-03-28 16:12:24
This is great plugin but there are 2 flaws I noticed:
1. you can attach cue sheet to file but you can't see separate tracks in playlist
2. when you have more than 1 album tags written in one file you can attach just one album cover for all albums
Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-03-29 04:23:57
1. you can attach cue sheet to file but you can't see separate tracks in playlist
Not sure if I understand you correctly, but I've been doing exactly this a lot... letting m-TAG files point to cue sheets... and as long as the cue sheet defines each track correct, m-TAG has no issue showing me all the separate tracks/files referenced by the cue sheet?
Title: Re: m-TAGS component (foo_tags)
Post by: Bero1707 on 2016-03-29 11:01:19
1. you can attach cue sheet to file but you can't see separate tracks in playlist
Not sure if I understand you correctly, but I've been doing exactly this a lot... letting m-TAG files point to cue sheets... and as long as the cue sheet defines each track correct, m-TAG has no issue showing me all the separate tracks/files referenced by the cue sheet?
I want to change cue sheet also sometimes and I prefer it to be attached to file so I can edit it directly from foobar.
Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-03-30 14:11:54
I'm having two small issues.

1- getting the duration saved from online media....
2- getting Foobar2000 to always show referenced media files in sorted order.

I started adding archived live shows from archive.org to foobar2000 and having major problems getting the duration saved.

They let you download an .m3u playlist with links to archived media files. When I load the m3u file in Foobar2000 it initially shows the entries with an unknown duration. After each track has played once, the duration seems to be saved someplace because every time I load that same m3u file thereafter, Foobar2000 shows the correct duration for each entry. (which is not in the M3U file)

Since Foobar2000 doesn't show the m3u files in albumlist I have to load the m3u file(s) each time I want to play one.
So I wanted to create m-TAG files but I have had no luck getting the duration to be saved.

I've read the post about the local/remote prefixes and since all of the files reside on http://archive.org I added "http://archive.org" first to the local prefixes and then to the remote prefixes. But I keep getting duration -1% when I play a track. (I also tried using https since that is used for the details page, also without any success)

Frankly, I don't understand the issue with it needing to go remote to retrieve that info. It shows perfectly fine when loading/playing an m3u for the 2nd time, so Foobar2000 already seems either to go online anyways for it or it saves that information somewhere. So why can m-TAG not just use that info (since it obviously is present someplace if Foobar2000 immediately shows the durations when loading/playing the m3u playlist a 2nd time) when I right-click on the selection and choose "Tagging > Create m-TAG file" from context menu?

As for problem 2. I've tried many things, but I'm all out of ideas. Whenever I select an m-Tagged album from my album list, It shows tracks in random order. No matter what the order is of tracks in the .tags file. I cannot for the life of me get it to show the album sorted by disc/tracknumber, always have to do this manually... Somehow the default sort seems to always be the filename on disc, and since that is always the name of the tag file when it exists, this doesn't fly for an m-tagged album.
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-04-05 12:28:28
@luigimercurio

Got a suggestion for a possible future release. I don't know if you are aware of the existence of the CUE Playlist Filter (http://wintense.com/plugins/foo_cuefilter) component, but what it does is it automatically hides files referenced by a cuesheet from showing on your playlists to prevent duplicate listings, leaving only the cuesheet entries to show.

Similar functionality would be very useful for m-TAG too for users that are still in the process of converting from internal to external tagging. On top of that it adds a bit of flexibility since you don't need to use the system wide method of hiding certain extensions from showing in playlists.

It could be useful, but definitely far from a priority. Unless otherwise notified, I assume that for most people just excluding *.cue from the incoming files is sufficient.
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-04-05 12:32:51
Adding 'spotify:' to the local affixes resolved the issue. Thank you Luigi!

Also @Omega_Cypher: I had a similar issue with an earlier version of m-tags, but resolved it using the Biography View plugin to display album art, might help in your situation.

Thank you for the suggestion rykiff, but unfortunately using the biography view plugin to load the embedded album arts in my library is still pretty inconsistent. It sometimes will keep the album art displaying when I skip in the same album, but immediately fails loading when I skip to the next album.

I also found out when a music file is playing through m-tag you cannot access the "manage album artwork" function, it will return an error saying "file already in use". The same is when said music file is not playing but set to "read only". Is this possibly related to the inconsistency of loading album arts through m-tags?

The file locking issue has more to do with how fb2k locks files. It used to be that *.tags files were NOT locked by fb2k, even during playback. This was VERY convenient indeed, because you could alter the files without interrupting the music flow (because the file being decoded is, of course, ANOTHER file). This has changed in the last few releases, which is particularly annoying when playing streamed media, as fb2k now stops the playback, then updates the *.tags file, then restarts the playback via a "seek" operation, which can be slow on streams. Not much control on that, unfortunately.....
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-04-05 12:37:44
I've run into a situation that may lead to an m-TAG file not reflecting the actual tag values of the media files.

Due to our setup, media files may get their tag content updated from other sources.
When this occurs, normally the changed information would be read into FB2K via context menu > Tagging > "Reload info from file(s)"

However, for those files for which an m-TAG exists, the information is only reread from the m-TAG file and any changes to the actual media files are ignored.

Sadly this cannot be avoided, so this situation causes an additional workflow to recreate the m-TAG files for these media files in order to get the modified data read in.

m-TAGS is NOT made to reflect tags in media files. If that was the case, you would not need m-TAGS at all. m-TAGS is made to read/write tags without touching the media files. Your system should update the m-TAGS files as opposed to the media files, if that is possible (I do not know how your setup works).

If your tags are dinamically updated, though, then m-TAGS should reflect the dynamic changes, provided you do not have a fixed value for the dynamically changing tag in the m-TAG file (in other words, m-TAG tags have precedence).
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-04-05 12:40:15
How to enable dynamic tags from stream? It shows me tags from *.tags file only.

P.S. Preferences --> Networking --> "Enable dynamic track titles" is enabled. Versions of foobar2000 and m-tags are latest.

m-TAGS tags have precedence. If you want dynamic tags dsplayed, then the m-TAGS file should NOT contain those tags.
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-04-05 12:46:44
This is great plugin but there are 2 flaws I noticed:
1. you can attach cue sheet to file but you can't see separate tracks in playlist
2. when you have more than 1 album tags written in one file you can attach just one album cover for all albums

I guess with "attach cue sheet to file" you refer to embedded cue sheets. m-TAGS will reflect embedded cue sheets, but to edit them you need to load the media file in fb2k. As far as m-TAGS is concerned, a cuesheet entry is just a seekpoint.

As for 2., that is true and intentional. An m-TAGS file is treated by fb2k as a single multitrack media file. As a result, only one set of covers is applied to the whole file. Please remember that m-TAGS files are not playlists, are not treated as such by fb2k, and should not be used as such.
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-04-05 12:50:34
I'm having two small issues.

1- getting the duration saved from online media....
2- getting Foobar2000 to always show referenced media files in sorted order.

I started adding archived live shows from archive.org to foobar2000 and having major problems getting the duration saved.

They let you download an .m3u playlist with links to archived media files. When I load the m3u file in Foobar2000 it initially shows the entries with an unknown duration. After each track has played once, the duration seems to be saved someplace because every time I load that same m3u file thereafter, Foobar2000 shows the correct duration for each entry. (which is not in the M3U file)

Since Foobar2000 doesn't show the m3u files in albumlist I have to load the m3u file(s) each time I want to play one.
So I wanted to create m-TAG files but I have had no luck getting the duration to be saved.

I've read the post about the local/remote prefixes and since all of the files reside on http://archive.org I added "http://archive.org" first to the local prefixes and then to the remote prefixes. But I keep getting duration -1% when I play a track. (I also tried using https since that is used for the details page, also without any success)

Frankly, I don't understand the issue with it needing to go remote to retrieve that info. It shows perfectly fine when loading/playing an m3u for the 2nd time, so Foobar2000 already seems either to go online anyways for it or it saves that information somewhere. So why can m-TAG not just use that info (since it obviously is present someplace if Foobar2000 immediately shows the durations when loading/playing the m3u playlist a 2nd time) when I right-click on the selection and choose "Tagging > Create m-TAG file" from context menu?

As for problem 2. I've tried many things, but I'm all out of ideas. Whenever I select an m-Tagged album from my album list, It shows tracks in random order. No matter what the order is of tracks in the .tags file. I cannot for the life of me get it to show the album sorted by disc/tracknumber, always have to do this manually... Somehow the default sort seems to always be the filename on disc, and since that is always the name of the tag file when it exists, this doesn't fly for an m-tagged album.

1. Please send me an example
2. Are you using %path_sort% as your incoming file sorting pattern?
Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-04-05 13:13:44
@luigimercurio

Got a suggestion for a possible future release.
[...]

It could be useful, but definitely far from a priority. Unless otherwise notified, I assume that for most people just excluding *.cue from the incoming files is sufficient.
You misunderstood me :)  I'm not interested in hiding just cue files, since the cue filter component already does that.
I meant m-TAGS to hide the files it is referring to itself in .tags files, which is not limited to just cue files, so basically a similar functionality but not limited to cue files.

I've run into a situation that may lead to an m-TAG file not reflecting the actual tag values of the media files.

Due to our setup, media files may get their tag content updated from other sources.
When this occurs, normally the changed information would be read into FB2K via context menu > Tagging > "Reload info from file(s)"

[...]

m-TAGS is NOT made to reflect tags in media files. If that was the case, you would not need m-TAGS at all. m-TAGS is made to read/write tags without touching the media files. Your system should update the m-TAGS files as opposed to the media files, if that is possible (I do not know how your setup works).

If your tags are dinamically updated, though, then m-TAGS should reflect the dynamic changes, provided you do not have a fixed value for the dynamically changing tag in the m-TAG file (in other words, m-TAG tags have precedence).
I am aware that it is not meant to dynamically reflect tag values. But the thing is. there are situations where media files can get their tag information updated from sources that do not understand how to use m-TAG or are simply completely unaware that such functionality exists.

Also I was not looking for dynamic functionality. But in the case of manually and explicitly calling a function to reread tag information this action should IMO ripple through to the lowest possible source in the chain (Foobar > tagging layer > media file) when using Tagging > "Reload info from file(s)".  Precisely for the same reason as explained above where information can get changed by other sources that are not able to use m-TAGS or are completely oblivious to its existence (since it only exists as FB2K component).

I'm not asking for m-TAGS to automatically go and re read the tags every time a file is referenced. But only when explicitly indicated by using the FB2K provided command to do so.

And as I explained, since FB2K is not the only program capable of touching media files there are just situations in my case where it cannot be avoided that information is changed in other sources.

Also, since you already hinted at it yourself, it does pick up dynamic data where tag info gets changed by external sources (for tags that are not present in the .tags file itself (like artist/title in a stream) which works perfectly.

What I am suggesting would be nothing other than that same functionality applied when explicitly instructing FB2K to go out and look for updated/added tags. Again, stressing that I'm not looking for a dynamic option as exists for streams in this situation.

PS. Also, with all due respect, even the FB2K developers realized that the possibility for tags getting added/changed in sources than FB2K itself exists, otherwise the command "Reload info from file(s)" would not have been present in the first place.
Title: Re: m-TAGS component (foo_tags)
Post by: Bero1707 on 2016-04-06 14:27:52
This is great plugin but there are 2 flaws I noticed:
1. you can attach cue sheet to file but you can't see separate tracks in playlist
2. when you have more than 1 album tags written in one file you can attach just one album cover for all albums

I guess with "attach cue sheet to file" you refer to embedded cue sheets. m-TAGS will reflect embedded cue sheets, but to edit them you need to load the media file in fb2k. As far as m-TAGS is concerned, a cuesheet entry is just a seekpoint.

As for 2., that is true and intentional. An m-TAGS file is treated by fb2k as a single multitrack media file. As a result, only one set of covers is applied to the whole file. Please remember that m-TAGS files are not playlists, are not treated as such by fb2k, and should not be used as such.
It would be truly awesome if m-TAGS file could be playlist with its own tags!
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-04-08 02:12:19
This is great plugin but there are 2 flaws I noticed:
1. you can attach cue sheet to file but you can't see separate tracks in playlist
2. when you have more than 1 album tags written in one file you can attach just one album cover for all albums

I guess with "attach cue sheet to file" you refer to embedded cue sheets. m-TAGS will reflect embedded cue sheets, but to edit them you need to load the media file in fb2k. As far as m-TAGS is concerned, a cuesheet entry is just a seekpoint.

As for 2., that is true and intentional. An m-TAGS file is treated by fb2k as a single multitrack media file. As a result, only one set of covers is applied to the whole file. Please remember that m-TAGS files are not playlists, are not treated as such by fb2k, and should not be used as such.
It would be truly awesome if m-TAGS file could be playlist with its own tags!

Well, a playlist is not a media file and vice-versa. The two things are different and, rightfully enough, differently treated by fb2k.

I do use my own playlist mechanism in conjunction with m-TAGS. It is nothing else than a slightly more flexible m3u-like playlist format (the "added-values" being that you can reference folders, subtracks, and other playlists within the playlist). But I never published this addon.
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-04-08 02:30:48
@luigimercurio

Got a suggestion for a possible future release.
[...]

It could be useful, but definitely far from a priority. Unless otherwise notified, I assume that for most people just excluding *.cue from the incoming files is sufficient.
You misunderstood me :)  I'm not interested in hiding just cue files, since the cue filter component already does that.
I meant m-TAGS to hide the files it is referring to itself in .tags files, which is not limited to just cue files, so basically a similar functionality but not limited to cue files.

I've run into a situation that may lead to an m-TAG file not reflecting the actual tag values of the media files.

Due to our setup, media files may get their tag content updated from other sources.
When this occurs, normally the changed information would be read into FB2K via context menu > Tagging > "Reload info from file(s)"

[...]

m-TAGS is NOT made to reflect tags in media files. If that was the case, you would not need m-TAGS at all. m-TAGS is made to read/write tags without touching the media files. Your system should update the m-TAGS files as opposed to the media files, if that is possible (I do not know how your setup works).

If your tags are dinamically updated, though, then m-TAGS should reflect the dynamic changes, provided you do not have a fixed value for the dynamically changing tag in the m-TAG file (in other words, m-TAG tags have precedence).
I am aware that it is not meant to dynamically reflect tag values. But the thing is. there are situations where media files can get their tag information updated from sources that do not understand how to use m-TAG or are simply completely unaware that such functionality exists.

Also I was not looking for dynamic functionality. But in the case of manually and explicitly calling a function to reread tag information this action should IMO ripple through to the lowest possible source in the chain (Foobar > tagging layer > media file) when using Tagging > "Reload info from file(s)".  Precisely for the same reason as explained above where information can get changed by other sources that are not able to use m-TAGS or are completely oblivious to its existence (since it only exists as FB2K component).

I'm not asking for m-TAGS to automatically go and re read the tags every time a file is referenced. But only when explicitly indicated by using the FB2K provided command to do so.

And as I explained, since FB2K is not the only program capable of touching media files there are just situations in my case where it cannot be avoided that information is changed in other sources.

Also, since you already hinted at it yourself, it does pick up dynamic data where tag info gets changed by external sources (for tags that are not present in the .tags file itself (like artist/title in a stream) which works perfectly.

What I am suggesting would be nothing other than that same functionality applied when explicitly instructing FB2K to go out and look for updated/added tags. Again, stressing that I'm not looking for a dynamic option as exists for streams in this situation.

PS. Also, with all due respect, even the FB2K developers realized that the possibility for tags getting added/changed in sources than FB2K itself exists, otherwise the command "Reload info from file(s)" would not have been present in the first place.


Your point no. 1 is well taken. But I am not sufficiently expert of playlist handling to provide that functionality without spending some time studying how fb2k would allow me to hide files. Maybe the developer of the cue-hiding add-on can illuminate me?

As for point no. 2, the ramifications are more complex. To start with, what you ask requires another menu option ("reload info from files" just reloads the m-TAGS file, of course, and rightly so). What you really want is m-TAGS to be able to "revert" to the referenced media's tags without having to explicitly recreate the m-TAGS file.

Also, m-TAGS was created in order NOT to modify media files, and (philosophically, if you want) assumes that media files are immutable. I (quite reluctantly) added the much requested option to write back the m-TAGS tags to the media files because I understand that there are cases in which this is desirable, particularly when copying files to devices which do not have fb2k.

However, unlike the option to rewrite the media file tags, the option to re-read the tags would open a can of worms. What if you want to re-read a subset of tags, but leave others unchanged in m-TAGS??? Now you need a "selection mask" of some sort. So, what's supposed to make something a little simpler, could become more cumbersome than expected.



Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-04-08 04:15:18
[...]

Your point no. 1 is well taken. But I am not sufficiently expert of playlist handling to provide that functionality without spending some time studying how fb2k would allow me to hide files. Maybe the developer of the cue-hiding add-on can illuminate me?

As for point no. 2, the ramifications are more complex. To start with, what you ask requires another menu option ("reload info from files" just reloads the m-TAGS file, of course, and rightly so). What you really want is m-TAGS to be able to "revert" to the referenced media's tags without having to explicitly recreate the m-TAGS file.

Also, m-TAGS was created in order NOT to modify media files, and (philosophically, if you want) assumes that media files are immutable. I (quite reluctantly) added the much requested option to write back the m-TAGS tags to the media files because I understand that there are cases in which this is desirable, particularly when copying files to devices which do not have fb2k.

However, unlike the option to rewrite the media file tags, the option to re-read the tags would open a can of worms. What if you want to re-read a subset of tags, but leave others unchanged in m-TAGS??? Now you need a "selection mask" of some sort. So, what's supposed to make something a little simpler, could become more cumbersome than expected.
I realize that this could lead to all kinds of problems.  And I can only speak for myself of course but personally I would already be glad if it only would collect information from media file tags which are not already present in the m-TAGs file itself, so basically ignoring any media tags already existing in a tags file, even if their values might differ. The tags file is after all supposed to be leading here.

But I also can imagine that once that door is open, wishes might arise among other users for a somewhat more controlled form. In its simplest form this could be the use of a set of user defined tags to consider protected from updating. And anything that is not included in that set is fair game as far as updating is concerned. Otoh, it could be left totally up to the user with a dialog akin to how Picard displays original value and proposed new value.

But as I said, personally I'd already be glad to have it only read in values for tags not yet present in the m-TAGs file. Even this would already allow some form of user control because if a user actually wanted to have existing m-TAG tags updated, all he or she would have to do in that case is right-click, select properties and clear the value before reading in any new values. Thus the responsibility for any changes to existing values lies totally with the end-user.
Title: Re: m-TAGS component (foo_tags)
Post by: tanjidoor on 2016-04-09 03:36:55
Hello, I'm trying to play some tracks and got this error
(The logs below have been narrowed down to the tracks that returns this error.)

Code: [Select]
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Multimedia\Music\#Tracklisting\2016-04-04\Anime releases\Hidamari Sketch.tags" / index: 126

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Multimedia\Music\#Tracklisting\2016-04-04\Anime releases\Hidamari Sketch.tags" / index: 127

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Multimedia\Music\#Tracklisting\2016-04-04\Anime releases\Hidamari Sketch.tags" / index: 157

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Multimedia\Music\#Tracklisting\2016-04-04\Anime releases\Hidamari Sketch.tags" / index: 159

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Multimedia\Music\#Tracklisting\2016-04-04\Anime releases\Hidamari Sketch.tags" / index: 161

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Multimedia\Music\#Tracklisting\2016-04-04\Anime releases\Hidamari Sketch.tags" / index: 173

I've also attached the verbose log in the attachment below.
In the properties dialog, I also noticed that these tracks have empty @REFERENCE_FILES column and -1 for  the @REFERENCE_INDEX. The @ returns proper file path though. Basically mTAGS read the tags just fine (and probably the files as well) but refuses to play them (in addition that I also can't convert these files as well)

I believe this is not caused by filename as even though the track's tags are in Japanese, the whole directory & file naming is completely romanized and free from any unicode/forbidden file name strings. The files are also intact and not corrupted at all when played directly.
I compared the faulty playback with another tracks but there's not much of any difference, even in the .tags file, apart from one thing: these tracks had the longest file path among any other working tracks. Is that the cause?
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-04-09 13:16:21
Hello, I'm trying to play some tracks and got this error
(The logs below have been narrowed down to the tracks that returns this error.)

Code: [Select]
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Multimedia\Music\#Tracklisting\2016-04-04\Anime releases\Hidamari Sketch.tags" / index: 126

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Multimedia\Music\#Tracklisting\2016-04-04\Anime releases\Hidamari Sketch.tags" / index: 127

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Multimedia\Music\#Tracklisting\2016-04-04\Anime releases\Hidamari Sketch.tags" / index: 157

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Multimedia\Music\#Tracklisting\2016-04-04\Anime releases\Hidamari Sketch.tags" / index: 159

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Multimedia\Music\#Tracklisting\2016-04-04\Anime releases\Hidamari Sketch.tags" / index: 161

Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"F:\Multimedia\Music\#Tracklisting\2016-04-04\Anime releases\Hidamari Sketch.tags" / index: 173

I've also attached the verbose log in the attachment below.
In the properties dialog, I also noticed that these tracks have empty @REFERENCE_FILES column and -1 for  the @REFERENCE_INDEX. The @ returns proper file path though. Basically mTAGS read the tags just fine (and probably the files as well) but refuses to play them (in addition that I also can't convert these files as well)

I believe this is not caused by filename as even though the track's tags are in Japanese, the whole directory & file naming is completely romanized and free from any unicode/forbidden file name strings. The files are also intact and not corrupted at all when played directly.
I compared the faulty playback with another tracks but there's not much of any difference, even in the .tags file, apart from one thing: these tracks had the longest file path among any other working tracks. Is that the cause?

Your diagnose is most likely correct. Windows has a limitation in the length of a file path, and it is a well-known source of all sorts of problems. The hint in this case is the following extract from the log file:

m-TAGS:: archive ref_file: file://F:\Multimedia\Music\#Tracklisting\2016-04-04\Anime releases\..\..\..\Hidamari Sketch, Collective\Hidamari Sketch x Hoshimittsu OP - Dekiru Kanatte Hoshimittsu [Kana Asumi, Kaori Mizuhashi, Yuuko Gotou, Ryouko Shintani]\03 - Dekiru Kanatte Hoshimittsu (off vocal).flac
m-TAGS:: Canonical path: file://F:\Multimedia\Music\#Tracklisting\2016-04-04\Anime releases\..\..\..\Hidamari Sketch, Collective\Hidamari Sketch x Hoshimittsu OP - Dekiru Kanatte Hoshimittsu [Kana Asumi, Kaori Mizuhashi, Yuuko Gotou, Ryouko Shintani]\03 - Dekiru Kanatte Hoshimittsu (off vocal).flac

The Canonical path should be "file://F:\Multimedia\Music\Hidamari Sketch, Collective\Hidamari Sketch x Hoshimittsu OP - Dekiru Kanatte Hoshimittsu [Kana Asumi, Kaori Mizuhashi, Yuuko Gotou, Ryouko Shintani]\03 - Dekiru Kanatte Hoshimittsu (off vocal).flac"

That is, the "relative" portion of the path should have been resolved and the path minimized. It is an internal fb2k routine which does this (filesystem::g_get_canonical_path(), if you are familiar with the SDK). This routine obviously fails for the reported files, and I believe it fails exactly because the paths are too long for windows to handle. The default behaviour of the routine in case of failure is to return the path "as-is". But this then makes the decoding process fail.

Another reason could be that the files simply do not exist or are not where they should be according to the locator, but I have to assume that you did verify that they do exist.
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-04-09 13:22:32
[...]

Your point no. 1 is well taken. But I am not sufficiently expert of playlist handling to provide that functionality without spending some time studying how fb2k would allow me to hide files. Maybe the developer of the cue-hiding add-on can illuminate me?

As for point no. 2, the ramifications are more complex. To start with, what you ask requires another menu option ("reload info from files" just reloads the m-TAGS file, of course, and rightly so). What you really want is m-TAGS to be able to "revert" to the referenced media's tags without having to explicitly recreate the m-TAGS file.

Also, m-TAGS was created in order NOT to modify media files, and (philosophically, if you want) assumes that media files are immutable. I (quite reluctantly) added the much requested option to write back the m-TAGS tags to the media files because I understand that there are cases in which this is desirable, particularly when copying files to devices which do not have fb2k.

However, unlike the option to rewrite the media file tags, the option to re-read the tags would open a can of worms. What if you want to re-read a subset of tags, but leave others unchanged in m-TAGS??? Now you need a "selection mask" of some sort. So, what's supposed to make something a little simpler, could become more cumbersome than expected.
I realize that this could lead to all kinds of problems.  And I can only speak for myself of course but personally I would already be glad if it only would collect information from media file tags which are not already present in the m-TAGs file itself, so basically ignoring any media tags already existing in a tags file, even if their values might differ. The tags file is after all supposed to be leading here.

But I also can imagine that once that door is open, wishes might arise among other users for a somewhat more controlled form. In its simplest form this could be the use of a set of user defined tags to consider protected from updating. And anything that is not included in that set is fair game as far as updating is concerned. Otoh, it could be left totally up to the user with a dialog akin to how Picard displays original value and proposed new value.

But as I said, personally I'd already be glad to have it only read in values for tags not yet present in the m-TAGs file. Even this would already allow some form of user control because if a user actually wanted to have existing m-TAG tags updated, all he or she would have to do in that case is right-click, select properties and clear the value before reading in any new values. Thus the responsibility for any changes to existing values lies totally with the end-user.

This would not work, because it would also reload back tags that are present in the media file, but which I do NOT want to be present in the m-TAGS files.
Title: Re: m-TAGS component (foo_tags)
Post by: wolfsong on 2016-04-10 07:43:01
Is it possible to save an m3u8 playlist with the corresponding source media instead of the tag files?

Also, after I rip a CD, select it and choose Create m-TAGS from the Tagging context menu; I'm prompted to save but the dialog box sits there and doesn't create the m-TAGS files.
Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-04-10 12:26:02
nope, it does not make m3u8 files,

If the dialog box just sits there and clicking on Save doesn't do anything then you've not yet typed a name to save the file with...

Title: Re: m-TAGS component (foo_tags)
Post by: wolfsong on 2016-04-10 19:46:01
nope, it does not make m3u8 files,
To clarify. I created an FPL playlist and I want to save it as m3u8 with the source files.

If the dialog box just sits there and clicking on Save doesn't do anything then you've not yet typed a name to save the file with...
I'm not typing anything in the name. Do I have to create the whole path and filename?
Title: Re: m-TAGS component (foo_tags)
Post by: konw on 2016-04-11 05:49:15
is there any way to make foobar read the cover art in the original mp3 file, or a way to write the cover art into the mtag file?

it's problematic for me becasue all my songs in the library are singles, every one of them has its own different cover art.
Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-04-12 01:41:39
nope, it does not make m3u8 files,
To clarify. I created an FPL playlist and I want to save it as m3u8 with the source files.
Oh than I misunderstood, my bad. You can save a playlist either as FPL, M3U or M3U8 by using the filetype dropdown in the "File > Save Playlist..." dialog. You need to provide the name yourself and navigate to the desired location where to save it...
But I've no idea if the resulting files are saved in the  way you expect with regards to formatting.

If the dialog box just sits there and clicking on Save doesn't do anything then you've not yet typed a name to save the file with...
I'm not typing anything in the name. Do I have to create the whole path and filename?
Similar to saving playlists, when using the Tagging context menu option for m-TAGS, you must provide a filename yourself (you do not need to type the extension as it will be automatically added). And here too, if you use the dialog to navigate to where you want it saved you do not need to provide the full path
Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-04-12 01:56:25
is there any way to make foobar read the cover art in the original mp3 file, or a way to write the cover art into the mtag file?

it's problematic for me becasue all my songs in the library are singles, every one of them has its own different cover art.
Yes, go to File > Preferences > Advanced > Tagging > m-TAGS > m-TAGS Creator and put a checkmark in the box for "Create a separate m-TAGS file each source file". You may also need to put a checkmark  in the box for "Keep source files extension in non-folder wide m-TAGS file names". The latter is to get around situations where files with the same name, but with different media extensions would end up in the same tags file otherwise.
Title: Re: m-TAGS component (foo_tags)
Post by: wolfsong on 2016-04-12 04:18:57
nope, it does not make m3u8 files,
To clarify. I created an FPL playlist and I want to save it as m3u8 with the source files.
Oh than I misunderstood, my bad. You can save a playlist either as FPL, M3U or M3U8 by using the filetype dropdown in the "File > Save Playlist..." dialog. You need to provide the name yourself and navigate to the desired location where to save it...
But I've no idea if the resulting files are saved in the  way you expect with regards to formatting.
I know the steps to save a playlist. I want save a playlist with the paths of the mp3 files. Right now if I save a playlist of tag files, it saves the path of the tags; not the mp3s.

If the dialog box just sits there and clicking on Save doesn't do anything then you've not yet typed a name to save the file with...
I'm not typing anything in the name. Do I have to create the whole path and filename?
Similar to saving playlists, when using the Tagging context menu option for m-TAGS, you must provide a filename yourself (you do not need to type the extension as it will be automatically added). And here too, if you use the dialog to navigate to where you want it saved you do not need to provide the full path
This seems to work completely differently than selecting File > m-TAGS > Create m-TAGS (in separate folder) which does not require providing a filename. I figured out though if I rescan the entire path, the m-TAGS for the new files will be created. The context menu option seems useless in this case. Perhaps luigimercurio can describe his intent for the function.
Title: Re: m-TAGS component (foo_tags)
Post by: konw on 2016-04-13 08:15:09
is there any way to make foobar read the cover art in the original mp3 file, or a way to write the cover art into the mtag file?

it's problematic for me becasue all my songs in the library are singles, every one of them has its own different cover art.
Yes, go to File > Preferences > Advanced > Tagging > m-TAGS > m-TAGS Creator and put a checkmark in the box for "Create a separate m-TAGS file each source file". You may also need to put a checkmark  in the box for "Keep source files extension in non-folder wide m-TAGS file names". The latter is to get around situations where files with the same name, but with different media extensions would end up in the same tags file otherwise.

this kinda defeats the original purpose, and backwards the technology to when music files cant hold song meta info
Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-04-13 12:12:01
is there any way to make foobar read the cover art in the original mp3 file, or a way to write the cover art into the mtag file?

it's problematic for me becasue all my songs in the library are singles, every one of them has its own different cover art.
Yes, go to File > Preferences > Advanced > Tagging > m-TAGS > m-TAGS Creator and put a checkmark in the box for "Create a separate m-TAGS file each source file". You may also need to put a checkmark  in the box for "Keep source files extension in non-folder wide m-TAGS file names". The latter is to get around situations where files with the same name, but with different media extensions would end up in the same tags file otherwise.

this kinda defeats the original purpose, and backwards the technology to when music files cant hold song meta info
Backwards? Then why use m-TAGS in the first place?

It's sole purpose is to do exactly that, keeping the meta info separate from the music files. And there's nothing backwards about that, considering there's still media formats with poor or non-existing support for media info. Backwards is Win10 still not being able to read and display ID3v2.4 in Explorer...
Title: Re: m-TAGS component (foo_tags)
Post by: konw on 2016-04-17 07:44:25
is there any way to make foobar read the cover art in the original mp3 file, or a way to write the cover art into the mtag file?

it's problematic for me becasue all my songs in the library are singles, every one of them has its own different cover art.
Yes, go to File > Preferences > Advanced > Tagging > m-TAGS > m-TAGS Creator and put a checkmark in the box for "Create a separate m-TAGS file each source file". You may also need to put a checkmark  in the box for "Keep source files extension in non-folder wide m-TAGS file names". The latter is to get around situations where files with the same name, but with different media extensions would end up in the same tags file otherwise.

this kinda defeats the original purpose, and backwards the technology to when music files cant hold song meta info
Backwards? Then why use m-TAGS in the first place?

It's sole purpose is to do exactly that, keeping the meta info separate from the music files. And there's nothing backwards about that, considering there's still media formats with poor or non-existing support for media info. Backwards is Win10 still not being able to read and display ID3v2.4 in Explorer...

i use it to store all the meta info of my library in one single or several file for easier management/update/sync,
Title: Re: m-TAGS component (foo_tags)
Post by: wolfsong on 2016-04-28 05:03:59
Is it possible to save an m3u8 playlist with the corresponding source media instead of the tag files?

luigimercurio

You mentioned an unreleased playlist tool in another reply. Would that tool allow me to create an m3u8 playlist of the source files that are referenced in the tag files? I need to export my playlist to use on another device.
Title: Re: m-TAGS component (foo_tags)
Post by: wolfsong on 2016-04-28 06:23:26
I'm seeing a bug where m-Tags has trouble with some files that have non-alpha characters in the filename. If you look at the attached tag file. I was able to fix tracks 7 and 10 by removing [Edited Version] from the mp3's tag and regenerating the tag file. For some reason this did not fix track 6 which only has a period or track 12 which has parens. Removing the period and parens did not fix these tracks.

The source mp3 plays fine but the tag reference is missing duration and results in a playback error.
Code: [Select]
Decoding failure at 0:00.000 (Unsupported format or corrupted file):
"C:\Users\Cristov\Music\m-TAGS\Yo-Yo Ma & The Silk Road Ensemble\Silk Road Journeys - When Strangers Meet\!.tags" / index: 6
Title: Re: m-TAGS component (foo_tags)
Post by: wolfsong on 2016-04-30 20:38:28
Just as a test, I tried ripping these as FLAC files and m-TAGS has the same issue with these as well.
Title: Re: m-TAGS component (foo_tags)
Post by: Nisto on 2016-05-07 16:50:26
Hey luigi. This is probably wishful thinking, but I've noticed other components (e.g. PSF Decoder) fails to recognize tags loaded in from m-TAGS. I was wondering if there is any way you can possibly update your component to have other components recognize them?

In fact, if that's not possible, I'm thinking Peter should really try to implement a "component precedence" system or something, which would be configurable (to some extent at least) by the user. That'd be really neat. Or would that not necessarily solve this problem?
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2016-05-17 13:00:32
Hey luigi. This is probably wishful thinking, but I've noticed other components (e.g. PSF Decoder) fails to recognize tags loaded in from m-TAGS. I was wondering if there is any way you can possibly update your component to have other components recognize them?

In fact, if that's not possible, I'm thinking Peter should really try to implement a "component precedence" system or something, which would be configurable (to some extent at least) by the user. That'd be really neat. Or would that not necessarily solve this problem?

Nisto, I am not sure about the nature of your problem, and how it manifests itself. There is no difference, as far as internal behaviour of fb2k, between m-TAGS and any other media format (keeping in mind that fb2k sees m-TAGS as a FORMAT and not a PLAYLIST).

Can you send me a log, or put here an extract?
Title: Re: m-TAGS component (foo_tags)
Post by: Nisto on 2016-05-23 20:00:08
Apologies for the unclear question. The problem is particularly with functional tags. PSF Decoder, for example, supports several such tags (_usefifofull, volume, fade, length). However, when using them in m-TAGS files, the gain doesn't change when using the "volume" tag, and fade-outs aren't applied when using the "fade" tag, etc. But I've been thinking.. maybe it parses those tags differently? They are specified exactly like other ("non-functional") tags in the PSF format, but when loading *.psf files (containing functional tags) directly, those tags don't appear in the (Selection) Properties element/window like artist, title and other common tags do. So if I'm correct, I guess there's not much that can be done, huh? :/

I'm not finding anything that would be of any help in the fb2k logs. But you could test it out yourself. You can find PSF files on lots of places, and the PSF Decoder component is in the official repository. Can you make any sense of this? (https://github.com/kode54/foo_psf/blob/ab40fd020209e755d45422cb1d8ac7d7638ee76c/psf.cpp#L702)
Title: Re: m-TAGS component (foo_tags)
Post by: kode54 on 2016-05-23 22:58:50
My PSF decoders ignore the volume tag and read and write ReplayGain tags instead.

The length and fade fields are also in human readable timestamp format, hh:mm:ss.ms.

And you can't expect an external database to override them, as they're read directly from the files every time you play them.
Title: Re: m-TAGS component (foo_tags)
Post by: Nisto on 2016-05-24 02:15:31
My PSF decoders ignore the volume tag and read and write ReplayGain tags instead.
Yeah, was about to edit my post earlier as I didn't actually see any volume tag in the source code after all. I guess I naturally assumed since it's part of the original PSF spec.

And you can't expect an external database to override them, as they're read directly from the files every time you play them.
That's basically what I was thinking. Too bad.
Title: Re: m-TAGS component (foo_tags)
Post by: kode54 on 2016-05-24 04:53:37
Technically, I could make it read the tags, but that would require a direct interface to m-TAGS, as last time I was discussing it with Peter almost a decade ago, invoking the metadb to read your own tags from the core is kind of a no-no from decoders, as invoking the tag read call may trigger a new instance of your plug-in to read the tags from the file first. Which I suppose is fine if you have no race conditions, and don't mind the file being opened and read from multiple places simultaneously, or being read multiple times redundantly.

So, maybe point me at an API can call for tag info, and I may consider implementing it into all of my synthesizer plugins, but I'll only allow overriding simple things like the track length and fade duration, not anything that affects the actual emulation. For instance, half of the _tags that apply to USF files, the files could cause the plug-in to lock up the player if they're missing or misused.
Title: Re: m-TAGS component (foo_tags)
Post by: Nisto on 2016-05-24 16:12:54
As much as I appreciate the effort, I think I'd rather you didn't turn your component into something unnecessarily complex. Having a component interacting with another just sounds like a generally bad idea to me, and I'm personally more into portability and compatibility than convenience. If m-TAGS should change something that would affect your interface at some point, that just creates all the more problems.
Title: Re: m-TAGS component (foo_tags)
Post by: r3v0 on 2016-06-13 14:08:23
Hi, is it possible to reference to a file different from location?
For instance have it point to a file based on a checksum or with the use of foo_biometric?
That would ensure that moving files wouldn't interfere with the mtags.
Title: Re: m-TAGS component (foo_tags)
Post by: xsdaver on 2016-08-26 11:53:13
I've been using this plug-in for a while now.  I wanted to be able to add rating tags to music without changing the music files.  This does exactly what I wanted to do.  There is one feature that would really make it perfect for me.

I keep files that I have in lossless format in a separate directory structure from files that I only have in lossy format.  The two directory structures are identical.  When I acquire something in lossless format that I previously only had in lossy format the new files go into the lossless tree and the lossy only files and corresponding directories get deleted from the lossy only tree.  It would be great if I could just run the create m-Tags process and have the lossy only files removed.  It would be even cooler if the tags from the lossy only !,m-Tags that were not in the source files could be copied to the lossless !.m-Tags version.  Ideally, if deleting the file creates an empty directory the directory would also be deleted.

Thanks for this great plug-in!
Title: Re: m-TAGS component (foo_tags)
Post by: anamorphic on 2016-09-24 17:29:45
Hey there. What a great component this is - so useful for syncing tag updates across multiple PCs, rather than having to copy megabytes of files. It has made managing my library so much easier. 8)

Just one thing (maybe mentioned already)... My layout uses %filesize_natural% in a couple places - which of course now display 2.4 KB instead of the actual 36 MB or so of each file. I guess there is no way around this behavior?

Cheers <3
Title: Re: m-TAGS component (foo_tags)
Post by: zoomorph on 2016-09-25 00:34:40
I think m-TAGS is something that would need to be directly supported by foobar2000 for full compatibility with all other components.
Title: Re: m-TAGS component (foo_tags)
Post by: askold on 2016-10-01 01:20:07
«Failed to load DLL: foo_tags.dll
Reason: Unknown error code (3221225501)»

win xp x32 sp3, athlon xp (non-sse2 cpu)
Title: Re: m-TAGS component (foo_tags)
Post by: kode54 on 2016-10-02 01:10:24
«Failed to load DLL: foo_tags.dll
Reason: Unknown error code (3221225501)»

win xp x32 sp3, athlon xp (non-sse2 cpu)
0xC000001D (Illegal Instruction)

That'd probably be building with MSVC 2015 with the default SSE2 instruction support.
Title: Re: m-TAGS component (foo_tags)
Post by: Bero1707 on 2016-10-18 17:56:42
I think there should be option to add m-TAGS files for selected songs in playlist in the same folder as files when you right click on selected songs in playlist.
You can "right click -> Tagging -> Create m-TAGS files" but then you have to navigate to wanted folder.
This way it would be much faster.
Title: Re: m-TAGS component (foo_tags)
Post by: tanjidoor on 2016-10-28 12:03:55
Bug report?
I have several m-TAGS linked to music on another drive, files on D: and tags on E:. However certain .tags would fail to play the first track (returning decoding failure; unsupported format error), if another track (e.g. second or fifth track) from the same .tags file gets played first. Only if the first track gets played first, it would play just fine. However as soon as the playback advances or changes to next track of the same .tags file, playing the first track again will fail as well. This happens with many .tags files, but not all of them. I've double-checked maximum path limit on them, and they're below 200 chars. No special characters either. No weird/faulty tags. What do you think seems to be the cause?

You can check these console logs. I reproduced the bug by playing the first track, then second track, then back to first track on each .tags file. The first two .tags doesn't have this problem, and the last two does. Since the first track failed to play on the last two .tags, playback automatically advances to the second track, which the logs should record.

Here I attached two logs, one with verbose logging enabled and one without. I also attached the working and faulty .tags files, two of each respectively. Thanks in advance, and thanks again for the great component!
Title: Re: m-TAGS component (foo_tags)
Post by: Semyon on 2016-10-30 08:21:08
Hello!

I have a problem with streams. Tags are not displayed dynamically. They are fixed by. that are written in the m-tag file. Is it possible to show the values from the file when the stream is not running and display tags from stream when it is launched?
Title: Re: m-TAGS component (foo_tags)
Post by: evasv on 2016-11-07 03:04:14
I think there should be option to add m-TAGS files for selected songs in playlist in the same folder as files when you right click on selected songs in playlist.
You can "right click -> Tagging -> Create m-TAGS files" but then you have to navigate to wanted folder.
This way it would be much faster.
Agreed. This is the reason I came here to ask.

When I right-click the playlist to save m-tags, I always want to save in the same folder as the music files. I do this very frequently, so it would be nice if you could avoid navigating the folders.
Title: Re: m-TAGS component (foo_tags)
Post by: tanjidoor on 2016-11-07 11:36:21
Bug report?
I have several m-TAGS linked to music on another drive, files on D: and tags on E:. However certain .tags would fail to play the first track (returning decoding failure; unsupported format error), if another track (e.g. second or fifth track) from the same .tags file gets played first. Only if the first track gets played first, it would play just fine. However as soon as the playback advances or changes to next track of the same .tags file, playing the first track again will fail as well. This happens with many .tags files, but not all of them. I've double-checked maximum path limit on them, and they're below 200 chars. No special characters either. No weird/faulty tags. What do you think seems to be the cause?

You can check these console logs. I reproduced the bug by playing the first track, then second track, then back to first track on each .tags file. The first two .tags doesn't have this problem, and the last two does. Since the first track failed to play on the last two .tags, playback automatically advances to the second track, which the logs should record.

Here I attached two logs, one with verbose logging enabled and one without. I also attached the working and faulty .tags files, two of each respectively. Thanks in advance, and thanks again for the great component!

This has been fixed by deleting all album art encapsulation in every single folder of where my .tags files are residing. I just type "del *.bin /s" on command prompt of my folder.
Title: Re: m-TAGS component (foo_tags)
Post by: Just_Addict on 2016-11-08 00:56:13
I think there should be option to add m-TAGS files for selected songs in playlist in the same folder as files when you right click on selected songs in playlist.
You can "right click -> Tagging -> Create m-TAGS files" but then you have to navigate to wanted folder.
This way it would be much faster.
Agreed. This is the reason I came here to ask.

When I right-click the playlist to save m-tags, I always want to save in the same folder as the music files. I do this very frequently, so it would be nice if you could avoid navigating the folders.


Oddly enough if you choose File -> m-TAGS you DO get the choice...  ???
Title: Re: m-TAGS component (foo_tags)
Post by: evasv on 2016-11-08 16:44:36
I think there should be option to add m-TAGS files for selected songs in playlist in the same folder as files when you right click on selected songs in playlist.
You can "right click -> Tagging -> Create m-TAGS files" but then you have to navigate to wanted folder.
This way it would be much faster.
Agreed. This is the reason I came here to ask.

When I right-click the playlist to save m-tags, I always want to save in the same folder as the music files. I do this very frequently, so it would be nice if you could avoid navigating the folders.


Oddly enough if you choose File -> m-TAGS you DO get the choice...  ???

I realize I wasn't clear enough. I'll try again:

When I right-click the playlist to save m-tags, I want m-tags to presume that I want to save in the very same folder as the music files that I just right-clicked. This way I wouldn't have to browse/navigate to the folder.

As it is now, m-tags defaults to "Last used folder" or "My Documents", both of which seem unnatural to me.
Title: Re: m-TAGS component (foo_tags)
Post by: tanjidoor on 2017-02-18 04:12:01
Hi. Thanks for this app. It works the way I wanted it to.

Is it possible to somehow change or locate the music source? In case I move the music to a different location. Thanks.

Yes. the locator is editable as any other tag. Its name is "@". If you use scripts, then you can access it as "@" when writing, and as "$info(@)" when reading. For example, if you relocate an album to a different folder, you can use the the "Properties / Tools / Automatically fill values..." window like this:

Source: "Other..." / "$replace($info(@),'/<old folder>/','/<new folder>/')"
Pattern: @

After you click "OK" you will se the "@" tag listed among the tags. If you click "Apply", then the locators will be changed in the m-tags files.
 Of course you can do the same with masstagger, or you can "Add new filed..." manually in the properties window and manually edit the locator (Field name = @).

You could even display the "@" tag on the playlist (as a column on the Columns UI interface, for example) and edit it directly there. But I cannot frankly foresee that anyone would want the locator shown in the playlist! LOL

Needless to say, because an m-tags file is a text file, you can also directly edit the file or write an external script to change the locator ("@") tags.

I'd like to point out that @ alone for the pattern won't work when automatically filling values. Use %@%
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2017-03-22 18:49:26
Bug report?
I have several m-TAGS linked to music on another drive, files on D: and tags on E:. However certain .tags would fail to play the first track (returning decoding failure; unsupported format error), if another track (e.g. second or fifth track) from the same .tags file gets played first. Only if the first track gets played first, it would play just fine. However as soon as the playback advances or changes to next track of the same .tags file, playing the first track again will fail as well. This happens with many .tags files, but not all of them. I've double-checked maximum path limit on them, and they're below 200 chars. No special characters either. No weird/faulty tags. What do you think seems to be the cause?

You can check these console logs. I reproduced the bug by playing the first track, then second track, then back to first track on each .tags file. The first two .tags doesn't have this problem, and the last two does. Since the first track failed to play on the last two .tags, playback automatically advances to the second track, which the logs should record.

Here I attached two logs, one with verbose logging enabled and one without. I also attached the working and faulty .tags files, two of each respectively. Thanks in advance, and thanks again for the great component!

This has been fixed by deleting all album art encapsulation in every single folder of where my .tags files are residing. I just type "del *.bin /s" on command prompt of my folder.

I will have to look into it. The album art addition was  VERY RELUCTANTLY made following a specific request. That's because I knew it was prone to break, and also because of the necessity to use those hideous ".bin" files.

The proper way to embed artwork in m-TAGS is to have tags containing the paths (or, more generally, the URL's) to the images. Then reference those tags within the the art viewers' lists of sources. And I would be happy to provide special treatment for such a solution (i.e. providing automatic resolution of cover references, just like it's done with the locator "@").

Remember: embedded artwork == duplicated artwork. Who needs that???

Unfortunately, this would NOT be compatible with fb2k's embedded artwork manager, and that was the main objective of the request.
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2017-03-22 18:56:36
I think there should be option to add m-TAGS files for selected songs in playlist in the same folder as files when you right click on selected songs in playlist.
You can "right click -> Tagging -> Create m-TAGS files" but then you have to navigate to wanted folder.
This way it would be much faster.
Agreed. This is the reason I came here to ask.

When I right-click the playlist to save m-tags, I always want to save in the same folder as the music files. I do this very frequently, so it would be nice if you could avoid navigating the folders.


Oddly enough if you choose File -> m-TAGS you DO get the choice...  ???

I realize I wasn't clear enough. I'll try again:

When I right-click the playlist to save m-tags, I want m-tags to presume that I want to save in the very same folder as the music files that I just right-clicked. This way I wouldn't have to browse/navigate to the folder.

As it is now, m-tags defaults to "Last used folder" or "My Documents", both of which seem unnatural to me.


The reason why the context menu does not offer to save "in the same folder" is that there is no guarantee whatsoever that all selected media resides in the same folder, nor, in fact, that the media is located in a writable folder, or that is even local.

That said.... I do agree that I could have been a little less of a lazy ass and check if indeed all the selected files ARE in the same folder and act accordingly. I will look into that, and I may add the feature... if it does not affect my lazy ass too much ;-)

I am still surprised at why people even use the context menu, though. It is so much easier to create m-TAGS via the main menu or a script. But any feedback belying my assumptions is very welcome (and could make my ass less lazy...).
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2017-03-22 19:07:01
Hello!

I have a problem with streams. Tags are not displayed dynamically. They are fixed by. that are written in the m-tag file. Is it possible to show the values from the file when the stream is not running and display tags from stream when it is launched?

Yes it is. I already responded to this, but, in order to save you time, here is how:

You have create a "shadow" set of tags. For example, if the TITLE metadata is subject to change dynamically, do NOT create an m-TAGS file with that tag. Rather, use something like DEFAULT_TITLE (it could be the station name). Then use $if2(%TITLE%,%DEFAULT_TITLE%) to display the dynamic information when available and the m-TAGS value when not. If you use ColumnsUI, for example, the above is what you would write in the Column/Display field. And don't forget to make DEFAULT_TITLE and not TITLE the Linked Meta Field for online editing!!!

Please note that dynamic technical tags (non-metadata tags, like dynamic bit rate, etc.) are always transparently relayed by m-TAGS.
Title: Re: m-TAGS component (foo_tags)
Post by: luigimercurio on 2017-03-22 19:15:34
Hey there. What a great component this is - so useful for syncing tag updates across multiple PCs, rather than having to copy megabytes of files. It has made managing my library so much easier. 8)

Just one thing (maybe mentioned already)... My layout uses %filesize_natural% in a couple places - which of course now display 2.4 KB instead of the actual 36 MB or so of each file. I guess there is no way around this behavior?

Cheers <3


There is a way, but I decided not to use it. It may be prone to break other components of fb2k. As far as fb2k is concerned, and in all of its inner workings, the m-TAGS file completely encapsulates the media. That is, for fb2k the m-TAGS file "IS" the media file. So, I present it with the m-TAGS file size and timestamp, and NOT the encapsulated media size and timestamp.fds

Admittedly... I could add a couple of generated tags, for those values, derived from @REFERENCED_FILE
Title: Re: m-TAGS component (foo_tags)
Post by: tanjidoor on 2017-04-01 13:06:40
Great to see you're back!

For some reason the m-TAGS properties (@,Referenced file,etc) won't show up anymore on the Properties window. I can still call them through title formatting though. I'm on latest version for both the component and foobar2000.

Also is it possible for the m-TAGS creator to allow title formatting for the "Folder-wide .tags name"? Something like %album%.tags would be better than !.tags I suppose :)
Title: Re: m-TAGS component (foo_tags)
Post by: rykiff on 2017-04-16 18:28:42
Glad to see this plugin is still alive and kicking. Still one of my favorite (and most used) fb2k plugins to date.

I ran into an interesting situation when writing tags for foo_youtube and foo_input_spotify sources.

Both these plugins have the ability to pass album / artist artwork and display them in the built-in fb2k artist / album artwork panels.

However, once I write the m-tag file for said files, the artist / album artwork data isn't passed along to the m-tags file.

I was wondering, is it possible to configure m-tags (via either built-in functionality or an external / custom script) to snatch the associated displayed artist / album artwork when creating m-tags?

Thanks again for the awesome plugin.
Title: Re: m-TAGS component (foo_tags)
Post by: Bero1707 on 2017-05-06 17:09:37
Can you please include option in foobar playlist (right click) to create m-tags file in same folder where selected files are (without asking where to put m-tags file)?
If all selected files are not in same directory that command should put m-tags file in latest path all selected files have in common.

I also found a bug when I try to convert files under m-tags "playlist" with attached cover art with m-tags (.bin file). This however doesn't happen when m-tags file is pointing to .cue file. Only when pointing to audio files whether they have cue sheet attached to them or not.
Error message says: An error occurred while transferring attached pictures (File is already in use)
What use? It says that every time.
Title: Re: m-TAGS component (foo_tags)
Post by: nelive on 2017-05-21 14:11:26
Hi luigimercurio,

First of all, many thanks for the great component. fb2k+m-TAGS combination is really essential for me to organise my huge collection. Everything has worked nicely for me so far, until it comes to album art.

I have an m-TAGS file like below
Code: [Select]
[
    {
        "@" : "01. Track 1.mp3",
        "TITLE" : "Track 1",
        "TRACKNUMBER" : "1",
        "ALBUM" : "Some album",
        "ARTIST" : "Some artist",
        "DATE" : "2017"
    },
    {
        "@" : "02. Track 2.mp3",
        "TITLE" : "Track 2",
        "TRACKNUMBER" : "2"
    }
]
named as myalbum.tags stored in the same folder as *.mp3 files. I also have a JPEG file named myalbum.tags.icon.bin stored in the same folder. And I load the tag file to play in foobar2000. The music plays fine. I have an Album Art Viewer panel that I set to display Icon.

The problem is: when I double-click on Track 1 to play it, the icon image is shown. But when I select Track 2 (or any other track if the tag file contains more, Track 1 is still playing), [no image] is shown instead of the image in myalbum.tags.icon.bin. When I select back Track 1 (it is still playing), the album art doesn't appear again ( I guess same issue as Replies 249 here (https://hydrogenaud.io/index.php/topic,97164.msg917703.html#msg917703) and 255-257 here (https://hydrogenaud.io/index.php/topic,97164.msg918481.html#msg918481)). When I right-click on any track in the album (Track 1 is still playing) to open the Context Menu and choose Tagging > Manage attached pictures, I will get the error message Attached editing picture failure: File is already in use (same issue as Replies 230 here (https://hydrogenaud.io/index.php/topic,97164.msg908680.html#msg908680) and 261 here (https://hydrogenaud.io/index.php/topic,97164.msg918713.html#msg918713), and probably 323 above).

I know you gave some explanation about the locking (here (https://hydrogenaud.io/index.php/topic,97164.msg913807.html#msg913807) and here (https://hydrogenaud.io/index.php/topic,97164.msg919751.html#msg919751)) but what I find strange is that if another track other than Track 1 is playing, I don't have any problem, everything works as I expect (album art shown on selecting any track in the album, and I can right-click to manage attached pictures). So the problem is really with the first track in the tag file. If fb2k locks file during playback, why does locking only happen to first track in the tag file, given that the actual media files are being played?

After realising that the album art problem only happens to the first track in the tag file, I thought of creating a dummy track
Code: [Select]
[{},
    {
        "@" : "01. Track 1.mp3",
        "TITLE" : "Track 1",
        "TRACKNUMBER" : "1",
        "ALBUM" : "Some album",
        "ARTIST" : "Some artist",
        "DATE" : "2017"
    },
    {
        "@" : "02. Track 2.mp3",
        "TITLE" : "Track 2",
        "TRACKNUMBER" : "2"
    }
]
This will of course add an unplayable dummy track to the playlist when loaded to the player. I can then remove this dummy track from the playlist and play all tracks as normal. But this is really annoying when I load many albums to the playlist at once. I use Edit > Remove dead items but it doesn't work.

Then I saw this suggestion (Reply 275 (https://hydrogenaud.io/index.php/topic,97164.msg919758.html#msg919758)) of hiding referred media inside the tag file. If such implementation is possible, I can hide my dummy first track. Any update on that?

You also mentioned "Pure" m-TAGS (https://hydrogenaud.io/index.php/topic,97164.msg905508.html#msg905508) files. Could that be any help?

I wouldn't have any of the above problems if I could specify a path to my icon file. fb2k only allows path to Front, Back, Disc covers and Artist image, yet the Album Art Viewer panel can display 5, including Icon. In case you wonder why I have to use Icon, I resort to it as a solution to my problem on multiple front album covers here (https://hydrogenaud.io/index.php/topic,114086.0.html)

Any idea to properly display Icon album art when playing media files via m-TAGS is much appreciated.
Title: Re: m-TAGS component (foo_tags)
Post by: Marnes on 2018-02-09 20:00:32
PSA In case anyone else arrived at this component the same way I did: be warned that this component is not a solution for foobar losing/forgetting midi file tags (it even just makes it worse, in a way). Mtags can generate its manifest file from tagged midis perfectly, but using the "write tags back to media files" feature does nothing to 90% of the files and writes tags to the wrong files for the remaining 10%. Makes sense because mtags still relies on foobar's midi tag handling, so if the latter is error-prone then mtags on midi is just as error-prone.
Title: Re: m-TAGS component (foo_tags)
Post by: kode54 on 2018-02-09 23:25:28
If someone wants to implement database tagging properly for foo_midi, be my guest. It's not working properly at this point, and definitely does not support writing RIFF MIDI tags, either.
Title: Re: m-TAGS component (foo_tags)
Post by: Porcus on 2018-02-10 22:38:10
Oh. So back in 2014 I nagged the dev. about a write-back functionality, and with that missing I dropped everything about m-tags - just to find out now, that it was implemented in 2015. Well, my loss ... until now. I think I want this, but I could use a crash course:
* For files referenced by a tags file: how to make the media library see "only one copy"?
* Is there a way to quickly scan for orphans?
Title: Re: m-TAGS component (foo_tags)
Post by: Marnes on 2018-02-10 22:45:22
* For files referenced by a tags file: how to make the media library see "only one copy"?
* Is there a way to quickly scan for orphans?
1) You might be able to exclude mtagged files by giving them a filename pattern (like .mtag.<extension>) that you can exclude through foobar's library filtering settings (the option that says "*.mpc;*.ogg" as example). Or it might be possible to generate your mtag file, then move the audio files to a path outside your library and patch the paths in the mtag file accordingly. I don't think there's a pretty solution.
2) didn't come across any. Only option I see is to parse the json file and check for orphans with an external tool/script. Very basic job if you're already into that sort of work. Using per-file mtag files would make this easier since you wouldn't even need to parse the json, just check for incomplete pairs of files.

Disclaimer: I'm not a foo_mtag expert, just a guy who checked it out, tried to make it work for his needs, tested some use cases.
Title: Re: m-TAGS component (foo_tags)
Post by: Barruel on 2018-03-04 22:39:47
I think I have found a bug in the component.

I have some albums whose tracks are in separate FLAC files named as "[tracknumber] Title.flac"

As the square brackets are special JSON character, I understand I should escape them with \[ or \]. This works when escaping the quotation marks (\"), but when the square brackets are escaped, foobar2k hangs when adding the m-tags file.

According to the JSON specifications, these characters should be automatically escaped as long as they are inside a string (i.e. enclosed by quotation marks), but that's not the case with foo_tags. I've even tried escaping with unicode character codes (\u005b and \u005d for [ and ]), but foobar still couldn't see my tracks.

Can anyone confirm?
Title: Re: m-TAGS component (foo_tags)
Post by: Nisto on 2018-03-09 14:51:32
I think I have found a bug in the component.

I have some albums whose tracks are in separate FLAC files named as "[tracknumber] Title.flac"

As the square brackets are special JSON character, I understand I should escape them with \[ or \]. This works when escaping the quotation marks (\"), but when the square brackets are escaped, foobar2k hangs when adding the m-tags file.

According to the JSON specifications, these characters should be automatically escaped as long as they are inside a string (i.e. enclosed by quotation marks), but that's not the case with foo_tags. I've even tried escaping with unicode character codes (\u005b and \u005d for [ and ]), but foobar still couldn't see my tracks.

Can anyone confirm?


m-TAGS always uses forward slashes as the directory separator as far as I can tell, so I'm gonna assume you're manually creating your JSON files.

I don't think you're actually supposed to escape square brackets either. When I generate a .tags file from a source file with a custom tag containing an actual backslash character (\) followed by a square opening bracket ([), the output in the .tags file looks like so:

Code: [Select]
"TEST" : "test\\[01] title.flac"

Only the backslash character (directory separator) is escaped.
Title: Re: m-TAGS component (foo_tags)
Post by: arch21 on 2018-03-16 15:24:45
I wish it could show the codec of playlist item on Codec columns instead of TAGS. I also wish the SDK will be updated so its not shown as unnamed legacy decoders on Decoding preferences. Regards :)
Title: Re: m-TAGS component (foo_tags)
Post by: wcs13 on 2018-06-02 16:52:00
Hi everybody,

Is there a way to access the M-TAGS "@" tag field from within foobar ?
I can see it in the Properties dialog ("Details" tab), but how can I access it, in a titleformat string / masstagger script / etc. ?

FYI I'm trying to display a file's filename. That filename is of course present in the M-TAGS "@" tag field.
But I can't just type %filename%, because if will display the filename of the M-TAGS file ("!"), which is of course useless.
So what must I type ? Thanks.

EDIT - the answer is $info(@). Maybe it could be added to the OP or something, so new users don't waste their time looking for it. :)
Title: Re: m-TAGS component (foo_tags)
Post by: wcs13 on 2018-06-02 23:06:16
Another question :

Let's assume that foobar is configured in the "Media Libraty" section with "*.tags" as filter. So all that foobar has in its library are now the *.tags files, not the audio files themselves.

What if we change via Windows Explorer the filename of an audio file ? How can we have M-TAGS update the corresponding *.tags file to reflect the new filename ?
Title: Re: m-TAGS component (foo_tags)
Post by: Anakunda on 2018-06-03 19:15:03
I have one wish to this plugin: from selection of physical files > context menu > Tagging > Create default m-TAGS file and replace content

This command works similar like Create m-TAGS file, but autosaves the m-TAGS file into same folder with physical files under predefined name (folder.mtags, album.mtags or similar, can be defined by user prefs), then removes the selection from playlist and replaces it by opening the saved mTAGS file in one step. Then all changes into tags (including embedded artwork) would be stored to mTAGS file and the physical files remain untouched. Is possible?
Title: Re: m-TAGS component (foo_tags)
Post by: wcs13 on 2018-06-04 01:55:25
So how can we currently do to find orphans ? (.tags files that don't point to the right files anymore)
Title: Re: m-TAGS component (foo_tags)
Post by: anamorphic on 2018-06-06 02:11:03
* For files referenced by a tags file: how to make the media library see "only one copy"?
I wanted to be able to edit both the media files and tags in the same layout, so instead of using the "restrict file types to only see .tags" option in fb2k preferences, I instead have two tabs in the layout - '♫ Library (Tags)' and '♪ Library (Files)' - and then filter the results for genre, artist, album artist, etc (I'm using Facets plug-in for that).

So under the '♫ Library (Tags)' tab, I have one instance of Facets -
Code: [Select]
Genre / Style : $if($strstr(%filename_ext%,.tags),%<genre>%)|$if($strstr(%filename_ext%,.tags),[%<style>%])
Artist : $if($strstr(%filename_ext%,.tags),$if3(%<artist>%,%<album artist>%,'('Unknown Artist')'))

Then under the '♪ Library (Files)' tab, I have a second instance of Facets using different columns -
Code: [Select]
Genre : $if($greater(%filesize%,100000),%<genre>%)
Album Artist : $if($greater(%filesize%,100000),$if3(%<album artist>%,%<artist>%,'('Unknown Artist')'))

I'm sure there is a more elegant way of filtering that last one (tag files not likely to be over 100000 bytes, whereas most media files would be), but hey it works!  ;) (I could never figure out how to get an $if NOT statement working)

* Is there a way to quickly scan for orphans?
So how can we currently do to find orphans ? (.tags files that don't point to the right files anymore)

No easy way that I can see. However I noticed if you have a %codec% column in your tags-based playlist, and if there is an orphaned track, it sometimes displays "TAGS" instead of the codec. And you can even search the library for it (%codec% HAS tags). But this only seems to happen on occasion and I'm not sure when - perhaps after the filenames have been changed with the usual right-click > File Operations > Rename (on my Files tab above). Following that, you can right-click > Open Containing Folder, and open the .tags file in Wordpad to edit in the correct filename for that track. (Which I find is faster than making a new .tags file, because I keep my media files to only the basic tags)

Hope that helps 8)

Title: Re: m-TAGS component (foo_tags)
Post by: wcs13 on 2018-06-06 03:31:21
Maybe somebody with the right skills could write a script that would :
- Scan recursively a directory for .tags files
- Scan every .tags file for all the "@" fields
- Look for the corresponding media files in the same directory as the .tags file
- If a given media file seems to be missing (either because it has been deleted or because its physical name has been changed), just add its path to a log that will be produced at the end of the scan

If only somebody could achieve this... :)
Title: Re: m-TAGS component (foo_tags)
Post by: Sergey77 on 2018-06-09 19:57:32
Hello!

I have a problem with streams. Tags are not displayed dynamically. They are fixed by. that are written in the m-tag file. Is it possible to show the values from the file when the stream is not running and display tags from stream when it is launched?

Yes it is. I already responded to this, but, in order to save you time, here is how:

You have create a "shadow" set of tags. For example, if the TITLE metadata is subject to change dynamically, do NOT create an m-TAGS file with that tag. Rather, use something like DEFAULT_TITLE (it could be the station name). Then use $if2(%TITLE%,%DEFAULT_TITLE%) to display the dynamic information when available and the m-TAGS value when not. If you use ColumnsUI, for example, the above is what you would write in the Column/Display field. And don't forget to make DEFAULT_TITLE and not TITLE the Linked Meta Field for online editing!!!

Please note that dynamic technical tags (non-metadata tags, like dynamic bit rate, etc.) are always transparently relayed by m-TAGS.

Hello!

I have a problem with streams. Tags are not displayed dynamically. They are fixed by. that are written in the m-tag file. Is it possible to show the values from the file when the stream is not running and display tags from stream when it is launched?

@Semyon:
to the previous reply I would to addition
at Columns UI/Playlist view/Columns/Scripts/Display I made this script for column "Title" for display song name during playback from stream radio (for playlists created by m-TAGS):
$if($strcmp($right(%filename_ext%,5),.tags),$if(%isplaying%,%title%,$meta(default_title)),%title%)
you can try that.
Title: Re: m-TAGS component (foo_tags)
Post by: Anakunda on 2018-08-06 21:10:05
What was changed ion version 1.2?
Title: Re: m-TAGS component (foo_tags)
Post by: Sergey77 on 2018-08-07 15:12:38
how did you find!?  :) 
I don't see new version if I try "Check for updated component" in fb2k.
Title: Re: m-TAGS component (foo_tags)
Post by: wcs13 on 2018-08-10 13:24:27
There is indeed a 1.2 version, available through the official foobar components page.
But I see no changelog.
And foobar can't see the update via the "Check for updated components" option.
Title: Re: m-TAGS component (foo_tags)
Post by: wcs13 on 2018-10-01 18:42:27
Question : how can we get the actual file size ?
%filesize% and %filesize_natural% don't seem to work well with M-TAGS.
Thanks.
Title: Re: m-TAGS component (foo_tags)
Post by: wcs13 on 2018-10-03 04:46:58
Reply to my previous question : a workaround was found here --> https://hydrogenaud.io/index.php/topic,116673.0.html
(and I seem to be the only one posting in this topic)
Title: Re: m-TAGS component (foo_tags)
Post by: sjy on 2018-11-25 09:54:06
Thanks Luigi for this awesome component! It is a perfect solution to a problem I gave up on solving many years ago. It's especially handy that the !.tags file is simply JSON, as this makes it easy to build other applications and scripts on top of it.

Maybe somebody with the right skills could write a script that would :
- Scan recursively a directory for .tags files
- Scan every .tags file for all the "@" fields
- Look for the corresponding media files in the same directory as the .tags file
- If a given media file seems to be missing (either because it has been deleted or because its physical name has been changed), just add its path to a log that will be produced at the end of the scan

I've done this – check out m-tags-find-orphans.ps1 (https://gist.github.com/splintax/f5491eab3ab93f8e82725a18b693b2c8) (hopefully this is a convenient language, considering that foobar2000 is a Windows app, but since PowerShell supports UNC paths you can easily run it on a NAS with SMB). You will need jq (https://stedolan.github.io/jq/) installed and available on your $PATH to use this.

Code: [Select]
# Set this to $true if you want the script to print successfully-located
# files in green. Useful to check that the script is working properly,
# but will make it harder to figure out which files are broken.
$showLocatedFiles = $false

# Find all !.tags files in the folder hierarchy starting in the current directory.
ls -rec "!.tags" | % {
  # Save a reference to the parent directory of each !.tags file.
  $parent = $_.Directory
  # Extract the relative filenames of each source file.
  gc -literal $_ | jq -r '.[] | .\"@\"' | `
  # Turn these into full paths, and drop the | suffix for *.cue files.
  % {"$parent\$(($_ -split "\|")[0])"}} | `
  % {
    if (test-path -LiteralPath $_) {if ($showLocatedFiles) {write-host -ForegroundColor Green $_}}
    else {write-host -ForegroundColor Red $_}
}

Running this script revealed a few issues with the !.tags files generated by foo_tags, when accessing UTF-8 filenames over SMB (non-ASCII characters became ? in the !.tags file, which therefore contains orphaned entries). I'm going to try to stick to ASCII filenames from now on, unless I'm just using foo_tags incorrectly.

I also found that running foo_tags over a directory that contained both .flac and .cue files would produce duplicates, and that if there were any subdirectories containing no audio files at all (eg. cover art only), foo_tags would still generate a useless !.tags file which cluttered up my foobar2000 library. I've resolved these problems using the m-tags-edit-remove-non-flac.ps1 (https://gist.github.com/splintax/26576c3dae81c4fe65dfce742e9e0c9a) and m-tags-remove-where-no-flac.ps1 (https://gist.github.com/splintax/1692334d007bfec39994621b71973f46) scripts, respectively.
Title: Re: m-TAGS component (foo_tags)
Post by: sjy on 2018-12-11 03:10:19
Is foo_tags the only software that supports m-TAGS? (Also, can we just call them mtags?)

I'm happy with foobar2000 as my main player and tag editor, mtags as the metadata storage format, and using my own scripts to generate lossy files with embedded metadata based on the mtags for mobile devices. But some of these scripts are becoming quite complex, and I am wondering if I am reinventing the wheel.

I've added my mtags library to a git repository and I can see that some other (https://github.com/nmlgc/m-TAGS) people (https://github.com/thesebas/spotimtags) have put theirs on GitHub, which is neat. I've also seen this mtags sync script (https://github.com/vensko/mtags-sync) and somebody has requested (https://github.com/DeaDBeeF-Player/deadbeef/issues/1999) that mtags support be implemented in DeaDBeeF. But that seems to be about it.

Some of the problems that mtags can solve can also be solved by using beets (https://github.com/beetbox/beets) in read-only mode, where tag metadata is stored in beets' database. I am thinking about trying to add mtags support to beets, because it would be nice to be able to use beets' querying and auto-tagging features. But mtags' killer feature for me is its integration with foobar2000 – I'd have to come up with another way to get my metadata to appear in foobar2000 if I migrated to beets.

Alternatively, maybe I should look at developing an alternative to foo_tags that integrates with beets. I don't think the source to foo_tags is available and it would be a shame if Luigi stopped distributing it in the future. An alternative free software implementation might be good to have as a backup plan.
Title: Re: m-TAGS component (foo_tags)
Post by: wcs13 on 2018-12-11 15:08:22
@sjy , have you seen the PM that I sent you a couple weeks ago ? Thanks.
Title: Re: m-TAGS component (foo_tags)
Post by: ApacheReal on 2019-03-06 10:32:37
Thanks to this plugin I finally could create a separate list for each radio.

As from video: https://www.youtube.com/watch?v=SwBhRqEeA6A

I have only one problem with the VHS Panel Biography, Albums, Similar and title artist info.

If I throw in an empty playlist an m3u, m3u8 etc... And I go in the panel Biography I have in real time also the cover of the artist that at that time the radio is airing.

With m-tags, unfortunately I can't get the same result.

Can you do something?
Title: Re: m-TAGS component (foo_tags)
Post by: anamorphic on 2019-03-08 00:09:40
And I go in the panel Biography I have in real time also the cover of the artist that at that time the radio is airing. With m-tags, unfortunately I can't get the same result.
This works fine for me with m-TAGs tagged internet radio and the Biography 1.0.1 (https://hydrogenaud.io/index.php/topic,112913.50.html#msg967659) by WilB (for Spider Monkey Panel) - when there are dynamic title/artist updates, it shows biography and artist pictures. (Not album covers, but nor do I know a station that streams album titles).

So I think the problem is not m-TAGs. Make sure you have not tagged title/artist fields, otherwise they cannot be dynamic. ;)

Cheers
Title: Re: m-TAGS component (foo_tags)
Post by: ApacheReal on 2019-03-09 15:43:05
And I go in the panel Biography I have in real time also the cover of the artist that at that time the radio is airing. With m-tags, unfortunately I can't get the same result.
This works fine for me with m-TAGs tagged internet radio and the Biography 1.0.1 (https://hydrogenaud.io/index.php/topic,112913.50.html#msg967659) by WilB (for Spider Monkey Panel) - when there are dynamic title/artist updates, it shows biography and artist pictures. (Not album covers, but nor do I know a station that streams album titles).

So I think the problem is not m-TAGs. Make sure you have not tagged title/artist fields, otherwise they cannot be dynamic. ;)

Cheers

I managed to get a certain result, pairing the plugin m-tags + the plugin External tags and then doing wrap mode as from video:

https://youtu.be/nH43sB4Dpcw

But so I have a variety of radios and no longer divided individually as in the video:
https://www.youtube.com/watch?v=SwBhRqEeA6A

I haven't been able to find a single solution yet.
Title: Re: m-TAGS component (foo_tags)
Post by: Stem75 on 2019-05-06 18:07:53
I use this component for backup purposes only between two disks.
But i thing there is a problem when m-tags files already exists in folders because it seams that it can't overwrite ( although i have check it to do so ) the old files with the updated tags.
So i have to delete the old files and create new every time i want to make a backup.
Also when i have lyrics in a tag m-tags only writes a dot (.) . Is this normal.
Anyway thanks for this great plugin and i hope in future development.
Title: Re: m-TAGS component (foo_tags)
Post by: Stem75 on 2019-05-06 23:36:55
I want to use this component for backup purposes only between two disks.
But i thing there is a problem when m-tags files already exists in folders because it seams that it can't overwrite ( although i have check it to do so ) the old files with the updated tags.
So i have to delete the old files and create new every time i want to make a backup.
Also when i have lyrics in a tag m-tags only writes a dot (.) . Is this normal.
Anyway thanks for this great plugin and i hope in future development.
sorry i made a mistake in the first line
Title: Re: m-TAGS component (foo_tags)
Post by: Bqasqqr2123 on 2019-06-27 11:52:45
I had no issues with m-tags this far though today I noticed it was somewhat broken. While it still displays tracks perfectly fine it only shows about a third of all indexed files when I have the filter on artists rather than year, album title or genre. Is there any way to resolve this issue without having to re-add every single !.tags file?

Artist: https://i.imgur.com/6FBMkvT.png
Album title: https://i.imgur.com/G8peV0Q.png
Year: https://i.imgur.com/YCs77pt.png
Title: Re: m-TAGS component (foo_tags)
Post by: Bqasqqr2123 on 2019-06-27 13:28:45
I had no issues with m-tags this far though today I noticed it was somewhat broken. While it still displays tracks perfectly fine it only shows about a third of all indexed files when I have the filter on artists rather than year, album title or genre. Is there any way to resolve this issue without having to re-add every single !.tags file?

Artist: https://i.imgur.com/6FBMkvT.png
Album title: https://i.imgur.com/G8peV0Q.png
Year: https://i.imgur.com/YCs77pt.png
Never mind. Just had to remove the Artist tab and add it and it was back to normal.
Title: Re: m-TAGS component (foo_tags)
Post by: Plain Old Me on 2019-11-20 11:20:08
Thanks @luigimercurio, m-TAGS seems to be exactly what I needed to make compilations with individual tagging and cover without the burden of having duplicate files.

But how do I export these virtual albums?

File Operations > Copy to... only copies the !.tags and !.tags.front.bin files. So I use Convert to create the new files with applied tagging. Apart from the occasional "Could not attach image/File in use" bug this works as expected and seems a good choice in case of FLAC to FLAC or FLAC to lossy. But I want to avoid transcoding from lossy origin files, so how would I do that?
Title: Re: m-TAGS component (foo_tags)
Post by: Mrakobes on 2020-11-04 20:41:56
How can I set up saving music files in a folder without using file Explorer? It's terribly inconvenient to scroll through all the subfolders until you get to the right one
Title: Re: m-TAGS component (foo_tags)
Post by: Mrakobes on 2020-11-05 06:27:10
More questions how to create a file not unix and Windows?How do I create my own tag? How do I add it to filters so that the database is indexed by m-tags?
Title: Re: m-TAGS component (foo_tags)
Post by: rykiff on 2020-11-16 04:14:24
I love this plugin, but I have found a bug related to how album art is displayed: In a generated m-tags file, the 'Properties > Artwork' panel will show attached album artwork for every song except the first song. As soon as I go to play the first song, the album art seemingly disappears. I have confirmed this behavior by adding a blank tag to the beginning of a .tags file, and the same behavior occurs. What is even even more bizarre is if I create a duplicate tag entry with the same '@' reference as the first song in the .tag file, it also fails to display the album art when played. I have illustrated a few examples below:

In this example, both 02.mp3 and 03.mp3 display the album art while playing, but 01.mp3 fails to display it.

Code: [Select]
[
   {
      "@" : "01.mp3",
   },
   {
      "@" : "02.mp3",
   },
   {
      "@" : "03.mp3",
   },
]

In this example, only 02.mp3 would display the album art.

Code: [Select]
[
   {
      "@" : "01.mp3",
   },
   {
      "@" : "02.mp3",
   },
   {
      "@" : "01.mp3",
   },
]

So far, the below example is the only solution I can find -- adding a blank tag to the beginning of the file. This allows all 3 songs to display properly.

Code: [Select]
[
   {
   },
   {
      "@" : "01.mp3",
   },
   {
      "@" : "02.mp3",
   },
   {
      "@" : "03.mp3",
   },
]

I'm unsure if this is a quirk of a newer version of foobar, but trying the same setup on a fresh copy of foobar2000 yields the same result. Has anyone else observed this behavior, and is there some way to change it?
Title: Re: m-TAGS component (foo_tags)
Post by: wcs13 on 2020-11-27 23:15:54
I'm using this great component for several things. One of them involves a folder with many media files in it. So I end up with a single !.tags file containing all relevant information. So far so good.

My question is: how do I doo when I want to add media files to that same folder? I wish there was a way to add these new media files to the already existing !.tags file, without having to delete it and rescan everything all over again. Any suggestions ?
Title: Re: m-TAGS component (foo_tags)
Post by: rykiff on 2020-12-05 19:59:43
I figured out the solution to my issue. This seems to be a bug in m-tags itself, as it will not query the album art for any file ending in a known file extension if it is the first track in the .tags file, or in a .tags files that contains only one track. My fix was to change the referenced file extension to the URL encoding reference format (e.g. test.mp3 becomes test.%6D%70%33). This has fixed album art appearing for all of my radio stream URLs that ended in a file format, mostly .ogg, .aac, and .mp3.

For anyone else lurking who has encountered this issue, I have pasted the URL encoded extensions below:

.aac = %61%61%63
.ogg = %6F%67%67
.mp3 = %6D%70%33
Title: Re: m-TAGS component (foo_tags)
Post by: wcs13 on 2020-12-05 20:03:24
Good to know! As for my issue, @luigimercurio hasn't been active since 2018 :( Has anybody taken over on this project, or can somebody do it ?...

I'm using this great component for several things. One of them involves a folder with many media files in it. So I end up with a single !.tags file containing all relevant information. So far so good.

My question is: how do I do when I want to add media files to that same folder? I wish there was a way to add these new media files to the already existing !.tags file, without having to delete it and rescan everything all over again. Any suggestions ?
Title: Re: m-TAGS component (foo_tags)
Post by: Fabcore on 2021-05-22 20:59:16
Hi, can i suggest to update the component to use the option that foobar 2000 has that is the preserve file atributes?
thanks.
Title: Re: m-TAGS component (foo_tags)
Post by: s3n0 on 2022-03-29 18:06:53
Hi.

Please help :).

I installed this plugin on my Foobar2K but I don't know how to use it.

I want to use the plugin to search for the currently playing song on the online radio, because by default foobar2k does not work correctly, when requesting the variables %title% and %artist%, in the case of the "Run Service" function.

Variables from Foobar2K return to the "Run Service" function, unfortunately only the name of the online radio. Not the title + artist of a song just played from online radio.

That's why I wanted to use the m-TAGS plugin.

Code (service to search the song title in a web-browser, on YouTube):
Code: [Select]
https://www.youtube.com/results?search_query=$replace(%artist%+-+%title%,' ','+','&','%26','$','%24','@','%40','#','%23')

Screenshots:
(https://i.ibb.co/NpmdB6q/m-TAGS-img01.png) (https://ibb.co/0ZFRbjL)
(https://i.ibb.co/0ZqKRGd/m-TAGS-img02.png) (https://ibb.co/d6Btw5z)

THANKS !
Title: Re: m-TAGS component (foo_tags)
Post by: marc2k3 on 2022-03-29 18:14:25
https://hydrogenaud.io/index.php?topic=117737.0
Title: Re: m-TAGS component (foo_tags)
Post by: s3n0 on 2022-03-29 18:32:07
https://hydrogenaud.io/index.php?topic=117737.0

I installed the foo_dyndec plugin.

Then just changed the ...
%artist%+%title%
... to :
%dartist%+%dtitle%
(with a D-ynamic prefix character).

And it works now 👍.

ONE BIG THANKS TO YOU ❗️
Title: Re: m-TAGS component (foo_tags)
Post by: George Smith on 2023-06-01 22:07:51
Hey!
Any possible chance to upgrade m-tags plug-in for foobar x64?
Title: Re: m-TAGS component (foo_tags)
Post by: sveakul on 2023-06-01 22:55:44
https://hydrogenaud.io/index.php?topic=117737.0

I installed the foo_dyndec plugin.
And it works now 👍.
@s3n0:  it is no longer necessary to use foo_dyndec or the "d" prefix on search tags to search dynamic radio stream metadata if you are using the latest foo_run plugin version (0.4.5) for the search.  Florian updated foo_run in September of last year to make dynamic searches possible as-is, in both 64-bit and 32-bit versions.

Go ahead and remove foo_dyndec, update foo_run, then just delete the leading "d" in all your search terms and you'll get results from streams just fine!
Title: Re: m-TAGS component (foo_tags)
Post by: cwb on 2023-10-05 22:50:45
Is there a way to set up an individual autoplaylist so that it only monitors for m-TAGS (!.tags) files that are in a folder?

I am looking to use m-TAGS on a folder that will peroiodically have audio files added to it, and when those files are added I will be creating m-TAGS files for them.

So it would be nice if the playlist for those m-TAGS files reflected the newly added files automatically.

In my set up the options for creating autoplaylist are through fb2k's Album List and etip's Playlist Organizer.


Or is adding the m-TAGS files manually to a playlist the way to do it?

Perhaps I am overlooking something that is obvious.
Title: Re: m-TAGS component (foo_tags)
Post by: cwb on 2023-10-06 01:27:59
I figured it out. With m-TAGS I needed to create the tags in a separate folder, and then configure the foobar2000 Library to monitor that folder.

And in the Album List export those folder(s} having the m-TAGS files in them to an autoplaylist.

Sorry for the false alarm!

On edit:

Still, it would be nice to have the m-TAGS files in the same folder as the audio files and be able to create an autoplaylist from just the m-TAGS files.