epoupon / lms

Lightweight Music Server. Access your self-hosted music using a web interface.
http://lms-demo.poupon.dev
GNU General Public License v3.0
1.09k stars 61 forks source link

Implicit album artists #521

Closed splintering closed 3 weeks ago

splintering commented 3 weeks ago

This might be more like a question. Our discussion and me thinking a lot about compilations and various artists today brought me to another point:

If an album has multiple track artists but no album artist set in the tags, then the LMS UI will show the album artist as "Various artists", and that only as a string, you cannot click on it and see all albums of this kind. Through the OS API, the album artist is set as a comma-separated list of the track artists; but no artistID is sent on the album level. Also the artists role remains "artist" (if they are not albumartist elsewhere). Clients will not show the artists as album artists then.

If an album has the same track artist though (but no album artist set), the behavior is different. The artist will appear as album artist in the UI, and on the OS API the album has an artistID, plus the artists gets promoted to the role "albumartist".

Given the history of ID3 tags, this might be the expected behavior, because the albumartist was not there from the beginning and had to be deduced from the artist tag back then. On the other hand, there is now no possibility to not promote a (singular) track artist to an album artist - except for deliberately setting a different album artist on such an album.

Maybe the use case is too slim, and also breaks too many existing preconceptions. But I could imagine a case like "Ferrari presents: Music for long drives", where all songs are performed by John Doe, but I neither want him nor Ferrari to show up in my list of album artists, because neither really is...

Too far fetched?

epoupon commented 3 weeks ago

For the UI, lms will try to display the album artists, and only fallback on track artists if no album artists are set.

This the same for the "artist" field of the Subsonic API. But this is a legacy field, the new OS API "artists" field should only contain album artists. And similarly, the new OS API roles should only reflect the tags, no track artist should be promoted as album artist. Is that what you observe?

splintering commented 3 weeks ago

Yes, partially. The album artist field is filled, but the role remains correct. Example:

These are the tags (it is manually tagged). No album artist in there.

grafik

This is how it shows in the UI:

grafik

This is what the API returns for the album:

grafik

And for the artist (seems correct, no promotion):

grafik

I guess Symfonium interprets the presence of the artist in the album as them being an album artist, despite them not having the albumartist role. Maybe @Tolriq can coment on that, but it seems correct client behaviour to me.

Tolriq commented 3 weeks ago

If an album have the artist field filled then yes it's the album artist.

The new OS fields are extending the answer they do not replace the previous fields, so clients can and will fallback specially as nearly no server properly handle multiple artists.

epoupon commented 3 weeks ago

Yes, partially. The album artist field is filled, but the role remains correct. Example:

These are the tags (it is manually tagged). No album artist in there.

grafik

This is how it shows in the UI:

grafik

This is what the API returns for the album:

grafik

And for the artist (seems correct, no promotion):

grafik

I guess Symfonium interprets the presence of the artist in the album as them being an album artist, despite them not having the albumartist role. Maybe @Tolriq can coment on that, but it seems correct client behaviour to me.

In the subsonic response, we can see there is no reported album artist in artists, so for me it is correct as it is now.

splintering commented 3 weeks ago

no reported album artist in artists

But there is an artist reported in album, and more importantly (I think) also an artistID - albeit there is no album artist set in the tags. As Tolriq confirmed this makes the artist an album artist from client perspective.

Wouldn't it be technically more correct to set no artist in album? But that is the point where it probably breaks backwards compatibility, because on single artist albums people might not always have the album artist tag set.

epoupon commented 3 weeks ago

For me, this is a kind of best effort album artist. If the client really wants to know if there are real album artists, there are "artists" and roles for that, thanks to OS initiative.

splintering commented 3 weeks ago

Fair enough. Thanks.