Give me your tired, your hungry, your Various Artists

Colin Guthrie gmane at colin.guthr.ie
Sun Mar 21 14:32:00 UTC 2010


'Twas brillig, and Colin Guthrie at 20/03/10 14:58 did gyre and gimble:
> FWIW
> I've not tested my patch with the above in mind, so chances are, it will
> not work as I intend. I guess the hash for albums would need to be keyed
> on album name + album artist for this to work. Shouldn't be too hard to
> make it work that way tho' (and I'm guessing you'd need to do something
> similar for an album uuid approach anyway).

Looking at the code in ScanResultProcessor I see the albums hash does
not actually use genericId and is alreayd hashed on artist too \o/

I just did a little hacky fix for the collection browser on top of my
previous patch.

For me, everything is displaying as before, but with the additional
"album artist" metadata both read specifically if it exists and
heuristically defined as before (what this ultimately means for me right
now is that I can pass through my tags to my iPhone which is really what
started me off on this adventure :p)

As I explained previously, the reading in of the Album Artist metadata
caused my compilation albums to not be detected (as the current check
for isCompilation() relies on there *not* being an Album Aritst).

I fixed that up in this commit:
http://gitorious.org/~coling/amarok/colings-amarok/commit/2e986c07ac1b6daa7ec96c127cbc8d70d2c2af34

This is *not* intended for final merge - it's a proof of concept. Doing
the compilation detection at runtime is inefficient and I propose a
compilation flag in the albums table to solve this. By adding such a
flag, the current runtime code will remain more or less the same and the
logic to detect if an album is a compilation or not[1] can move to
ScanResultProcessor.

I don't want to code much more than this for now as it may not fit in
with the way you're going to work, but I figured this is a reasonable
proof of concept.

If you agree that a compilation field in the albums table is a good
idea, I'll implement that probably sometime this week. For that reason
consider the above git repository susceptible to rebasing (i.e. beware
if you clone it!)


Cheers

Col


1. The method of determining "isCompilation" is used to be:
 Compilation = !Has Album Artist

With the commit linked above it's now it's slightly more complicated.

 Compilation = !Has Album Artist OR (Has Tracks In Album Not By Album
Artist)




-- 

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
  Mandriva Linux Contributor [http://www.mandriva.com/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]




More information about the Amarok mailing list