amperfy icon indicating copy to clipboard operation
amperfy copied to clipboard

[Improvement]: Context independent previous songs list

Open sandersantema opened this issue 2 years ago • 2 comments

Currently the list of previous songs gets wiped when a context switch happens, this seems illogical given that a context switch doesn't change the songs which I've played previously. Therefore I propose the list of previous songs should be independent from the current context.

A problem which came to mind immediately is that the list of previous songs shouldn't be allowed to grow indefinitely, although this might already be solved somehow but I don't know since I wasn't able to find the previous songs list code. But I think the best solution here is to choose an arbitrary size limit which should ideally be large enough a user won't care for any songs beyond the limit but not so large that it would have a performance penalty. I suppose @BLeeEZ will know what that size is.

sandersantema avatar May 04 '22 14:05 sandersantema

Currently Previous are all songs in current context queue which are placed before the currently playing song. From my point of view a curated list of previous played songs are quite confusing in addition to context queue, user queue and repeat all (which starts at the first song at the first song from "Previous").

BLeeEZ avatar May 05 '22 07:05 BLeeEZ

Maybe it would be better to treat the Previous song list as a immutable history, so it would really only contain the songs which have been played by the user and would not be user editable. What might things less confusing furthermore is to base the repeat-all function on contexts i.e. it only repeats the current context not previous user-queued songs etc. This is also how it works in Spotify I believe.

What would need to be determined is how the context will then need to be replayed and how to store the order in which a context was played. I suppose the order could be rebuilt from the Previous list if you know which context a song belongs too and whether it was user queued (and should therefore not be replayed) or alternatively if possible to determine whether a context was played randomly and if not recreate the order from a saved seed.

But given that these major changes would be needed it might be better to leave this for another time or keep the current system.

sandersantema avatar May 08 '22 12:05 sandersantema