![]() |
#1 |
Junior Member
Join Date: May 2005
Posts: 7
|
Large Playlist using shuffle, bug?
It seems to me (based on observation) that winamp v5.092 when using 'shuffle' mode, only shuffles the first 30k items in the list. I have a playlist with over 70k items, and if i just hit 'next' 100 times, NO items under around 30k play. I've tried turning the shuffle off and on again and also playing a song manually tward the bottom of the list then 'shuffling' to the next, but it seems to have no effect.
Can someone recreate this? (should be easy just add the same items over and over again till you have many more then 30k items in the list). If this is just some setting somewhere (perhapse a secret one!) please let me know. Thanks. |
![]() |
![]() |
![]() |
#2 |
Junior Member
Join Date: Jun 2005
Posts: 8
|
If my guess is correct the shuffle random will only handle upto 2^15 (32768) (15 bit).
Probably the programmers never anticipated the users are cabable of having 30000+ item playlists. Or this bit of code has survived since the WinAMP 2.x days ![]() My take on a solution would be a regular method. (Pseudo code follows) code: Where the random equals a number between 0-1. But I'm sure these guys are gonna fix it ![]() EDIT** I just remembered that the playlist has the ability to randomize the current playlist. Playlist -> Sort -> Randomize or Misc -> Sort -> Randomize. But that function might also be affected by the limitation as explained by Benski. Last edited by daniel_einstein; 10th June 2005 at 22:39. |
![]() |
![]() |
![]() |
#3 |
Junior Member
Join Date: May 2005
Posts: 7
|
Thanks for the technical explaination!
I'm sure they will fix it also, they have been very quick with other bug fixes. |
![]() |
![]() |
![]() |
#4 |
Ben Allison
Former Winamp Developer Join Date: Jan 2005
Location: Brooklyn, NY
Posts: 1,057
|
Daniel is correct. sort of.
The problem is that the standard C function only returns random numbers in the range from 0-32767) see: http://msdn.microsoft.com/library/de.../_CRT_rand.asp and note that: #define RAND_MAX 0x7fff There are good random number libraries available from std::boost, and some are going to be in the next C++ standard. Hopefully this will be fixed by the next version =) |
![]() |
![]() |
![]() |
#5 |
Junior Member
Join Date: Jun 2005
Posts: 8
|
On a side note, I don't think that the current implementation is truly random.
![]() Everyday example. I have 3721 tracks, 32 is christmas tracks (that's 0,86% of the playlist). How come I must listen to one or two of those tracks everyday ![]() Heh enough whining, now mayby this should go in the Bitch list. ![]() Ok, I talked myself into stepping away from the keyboard. CYA |
![]() |
![]() |
![]() |
|
Thread Tools | Search this Thread |
Display Modes | |
|
|