dweymouth / supersonic

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

Shuffle the play queue ? #471

Open vicpa opened 2 weeks ago

vicpa commented 2 weeks ago

Really like the app- Thanks I am new so pardon if I am missing something One question is there a way to shuffle the play queue?

The one icon available on play bar has a tool tip "shuffle" but is generally is used for repeat. (see below) and seems to function that way. shuffle

Where should I be looking?

dweymouth commented 2 weeks ago

That tool tip is incorrect, it should say Repeat (and is fixed now on main). Currently there is no way to shuffle the queue after songs have been added, but you shuffle as you add them. I haven't implemented queue shuffling yet (#11) because I haven't figured out a good way to do it, considering all the edge cases of adding and removing songs from the queue while shuffle is enabled

dweymouth commented 2 weeks ago

BTW if anyone has ideas for how this should work (adding and removing from the queue while shuffle is enabled, then disabling shuffling, what should be the proper queue order) - feel free to add suggestions!

vicpa commented 2 weeks ago

To narrow it down The use case is add a couple of things to the queue. Have the tracks play in a random order. I know I said shuffle, but that implies changing the queue itself which isn't really a requirement.

One suggestion:

  1. So if the queue stays the same - logically the play next in the queue would be either "play next unplayed track" or pick a "Random Unplayed track" depending on the toggle.
  2. The queue stays the same adds, deletes etc., just adding or deleting unplayed tracks.
  3. Toggle off Shuffle/Random just uses "play next unplayed track". I suppose you can start from either the currently playing track, or the "first unplayed track depending on level of effort.
dweymouth commented 2 weeks ago

Some more thoughts on how this could work:

vicpa commented 2 weeks ago

Your logic sounds correct. Certainly, meets my use case.