Bug 318089

Summary: Compilations with album artist shown as "Various Artists"
Product: [Applications] amarok Reporter: Knut Krause <knut.krause>
Component: Collection BrowserAssignee: Amarok Developers <amarok-bugs-dist>
Status: RESOLVED FIXED    
Severity: normal CC: matej, piedro.kulman, ralf-engels
Priority: NOR    
Version: 2.7.0   
Target Milestone: 2.8   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In: 2.8
Sentry Crash Report:

Description Knut Krause 2013-04-09 14:13:32 UTC
If an album is tagges as compilation it is shown as "Various Artists" even if the album has a proper album artist set.

According to https://en.wikipedia.org/wiki/Compilation_album "A compilation album is an album (music or spoken-word) featuring tracks from one or more performers, often culled from a variety of sources (such as studio albums, live albums, singles, demos and outtakes.)".

So I think the current behaviour is a bug in amarok since those compilations should be shown as "Albumartist" and not as "Various Artists".

Reproducible: Always

Steps to Reproduce:
1. Import a compilation with a proper albumartist.
Actual Results:  
The compilation is shown as "Various Artsits"

Expected Results:  
The compilation should be shown as the given albumartist.
Comment 1 Myriam Schweingruber 2013-04-09 14:44:43 UTC
Changing description and component.

As gathered on IRC, the album is marked as a compilation.
Comment 2 Matěj Laitl 2013-04-09 15:07:36 UTC
(In reply to comment #0)
> According to https://en.wikipedia.org/wiki/Compilation_album "A compilation
> album is an album (music or spoken-word) featuring tracks from one or more
> performers, often culled from a variety of sources (such as studio albums,
> live albums, singles, demos and outtakes.)".

I agree with such definition.

> If an album is tagged as compilation it is shown as "Various Artists" even
> if the album has a proper album artist set.

But I don't agree with this definition of "tagged as compilation". You're probably confused by the fact we've named the internal XML tag as "compilation". We should have probably named it "showUnderVariousArtists". Also note that many formats including mp3 don't have such official tag, Amarok uses semi-official iTunes TCMP flag.

> So I think the current behaviour is a bug in amarok since those compilations
> should be shown as "Albumartist" and not as "Various Artists".

No, these albums just shouldn't have the "showUnderVariousArtists" flag. The "showUnderVariousArtists" is the only way Amarok can persistently mark certain albums as being shown under Various Artists. You are in fact asking us to remove the support for marking certain albums to be shown under Various Artists.

You should just run a mass-tagger and clear format-specific showUnderVariousArtists flag for files you don't want to show under Various Artists.
Comment 3 Knut Krause 2013-04-09 15:28:45 UTC
I confirmed iTunes behaviour with a "wrong" album. iTunes displays it as album artist. So I think the correct way to handle it is still:

compilation && albumartist == "Various Artsits" > VA
compilation && albumartist != "Various Artists" > albumartist

So I think if you need to keep the amarok db in sync with the files the best way is propably to introduce the "showAsVA" tag and not to use the TCMP tag in a way it shouldn't.

Picard and iTunes use the TCMP tag AFAIK just to mark compilations which clearly don't have to be VA.
Comment 4 Matěj Laitl 2013-04-09 15:35:03 UTC
(In reply to comment #3)
> I confirmed iTunes behaviour with a "wrong" album. iTunes displays it as
> album artist. So I think the correct way to handle it is still:
> 
> compilation && albumartist == "Various Artsits" > VA
> compilation && albumartist != "Various Artists" > albumartist

In other words, you just request us to ignore the compilation flag? (note that non-compilation albums with different album and track artists work fine)
Comment 5 Knut Krause 2013-04-09 18:53:53 UTC
Hm … basically I'd say yes. At least of the album has an album artist set (and I choose my collection tree to display the albumartist on top level) I'd think the album has to appear as album atist and not VA.
Comment 6 Matěj Laitl 2013-04-10 16:26:55 UTC
What about this behaviour:

 a) Album Artist is empty/not set
 `- a1) is_compilation flag is set -> Show under V/A
 `- a2) is_compilation is clear/unspecified -> Assume album artist is same as track artist
 b) Album artist is "Various Artists" or a localised version of it: -> Show under V/A
 c) else: Show under Album Artist

Where is_compilation is read from tags such as TCMP. If these are not set, heuristics like "different track artists under one album in a directory" may set it.

Clicking "Don't Show Under V/A" would set is_compilation to false and clear Album Artist. Clicking "Show under V/A" would set the is_compilation flag and clear Album Artist (or set it to "Various Artists"?)
Comment 7 Myriam Schweingruber 2013-04-11 08:21:42 UTC
So this is actually a duplicate, it was just not that obvious from the description of the other one, which has now been updated to reflect the problem.

*** This bug has been marked as a duplicate of bug 313496 ***
Comment 8 Matěj Laitl 2013-04-11 13:01:23 UTC
(In reply to comment #7)
> So this is actually a duplicate, it was just not that obvious from the
> description of the other one, which has now been updated to reflect the
> problem.
> 
> *** This bug has been marked as a duplicate of bug 313496 ***

Hmm, hard to consider. The suggestion in comment 6 would solve the bug 313496, still the problem reported by the user is different from bug 313496. I'd rather keep both bugs open. (as this one contains some relevant info that bug 313496 does not)
Comment 9 Ralf Engels 2013-04-11 15:53:34 UTC
I've implemented something similar to Matěj's proposal.

One thing that I haven't considered is that an non-empty album artist in itself is already an information.
Amarok was trying to determine an album artist too hard. It almost always found one and then set the album to a non-compilation.

0aeb1fafb3469d772b601441b29cdc5cb20d3589 changes this behaviour.
I also upgraded the auto tests to reflect this.
Comment 10 Matěj Laitl 2013-04-11 16:01:22 UTC
(In reply to comment #9)
> I've implemented something similar to Matěj's proposal.
> 
> One thing that I haven't considered is that an non-empty album artist in
> itself is already an information.
> Amarok was trying to determine an album artist too hard. It almost always
> found one and then set the album to a non-compilation.
> 
> 0aeb1fafb3469d772b601441b29cdc5cb20d3589 changes this behaviour.
> I also upgraded the auto tests to reflect this.

Ugh, where can I find it? Doesn't seem to be commited to Amarok master. (and therefore the commit hook didn't fire) I would be a bit more happy if this ran through reviewboard, I might have something to add.
Comment 11 Ralf Engels 2013-04-11 23:10:39 UTC
commit 0aeb1fafb3469d772b601441b29cdc5cb20d3589
Author: Ralf Engels <ralf-engels@gmx.de>
Date:   Thu Feb 28 16:45:29 2013 +0100

We need to handle the collection scanner test driven.
First define the behaviour, then write the test and then the actual code.

In this case I think it clear that albums that don't have an album artist and different track artists should be handled as a compilation.

What do you want to add?
Comment 12 Matěj Laitl 2013-04-12 09:05:42 UTC
(In reply to comment #11)
> commit 0aeb1fafb3469d772b601441b29cdc5cb20d3589
> Author: Ralf Engels <ralf-engels@gmx.de>
> Date:   Thu Feb 28 16:45:29 2013 +0100

Oh, I'm very sorry, I thought that was supposed to be a new commit, now I see that it is already in for over a month. Please ignore my comment 10.

Knut, it is easy then, please test the current Amarok master (howto at [1]) and verify this bug is fixed for you.

[1] http://blogs.fsfe.org/myriam/2009/09/compiling-amarok-from-git-locally-full-summary/
Comment 13 Matěj Laitl 2013-04-12 12:09:11 UTC
(In reply to comment #11)
> commit 0aeb1fafb3469d772b601441b29cdc5cb20d3589
> Author: Ralf Engels <ralf-engels@gmx.de>
> Date:   Thu Feb 28 16:45:29 2013 +0100
> 
> We need to handle the collection scanner test driven.
> First define the behaviour, then write the test and then the actual code.
> 
> In this case I think it clear that albums that don't have an album artist
> and different track artists should be handled as a compilation.

Ralf, doesn't this resolve https://git.reviewboard.kde.org/r/104294/ ?
Comment 14 Matěj Laitl 2013-04-29 12:33:20 UTC
*** Bug 318628 has been marked as a duplicate of this bug. ***