Skip to main content
Trending Lyricist I
January 21, 2015

Request for feedback: Shuffle

  • January 21, 2015
  • 205 replies
  • 4494 views
Hello. My name is Ben Smith and I head up Product Management for Experience, Software, and Developer Programs at Sonos.

I wanted to get more feedback from you all on your expectations for Shuffling tracks in your queue. I have reviewed the feedback on ask.sonos.com and received e-mails from a few of you (via our CEO John MacFarlane), but I wanted to get a better sense from those of you who use Shuffle, how your really want it to work.

When you select shuffle what do you want to happen? What don't you want to happen?

Thanks!

Ben
    This topic has been closed for further comments. You can use the search bar to find a similar topic, or create a new one by clicking Create Topic at the top of the page.

    205 replies

    Lyricist III
    March 29, 2015
    this would work nicely
    Lyricist II
    March 29, 2015
    Ben / Sonos - thanks for asking - some of this may either repeat or contradict earlier responses and also extends beyond shuffle into the creation of playlists in the first place

    1) An album shuffle option within a playlist would be very welcome 
    2) Being able to create playlists based on tag criteria - year of release, when added, etc
    3) Do a much better job than iTunes does of creation of playlists - a la moodlogic - do a really good job of analysis of tempo and mood to create fascinating playlists from music libraries
    4) Shuffle to be mood/beat intelligent - i.e. take a set of tracks and combine them in a "pleasing" order - this to be an alternative to "random" as it can't be both
     
    Lyricist II
    March 29, 2015
    Oh and also, and really really important, be able to sort playlists by artist/track/original order/etc to find duplicates etc. Also ability to export/import as csv and xml
    Lyricist III
    March 29, 2015
    Ben. It's now been over 2 months and not one further update from sonos. I feel the thread was started to stop the community emailing your CEO direct. This is not a big technical challenge, and although I appreciate you probably have a backlog of functionality to meet your strategic roadmap, this could easily be added to a sprint and delivered. Please just give us Some feedback on next steps and timelines. I postponed selling all my kit on your initial request for suggestions, time to reconsider.
    Lyricist III
    April 1, 2015
    Agreed
    Lyricist III
    April 1, 2015
    Ben, 1 question. Why do you not have the "Official Rep" title like all the other Sonos employees? It certainly would add more weight to your question.

    Anyway, I think User500327 above sums it up the best.  New random order each time you play a list or press the random icon, shuffle albums, and (not as important to me) show the queue in the order it plays.


    Ben - any feedback/update please.
    Trending Lyricist I
    April 1, 2015
    I only have 1 requirement:
    A different random order of the songs is created each time I turn on random, or create a new queue. So if I turn random off and then on again, Sonos creates a new random order.  I would also expect Sonos to play the entire queue before playing a song a second time.  I personally don't care if Sonos generates a new random order when playing the queue again.

    Two desired features:

    1. Be able to ask that either albums or songs be randomized.  For albums, Sonos would generate a new random order of the albums in the queue, but then play all the songs in an album in order.  The randomized song method would be equivalent to the current offering (with a new random order of course).

    2. Show the queue in the order the songs will be played.  Currently the list is in the order added to the queue, and not the order the songs will be played it.  Others might prefer the current display.  Since I know Sonos doesn't want to make the interface complex, I would suggest a poll for which way the queue should be displayed.

    Thanks for asking


    It is trivially simple to implement a pseudo-random shuffle feature which covers the whole library and gives a different order each time it is used, or allows one to continue from where one left off. This should be implemented immediately and should gave been addressed years ago. I bought the system years ago believing it had what one would generally assume is meant by "shuffle feature" and it does not. It is unacceptable and should be sorted out. This asking for ideas business is a farce and an insult. Get the basic functionality fixed now and then, by all means, ask for ideas about how it might be enhanced.
    Contributor I
    April 1, 2015
    My opinion is that it should choose a random track (generated from a random number based off datetime.now) and then ensure it doesn't repeat a track until all tracks are played.... heres a c# class that would do the magic - you can keep it if you want :)

    class Shuffle{

     private List<track> playlist;
     private List<track> playedSongs = new List<track>();

       
     public shuffle(List<track> playlist){
            //initalises object and sets playlist
      this.playlist = playlist;
     }

     public track GetRandomTrack(){
            //gets the random track and adds it to the played songs
            //this is random in terms of a different order and not played before, if all songs have been played
            //it re-randomises it
      int randomTrackNumber = GetRandomTrackNumber();

      playedSongs.Add(randomTrackNumber);
      return playlist[randomTrackNumber];
     }

     private int GetRandomTrackNumber(){
            //gets the random track number
            List<int> unplayedmap = getUnplayedTrackMap();

            //if there isn't anything then everything has been played, reset the shuffle
            if(unplayedmap.Count == 0)
            {
                ResetSuffle();
                return GetRandomTrackNumber();
            }

            //gets the random unplayed track index to play and returns the actual track index
            int trackIndexToPlay = getRandomInt(0, unplayedmap.Count);
            return unplayedmap[trackIndexToPlay];
     }
        private void ResetSuffle()
        {
            //resets the shuffle by clearing what has been played
            playlist.Clear();
        }

         private int getRandomInt(int min, int max)
         {
             //generate a random in between the two values
            Random r = new Random();
            decimal next = (decimal)r.NextDouble();
            return (int)(min + (next * (min - max)));
         }

        private List<int> getUnplayedTrackMap()
        {
            //creates a list of unplayed tracks, it contains the index of the track in the playlist
            List<int> unplayed  = new List<int>();
      for(int trackIndex = 0; trackIndex < playlist.Count; trackIndex++)
            {
                if (!playedSongs.Contains(playlist[trackIndex])){
                    unplayed.Add(trackIndex);
                }
            }

            return unplayed;
     }

     }
    Trending Lyricist I
    April 1, 2015
    I just can't help wondering if anything at all is happening on this issue.
    Echoing Dave's recent post, and as I have said before, surely the way this should be handled would be to give us a basic shuffle (that works!) now, and then ask for comments about refinements?
    If Ben, (our man at SONOS) is really doing something about this facility, wouldn't you expect him to read the comments here and report back occasionally?
    The problem is, even given that Ben exists, how far down his list is this item?
    Lyricist III
    April 1, 2015
    Ditto - I don't think 'Ben' has reviewed any of these comments. If he had, he WOULD be proving an update. Back to emailing John CEO at CEO.sonos@sonos.com