-
-
Notifications
You must be signed in to change notification settings - Fork 799
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Normalise album playcount sorting by amount of tracks #1032
Comments
Another approach is to multiply plays by song length, i.e. "total time spent listening to album X" |
Yes, that's also viable. A property called playcount in an album object should reflect "how often has this album been played" better than just the sum of it song plays. It would be a bit of a compromise, because I don't want the annoying audiobooks in there at all.. But maybe this requires another solution (multiple libraries/musicfolders f.e.) |
Arguably that would still benefit long albums (a 240-minute 3CD album played 10 times would be higher than a 35-minute album played 68 times), but at least it would show correctly how you have actually spent your time listening. I do like the concept of configurable "library sections", which would essentially be smart playlists/filters: |
This gets complicated if for example I listen to three songs in a row:
How many plays should the Queen's album playCount be increased by? In my opinion it should be 2 and not one. I think this logic should be a bit smarter, by not incrementing an album's playCount if you listen to the album songs in sequence (shuffled or not). Once you interrupt the album and listen to something else, it "resets" this behaviour. Thoughts?
I like this idea, but should be a different attribute, not |
I think that @metalheim 's suggestion is that the album playCount should increase by 2/12 = 0.167 We would get "half" playcounts (ie playCount in the album table won't be an integer), but intuitively that makes sense - if you listen to half the songs of an album, the play count should be 0.5. |
Yes, that's my suggestion. It's questionable how subsonic clients would handle a non-integer play count though But even doing this and applying rounding (read: cast to int) would already be better than whatvwe currently have imho |
Just to be clear: I also don't like the current behaviour, but I'm not sure if what you are proposing is a good solution. Picture this: I have the The Cure Disintegration Deluxe Edition, a triple album with rarities and a live show. I love that album and I frequently listen to the first disc (the original content), but rarely listen to the live show or the rarities. With the approach you are proposing I would have to listen to it three times for it to be count as one play.... I personally don't like it. I think you are trying to store two different informations into one field. My suggestion is to have two separated album fields:
These metadata will of course be available for Smart Playlists. And having Multiple Music Folders in the (hopefully) near future, or even with smart playlists, you will be able to separate your audiobooks from music, AFAICS the main motivation for you to open this issue. |
Yes, overnight I thought about that same problem, I have a lot of "Deluxe Editions" with CD1 being the normal album and CD2 being instrumentals, which I rarely listen to, causing the same issues as your "rareties". Your solution 1. for And yes, my problem with audiobooks can be solved other ways eventually :) |
With playlist and "radio" based listening, 1. will make album statistics pretty meaningless. Playing one song from an album 10x (because it's in a playlist, smart playlist, last.fm-popularity-based "library radio") will increase the album count by 10, playing ten songs from the album will increase the count by 1. That doesn't seem right. |
I'm more in favor of @metalheim initial solution (ratio of played album tracks count/album tracks count). @deluan solution 1 is interesting, but let's say you create a playlist which randomize an artist albums. There's a probability that some albums will be played more than once, but not in a continuous way. Should you consider it another solution 2 is interesting too but I think it will favor long length album over smaller ones, which kind of fail (imho) the purpose of representing a "most played album". |
This issue has been automatically marked as stale because it has not had recent activity. The resources of the Navidrome team are limited, and so we are asking for your help. |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Closes #1032 * feat(album_repository.go): add kodi-style album playcount option - #1032 Signed-off-by: Victor van der Veen <vvdveen@gmail.com> * fix format issue and remove reference to kodi (now normalized) Signed-off-by: Victor van der Veen <vvdveen@gmail.com> * reduced complexity but added rounding Signed-off-by: Victor van der Veen <vvdveen@gmail.com> * Use constants for AlbumPlayCountMode values --------- Signed-off-by: Victor van der Veen <vvdveen@gmail.com> Co-authored-by: Deluan <deluan@navidrome.org>
Is your feature request related to a problem? Please describe.
When I query the Subsonic
getAlbumList2
bytype=frequent
, I am supposed to get returned my albums with the most plays.In reality, I get returned the longest Albums that I ever heard (usually Audiobooks).
An Audiobook i listened to once with 120 tracks will show before a 10-track Album that I listened to 10 times. So IMHO, its biased falsely to long Albums.
Describe the solution you'd like
I'd like the sorting at this endpoint to be normalized/weighted by songCount This way the
To be fair, I listened to that audiobook for more, so technically the current implementation is correct. But from a user perspective, I want to find Albums that I actually listened to multiple times (because they were good and I want to find them again).
That is of course a change up for discussion, maybe there is a good reason to prefer the current implementation
The text was updated successfully, but these errors were encountered: