"Various Artists" album artist
#1
The compilation logic for Kodi says that if there is an album artist (TPE2) present in the mp3 tags then the album will not have the compilation flag set. However, on MusicBrainz all compilations seem to have an album artist of "Various Artists". This means that any compilation albums tagged using MusicBrainz Picard, or if compilation albums are scraped whilst the "Prefer online information" option is checked, will not get flagged as compilations because they will have the album artist set to "Various Artists".

Shouldn't there be an exception in the logic for "Various Artist" album artists?
Reply
#2
Actually, I think this how the code is set up:
Code:
/*
     We have a compilation if
     1. album name is non-empty AND
     2a. no tracks overlap OR
     2b. all tracks are marked as part of compilation AND
     3a. a unique primary artist is specified as "various" or "various artists" OR
     3b. we have at least two primary artists and no album artist specified.
     */

so Various Artists as the first (primary) album artist creates a compilation. What maybe isn't clear in the Wiki is this code:
Code:
// get primary artist
      string primary;
      if (!song->albumArtist.empty())
      {
        primary = song->albumArtist[0];
        hasAlbumArtist = true;
      }
      else if (!song->artist.empty())
        primary = song->artist[0];

Wiki seems to imply "primary artist" is taken from "artist" tag, but the way I read this code is first it looks at album artist and uses the first album artist as primary artist, and only if there is no album artist does it look at the artist tag. Believe this was added back in Jan 2013 for Gotham.

scott s.
.
Reply
#3
This is the code which Kodi uses to determine whether the compilation flag should be set.
Code:
/*
     We have a compilation if
     1. album name is non-empty AND
     2a. no tracks overlap OR
     2b. all tracks are marked as part of compilation AND
     3a. a unique primary artist is specified as "various" or "various artists" OR
     3b. we have at least two primary artists and no album artist specified.
     */
    bool compilation = !songsByAlbumName->first.empty() && (isCompilation || !tracksOverlap); // 1+2b+2a
    if (artists.size() == 1)
    {
      string artist = artists.begin()->first; StringUtils::ToLower(artist);
      if (!StringUtils::EqualsNoCase(artist, "various") &&
          !StringUtils::EqualsNoCase(artist, "various artists")) // 3a
        compilation = false;
    }
    else if (hasAlbumArtist) // 3b
      compilation = false;

The problem is that the majority of these compilation albums will result in a false for both rule 3a and 3b. This is because they all have more than one primary artist (TPE1), since each individual track is usually tagged with the artist responsible for the track, and they all have an album artist tag (TPE2) specified as "Various Artists".

The logic should really be:

Code:
3a. a unique primary artist is specified as "various" or "various artists" OR
3b. we have at least two primary artists and no album artist specified OR
3c. we have at least two primary artists and the album artist is specified as "various or "various artists".
Reply
#4
That code is only used for cases where files don't have musicbrainz idConfused, in the case where they have they will bypass that part of the code and trust the tags from the files.

In the case of picard tagged VA albums, it sets the TCMP tag and kodi picks that up and treats it as a compilation. So what happens then is that the album is classified as a compilation but filed under "various artists".

I see one problem in where you have enabled prefer online information, since it seems the scraper (atleast the universal one) doesn't set the compilation flag to true for these albums.
Reply
#5
(2015-08-20, 13:51)evilhamster Wrote: That code is only used for cases where files don't have musicbrainz idConfused, in the case where they have they will bypass that part of the code and trust the tags from the files.

In the case of picard tagged VA albums, it sets the TCMP tag and kodi picks that up and treats it as a compilation. So what happens then is that the album is classified as a compilation but filed under "various artists".

I see one problem in where you have enabled prefer online information, since it seems the scraper (atleast the universal one) doesn't set the compilation flag to true for these albums.

I see what you mean. As it turns out I only have a couple V.A. albums with album MBID and wasn't using any in my test music source. From the code, besides TCMP Kodi will read COMPILATION in APE and FLAC (Ogg) tags, and cpil in MP4 tags.

Also it looks like if there is a V.A. album with compilation 0 (songs have album MBID but missing the tag) then you will get "Various Artists" in library/music/artists when "include compilation artists" is not set in settings.

scott s.
.
Reply

Logout Mark Read Team Forum Stats Members Help
"Various Artists" album artist0