#musicbrainz

/

      • minimal has quit
      • v6lur_ has quit
      • relaxoMob has quit
      • relaxoMob joined the channel
      • zer0bitz_ has quit
      • zer0bitz joined the channel
      • relaxoMob has quit
      • relaxoMob joined the channel
      • relaxoMob has quit
      • MeatPupp3t has quit
      • MeatPupp3t joined the channel
      • relaxoMob joined the channel
      • relaxoMob has quit
      • relaxoMob joined the channel
      • mcsudds joined the channel
      • mcsudds has quit
      • |G0d| joined the channel
      • G0d has quit
      • relaxoMob has quit
      • relaxoMob joined the channel
      • lusciouslover joined the channel
      • gnsfujiwara has quit
      • lusciouslover has quit
      • ttpcodes has quit
      • ttpcodes joined the channel
      • ttpcodes has quit
      • ttpcodes joined the channel
      • outsidecontext
        sentriz: for the tag usage player support is the most authorative answer you'll usually get. Most of the best practices was essentially defined by the popular players
      • But all tag standards in some way define a field for the artist name. Except for the xiph page none explicitly mentions it to be multi-valued. And the vast majority of players does not support multi values there
      • The multi-valued ARTISTS was essentially introduced by Picard on request of users, and I think first adapted by Kodi
      • But the separation as it is makes sense.
      • None of the tagging standards does support a structure like MB's Artist Credits, with multiple values and join phrases for rich rendering
      • So having a display string is useful
      • I think we have a scripting example in the docs on how to make ARTIST multi-valued, but that way definitely is badly supported by players
      • relaxoMob has quit
      • relaxoMob joined the channel
      • derwin
        multi-valued ARTISTS is actually part of the vorbis tagging thing, IIRC, mutagen only added it a few years ago tho
      • outsidecontext
        derwin: it isn't. Vorbis has only very thin tag specs, the closest you get is the docs sentriz linked above. And it only defines ARTIST
      • But it describes it to allow multiple values (but which most players did not support)
      • Also mutagen itself does not have any explicit support for ARTISTS. It just allows to write arbitrary tags, and both beets and Picard use it
      • antlarr2 has quit
      • balrog has quit
      • balrog joined the channel
      • griffinannshual joined the channel
      • griffinannshual9 joined the channel
      • griffinannshual9 has quit
      • griffinannshual has quit
      • antlarr joined the channel
      • thuna`
        sentriz: You could make prioritizing multi-field ARTIST over ARTISTS an option, or alternatively, you could check if ARTIST is multi-valued and ARTISTS does not exist and then handle it appropriately.
      • Most music players that I have tried only recognizes the first field in ARTIST, so that is what discouraged me from putting the individual artists into ARTIST as separate fields. At one point, I even formatted ARTIST like ["X ft. Y", "X", "Y"] but ARTISTS is definitely better supported so I gave up on that quickly.
      • I only know the ID3 spec so maybe this is not the case with other formats but there is a very significant lack of paired or delimited data types, only lists (with the exception of TMCL and TIPL as of 3v2.4). Of course, you could treat the lists as delimited or paired internally, but you have to just hope that the tagger didn't do it in a different way.
      • And even then, you're bound to common practices. For example, TLEN, the length of the track, is _supposed_ to be in milliseconds, but you always find it in a [HH:][M]M:SS format.
      • mat_ has quit
      • mat_ joined the channel
      • elomatreb
        thuna`: the main reason the ARTISTS tag often doesn’t work is that if you read the ID3 spec strictly, it doesn’t allow multiple values for TXXX frames
      • mutagen goes beyond the spec, but quite a few other implementations do not (eg gstreamer doesn’t)
      • outsidecontext
        elomatreb: for ID3v2.4 TXXX frames explicitly support multiple null separated strings (according to spec, not supported by all players). But extending this to non-TXXX frames is I think beyond the spec
      • thuna`
        outsidecontext: I believe you have that the wrong way around
      • outsidecontext
        some tools also use the same approach then for ID3v2.3, e.g. MP3Tag does. but v2.3 explicitly says to ignore data beyond the null
      • thuna`
      • ^ This is from id3v2.4-frames
      • outsidecontext
        thuna`: yes, exactly. that says "All text information frames supports multiple strings, stored as a null separated list, where null is reperesented by the termination code for the charater encoding." . that's multiple values
      • thuna`: ah, I see what you mean. yes, you're right. it's only non TXXX text frames that are explicitly defined like that.
      • thuna`
        outsidecontext: According to the spec, TXXX supports exactly one encoded string as the value, and no two TXXX frames may have the same description. So, neither multiple ARTISTS frames nor a single ARTISTS frame with multiple strings is valid, and I guess the authors expected the descriptions to be indexed as well
      • Since that's not going to happen, you might as well allow multi-valued TXXX frames
      • antlarr has quit
      • antlarr joined the channel
      • elomatreb
        The ID3 spec is terrible in any case
      • so many overengineered features while basic ones are neglected
      • antlarr has quit
      • anonn joined the channel
      • antlarr joined the channel
      • Nixkernal has quit
      • antlarr has quit
      • petitminion joined the channel
      • petitminion has quit
      • ehmry has quit
      • ehmry joined the channel
      • ehmry has quit
      • antlarr joined the channel
      • scrumplex has quit
      • scrumplex joined the channel
      • Maxr1998 has quit
      • Maxr1998 joined the channel
      • ehmry joined the channel
      • minimal joined the channel
      • eggzabyte joined the channel
      • MeatPupp3t has quit
      • MeatPupp3t joined the channel
      • lusciouslover joined the channel
      • lusciouslover has quit
      • ttpcodes has quit
      • ttpcodes joined the channel
      • relaxoMob has quit
      • relaxoMob joined the channel
      • relaxoMob has quit
      • relaxoMob joined the channel
      • prathamg joined the channel
      • relaxoMob has quit
      • relaxoMob joined the channel
      • lusciouslover joined the channel
      • lusciouslover has quit
      • otisolsen70 joined the channel
      • otisolsen70 has quit
      • minimal has quit
      • Cheezmo__ joined the channel
      • Cheezmo__ has quit
      • Cheezmo__ joined the channel
      • Cheezmo_ has quit
      • vince56 joined the channel
      • vince56 has quit
      • function1 has quit
      • eletrica joined the channel
      • function1 joined the channel
      • AJ_Z0 has quit
      • AJ_Z0 joined the channel
      • AJ_Z0 has quit
      • AJ_Z0 joined the channel
      • eletrica has quit
      • relaxoMob has quit
      • ___nick___ joined the channel
      • relaxoMob joined the channel
      • crism has quit
      • minimal joined the channel
      • crism joined the channel
      • Souler joined the channel
      • ___nick___ has quit
      • prathamg has quit
      • lusciouslover joined the channel
      • flamingspinach has quit
      • flamingspinach joined the channel
      • Souler has quit