>If we want a small quick fix for 7.6, it would be possible to just
>change the default name used in the setting from "Various Artists" to
>"Compilations" and that should minimize the risk for collisions, and we
>can later in 7.6++ do the bigger change.
>
That will however mean that when albums are auto-detected as compilations, the 
album artist would be set to "Compilations" instead of "Various Artist".  i.e. 
there is I think an underlying problem that the setting defining the name for 
compilations is used for two separate things; name of the special artist entry 
used for displaying a list of compilations (irrespective of the album artist 
name on each compilation), and also used for the name given as the album artist 
when making an album a compilation.

If the special entry name was hard-coded (via a localised string) to 
"Compilations", this would reduce confusion.

>Of course, even easier would be to just ask the users that have problem
>to change the setting to "Compilations" and instead focus on the real
>solution in 7.6++.
Which is what users do, and the conclusion I came to with bug report 9523.

> I suspect this is what we will end up with for 7.6
>as there are other a lot more serious problems with higher priority
>which needs to be solved before this.
>
Yes.

>Assuming everyone agrees, what's the next step ?
Make a patch, and try it out.  Prey that a patch attached to the bug report 
would be applied sometime this century.  I can't see that happening - will be 
hard to convince a logitech developer.

>I'm guessing no one from Logitech monitors this thread ?
I don't think there's many developers left in Logitech that monitor any thread 
:-(


I think the query to get the list of artists, avoiding logic that looks at 
album compilation property could be:

SELECT distinct c.*
FROM contributors c
  join (
    select contributor from contributor_album where role in (2,4,5) 
    union
    select contributor from albums
  ) ca on ca.contributor = c.id
order by c.namesort

The "union select contributor from albums" would not be needed if there was a 
contributor_album entry for every album, and thus would then be simplified to:

SELECT distinct c.*
FROM contributors c
  join contributor_album ca on c.id = ca.contributor and ca.role in (2,4,5)
order by c.namesort

NB:
role 5=album artist, other roles included where wanted. e.g. 2 = composer, 
4=band.

This will currently bring back any composer or band, even if they appear only 
on one track of an album.  But the scanner could be changed to only add these 
roles to contributor_album if they were on all songs (same as deciding not to 
include track artists in the contributor_albums link table).

Change the query from contributor_album to contributor_track if all artists are 
required.


>And the one for the "Various Artists" entry sorted under "V" looks like
>this: (this entry only exists as long as there isn't a collision)
>
>Code:
>--------------------
>    
>  SELECT album.* FROM albums 
>       JOIN contributor_album ON contributor_album.album = albums.id 
>       JOIN contributors ON contributors.id = albums.contributor 
>  WHERE 
>       contributor_album.contributor = 7 AND 
>       contributor_album.role IN (1,6,5) 
>  GROUP BY albums.id 
>  ORDER BY albums.titlesort

There doesn't appear to be any need for the join to contributors in this query 
(but I guess would be needed for labelling if album artist names were to be 
displayed (eg. if choosing to sort by "artist,album", but would then need to 
increase columns returned from the query).

Written optimised/clearer:

SELECT albums.*
FROM albums
  JOIN contributor_album ON contributor_album.album = albums.id and role IN ( 
<whatever roles you want to show> )
WHERE
  contributor_album.contributor = <chosen artist id>
GROUP BY albums.id
ORDER BY albums.titlesort
_______________________________________________
ripping mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/ripping

Reply via email to