• danekrae@lemmy.world
    link
    fedilink
    arrow-up
    42
    arrow-down
    1
    ·
    22 days ago

    It’s been years since I dabbled with programming, but how hard can it be for these music app developers to make a random list of your songs, and pop every played song from the list until it’s empty and then repeat.

    • ExLisper@lemmy.curiana.net
      link
      fedilink
      arrow-up
      21
      arrow-down
      2
      ·
      22 days ago

      I remember reading decades ago how music player devs would implement proper random playback and people would complain that it’s not really random because it played the same song second time soon after the first. So the devs had to change it and make it less random…

      • BeelzebubEiNukuKoskaan@piefed.social
        link
        fedilink
        English
        arrow-up
        9
        ·
        22 days ago

        Thats why some players have “random” and “shuffle”.

        Random is truly random, it might play the same two songs multiple times back to back. Highly unlikely, but it might.

        Shuffle has a thing built in that avoids a song if it has been played within X amount of time or plays. Some shuffles might have other criteria as well.

      • grue@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        22 days ago

        The algorithm the grandparent comment suggests is equally random. It’s just that it’s a random sequence rather than a random selection.

      • atomicbocks@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        2
        ·
        22 days ago

        I remember reading this about the iPod, where they programed it to not play the same artist multiple times in a row or within certain number of songs of each other.

    • Wirlocke@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      9
      ·
      22 days ago

      You wouldn’t even need to pop songs off the list, just shuffle, go through the playlist, shuffle then restart the playlist.

      But the music app developers aren’t trying to give you true randomness. They’re using machine learning algorithms to try and guess what you really want.

      Nothing does what it says it does anymore, everything’s trying to second guess you. I hate it.

      • binarytobis@lemmy.world
        link
        fedilink
        arrow-up
        5
        ·
        edit-2
        22 days ago

        Actually it’s worse. Spotify will explicitly tell you when you randomize your liked songs list that they play bands who pay for the privilege more often.

    • Zarobi@aussie.zone
      link
      fedilink
      English
      arrow-up
      2
      ·
      22 days ago
      def getNextShuffle(songs):
          return random.choice(songs)
      

      Vs

      def getNextShuffle(songs):
          randList = random.sample(songs, k=len(songs))
          for song in randList:
              yield song
      

      Didn’t include persisting it to storage for brevity. Only tricky part would be detecting when the source playlist changes and how to handle that. Personally I’d just append any new songs to a random position in the unplayed portion, while removal is obviously simple

    • jballs@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      22 days ago

      This dude (famous for “do you guys not have phones?”) actually has a pretty good YouTube series on interesting ways to tackle programming challenges. He’s got one on randomness that I thought was pretty cool: https://youtu.be/2anY9ICA-Pg