I've been using Mp3Tag for a while, and I also use Navidrome as a self-hosted music provider. Most of my collection are AAC/m4a files, that i tag with Mp3Tag
Since version 0.55.0, released recently, Navidrome supports multivalued fields.
The issue I have is related to how Mp3Tag stores multivalued fields:
resulting to an update in Navidrome's documentation:
Would it be possible to update Mp3Tag to properly tag multivalued fields for AAC files ?
Why are my multi-valued tags (ARTISTS, ALBUMARTISTS, etc.) not working properly in AAC/M4A files?
If you have AAC/M4A files where multi-valued tags like ARTISTS, ALBUMARTISTS, or COMPOSER are not being read correctly by Navidrome (showing only one artist instead of multiple), this is likely due to how some tagging applications write these tags.
The Problem: Some tag editors (including MP3Tag) may create duplicate “atoms” (metadata containers) when writing multi-valued tags to AAC/M4A files, rather than storing multiple values within a single atom. TagLib (the library Navidrome uses to read metadata) ignores duplicate atoms by design and only reads the first occurrence, causing the additional values to be lost.
The Workaround: Re-save your files using MusicBrainz Picard: ....
well, i'm well aware of that since i've shared that exact same link in my post.
I'd like to know if it would be possible for Mp3Tag, in a future version, to properly tag multivalued fields for AAC files.
The suggested workaround is what it is: a workaround, not really convenient nor durable.
I'd rather keep using Mp3Tag as my tag editor. Picard is useful, but it's not really a tag editor, and not all albums exist in MusicBrainz's database.
I think this is more a matter of how Navidrome chooses to work with multi-value fields. There are many other apps that are fully compatible with these fields as mp3tag currently manages them, including m4a files.
I would suggest that mp3tag may already be capable of managing the fields in a way that Navidrome may be expecting. But note this may break other players if you use anything else. Best way to check is to open a file with the info written the way Navidrome would prefer to see your multi-value fields in mp3tag. Check the extended tags to see exactly how these are structured. I am thinking these become a single field merged with some sort of delimiting character. Something like a ; or / is common. If that's the case you can use the Merge action to do this for all of your other files with multiple values and assign the same separator character(s).
Yes, there are actually three different ways of properly storing multiple values in MP4.
Flatten multiple values
This is the most compatible approach, albeit not really multi-value. Here, multiple values are written in one field, separated by a character or character sequence, e.g., ;, ,, or /
aART...data...Album Artist 1 Name;Album Artist 2 Name
Write one MP4 atom per value
This is the approach Mp3tag and others have taken. Each value is stored in one MP4 atom, e.g., aART for ALBUMARTIST with a data part that keeps the actual name of the album artist.
aART...data...Album Artist 1 Name
aART...data...Album Artist 2 Name
Write one MP4 atom with multiple data parts
This is the approach Navidrome is using. Individual values are stored in multiple data atoms that are contained in the MP4 atom for the actual field.
aART...data...Album Artist 1 Name...data...Album Artist 2 Name
All this happened, because there is no clear standard on how multiple values are stored. iTunes / Apple Music doesn't really support multiple values as in 2. and 3., so different implementations came up with different ways of dealing with multiple values.
Mp3tag supports reading all three different variants (which I'd recommend for any application that reads metadata from MP4) and currently supports writing variants 1. and 2.
Since variants 2. and 3. are mutually exclusive, a dedicated configuration setting would be needed.
It seems that the Navidrome approach is tied to how TagLib, the library it uses to read tags, ignores duplicate atoms.
A dedicated configuration for MP4 would be awesome, thanks a lot for your prompt response !
Foobar only added support for Way 3 in recent versions (used t show only 1 artist) and uses Way 2 on writing, which is more compatible. The MP4 container has too much complexity.
this is working perfectly fine, thanks a lot !
multivalued fields are not read anymore in MusicBee though, but that's not an issue for me (and for you too), as long as they're read fine by Navidrome