Ways to fill sort fields for uPNP server

It's interesting that you say that ("rather specialized") because it baffles me that neither Mp3tag nor Picard (by default) offer what I believe to be the most important artist tag; that is a multivalue (or delimited) albumartist tag.

I'm relatively new to the collaboration tags (Artist A feat Artist B), but how is a server/player supposed to make use of the musicbrainz_albumartistid tag without a matching 1-1 albumartist tag?

If we take Watch the Throne as an example:

MUSICBRAINZ_ALBUMARTISTID: f82bcf78-5b69-4622-a5ef-73800768d9ac/164f0d73-1234-4e2c-8743-d77bf2191051
ALBUMARTIST: JAY Z & Kanye West

Are all consumers of that data supposed to split ALBUMARTIST on all the possible join phrases until the count of artists is equal to the count of mbid? '&' is quite common in band names so that seems quite a risky thing to do.

Enabling 'Show all available non-standard MusicBrainz metadata tags?' delivers the following:

MUSICBRAINZ_ALBUMID: e08a3b6c-22ff-423a-8706-adbd45203698
MUSICBRAINZ_ALBUMARTISTID: f82bcf78-5b69-4622-a5ef-73800768d9ac/164f0d73-1234-4e2c-8743-d77bf2191051
ALBUMARTIST: JAY Z & Kanye West
MB_RELEASEGROUP_ARTISTCREDIT_ARTIST_NAME: JAY‐Z/Ye
MB_RELEASEGROUP_ARTISTCREDIT_NAME: Jay-Z/Kanye West

So we have the standardised name (ARTISTCREDIT_ARTIST_NAME) and the release group variant (ARTISTCREDIT_NAME) but still not the release.

I appreciate that there's an ARTISTS tag, but how would one go about applying a sort value?

MUSICBRAINZ_ALBUMID: 70be723e-7a51-4ffd-81f0-10f1d01c4890
TRACK: 8/17
ARTISTS: Miley Cyrus/WATT/Elton John/Yo‐Yo Ma/Robert Trujillo/Chad Smith
ARTISTSORT: Cyrus, Miley feat. Watt, Andrew, John, Elton, Ma, Yo‐Yo, Trujillo, Robert & Smith, Chad

I've come from a UPnP server background where multivalue albumartist(sort) and artist(sort) tags are required, so this is all a little foreign to me.

I don't yet understand what you are trying to achieve by "applying a sort value".
Do you want to transform an existing content like
ARTISTS
Miley Cyrus/WATT/Elton John/Yo‐Yo Ma/Robert Trujillo/Chad Smith
into
ARTISTSORT
Cyrus, Miley feat. Watt, Andrew, John, Elton, Ma, Yo‐Yo, Trujillo, Robert & Smith, Chad
?
This is currently not possible, because you don't know all the needed additional joinphrases.
(These are characters or a word between the person names, like & or feat. or just a comma and/or a space)


(Screenshot from the MusicBrainz website track editor)

Or do you ask how you would have to split the existing
ARTISTSORT
Cyrus, Miley feat. Watt, Andrew, John, Elton, Ma, Yo‐Yo, Trujillo, Robert & Smith, Chad
into multivalue fields to get multiple ARTISTSORT fields with these contents:
Cyrus, Miley
Watt, Andrew
John, Elton
Ma, Yo‐Yo
Trujillo, Robert
Smith, Chad
?

Please let me know if you are looking for something different. It would be helpful if you could show me the existing source content and explain what you would like the new target content to be.

I'm not really asking because I know it can't be done; I'm just surprised that it's not possible to produce an albumartist/artist index that's sorted by an associated sort value (traditionally called albumartistsort/artistsort) e.g.

Artist           (Sorted by)
------------------------------
Miley Cyrus      Cyrus, Miley
Elton John       John, Elton
Yo-Yo Ma         Ma, Yo-Yo
Chad Smith       Smith, Chad
Robert Trujillo  Trujillo, Robert
WATT             Watt, Andrew

Which would typically be stored as:

ARTIST: Miley Cyrus;WATT;Elton John;Yo‐Yo Ma;Robert Trujillo;Chad Smith
ARTISTSORT: Cyrus, Miley;Watt, Andrew;John, Elton;Ma, Yo‐Yo;Trujillo, Robert;Smith, Chad

It would have made more sense (to me) if there wasn't a sort tag at all (meaning there isn't a need), rather than one that applied to the entire track, as noone wants to see an artist index containing:

Jimmie Allen & Elton John
Glen Campbell & Elton John
Miley Cyrus feat. WATT, Elton John, Yo‐Yo Ma, Robert Trujillo & Chad Smith
Gorillaz feat. Elton John & 6LACK
Elton John & Brandi Carlile
Elton John & SG Lewis
Elton John & Dua Lipa
Elton John & Stevie Nicks
Elton John & Charlie Puth
Elton John & Eddie Vedder
Elton John & Stevie Wonder
Elton John & Years & Years
Elton John, Young Thug & Nicki Minaj
Lil Nas X feat. Elton John
Rina Sawayama & Elton John
Surfaces feat. Elton John

Reminds me of the streaming services in the early days :wink:

Just out of curiosity:

Does the idea of ARTISTS (with an s) also require a single-value ARTIST field? It seems troublesome to have two varieties of ARTIST when contributing to / downloading from various databases. (Not to mention incompatibility with many players & servers, which need a standard multi-value ARTIST.)

If I were aiming for compatibility I'd use a multivalued (ALBUM)ARTIST tag, so I'd simply rename ARTISTS to ARTIST.

I use Lightweight Music Server (OpenSubsonic) and MinimServer (UPnP). MinimServer expects multivalued (ALBUM)ARTIST tags but allows you to configure aliases (ARTISTS->ARTIST), so my tagging approach looks like:

(ALBUM)ARTIST: Artist 1 & Artist 2
(ALBUM)ARTISTS: Artist 1; Artist 2
(ALBUM)ARTISTSORT: 1, Artist; 2, Artist

The (ALBUM)ARTIST tag is used when displaying album/track listings, and the multivalued variants are used for indexes/searches.

I see. While it's great that you have found a satisfactory solution within your own setup, I do think it's a special workaround. I wish the inventor of this had put more thought into it instead of just hijacking the ARTIST field.

It makes no sense to override the established use of ARTIST, especially given how few servers/players fully support the new definition.

I started using Lightweight Music Server about 18 months ago, before which I'd been using the traditional multivalue ARTIST approach in MinimServer. I don't know what I would have done if MinimServer hadn't been compatible with the new approach.

I'm trying to put a bulletproof (to reduce support) tagging workflow together for a friend, and the solution I'm currently leaning towards is Picard as it handles all the artist variants.
I'm going to store the multivalued tags in (ALBUM)ARTIST and the collaborations in DISPLAY (ALBUM)ARTIST (MusicBee uses this naming convention), which in Picard looks like:

$set(Display AlbumArtist,%albumartist%)
$setmulti(albumartist,%_albumartists%)
$setmulti(albumartistsort,%_albumartists_sort%)

$set(Display Artist,%artist%)
$setmulti(artist,%artists%)
$setmulti(artistsort,%_artists_sort%)

I don't think he'll want to use LMS (docker is a little beyond him) so I'm going for compatibility.

So does that mean that in MusicBee, you don't need ARTISTS - instead you can use DISPLAYARTIST to achieve the same thing, while keeping your existing ARTIST fields intact?

If so, DISPLAYARTIST is the superior solution. I hope it catches on to be supported by more players.

I'm not a MusicBee user but I've just double-checked, and yes MusicBee will use a multivalued ARTIST tag for indexes and a DISPLAY ARTIST tag for track listings (as far as I can tell there isn't an ALBUMARTIST equivalent).