Guest - Testers are needed for the reworked CDateTime core component. See... https://forum.kodi.tv/showthread.php?tid=378981 (September 29) x
v21 Artist sort order and multiple artists appears to behave incorrectly
#1
For months now I've been trying to get consistent artist sorting behavior out of Kodi, but to no avail. I've tried to reproduce the problem below. I have no advancedsettings.xml file, so as far as that is concerned we're only looking at default Kodi behavior here. Relevant settings:
 
  • Default provider for album information: Generic Album Scraper
  • Default provider for artist information: Generic Artist Scraper
  • Prefer online information: OFF
  • Use artist sortname when sorting by artist: ON

I deleted the MyMusicXX.db file and rebooted to create a new, clean database. Then I scanned the album "Tunnel Trance Force 22" by various artists (MusicBrainz release ID dc5e3047-1fa0-40b7-9ade-ae16d5bbd057). This is now the ONLY album in the database. Under MainMenu->MusicArtists the following list of artists appears:
 
  1. 666
  2. DJ Bart
  3. Beam vs. Cyrus
  4. DJ C7
  5. Divino
  6. Goddess
  7. Godfather's Dome
  8. JFS
  9. Lothos
  10. Lovestern Galaktika Project
  11. Malixx
  12. Megara vs. DJ Lee
  13. Nightflow
  14. Nightsliders
  15. Ole van Dansk
  16. Pulsedriver
  17. Sunfactor
  18. Sven De Mar
  19. Trance Allstars
  20. Various Artists
  21. Vincent Vega
  22. Wavescope
Most of this is correct, until we get to entry 15, Ole van Dansk. He appears on track 3 (and only there). In MB Picard the relevant tags for this track are as follows:
 
  • Artist: Lovestern Galaktika Project meets Pulsedriver & Ole van Dansk
  • Artists: Lovestern Galaktika Project; Pulsedriver; Ole van Dansk
  • Artist Sort Order: Lovestern Galaktika Project meets Pulsedriver & Dansk, Ole van
  • Album Artist: Various Artists
  • Album Artist Sort Order: Various Artists
(For brevity I have omitted MB artist id, release id etc, however I have checked them and they are all correct.)

This is inconsistent. Multiple artists in the 'Artists' tag are listed separately, as one would expect. However, only the first artist (Lovestern Galaktika Project) is sorted as per the Artist Sort Order tag. The others are listed by first name.

Let's look at another "problem entry", Sven De Mar who appears on track 13 (and only there):
 
  • Artist: Vincent Vega meets Sven De Mar
  • Artists: Vincent Vega; Sven De Mar
  • Artist Sort Order: Vega, Vincent meets De Mar, Sven
  • Album Artist: Various Artists
  • Album Artist Sort Order: Various Artists

Once again the second artist in the Artist Sort Order field is sorted inconsistently (by first name). In contrast, entries 2 and 4in the lists of artists (DJ Bart and DJ C7, respectively) are sorted correctly. They appear on track 2 and 1 respectively, tagged as follows:
 
  • Artist: DJ C7
  • Artists: DJ C7
  • Artist Sort Order: C7, DJ

and
 
  • Artist: DJ Bart
  • Artists: DJ Bart
  • Artist Sort Order: Bart, DJ

I have repeated the above exercise with different albums (each time starting with a clean database) and this inconsistent behavior is consistent: when there are multiple artists in the artists field, only the first entry is sorted correctly, the rest simply by whatever characters the string starts with.

Is this a feature, a bug, or a lack of understanding on my part?

Edit: it's been decades since I did any serious C coding, but in the source I see the following:

Code:
 //Split the artist sort string to try and get sort names for individual artists

Which suggests that what I'm seeing here is not the intended behavior.


// FvW
Reply
#2
Don't use Piccard, but this
 
Quote:Artists: Lovestern Galaktika Project; Pulsedriver; Ole van Dansk

Artist Sort Order: Lovestern Galaktika Project meets Pulsedriver & Dansk, Ole van

doesn't look right.  You have 3 artists:
Lovestern Galaktika Project
Pulsedriver
Ole van Dansk

You need 3 sort artitsts
Lovestern Galaktika Project
Pulsedriver
Dansk, Ole van

scott s.
.
Reply
#3
(2024-07-15, 03:27)scott967 Wrote: Don't use Piccard, but this
Quote:Artists: Lovestern Galaktika Project; Pulsedriver; Ole van Dansk

Artist Sort Order: Lovestern Galaktika Project meets Pulsedriver & Dansk, Ole van
doesn't look right. [...]
This comes straight from Musicbrainz, as per the instructions in the Wiki: "Kodi has strong support for MusicBrainz tagging. It is highly recommended that users tag their music files using MusicBrainz Picard." So, being a good little children, that's what I'm doing. Smile

That said, there's the musiclibrary section in the advancedsettings.xml file where the following may be entered:

<artistseparators> <!-- separator used for multiple artists. Note that spaces are used for some separators. See Note below-->
  <separator>;</separator>
  <separator>:</separator>
  <separator>|</separator>
  <separator> feat. </separator>
  <separator> ft. </separator>
</artistseparators>

Then, looking in the source (xmbc/music/Album.cpp) I see the following comments:

Code:
  //Split the artist sort string to try and get sort names for individual artists

and

Code:

      /*
      Most likely we have no hints and a single artist name like "Artist1 feat. Artist2"
      or "Composer; Conductor, Orchestra, Soloist" or "Artist1/Artist2" where the
      expected single item separator (default = space-slash-space) as not been used.
      Comma and slash (no spaces) are poor delimiters as could be in name e.g. AC/DC,
      but here treat them as such in attempt to find artist names.
      When there are hints they could be poorly formatted using unexpected separators,
      so attempt to split them. Or we could have more hints or artist names than
      musicbrainz so ignore them but raise warning.
      */

All of which suggests that at least some parsing of various formats enclosed in the Artist Sort Order fields are supported.

So let's say I have the following track:
 
  • Artist: John Doe & Joe Public feat. Some Dude
  • Artists: John Doe; Joe Public, Some Dude

(We'll assume that the Musicbrainz Artist IDs are present and correct.)

Then what, exactly, should the contents  of the Artist Sort Order tag be to ensure sorting as follows:
  • John Doe
  • Some Dude
  • Joe Public

(I.e. sorted by Doe, Dude and Public).

If I understand the wiki and the comments in the source correctly this should be possible, but right now it doesn't seem to work that way. Any album that has "Artist 1 feat. Artist 2" or something like that ends up being sorted incorrectly. And I've got quite a few trance albums where this is the norm, so my artists database is a mess. What am I missing?

Tnx!

// FvW
Reply
#4
Nobody?
Reply
#5
I'm out of town.

This is why I only use APE and FLAC/Vorbis/Xiph tags in music.  It avoids the whole separator problem.
Bottom line is, when you use both Artist (TPE1) and Artists, Artist is stored as a '"credit" for display as the string as found with no interpretation.  Artists must have a valid separator between each entry (or using APE/FLAC, multiple Artists tags, one for each entry).   If mbid is provided, there must be one-to-one correspondence between mbid entries and artists entries (so 3 artists means 3 mbids).  Same idea for Artistsort(TSOP).

Again, I don't use ID3v2 tags and I can't test here, but I think what you want is
 
Code:
Doe, John / Dude, Some / Public, Joe

scott s.
.
Reply
#6
(2024-07-21, 05:18)scott967 Wrote: This is why I only use APE and FLAC/Vorbis/Xiph tags in music.  It avoids the whole separator problem.
Bottom line is, when you use both Artist (TPE1) and Artists, Artist is stored as a '"credit" for display as the string as found with no interpretation.  Artists must have a valid separator between each entry (or using APE/FLAC, multiple Artists tags, one for each entry).   If mbid is provided, there must be one-to-one correspondence between mbid entries and artists entries (so 3 artists means 3 mbids).  Same idea for Artistsort(TSOP).

Again, I don't use ID3v2 tags and I can't test here, but I think what you want is
 
Code:
Doe, John / Dude, Some / Public, Joe
Are you saying that Ape, FLAC etc. expected to behave differently in the Artists list than MP3? From a UX standpoint that sounds strange to me.

I agree that Doe, John / Dude, Some / Public, Joe is what I want, but my problem is that Kodi doesn't do that! Blush Neither when I use a single string in the Artist Sort Order tag separated by ' / ' or when I use the tagging produced by MB Picard (which you don't use but which is the officially recommended method so I would expect that to work).
Reply
#7
The issue tends to be how tags are represented in the tagging software such as Picard vs what is actually written out to the file.  Not sure how Picard displays multiple values for a particular tag.  If you use ID3v2 tags we recommend using ID3v2.4, as that spec has an unambiguous value separator and Kodi does not have to parse the field.  Likewise Ape and FLAC are unambiguous so no need for Kodi parsing, unless you want to parse things like "feat." in the Artist tag.

If you use Artists, MBID Artist Id, and Sortartist and your tagging software uses the correct value separator and you have a one-to-one relationship in all three tags, then Kodi will properly add those without recourse to the Kodi separator value.

Note that in skin Estuary, when you go to media/music/"use artist sortnames" Estuary will sort correctly, but still displays the "regular name", not the sort name.

scott s.
.
Reply

Logout Mark Read Team Forum Stats Members Help
Artist sort order and multiple artists appears to behave incorrectly0
This forum uses Lukasz Tkacz MyBB addons.