PDA

View Full Version : Compilations, Non-compilations and album/track/guest artists



JJZolx
2007-06-12, 15:46
Compilation (and non-compilation) behavior in SlimServer is still somewhat unsettled. I thought maybe I'd start a thread in which we can discuss it and come to some consensus on the expected behavior in SlimServer - both in the library database and in the web and remote interfaces where applicable.

With a little luck, maybe someone at SD can form the results into a functional specification and develop some sort of test suite that all releases must pass before being released.

Ben Sandee
2007-06-12, 16:08
On 6/12/07, JJZolx <JJZolx.2s375b1181688601 (AT) no-mx (DOT) forums.slimdevices.com>
wrote:
>
>
> Compilation (and non-compilation) behavior in SlimServer is still
> somewhat unsettled. I thought maybe I'd start a thread in which we can
> discuss it and come to some consensus on the expected behavior in
> SlimServer - both in the library database and in the web and remote
> interfaces where applicable.
>
> With a little luck, maybe someone at SD can form the results into a
> functional specification and develop some sort of test suite that all
> releases must pass before being released.


Works good for me in 6.5.2+.

Ben

JJZolx
2007-06-12, 16:13
Works good for me in 6.5.2+

Works for a lot of people. Doesn't work for a lot of others.

Ian_F
2007-06-12, 16:17
Works for a lot of people. Doesn't work for a lot of others.

How about starting off the discussion with what you like and don't like about it? It'll give us something to focus on. :)

JJZolx
2007-06-12, 16:27
Ok, first things first: What is a compilation (and what is not)?

Needless to say, this is critical. To use the tagging information in files and groups of files (albums) to decide whether an album is a compilation or a non-compilation. Get that part right and the rest should be fairly straightforward.

(BTW, in the database I notice that the 'compilation' marking of an album has three states - true, false, and NULL. Bad design. When SlimServer is done marking compilations, it should (no, it MUST) know whether an album is a compilation or not. There can be _no_ "maybe".)

The tags that affect the decision:

ARTIST
ALBUMARTIST (or two-word ALBUM ARTIST)
BAND
COMPILATION

And their id3v2 equivalents. There's no id3v2 tag equivalent to ALBUMARTIST, but a TXXX tag of ALBUMARTIST appears to be recognized by SlimServer.

I think most everyone agrees that the COMPILATION tag should only be necessary in unusual cases. For the most part, SlimServer should be able to correctly figure out whether an album is a compilation without it.

Logically, the COMPILATION tag should be used to _override_ the other decision making factors. But I'm betting there are cases where this doesn't work. So we can save that discussion for later...

A compilation album is basically an album with:

Different tracks by different sets of ARTISTs. I say different "sets" because tracks can have more than one ARTIST per track, but if the tracks all have the same (two, three, etc.) artists then it's a non-compilation.

How does ALBUMARTIST affect this? I propose that: If an album is tagged with an ALBUMARTIST, then the album should be a non-compilation. Example (from my library):

ALBUM=Brazil Classics 2: O Samba

TRACKNUMBER=1
TITLE=A Deusa Dos Orixás
ARTIST=Clara Nunes
ALBUMARTIST=David Byrne

TRACKNUMBER=5
TITLE=Formosa
ARTIST=Ciro Monteiro
ALBUMARTIST=David Byrne

Without the ALBUMARTIST tag, this would be a compilation. What artist should be displayed in the "by" line for this album? The ALBUMARTIST, David Byrne. These albums should not be grouped with compilations under the catch-all 'Various Artists' pseudo-artist.

Ben Sandee
2007-06-12, 16:41
On 6/12/07, JJZolx <JJZolx.2s38az1181690101 (AT) no-mx (DOT) forums.slimdevices.com>
wrote:
>
>
> Ben Sandee;208499 Wrote:
> > Works good for me in 6.5.2+
>
> Works for a lot of people. Doesn't work for a lot of others.


Yes, so I voiced my experience.

Ben

JJZolx
2007-06-12, 17:03
Now, how about 'guest' artists? Guest artists are almost by definition going to appear on non-compilations. But at first glance, SlimServer will tag the album as a compilation because the ARTIST sets are going to differ among the tracks. You might have the same one ARTIST on every track, but if track #3 has a second artist, then the compilation flag is raised.

How can these albums be seen as non-compilations? It either requires an ALBUMARTIST tag or else an explicit COMPILATION=0 (false) tag. Who gets the 'by' line? Without an ALBUMARITST it's going to have to be every artist that appears on the album. Say you have the Frank Sinatra album 'Duets', and you've marked tracks with an explicit COMPILATION=0, but no ALBUMARTIST. There are thirteen different guest artists appearing on the album, so you'd get a by line of 'Frank Sinatra, Luther Vandross, Aretha Franklin, Barbra Sreisand, etc.' Where would it get grouped in an artist list? That conglomerate of artists would become an implied albumartist unto itself and get a spot in the artist list. So you almost _have_ to tag these albums with an ALBUMARTIST to have any sense made out of them.

slimkid
2007-06-12, 17:08
...Without the ALBUMARTIST tag, this would be a compilation. What artist should be displayed in the "by" line for this album? The ALBUMARTIST, David Byrne. These albums should not be grouped with compilations under the catch-all 'Various Artists' pseudo-artist.

Good. What about the situation where non compilation album has ALBUMARTIST populated? I'd like to have a choice to display it 'by' albumartist or 'by' original artist. If forcing COMPILATION tag one way or another would influence this, that'd be OK. In my experience, there are very few situations where I'd like album listed under 'Various Artists'.

K

JJZolx
2007-06-12, 17:34
Good. What about the situation where non compilation album has ALBUMARTIST populated? I'd like to have a choice to display it 'by' albumartist or 'by' original artist. If forcing COMPILATION tag one way or another would influence this, that'd be OK. In my experience, there are very few situations where I'd like album listed under 'Various Artists'.

That's what the pref "Group compilation albums together" is for. I've stated elsewhere that the wording of this option never made any sense to me, because it's more about about if/where _artists_ are listed than about where the albums are listed. What this preference really does is work to suppress (or not) track artists without complete albums. (Let's call them "track-only" artists). This would include not only artists that appear on compilations, but those on non-compilations, such as the guest artists described in a previous post.

In your case, you would choose not to suppress track-only artists. Then every artist appearing anywhere, on both compilations and non-compilations would appear in your artist list.

A stickier scenario would be the compilation album with an ALBUMARTIST. If this is even possible - it would have to be decided whether the COMPILATION tag can override an album seen as a non-compilation by virtue of the ALBUMARTIST tag. Where it would appear in a album list (i.e. where it would be sorted) when the list is ordered by artist seems somewhat conflicting. Maybe you just don't allow this situation?

MelonMonkey
2007-06-12, 19:36
Too much talk.

The current implementation, when it works, is fine. But to put things down simply:

The following assumes the same ALBUM title for all tracks, so we're not discussing Slim's ability to identify that the tracks belong together in one volume.

1. COMPILATION tag set to YES (rest of tags make no difference) = album is a compilation

2. No Compilation tag (null), all tracks exactly the same artist = NOT compilation

3. Compilation set to NO (rest of tags make no difference) = album is NOT a compilation

4. No Compilation tag (null), all or some tracks different artist = album is a compilation

5. No compilation tag (null) or compilation set to NO *AND* ALBUMARTIST specified and identical for all tracks = album NOT a compilation and is listed under the ALBUMARTIST

6. Compilation tag set to YES *AND* ALBUMARTIST specified and identical for all tracks = album is a compilation and should likely be listed under ALBUM ARTIST. The track artist listing rule comes from the current compilation prefs.

Personally I don't mind if it's mandatory to specify the compilation tag for compilation albums, but I understand a lot of people rely on some server-side guessing to make this conclusion currently, so I wouldn't recommend breaking this if it's already in place.

JJZolx
2007-06-13, 10:58
Too much talk.

The current implementation, when it works, is fine.

You're right, thanks for the concise approach. :)

Something to think about... We're essentially talking about three different aspects of the implementation. They are:

1. Classification of an album as either a compilation or non-compilation.

2. Determining, for presentation (and search?) purposes who the album is "by". In my opinion, this should be independant of any user preferences. It's based solely on whether the album is recognized as a compilation and the contributor/album roles.

3. Sorting, grouping and suppression of artist and/or albums in relation to the current user preferences.



The following assumes the same ALBUM title for all tracks, so we're not discussing Slim's ability to identify that the tracks belong together in one volume.
Right, that's a separate subject, maybe for another thread.


1. COMPILATION tag set to YES (rest of tags make no difference) = album is a compilation

I'm fine with that.


2. No Compilation tag (null), all tracks exactly the same artist = NOT compilation

Correct. Probably the most common case.


3. Compilation set to NO (rest of tags make no difference) = album is NOT a compilation

This is fine, but it only addresses the album's compilation status.

When the ARTISTs on tracks are different, there's still the issue of determining who we say the album is by. When an ALBUMARTIST is specified (which is your #5), we can use the ALBUMARTIST. Without one, then the album artist becomes the combined list of every artist on the album. It could be just one, or it could be many. If someone claims that they don't want to see a bunch of artists listed for the album, then tell them they've either mistakenly set COMPILATION to NO or else they need to specify an ALBUMARTIST.


4. No Compilation tag (null), all or some tracks different artist = album is a compilation

Correct. You might add that this only when no ALBUMARTIST is specified. With an ALBUMARTIST, it becomes #5.


5. No compilation tag (null) or compilation set to NO *AND* ALBUMARTIST specified and identical for all tracks = album NOT a compilation and is listed under the ALBUMARTIST

Correct.


6. Compilation tag set to YES *AND* ALBUMARTIST specified and identical for all tracks = album is a compilation and should likely be listed under ALBUM ARTIST. The track artist listing rule comes from the current compilation prefs.

This is good. I think that's the correct approach - the album should be listed under the album artist when viewing an album list sorted by artist.

With cases #3 and #5 (non-compilation albums) we have the issue of what to do with individual track artists. See bug 5108 (http://bugs.slimdevices.com/show_bug.cgi?id=5108). The 'group compilations' pref in the current implementation only applies to the artists found on compilations. So if you have a track-only artist on one of these albums that you've marked COMPLIATION=NO, you'd most likely want these artists excluded from the arists list.


Personally I don't mind if it's mandatory to specify the compilation tag for compilation albums, but I understand a lot of people rely on some server-side guessing to make this conclusion currently, so I wouldn't recommend breaking this if it's already in place.
Yeah, a mandatory tagging requirement would be bad. It would break a lot of libraries and require way too much work for many people who just want to listen to music.

As far as the classification of albums as either compilations or non, I think SlimServer may currently follow the above logic.

There are some cases where tagging data can conflict, such as if only one track were marked COMPILATION=YES or if not every track on an album has an ALBUMARTIST specified. The behavior in cases like that can go either way and isn't particularly important, IMO, as any album tagged like this should be considered mis-tagged.

The use of ALBUMARTIST tag, and the use of prefs for sorting/display purposes is still in need of work, though.

JJZolx
2007-06-13, 11:12
Then there's the use of the BAND (TPE2) tag. I'm not 100% certain what it's intended to do, but from what I've gathered it simply makes BAND a synonym for ALBUMARTIST. So if this is enabled, then the above logic would work the same when tracks are tagged using BAND instead of ALBUMARTIST. I'm guessing that one of (or maybe the only) reason for this pref is the lack of a native frame in id3v2 tags for ALBUMARTIST.

Like the 'grouping' pref, this is once again listed under the COMPILATIONS heading on SlimServer's Server Settings > Behavior page. And again, using the logic above, it should apply equally to non-compilations. Also, if that's the only use of the pref, the wording should probably be something simpler, like 'Use BAND as equivalent of ALBUMARTIST'.