How does the "shuffle" feature in audio players work?

I have quite a lot of songs from several genres downloaded on my pc and I regularly listen to it using an audio player. What I've noticed several times though is that when "shuffle" is enabled, the same handful of songs keep repeating themselves over and over again, even on different days and after rebooting the program or such. What's even more strange is that when I use a different audio player, e.g. VLC media player or Groove Music or perhaps the default player on Android phones, they do the exact same thing, but with slightly different songs. Due to this shitty system I barely hear the other 90% of the songs I have downloaded and it truly is a shame.

Can Jow Forums please explain this to me and/or perhaps recommend me a player that doesn't do this?

Attached: tumblr_p35sqkqJ1j1whvmheo1_1280.png (1200x889, 1.14M)

Other urls found in this thread:

lifehacker.com/why-itunes-shuffle-isnt-random-and-how-to-fix-it-5929611
twitter.com/SFWRedditGifs

It just shuffles the list of songs you fucking moron.

cute feet

True shuffle id do like this
1. assign all songs a number (theyre already listed in an array, so just use that)
2. get.random 0 - n
3.repeat
too easy

if i wanted the illusion of shuffle
1. assign a listen count to each song. bonus you can cross check this against retention
2. essentially do above but assign it so that popular songs get a larger number range

but remember in some players there was a slider for how random you want your shuffle? I couldn't tell you whether it was a program like winamp/sonique, or a player like ipod, but there was a setting and I'd just max it.

player.play(musicList[Math.Random(1, musicList.length)])

Some players just rearrange the whole playlist before playing them top to bottom. iTunes and Youtube does this.
lifehacker.com/why-itunes-shuffle-isnt-random-and-how-to-fix-it-5929611
A good implementation of shuffle is that on Winamp. It just randomly jumps around the playlist and avoids repetition by keeping already played tracks in memory.

Still doesn't excuse how I don't hear 9/10 of the songs I have and that the 1/10 keeps repeating itself.
Thanks, I'll try it out. I hope I don't encounter the same problem. Do you have a recommendation for Android?
I'll try to see what I can do with this

It chooses an random song, you either have few songs or its not very random

1. Create an array of song IDs (0, 1, 2, 3 etc)
2. Shuffle it. (3, 1, 2, 0 etc)
3. Get the next song id from this array (array[0] == 3).
4. Shuffle again when at the end of the array.

It never shuffles it again

What do you mean?

Don't you have a "random but don't repeat" button? I think even Winamp has two buttons to set that up.

Most players I have encountered base have predictable randomness since you can go back and fourth multiple and still end up on the same tracks.

Bet they just do track ID+randomnumber modulo trackcount

iTunes had that iirc.

Note that putting "more randomness" actually removed randomness and added rules to hide what humans like OP perceive as "it's not random" like two similar tracks following each other.

>I'll try to see what I can do with this
youd need to make your own music player (actually easy) to implement these, were giving you code examples

play(tracks[rand()%numtracks]);
or
srand(42);
play(tracks[rand()%numtracks]);
can cause this behavior ie. randomseed is initialized with value which causes this kinda behavior.

To undo this programmers need to keep track of listened tracks too and check if song has been played before then do the shuffle first something like.

while(!listened(song)) song = tracks[rand()%numtracks];
play(song);

>assign a listen count to each song. bonus you can cross check this against retention
why nobody does that? I have 5k or so tracks, and it's same fucking songs every time. fuck foobar shuffle.

idk, i do. i made my own player

works well? no unexpected results? no constant repeats?

well yes, it has several shuffle modes. It was a side project in my first term. I obviously didnt write the audio part of it, but the interface, shuffle algorithm and web support were done by me. That reminds me, i have to look into the deezer api...

Shuffle SHOULD randomize the playlist.
Some players just do get.random 0 - playlist.length after every song while on random, which means you're just as likely to get any song next.
This is actually Random, not Shuffle.

That's actual Shuffle.

>why nobody does that? I have 5k or so tracks, and it's same fucking songs every time. fuck foobar shuffle.
That's Random. Foobar's Shuffle shuffles the whole playlist. You won't hear repeats unless you mess with the playback (changing to a song out of order manually, closing the player and opening it again, etc)

this has actually been complained about before
ITunes' shuffle feature selects songs that haven't been played recently so it feels more random, or so I've heard

their shuffle re shuffles similarly. that's the problem. it needs one more variables like time spent listening, number of plays etc.
I don't know how much resources it would grab, but I don't care

>their shuffle re shuffles similarly.
The shuffle is random.
Randumb.

but random option is worse than shuffle, it gets more repeats.

Okay, you're just dumb.
Try logging what songs are played after the playlist is shuffled.

Most players will repeated the shuffled order until its reshuffled or the player is restarted, as opposed to shuffling again once the end of the array has been reached

OP here. In case I left out important details. I have about 3K tracks and experience this issue. Let's keep things simple and say I have songs A, B, C, D and E. I shuffle my playlist and only hear the specific songs A and B, for example. Even when I reshuffle or restart the player, I still hear A and B, and rarely C, but no D and E. It's something like that. The songs I hear are the same, not going by genre or whatever, it's actually the same handful of songs that repeat themselves over and over again. Meanwhile I still have more than 2K songs left that are to be unheard.

Addition: I've been trying out Winamp, and at the very least I'm hearing songs I haven't heard in a long time for the few hours I've used it so far.

What no one itt seems to understand is that OP has over 9000 weeb songs that all sound exactly the same, so it's impossible for a human to know which songs have been played and which songs haven't.

oh wow, winamp is alive again, what's next? second coming of FAR reader or whatever was it called

Attached: a0e9d7b98e1ab59ae3f5198c6f781.gif (639x400, 20K)

lmao, good one user, actually made me smile
Have to disappoint you that there are quite a lot of different genres however