dweymouth / supersonic

A lightweight and full-featured cross-platform desktop client for self-hosted music servers
GNU General Public License v3.0
877 stars 45 forks source link

Load and save queue from/to server #337

Closed Programie closed 5 months ago

Programie commented 7 months ago

I'm using multiple devices on which I mostly want to continue listening my currently active playlist/queue from the previous device. For example, I'm listening to something on my computer and want to continue listening to it on my smartphone.

Subsonic has an API for exactly that use-case:

Maybe using that API could also be implemented in Supersonic. Probably configurable by the user (maybe not everyone wants to sync the queue).

dweymouth commented 7 months ago

This should be possible. Should it be default and automatic? (ie should the "save play queue" setting always load/save the queue to the server instead of locally). Wondering if it needs to be a configuration option or not.

Programie commented 6 months ago

In my case I want it to be automatic, but I'm not sure whether everyone wants to use that feature. So I will leave it up to you whether it should be configurable or not.

Other applications using that server feature have an option to enable it. For example, the Android app Tempo supports that and allows the user to configure it.

SnipeXandrej commented 6 months ago

I don't see why someone wouldn't like their current queue/currently playing track/position of that playing track to be restored when closing and reopening supersonic or when opening supersonic on a completely different device.

In my opinion it should be enabled by default, as I think it's objectively better user experience for the vast majority of users. I think it's waaay more annoying when the queue gets lost, rather than the queue restoring back.

And as for the configuration... I was thinking of using the existing "Save play queue on exit" option, but if the server doesn't support those APIs, it will just save the queue locally, but if the server supports saving/loading the queue to/from the server, then it will save/load the queue to/from the server. And instead of saving the queue only on exit, I would probably change that to make the queue save periodically.

I am thinking this could also be used to sync the current queue/track position between clients. This could be useful when if you want to change the track's position from other device (that's not currently the device that music plays from), that change will sync to another device that is currently playing music to some speakers or something. But this is just an idea of mine, probably out of scope for the current issue we are discussing.

Programie commented 6 months ago

I don't see why someone wouldn't like their current queue/currently playing track/position of that playing track to be restored when closing and reopening supersonic or when opening supersonic on a completely different device.

Maybe there are some users which don't want to use a centralized playlist for all their devices. Maybe some users have a specific playlist for music on the road and another playlist for music at home. Therefore, I would give the user the freedom to choose whatever fits their use-case. In my case, I can live without the choice because I would always enable the sync feature to keep my playlists in-sync.

dweymouth commented 6 months ago

I think making it configurable will be the best option:

image