>> With LMS configured to use two separate lists for Album Artists and All 
>> Artists, I can't achieve the equivalent of the "show band in artists" option 
>> of the old Browse Artists mode.
>
>Just before I go and revert the removal of some related preference: does 
>it still work when using the old browse mode with only one list?
>
Yes.

>> Possible solution proposed: At scan time, ensure "Album Artist" contributor 
>> roles are assigned to albums not defined with an album artist.  We can then 
>> more simplistically use "ALBUMARTIST" role to get the same effect as the 
>> built-in "Album Artists" browse mode, and add other contributor roles as 
>> required.
>>
>> Note: could then also eliminate ARTIST - just have ALBUMARTIST and 
>> TRACKARTIST roles.
>
>This totally makes sense. Unfortunately I fear this would be opening up 
>a can of worms (just in case I didn't open that one yet :-)). There 
>might be a considerable risk to break lots of other cases. I haven't 
>investigated all of the code for this yet. It's just a gut feeling I 
>have. Fed by the lack of time to attack such changes now...
>
Yeah, I thought you would say that ;-)

I don't see much issue with the first phase of change though - just to assign 
one (or more) album artists per album at scan time instead of artist 
contributor role.  Adding additional album artists won't break anything, as we 
know that albums with album artist tags are handled like this okay.

The logic to decide the artists for an album must currently exist whilst 
browsing album artists (logic to use album artist role for the album, or if 
there isn't one, use Artist role).  Just need to add this as a post-scan 
calculation, or at the same time as the logic that assigs Album Artist = 
Various Artists for auto-detected compilation albums.

Everything else could wait - potentially redundant code could be removed and 
browse code optimised a lot better, but everything should work.

To test the theory, I had a go at updating my library, to convert 
contributor_album artists to album artists, and contributor_track artists to 
track artists, where they are associated with regular albums:

update contributor_track
       set role=6
where role=1 and track in (
      select t.id
      from tracks as t      
      join albums as a on t.album = a.id
      where a.compilation <> 1 and contributor_track.[track] = t.id 
);

update contributor_album
       set role=5
where role=1 and album in (
      select a.id
      from albums as a
      where compilation <> 1 and contributor_album.[album] = a.id 
);

I had one issue with an album that was defined by a cue sheet (as it had the 
album and the .cue file in the database, and this album had both artist and 
album artist roles somehow), so I deleted the artist roles for that album.

I had some tracks that incorrectly had an album artist defined, where the 
tracks didn't belong to an album (thus appeared in "No Album").  This caused a 
similar issue as it resulted in both artist and album artist roles, so the 
update statement couldn't work (would create duplicate records), and thus 
deleted the album artist roles for those tracks.

I have had a good browse around having made this update, and everything seems 
fine. I can browse "album artists and bands" to get the same results as the 
original single artists browese list.

Note: I was cautious with compilations, as I thought the scanner used to create 
an album artist = various artists automatically, but LMS 7.9 doesn't seem to do 
that now (or at least not displayed when browsing a compilation album).  But I 
think this sql update will also be fine with Album Artist + Track Artist roles 
(instead of artist roles).  Will try tomorrow if it helps?

So, as a frig for now, I'll run these statements after a rescan, but if the 
scanner could create album artist + track artist roles for each album, there 
should not be any knock on effect to browsing the library.

Phil
_______________________________________________
beta mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/beta

Reply via email to