# Multivalued fields for AAC?

**URL:** https://community.mp3tag.de/t/multivalued-fields-for-aac/68857
**Category:** Support
**Created:** [June 13, 2025, 7:03pm UTC](https://community.mp3tag.de/t/multivalued-fields-for-aac/68857 "2025-06-13T19:03:13Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![pakk](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/p/a3d4f5/32.png) [@pakk](https://community.mp3tag.de/u/pakk)
#### Post date: [June 13, 2025, 7:03pm UTC](https://community.mp3tag.de/t/multivalued-fields-for-aac/68857/1 "2025-06-13T19:03:13Z")

</div>

Hi there,

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:

> <https://github.com/navidrome/navidrome/issues/4225>
>
> \### I confirm that:
> 
> \- \[x\] I have searched the existing \[open AND closed issues\]…(https://github.com/navidrome/navidrome/issues?q=is%3Aissue) to see if an issue already exists for the bug I've encountered
> \- \[x\] I'm using the latest version (your issue may have been fixed already)
> 
> \### Version
> 
> 0.56.1
> 
> \### Current Behavior
> 
> i have files with multiple values tags (like ARTISTS, ALBUMARTISTS or COMPOSER) and it seems to me that they're not properly parsed.
> See a sample file attached. File has been tagged with MusicBrainz Picard and MP3Tag.
> MediaInfo can see that some tags have multiple values:
> 
> \`\`\`
> General
> Complete name : M:\\Music\\Soundtracks\\Games\\Clair Obscur - Expedition 33\\\[2025-04-24\] Clair Obscur Expedition 33 Original Soundtrack\\1.60 - Une vie à t'aimer.m4a
> Format : MPEG-4
> Format profile : Apple audio with iTunes info
> Codec ID : M4A (M4A /mp42/isom)
> File size : 21.2 MiB
> Duration : 11 min 0 s
> Overall bit rate mode : Variable
> Overall bit rate : 269 kb/s
> Album : Clair Obscur: Expedition 33 Original Soundtrack
> Album/Performer : Lorien Testard
> Part/Position : 1
> Part/Total : 3
> Track name : Une vie à t'aimer
> Track name/Position : 60
> Track name/Total : 60
> Performer : Lorien Testard, Alice Duport-Percier & Victor Borba
> Composer : Lorien Testard / Alice Duport-Percier
> Genre : Game
> Recorded date : 2025-04-24
> Encoded date : 2025-04-26 09:01:41 UTC
> Tagged date : 2025-04-26 09:01:48 UTC
> ISRC : NL8RL2513794
> Copyright : 2025 Sandfall Interactive under license to Laced Music Ltd t/a Laced Records 2025 Sandfall Interactive under license to Laced Music Ltd t/a Laced Records
> Cover : Yes
> Lyrics : \[00:24.60\] (Alice Duport-Percier, Victor Borba, ensemble) / \[00:26.54\] Arrête de m'aimer / \[00:31.89\] Je t'aimerai toujours / \[00:37.27\] Lâche ce pinceau, quitte cette toile / \[00:42.68\] Renoir (Aline) / \[00:49.28\] Je peindrai toujours / \[00:54.40\] Arrête de peindrer / \[00:59.43\] Lâche ce pinceau, quitte cette toile / \[01:04.97\] Renoir (Aline) / \[01:10.07\] (Alice Duport-Percier, Victor Borba) / \[01:11.96\] Couleurs embrasées / \[01:15.71\] Rouge feu, vie ôtée / \[01:19.84\] Tableau que je ne peux voir / \[01:23.72\] Fermer les yeux, reste le noir / \[01:27.97\] En noir, ses yeux tristes / \[01:31.61\] À travers l'or, son rire persiste / \[01:35.55\] Dans chaque couleur, une part de lui / \[01:39.48\] L'aimer toujours, même s'il n'est plus ici / \[01:42.63\] (Alice Duport-Percier, Victor Borba, ensemble) / \[01:43.79\] Peindre l'amour / \[01:45.65\] Peindre la vie / \[01:47.56\] Pleurer en couleurs / \[01:51.41\] Sur la toile, notre amour demeure / \[01:55.78\] Je t'aime / \[02:02.07\] Peindre l'amour / \[02:03.79\] Peindre la vie / \[02:05.71\] Pleurer en couleurs / \[02:09.41\] Sur la toile, notre amour demeure / \[02:13.62\] Je t'aime / \[02:52.89\] (Alice Duport-Percier & Victor Borba) / \[02:54.46\] Aimer, rêver, pleurer / \[03:02.82\] Aimer et rester et pleurer / \[03:09.53\] Verso enlacé / \[03:15.95\] Aimer, rêver, pleurer / \[03:23.50\] Aimer, lâcher, pleurer / \[03:31.21\] Verso effacé / \[04:07.34\] (Ensemble) / \[04:07.60\] Continuer à t'aimer / \[04:11.84\] Continuer de peindre / \[04:15.72\] Tendre la main et t'implorer / \[04:19.87\] Reviens / \[04:26.01\] Continuer à t'aimer / \[04:29.83\] Continuer de peindrer / \[04:33.72\] Tendre la main et t'implorer / \[04:37.93\] Reviens / \[04:42.42\] (Alice Duport-Percier & Victor Borba) / \[04:43.64\] Dans chaque ombre, son visage / \[04:51.78\] Dans chaque ligne, son passage / \[04:59.70\] Si nos pulsations jouent à contre-temps / \[05:07.18\] Mon amour veille, attend / \[05:16.28\] Dans chaque éclat, son doux rire / \[05:24.05\] Dans chaque couleur, son sourire / \[05:31.94\] Si nos pulsations jouent à contre-temps / \[05:39.09\] Mon amour reste, attend / \[05:46.95\] (Alice Duport-Percier) / \[05:47.92\] Peinture, sature, peinture / \[05:55.59\] Au Clair-Obscur / \[06:28.06\] (Alice Duport-Percier) / \[06:30.33\] Peinture, brisure, peinture / \[06:38.42\] Au Clair-Obscur / \[07:00.44\] (Alice Duport-Percier) / \[07:02.58\] Aline / \[07:04.84\] Au Clair-Obscur / \[07:07.68\] Renoir / \[07:10.34\] Au Clair-Obscur / \[07:54.85\] (Alice Duport-Percier) / \[07:55.69\] Alicia / \[07:58.60\] Au Clair-Obscur / \[08:01.15\] Verso / \[08:03.84\] Au Clair-Obscur / \[08:05.42\] (Alice Duport-Percier, Victor Borba) / \[08:06.43\] Choral / \[08:29.36\] (Alice Duport-Percier, Victor Borba, ensemble) / \[08:31.95\] Arrête de m'aimer / \[08:36.95\] Je t'aimerai toujours / \[08:42.11\] Lâche ce pinceau, quitte cette toile / \[08:48.16\] Renoir (Aline) / \[08:54.80\] Je peindrai toujours / \[08:59.79\] Arrête de peindre / \[09:04.97\] Lâche ce pinceau, quitte cette toile / \[09:10.39\] Renoir (Aline) / \[09:13.68\] (Alice Duport-Percier & Victor Borba) / \[09:16.82\] Couleurs embrasées / \[09:20.82\] Rouge feu, vie ôtée / \[09:25.18\] Ensemble, dans le noir / \[09:29.36\] Ouvrons les yeux, cherchons l'espoir / \[09:33.34\] Ta main dans la mienne / \[09:37.26\] Notre peine s'égrène / \[09:41.12\] Ensemble, au futur / \[09:45.06\] Nous peindrons le Clair-Obscur / \[09:48.78\] (Alice Duport-Percier, Victor Borba) / \[09:49.36\] Peindre l'amour / \[09:51.06\] Peindre la vie / \[09:53.13\] Pleurer en couleurs / \[09:56.94\] Sur la toile, notre vie s'écrit / \[10:00.90\] Je t'aime / \[10:07.38\] Peindre l'amour / \[10:09.15\] Peindre la vie / \[10:11.09\] Pleurer en couleurs / \[10:14.93\] Sur la toile, notre vie s'écrit / \[10:18.98\] Adieu / \[10:29.02\] (Ensemble) / \[10:30.76\] Peindre l'amour / \[10:33.35\] Peindre la vie / \[10:36.36\] Pleurer en couleurs / \[10:41.22\] Sur la toile, notre vie s'écrit / \[10:46.95\] Adieu... Adieu / \[10:59.93\] 
> website : https://www.lorientestard.com/
> UPC : 8721215081586
> SOUND EFFECTS : Keira McKenna
> SCRIPT : Latn
> RELEASEDATE : 2025-04-24
> pub : Laced Records
> PRODUCER : Lorien Testard
> ORIGINALDATE : 2025-04-24
> MUSICPUBLISHER : Sandfall Interactive
> MusicBrainz Track Id : 07d75d4b-3d02-4501-8050-9b14ed719037
> MusicBrainz Release Track Id : 224788ba-a449-43b0-a175-7bd938e6cb38
> MusicBrainz Release Group Id : d9f43de3-6c67-46e2-bfb7-9c398167fe41
> MusicBrainz Artist Id : 1557e001-08ec-405d-a0cf-6d2625e90af5 / 1850311f-b87c-4178-b98b-1d61487511c9 / 12ea096a-d594-45d0-9f4d-565bf311f87b
> MusicBrainz Album Type : album
> MusicBrainz Album Status : official
> MusicBrainz Album Release Country : XW
> MusicBrainz Album Id : 1e98cd14-cbe8-4b78-bc9c-d829d8820a72
> MusicBrainz Album Artist Id : 1557e001-08ec-405d-a0cf-6d2625e90af5
> MEDIA : Digital Media
> LYRICIST : Lorien Testard
> LABEL : Laced Records
> DISPLAY COMPOSER : Lorien Testard; Alice Duport-Percier
> BARCODE : 8721215081586
> ASIN : B0F448XYBY
> ARTISTS : Lorien Testard / Alice Duport-Percier / Victor Borba
> ALBUMARTISTS : Lorien Testard / Alice Duport-Percier
> Encoding Params : vers
> 
> Audio
> ID : 1
> Format : AAC LC
> Format/Info : Advanced Audio Codec Low Complexity
> Codec ID : mp4a-40-2
> Duration : 11 min 0 s
> Bit rate mode : Variable
> Bit rate : 265 kb/s
> Maximum bit rate : 322 kb/s
> Channel(s) : 2 channels
> Channel layout : L R
> Sampling rate : 44.1 kHz
> Frame rate : 43.066 FPS (1024 SPF)
> Compression mode : Lossy
> Stream size : 20.7 MiB (98%)
> Encoded date : 2025-04-26 09:01:41 UTC
> Tagged date : 2025-04-26 09:01:48 UTC
> 
> \`\`\`
> 
> but navidrome can't:
> 
> !\[Image\](https://github.com/user-attachments/assets/6137c028-6f52-4361-a3cf-be41a8cd47eb)
> 
> 
> \[aac.zip\](https://github.com/user-attachments/files/20723244/aac.zip)
> 
> \### Expected Behavior
> 
> According to the \[tagging guidelines\](https://www.navidrome.org/docs/usage/tagging-guidelines/), these multiple values tags should be parsed properly, am i right ?
> 
> \### Steps To Reproduce
> 
> load this file in navidrome and check how the tags are parsed
> 
> \### Environment
> 
> \`\`\`markdown
> \- OS: Windows 11/Docker
> \- Browser: Firefox 140
> \- Client: web client
> \`\`\`
> 
> \### How Navidrome is installed?
> 
> Docker
> 
> \### Configuration
> 
> \`\`\`yaml
> services:
> navidrome:
> container\_name: navidrome
> image: deluan/navidrome:latest
> ports:
> - "4533:4533"
> environment:
> ND\_SCANSCHEDULE: "@daily"
> ND\_LOGLEVEL: info
> ND\_BASEURL: ""
> ND\_ENABLECOVERANIMATION: "false"
> ND\_COVERARTPRIORITY: "embedded, folder.\*, cover.\*, front.\*, external"
> ND\_SPOTIFY\_ID: REDACTED
> ND\_SPOTIFY\_SECRET: REDACTED
> ND\_LASTFM\_APIKEY: REDACTED
> ND\_LASTFM\_SECRET: REDACTED
> ND\_IMAGECACHESIZE: "5GB"
> ND\_ENABLESHARING: "true"
> ND\_DEFAULTTHEME: "Nord"
> ND\_SUBSONIC\_ARTISTPARTICIPATIONS: "true"
> ND\_PLAYLISTSPATH: "Music/\_navidrome\_playlists"
> ND\_SEARCHFULLSTRING: "true"
> ND\_ALBUMPLAYCOUNTMODE: "normalized"
> volumes:
> - "./data:/data"
> - "./data/music:/music:ro"
> \`\`\`
> 
> \### Relevant log output
> 
> \`\`\`shell
> 
> \`\`\`
> 
> \### Anything else?
> 
> \_No response\_
> 
> \### Code of Conduct
> 
> \- \[x\] I agree to follow Navidrome's Code of Conduct

resulting to an update in Navidrome's documentation:

> **[FAQ](https://www.navidrome.org/docs/faq/#-why-are-my-multi-valued-tags-artists-albumartists-etc-not-working-properly-in-aacm4a-files)**
>
> Frequently Asked Questions

Would it be possible to update Mp3Tag to properly tag multivalued fields for AAC files ?

Thanks in advance and have a nice day

---

<div class="post-metadata">

### Author: ![LyricsLover](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/c6cbf5/32.png) [@LyricsLover](https://community.mp3tag.de/u/LyricsLover)
#### Post date: [June 13, 2025, 7:51pm UTC](https://community.mp3tag.de/t/multivalued-fields-for-aac/68857/2 "2025-06-13T19:51:57Z")

</div>

Navidrome claims in their own FAQ:

> ## 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: ....

[Source](https://www.navidrome.org/docs/faq/#-why-are-my-multi-valued-tags-artists-albumartists-etc-not-working-properly-in-aacm4a-files)

---

<div class="post-metadata">

### Author: ![pakk](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/p/a3d4f5/32.png) [@pakk](https://community.mp3tag.de/u/pakk)
#### Post date: [June 13, 2025, 8:19pm UTC](https://community.mp3tag.de/t/multivalued-fields-for-aac/68857/3 "2025-06-13T20:19:21Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![MotleyG](https://community.mp3tag.de/user_avatar/community.mp3tag.de/motleyg/32/440_2.png) [@MotleyG](https://community.mp3tag.de/u/MotleyG)
#### Post date: [June 13, 2025, 10:36pm UTC](https://community.mp3tag.de/t/multivalued-fields-for-aac/68857/4 "2025-06-13T22:36:28Z")

</div>

> [@pakk](#):
>
> I'd like to know if it would be possible for Mp3Tag, in a future version, to properly tag multivalued fields for AAC files.

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).

---

<div class="post-metadata">

### Author: ![Florian](https://community.mp3tag.de/user_avatar/community.mp3tag.de/florian/32/5759_2.png) [@Florian](https://community.mp3tag.de/u/Florian)
#### Post date: [June 14, 2025, 6:39am UTC](https://community.mp3tag.de/t/multivalued-fields-for-aac/68857/5 "2025-06-14T06:39:23Z")

</div>

Yes, there are actually three different ways of properly storing multiple values in MP4.

1. **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 `/`

```auto
aART...data...Album Artist 1 Name;Album Artist 2 Name

```

1. **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.

```auto
aART...data...Album Artist 1 Name
aART...data...Album Artist 2 Name

```

1. **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.

```auto
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.

I'll keep you posted.

---

<div class="post-metadata">

### Author: ![pakk](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/p/a3d4f5/32.png) [@pakk](https://community.mp3tag.de/u/pakk)
#### Post date: [June 14, 2025, 6:46am UTC](https://community.mp3tag.de/t/multivalued-fields-for-aac/68857/6 "2025-06-14T06:46:22Z")

</div>

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 !

---

<div class="post-metadata">

### Author: ![j7n](https://community.mp3tag.de/user_avatar/community.mp3tag.de/j7n/32/15416_2.png) [@j7n](https://community.mp3tag.de/u/j7n)
#### Post date: [June 16, 2025, 12:07am UTC](https://community.mp3tag.de/t/multivalued-fields-for-aac/68857/7 "2025-06-16T00:07:24Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Florian](https://community.mp3tag.de/user_avatar/community.mp3tag.de/florian/32/5759_2.png) [@Florian](https://community.mp3tag.de/u/Florian)
#### Post date: [June 19, 2025, 6:17pm UTC](https://community.mp3tag.de/t/multivalued-fields-for-aac/68857/8 "2025-06-19T18:17:25Z")

</div>

I've added a configuration option at **Options → Tags → Advanced** to **Use single MP4 atom for multiple values** with [Mp3tag v3.30b](https://community.mp3tag.de/t/455).

---

<div class="post-metadata">

### Author: ![pakk](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/p/a3d4f5/32.png) [@pakk](https://community.mp3tag.de/u/pakk)
#### Post date: [June 19, 2025, 7:18pm UTC](https://community.mp3tag.de/t/multivalued-fields-for-aac/68857/9 "2025-06-19T19:18:53Z")

</div>

Thanks, you're the best ! I'll try it tomorrow and let you know 🙂

---

<div class="post-metadata">

### Author: ![pakk](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/p/a3d4f5/32.png) [@pakk](https://community.mp3tag.de/u/pakk)
#### Post date: [June 20, 2025, 8:21am UTC](https://community.mp3tag.de/t/multivalued-fields-for-aac/68857/10 "2025-06-20T08:21:15Z")

</div>

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

---

<div class="post-metadata">

### Author: ![system](https://community.mp3tag.de/uploads/default/original/2X/c/ce7035d426cb755a7916793326d23b465222a407.png) [@system](https://community.mp3tag.de/u/system)
#### Post date: [August 23, 2025, 1:30pm UTC](https://community.mp3tag.de/t/multivalued-fields-for-aac/68857/11 "2025-08-23T13:30:50Z")

</div>

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