If the tag panel configuration could change automatically based on the data or file type present.
EX 1:
When I tag a FLAC or OPUS file Show me the "Lyrics" field
When I tag an MP3 or M4A file show me the "unsyncedlyrics" field
EX 2:
I Have several fields that I only use when tagging a compilation album, If those fields would remain hidden until I Set the Field value of "ReleaseType" to "Compilation", that would save me the time of manually switching the tag panel configuration.
I have a workaround for these scenarios but I did think that could be a creature comfort feature.
I currently either place lyrics in a holding field & then based on the extension I have an action group that copies those lyrics to the proper destination. Or option 2 is to only have the unsyncedlyrics showing & then an action group to copy whatever is in unsyncedlyrics to lyrics.
AFAIK you could set a mapping so that FLAC files use LYRICS as field but MP3tag always displays it as UNSYNCEDLYRICS.
Please note that e.g. the lyrics plugin in Foobar uses the field LYRICS to store synchronized lyrics.
What would happen to the MP3 files though. Those lyrics need to be in unsyncedlyrics to display properly, no? Even though the mapping displays as UNSYNCEDLYRICS It's metadata reading is in fact LYRICS.
This has honestly been my biggest gripe as I currently have both of the lyric fields present in the tag pannel. Which makes it a rather long scroll to the bottom. The only files that really bug me are m4a though. If you save data to the LYRICS field they jump down to UNSYNCEDLYRICS & if there was already data in UNSYNCEDLYRICS it creates a second field "\by adding data like this to the field"
I'd love to eradicate m4a from my library to avoid this but id have to convert those files & take whataver quality loss comes of it
Ahh, I've misunderstood the term "mapping" as simply creating a new field in the tag panel.
THANK YOU, this is exactly what I wanted but did not know existed
Ok, so after some testing I've more fully understood the mappings & the behavior of my files.
I took your advice & added a user defined mapping so that VorbisComment tags would read data in UNSYNCEDLYRICS as LYRICS. (I think i did that right)
Across MP3, M4A, OPUS, FLAC & WAV I can place lyrics in the UNSYNCEDLYRICS field with no issues. For lyrics to appear in my music player FLAC & OPUS files must have lyrics in the LYRICS field.
With the issue solved I changed my tag panel to only display the UNSYNCEDLYRICS field but when I saved anything to that field on FLAC files the data would jump to LYRICS which was at the time hidden from view.
I was hopping that the tag mapping would be: Data in Field X is meant to be interpreted as Field Y but instead what happens is mp3tag goes, Data in Field X should be in Field Y so I will move it to where it belongs.
This works but my goal was to have one visible field that would show me the lyrics embedded to whatever file I was currently viewing. Or at the very least I wanted my m4a files not to exhibit this very behavior.
It is at if internally M4A (MP4) has a mapping which is causing the jumping of data from LYRICS to UNSYNCEDLYRICS the same way my FLAC files now automatically "move" data from UNSYNCEDLYRICS to LYRICS.
Is that something I can change?
I also tested a mapping to have MP4 read UNCYNCEDLYRICS as LYRICS:
This successfully forces the jumping of data in the opposite direction as I suspected. So data can be saved to the LYRICS field of M4A files but for whatever reason mp3tag natively doesn't like that I want to do that and will stop me at all costs.
Not sure if this is an internal mp3tag quirk or a quirk of the MP4 container itself.
Also wanted to note that the only user defined mappings I have currently are all VorbisComment related (thinking back these must be here by default as I had no idea how any of this worked prior to today)
My question now though Is why do M4A files or (MP4) files not allow me to save information to the LYRICS field even though I have no custom mapping setup.
when I tag m4a files it is as if there is a mapping setup like this:
TAG: MP4
Source: LYRICS
Target: UNSYNCEDLYRICS
That's not really an issue though is it? The LYRICS or synced lyrics field is not the field responsible for displaying lyrics for M4A files. I'm aware of that. I just want to know why it's stopping me from putting info there. If i create a custom mapping I can manually force data to sit in LYRICS on an M4A file so it's possible.
With my current setup I put lyrics into either field & mp3tag copies the contents from LYRICS to UNSYNCEDLYRICS or Vice versa IF the other lyric field is empty.
I never had to guess weather my lyrics will appear in the player as i'm always covered
Some of my files are embedded with synced & non synced lyrics (in their respective fields) this is for archival purposes. In rare cases the synced lyrics are incorrect or poorly timmed so I just revert back to good ole text. The plain text lyrics also have more details regarding who is speaking / singing, Verse number(s), chorus, refrain etc
Every other file type I deal with lets me put data in both lyric fields even though only one of those fields will actually display in the music player.
That is a misconception, IMHO.
There is only 1 field in MP3tag and usually atoms, chunks, fields with the same function are displayed in a common field variable in MP3tag.
You see the different incarnation of the standard names in the documentation
which tells you that (e.g.) the contents of that what you see in ARTIST in MP3tag is written to TPE1 in ID3V2.x tags, @art in MP4 files, Matroska gets T=30 ARTIST, ASF/Windows Media Author
and RIFF INFO IART.
Any problems only arise if there is a tag standard that either has no defnite tokens or uses one that used for different purposes for other standards. DATE would be such a case which exists in ID3V2.x but is used sometimes for FLAC files and the VorbisComments to show the YEAR - which also the valid ID3 field TYER.
So, mapping LYRICS and UNSYNCEDLYRICS for VorbisComments only tells MP3tag to use the name LYRICS in flac files when writing the contents of UNSYNCEDLYRICS to the files and when reading LYRICS in a flac file to put that data into the internal field UNSYNCEDLYRICS. Nothing is copied. There will not be 2 fields for the song text.
This is a test file so you'll have to excuse the mess of it all. But with the metadata as is this FLAC file in my music player will not show me the lyrics even though they are present in the file. The two fields shown are titled exactly how they are viewed / listed internally by mp3tag.
I could add a mapping so that FLAC files interpret UNSYNCEDLYRICS as LYRICS, but what that would do is automatically move any data I put into that bottom box up to the top box (Had that field not been present in the panel the data would seemingly disappear from view when I save the tags)
That is not what I want.
So when I say copy I mean that the contents of the bottom box are placed also into the top box so that both those fields are carbon copies. The only way I can get FLAC & OPUS files to display lyrics is by using the field LYRICS which to me is a different field completely, at least that's the only way I could wrap my head around it.
My issue with the M4A files is that I can't put anything in that top box, it gets shifted down to the bottom box automatically, which is odd to me considering I can do so with
FLAC,WAV,MP3, & OPUS files with no issues.
Image 2 Is an example of a FLAC file with both fields utilized & only the LYRICS field is present in the media player. The inverse of this works as well for MP3 files, that is; placing synced lyrics in the UNSYNCEDLYRICS field for MP3 files allows for playback of tracks with synced lyrics which is awesome.
I just want to be able to do this same wild wacky nonesense with M4A files and I Can't because the LYRICS field is untouchable for MP4 by default. I can either force info to "LYRICS" or do nothing & it gets forced to UNSYNCEDLYRICS but I CANNOT save info in both fields, it's all I want...it's what I dream of.
But this is a player problem, isn't it?
You would have to find out which fields are supported by the player.
The file that shows something in the player apparently has both fields: LYRICS and UNSYNCEDLYRICS. But this also means that you have not yet saved the tag data again.
As otherwise you would get - according to the mapping - 2 fields of the same type for the lyrics, both of which will be shown in MP3tag as UNSYNCEDLYRICS.
So if you have in fact 2 types of lyrics fields (which is valid) one for the sychronized lyrics and one for those that aren't, then you are faced in MP3tag with UNSYNCEDLYRICS which finds its corresponding token/atom/chunk in some standards and LYRICS which is always a user-defined field.
Could you get the flac part right and running and then we turn to the mp4 part?
You would have to copy the data manually with an action. The function for mapping does not copy data.
Actions to copy data to fields but leave the existing data would be:
Format value for UNSYNCEDLYRICS
Format string: $if2(%UNSYNCEDLYRICS%,%lyrics%)
Format value for LYRICS:
Format string: $if2(%lyrics%,%UNSYNCEDLYRICS%)
As far as the FLAC files go I'm ok with how they function & tag in mp3tag. They are predictable, allow me to have the two sets of lyrics & appear in the player I'm currently using unfortunately i'm not able to find alot of the technical info about the music player application. I sort of just test things out & see what works then I go from there.
(Oto music player on android | The reddit is not super informative, the only info available is on the Google play store page, developer does not respond to emails)
I believe you helped me create an action a while back to copy data to a field without overwriting the field (Many thanks for that). Saving the tags again on the files has thus far not created two fields for UNSYNCEDLYRICS in my extended tags but here is a short clip of the behavior of m4a files vs mp3 & flac files
I am not quite sure what you mean. I think there is no difference whether you fill a self-defined Field LYRICS in Mp3tag with an action or whether you fill this field in the extended extended tag-view or define a field in the tag-panel.
The special feature in Mp3Tag for the self-defined field LYRICS is that it is not created as such in Mp4 files. Instead, a multivalue field @lyr is created, if there is already content in @lyr. So Mp3Tag intercepts the input for that specific field and redirects it. As far as I know, this does not happen with other self-defined tag fields for MP4 files.
Without any mapping all fields stay as they are.
Standard fields stay standard fields,
user-defined fields stay user-defined fields.
The mechanism in MP3tag goes as following as far as I understood it:
MP3tag reads the tag data and as soon as a known standard token is found, then the data for that standard field is saved
If there is no standard field in one set of files but it is one in another set of files, e.g. DESCRIPTION which exists for MP4 files as desc but not in other files, then for the other files a user-defined field with the name DESCRIPTION is created.
As soon as the tags have been read, they only exist in MP3tag's internal representation. Nowhere is saved what the original field was called.
When the tag is written back to the file, then MP3tag takes the correct token and format that is suitable for a particular target file and tag.
This means: if you map a user-defined field (here: lyrics) to a field name for which MP3tag also knows a corresponding standard name then you will see only the standard name in the file.
But this is not a problem of user-mapping. Mp3Tag has obviously an internal mapping for LYRICS and UNSYNCEDLYRICS - and LYRICS is not an official tagfield in Mp3Tag. For both tagfield-names the @lyr-field in mp4-files is created - without any user-mapping. Nothing gets overwritten - instead a multi-value field is created.
If you i.e. would create a user-defined field MYLYRICS, it would be written to MYLYRICS in the mp4-file.
Do you now mean additional user mapping so that you can create LYRICS in Mp3Tag and write LYRICS in MP4s?
Source: LYRICS
TARGET: LYRICS
That does not work.
In principle, I think the current solution makes a lot of sense - it at least catches some user misbehavior. And if you really want to have 2 different lyric fields, you have to give the 2nd one next to UNSYNCEDLYRICS a different user-defined name (in the case of user mista_j, e.g. SYN_LYRICS).
So the consensus is: (if I have understood correctly)
Due to an internal mapping for MP4 files specifically the creation / use of a user defined field named exactly "LYRICS" is not currently feasible for MP4 files, but If I really want two lyric fields I can define a new field with any name that is not "LYRICS" & achieve my desired outcome.
Q1) Are there any other known file / container types that also have internal mappings like MP4?
Q2) is there a reason why MP4 has this internal mapping? Can't she be like everyone else?
(Everyone being; the files I've worked with thus far)
FLAC, MP3, OPUS, WAV Do not exhibit this same behavior seen in MP4 files