Potential metadata loss for multivalue fields

Lexicon version: 0.3.42
Operating system: Mac + Windows

**Bug description: **
Some ID3V2 Tags allow multiple values per field. This is especially true for the Artist and Genre fields. Loading a file with such fields into Lexicon retrieves and displays the first value only. After saving Metadata, the other fields are deleted and lost.

Unfortunately, this is a bit of an ugly case to handle. Serato loads all list items separated with a semicolon, but writes these fields as a single string instead of a list, which I also feel is suboptimal.

If I could choose the intended behaviour myself, I would of course prefer List handling for ID3Tags in Lexicon - it allows neat thing like automatic grouping of artists even if there are several in the artist field. If not, It would be great if the content from the other fields would be saved, possible through the method Serato uses.

Can you upload a file that has this? Upload link

I’ll have to research it a bit what the exact spec says (if there is any, ID3 is a wild west of tags). But LXC only has one string for Genre so writing the one string makes most sense to me.

If there are multiple in the file then LXC should read them all and combine them by a comma. I will add a fix for that.

1 Like

Thank you! Please separate by semicolon if at all possible - that’s the standard and allows for easier processing at a later stage.

Just uploaded a file for you with multiple values for Artist and genres. A possible way to solve the List issue is to separate fields that can can contain lists using the semicolon. So you basically display a field with two artists as “Artist 1; Artist 2”, users edit it as a string, and then during saving to id3 you save it as separate tags. Allows you to manage only a string inside the program, but respect the original Tag structure. That would be the rainbows-and-lollipos solution for me.

Sounds good, I agree on that approach

There is a small problem though. Serato and VirtualDJ do not read multiple of the same tags. So if I split on semicolon then anything after it will be missing there. That can lead to unexpected behavior for users that use a semicolon in any field that can be multiple.

If I add this change then there is a chance of data loss.

I’d rather not implement the write change because I think the multiple fields is really not very well supported. Not in all DJ apps (RB, Traktor & Engine do support it) but I suspect that some music players also do not treat those fields well.

I will implement the read change though and combine them by a semicolon.

Yes, the support is hit-and-miss. Serato does it by reading as semicolon-separated string and then just writing the string to file (so only single tag, but without data loss). That’s the behaviour I saw with most players actually, as far as I can recall.
I’d be ok with Lexicon writing the single string though.

Next version will read them all, joined by a semicolon.
Writing is unchanged, so it will write a single string.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.