Post by hh on Feb 4, 2022 3:21:49 GMT -5
As long as this problem persists, I can't sync the files, that I sync from my PC to my phone, back to my PC. It would destroy tag integrity among files and remove information. Unfortunately, the problems also exist when just rating a file; so, I can't currently write ratings with GMMP.
I know of your Trello issue about total-discs support. But the problem actually lies deeper. GMMP shouldn't assume data formats when displaying tag fields in the tag editor or when writing them back to the file. (To what degree is Taglib to blame?)
My Previous Examination of the Problem
Foobar2000 has the field "Total Tracks" (complementing "Track Number"). It writes this into the "TRCK" ID3v2 frame as well in the format "1/9". GMMP just removes the total-tracks information when tagging. This even happens when just rating a file.
Nothing should ever be silently removed, even if it's not supported. Is this regard, I'm glad GMMP keeps the free-form "TXXX" ID3v2 frames unknown to it. But it should generally never coerce tag data into fixed formats when it comes to anything other than providing %expansion_variables%. In the tag editor, just display what's in the tag field, even if it's in an unexpected format. When writing, always write back what was in the file before, if not explicitly changed by the user (based on the exact original data), and not a falsified version of it.
For purposes like item order, GMMP can still interpret (probably via %expansion_variables%). But never let those interpreted values find their way back into the file!
GMMP also adds a number of contentless ID3v2 frames. This just seems unnecessary; but it has some implications on other software: MediaMonkey for Windows unnecessarily shows "LYRICS" with an empty value in its property dialog. Unnecessary ID3v2 frames, as written by GMMP, taken from hex editor:
For MP4 tags (like in .m4a files), GMMP in my test unnecessarily added the following empty fields: "©lyr", "©wrt", "soaa", "soal", "soar", "soco". For "trkn" (track number), it changes Foobar2000's
...to GMMP's
...(missing the total-tracks value 5). Disc number and total discs will have the same problem. GMMP also adds a second "free" atom chunk that's meant for padding; the Foobar2000-written file already contained one with 0x00 bytes; GMMP adds another smaller one in front of the previous with 0x01 bytes; would seem smarter and with less possible implications for other software or even itself to reuse/rewrite the existing padding chunk.
I know of your Trello issue about total-discs support. But the problem actually lies deeper. GMMP shouldn't assume data formats when displaying tag fields in the tag editor or when writing them back to the file. (To what degree is Taglib to blame?)
My Previous Examination of the Problem
Foobar2000 has the field "Total Tracks" (complementing "Track Number"). It writes this into the "TRCK" ID3v2 frame as well in the format "1/9". GMMP just removes the total-tracks information when tagging. This even happens when just rating a file.
Nothing should ever be silently removed, even if it's not supported. Is this regard, I'm glad GMMP keeps the free-form "TXXX" ID3v2 frames unknown to it. But it should generally never coerce tag data into fixed formats when it comes to anything other than providing %expansion_variables%. In the tag editor, just display what's in the tag field, even if it's in an unexpected format. When writing, always write back what was in the file before, if not explicitly changed by the user (based on the exact original data), and not a falsified version of it.
For purposes like item order, GMMP can still interpret (probably via %expansion_variables%). But never let those interpreted values find their way back into the file!
Sometimes, people write special text in fields, like letters in the date/year field (e.g., "März '98" [= March 1998]), and that shouldn't disappear, just because I rated a track with GMMP!
GMMP also adds a number of contentless ID3v2 frames. This just seems unnecessary; but it has some implications on other software: MediaMonkey for Windows unnecessarily shows "LYRICS" with an empty value in its property dialog. Unnecessary ID3v2 frames, as written by GMMP, taken from hex editor:
TCOM.......TXXX.......LYRICS.TSOP.......TSO2.......TSOA.......TSOP.......
For MP4 tags (like in .m4a files), GMMP in my test unnecessarily added the following empty fields: "©lyr", "©wrt", "soaa", "soal", "soar", "soco". For "trkn" (track number), it changes Foobar2000's
00 00 00 20 t r k n 00 00 00 18 d a t a 00 00 00 00 00 00 00 00 00 00 00 01 00 05 00 00
...to GMMP's
00 00 00 20 t r k n 00 00 00 18 d a t a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00
...(missing the total-tracks value 5). Disc number and total discs will have the same problem. GMMP also adds a second "free" atom chunk that's meant for padding; the Foobar2000-written file already contained one with 0x00 bytes; GMMP adds another smaller one in front of the previous with 0x01 bytes; would seem smarter and with less possible implications for other software or even itself to reuse/rewrite the existing padding chunk.