I loaded my music library and defined a column for %_id3v2_unknown_frames% and indeed there were some indicated. I had a look in the extended view and was satisfied with what I saw - all tagfields I wanted were there.
So I decided to get rid of these "unknown frames" and tried this with Copy/Delete/Paste. The defined column and also a filter showed that these frames were gone.
I have a lot of symlinks to albums for special purposes.
When I loaded the files indirect over these symlinks the %_id3v2_unknown_frames% - column showed unknown frames again and there were shown more than with direct loading.
The folders of the originals are defined for the mp3tag-library, the folders of the symlinks are not.
I repeated the procedure several times and each time there were shown "unknown frames". Sometimes after loading there were not shown any but clicking on some files the column-view changed for these files and displayed "1" for %_id3v2_unknown_frames% again.
At the moment all "unknown frames" seem to be gone but I am in doubt if they won't come up again.
Is it at all possible to get rid of these "unknown frames" with Copy/Delete/Paste?
Are these problems possibly related to the library?
I assume - and this is really just a guess - this are the frames which exists in your files, but are not (yet) supported by Mp3tag. I think PRIV frames are a typical example. But there are lot more frames according to the ID3 standard.
I can't answer your other questions, maybe @Florian?
No, because at the moment it is not reproducable any more.
I described already what I did.
Loading all my files in MP3Tag
Defining a column for %_id3v2_unknown_frames%
Applying a filter %_id3v2_unknown_frames% PRESENT
There were shown let's say about 100 files with "unknown frames%
Treat those files with "Copy/Delete/Paste%. The column and the filter show no files with unknown frames anymore.
Loading my symlinks which are linked to only a part of my files.
Let's say about 200 files show "unknown frames".
Treat those files with "Copy/Delete/Paste.
No files are displayed with "unknown frames".
Load all original files again. The filter shows no "unknown frames" first, but after clicking on some files "unknown frames" are displayed.
Treat those files with "Copy/Delete/Paste".
Load the symlinks again. Let's say about 30 files are shown there with "unknown frames".
Treat those files with "Copy/Delete/Paste% again.
Load all files again. Let's say about 10 files are displayed with "unknown frames".
Treat those files with "Copy/Delete/Paste%.
Since then all "unknown frames" seam to be gone.
This sounds a little bit confused but my actions were not determined to examine the problem at first.
I thought that maybe the fact that the original folders are defined in the library and the folders with the symlinks, that point only to a part of the originals are not could be the reason for this. But why should the loaded symlinks at first show more related files than the original files?
After loading all my files again and applying the filter %_id3v2_unknown_frames% PRESENT no files with "unknown frames" are shown.
I worked on some of the files and suddenly the column with %_id3v2_unknown_frames% switched to "1" while marking the file. Applying the filter again showed only these files I marked before.
I tested the new variable on a couple of podcasts and the library function - and found nothing suspicious.
Which means: I loaded a lot of files initially,
applied the filter with
and got 7 out of 19844 which was about right as I just recently had my files cleaned from WMP/Priv-Gain tags, so these were the new ones that had not been cleaned yet.
I selected them,
cut the tag
pasted the tag
and the newly applied filter lead to an empty file list, as expected.
I've also tried various combinations to reproduce this (with Library, without, preserving timestamps, ...). I've not tried the symlinks, though. If it's related to that, I'd need steps for creating an environment where the issue can be reproduced.
Another option would be that you have an external program that touches the tag of those files. This can be a plugin that adds synchronized lyrics or something similar.
Same here. But after deactivating the filter and clicking on some of the files they show as positve %_id3v2_unknown_frames% again. I not quite sure anymore that this are the same files which I treated with C&P. This would mean, that the filter or the column don't show all files with "unknown frames" and show the rest later. But I think that at least some of the previous treated files show again.
I have to examine this tommorow al little bit more systematic.
I think I finally have an explanation: since you have the Library enabled, all of the data that is shown is from the Library — I assume that you haven't forced a re-read on those files via, e.g., Ctrl+T.
So none of the files currently contains this newly added field and as soon as you click on one of the files, the Library is updated with the latest information from the file which now also includes %_id3v2_unknown_frames%.
I think we had similar situations before, but I haven't found the relevant topic.
I think you are right.
This also would explain why the symlink-folders showed much more files with "unknown frames" than the orginal folders. The symlink-folders are not in the library and when loaded they show the actual content.
I will delete my library and let Mp3Tag reread the files. More results tomorrow.
I thought it over and before I clear my files further of "Unknown frames" I would like to have a look into them. At the moment I can only think of the SYLT-frame I would be interested in. If some of my files (which I don't think) contain this frame, I would like to have a look in it and maybe keep it.
Is it right, that the variable %_id3v2_unknown_frames% also shows the existence of the SYLT-frame?
Is there a gui-software with which it is easy to generally show these "Unknown frames and with which someone can filter for the SYLT-frame?
Unfortunately, I don't know such a GUI software. But you can try exiftool
Extract it and rename the default exiftool(-k).exe to exiftool.exe
First you have to search for such a SYLT frame: exiftool -a -G1 songname.mp3
This show ALL tags inside your file.
If you find the tag which you are looking for, for example "Lyrics" (I don't know how exactly it is named, maybe SYLT, maybe SynLyrics), you can only show the content of this specific tag: exiftool -Lyrics songname.mp3
You can also use a wildcard to search for it in all your mp3: exiftool -Lyrics *.mp3
I already have used Exiftool in the past for special purposes, remembered the cryptic syntax and therefore asked for a gui-tool. There is a exiftool-gui-version but this is not so flexible and restricted in it's abilities. My problem is the same as with regular expressions: I have to look for a solution only from time to time and after some months I have forgotten most of the syntax.
But after looking at Florian's suggestion "kid3" for about half an hour I was even more confused and decided to "relearn" Exiftool again.
The SYLT-frame is named "SynchronizedLyricsText" in Exiftool.
Is used the syntax: exiftool -a -SynchronizedLyricsText -r -ext mp3 d:\mp3s\ > d:\mp3s\syltpresent.txt
With this command line all SYLT-content gets written to the defined text-file. The option "-r" stands for "read the folder and the subfolders recurvively". There are certainly ways to improve that with an if-construction to treat only files that have the SYLT-content, but this one was sufficient for my one-time-use.
Why did the confusion arise?
In order to make that clear, I have to go back a little further
After installing version 3.17b, which supports the new %_id3v2_unknown_frames% variable, I loaded my entire MP3 library to make some changes to the files. The Mp3Tag Library option is defined for the loaded folders.
After that I edited a few hundred files and later I decided to try the new variable and defined a column as written and also applied the filter. I was shown a few hundred files with frames that Mp3Tag doesn't support. I treated these files with copy/delete/paste and the display in the defined column disappeared. I thought that I had treated saccessfully all files with "unknown frames".
Next, I decided to load a subset of the entire database via symlink folders linked to folders in the full inventory.
No library support is defined in the Mp3Tag options for these symlink folders. I was then perplexed that all of a sudden a large number of files with unknown frames were displayed to me, although I thought I had eliminated all these tags.
The background is now clear:
When loading the entire inventory, the tags were read from the library that did not yet contain the contents of the new variable. Since I then edited a few hundred files, the library was updated for them and the frame %_id3v2_unknown_frames% was written.
So when I applied the filter, I got to see the affected subset of the entries updated in the library.
Later loading of the symlink folders without activated library support read the data directly from the files and thus displayed the contents of the variables correctly.
The lessons of this confusion:
After introducing a new frame in Mp3Tag, you should update the MP3Tag library at the latest when you intend to use this frame. Alternatively, this can be done by marking the files and then CTRL-t, deleting the existing library file or probably using the MP3Tag option "Cleanup Library".
My suggestion to avoid this trap:
Reference to the required library update in the release notes if a new frame is introduced with the release.
-m (-ignoreMinorErrors) Ignore minor errors and warnings
-p FMTFILE (-printFormat) Print output in specified format
-> lowercase p
-r[.] (-recurse) Recursively process subdirectories
-if[NUM] EXPR Conditionally process files
-ext[+] EXT (-extension) Process files with specified extension
would outpout only the filenames including your tag SynchronizedLyricsText found recursively in files with the extension mp3 and redirect it (and create) the textfile syltpresent.txt
If you want both - the filename and the content of your tag - then add it this way to your ouptut string: exiftool -m -SynchronizedLyricsText -p "$filename with the found content: $SynchronizedLyricsText" d:\mp3s\ -r -if "$SynchronizedLyricsText" -ext mp3 > d:\mp3s\syltpresent.txt