17-Nov-2009 10:09 PM
I've got a 5310, which is a lovely music-phone in spite of some serious music-related firmware problems (that can be worked around with a bit of effort). But I've recently noticed an issue that I've not found a workaround for and that is seriously making me think I need to consider a new phone.
I've noticed that the random shuffle isn't as random as it should be. My playlists are about 800 songs organised in alphabetical order of artist, and I am getting far far more songs playing by artists starting with the letters ABC than with the letters XYZ. I am sure it hasn't always done this, but it certainly is now. And it's annoying me.
To test it, I played a playlist and wrote down the numbers of the first 50 tracks. If I group these into bands then they are as follows:
tracks numbered 1-50 played 13 times
tracks numbered 51-100 played 3 times
tracks numbered 101-200 played 7 times
tracks numbered 201-300 played 5 times
tracks numbered 301-400 played 4 times
tracks numbered 401-500 played 4 times
tracks numbered 501-600 played 5 times
tracks numbered 601-700 played 6 times
tracks numbered 701-800 played 3 times
This is consistent if I redo it, and clearly something is wrong.
Interestingly, of the 13 tracks numbered between 1 and 50, 11 of them had a track number equal to the ordinal sequence number (i.e the 39th track played was track 39 in the playlist). This implies the shuffle algorithm takes an ordered list and applies some random swaps (but in this case not enough swaps, or not good enough swaps). It could be a firmware issue, or it could be a hardware issue with whatever seeds the the underlying PRNG.
I was wondering if other people could repeat my experiment to see if it happens on other 5310s, and if it happens on other Nokia music-capable phones.
I'd be very interested to know if this is a wider problem (and, if it isn't, which other phones do better that I may consider as a replacement).
Thanks, in advance, to anyone willing to do this.
Andy
22-Nov-2009 05:21 PM
OK, if any of you are interested (and I accept most of you aren't but maybe there is someone who is!) here is the current status of investigating the problem and identifying a solution...
Initial observation: In a playlist of 800 tracks (from a total of 6200 tracks on the SD card), if I play the playlist on "random shuffle" then approximately 10 of the first 50 tracks played will have their position in the shuffle play equal to their position in the unshuffled list. So a shuffled playlist is actually 20% unshuffled. This is very consistent, and is way more than would be expected from statistical coincidence (unless, of course, the shuffle algorithm isn't a very good one in which case it is exactly what would be expected).This means in a playlist of (say) 1970s rock tracks, I'll get loads of ACDC at the start and very little UFO. If my phone would stay working long enough to get to the end of the playlist then at the end of the playlist I'd get a lot of UFO and not much ACDC. However, 800 tracks is (say) 3200 minutes, which is 53 hours of playing time, which at my rate of playing means I need to get through more than 3 weeks without the phone white-screening and resetting itself, and this isn't my experience of Nokia firmware.
Assumption 1: the problem is due to the size of the playlist (i.e. a fixed amount of shuffling is being done, before the playlist is played, and some tracks are being missed if there are too many to shuffle - this is particularly plausible as the phone "white-screens" while preparing to play the playlist (but recovers without doing a full reset as long as the playlist is less than around 1200 in size - any more than that and it does do a full reset)).
Testing this assumption: In a playlist of 20 tracks (from the same 6200 tracks), if I play the playlist on "random shuffle" then approximately 4 of the 20 tracks played will have their position in the shuffle play equal to their position in the unshuffled list. This matches the 20% observed in the initial observation. It is consistent, and is way more than would be expected from statistical coincidence. Assumption rejected.
Assumption 2: this is due to the number of tracks in total (this is plausible as most of my 5310 problems started when the number of tracks went past 4096 (2 to the power 12)).
Testing this assumption: In a playlist of 935 tracks (from a total of 935 tracks on a different SD card), if I play the playlist on "random shuffle" then approximately 10 of the first 50 tracks played will have their position in the shuffle play equal to their position in the unshuffled list. This is again consistent, and is again way more than would be expected from statistical coincidence. Assumption rejected.
Assumption 3: this is due to my 5310 being in some way dodgy.
Testing this assumption: I need someone else with a 5310 to shuffle-play a playlist and write down the order in which tracks were played. I've shown above it actually doesn't really matter how big the playlist is.
Assumption 4: this is due to all 5310s (or all S40-based music-phones (or all Nokia music-phones)) being in some way dodgy.
Testing this assumption: I need someone else with a different phone to shuffle-play a playlist and write down the order in which tracks were played. I've shown above it doesn't seem really to matter how big the playlist is.
So I've got as far as I can without some help from someone else. Anyone out there willing to lend a hand to the investigation? Thanks in advance if anyone is, but I appreciate it's fairly obscure.
Now for some possible solutions:
I can't misuse the "genre" field in the ID3 tag to impose some randomness of my own, as I use mainly WMA files and my phone only sees the genre tag on MP3 files... which seems pretty poor for a music phone (but at least these days it can get to the end of a track without crashing, which is more than it could consistently manage when the firmware that was on when I first got it!)
So the only thing I can think of doing is to misuse the "Artist" and "Title" tag field. A playlist is sorted by artist (if you add to it using artist name, which is the easiest way) and within each artist by track title. So if I:
Problems with this are:
The only other solution I can think of at the moment is to stop caring and accept I'll hear some tracks less often than others.
If you've got this far and have any ideas, comments, or experiences from other phones, then I'd be pleased to hear them.
Ta very much
Andy
23-Nov-2009 02:51 AM
24-Nov-2009 12:51 AM
I do find this topic interesting, and I thank you for the elaborate explanation...
I guess I may do a test some time... although I'm happier now not knowing there is a problem ;-)
I have some 850 tracks on my memory card, and most of the time I use "all songs" + random.
BTW, as far as I know, the playlists, when created in Nokia Music Manager (NMM), are simple text files in the M3U format, stored in the data folder of your NMM. I suppose that it should be possible to randomly reorder such a M3U file with some trickery on the computer... then transfer a bunch of randomized playlists to the phone, et voila, problem solved?
24-Nov-2009 01:14 AM
ok, so I set my phone to random play, then loaded a little playlist of 35 songs (out of 840). I only listened to each song for a second, and pressed "next". This is the list of first 50 songs played.
17
33
1
11
34
28
23
24
6
27
12
25
21
14
5
16
4
19
9
31
18
15
32
10
7
26
29
22
3
2
8
13
30
20
35
2
4
11
17
18
10
13
8
12
23
30
1
32
14
19
Songs 14, 16, 26 and 35 are played at "their own position" during the first 35 songs. In the next loop, 8 and 14 are at (35+8)th and (35+14)th position
Well, that was only 1 tests... it's 2 AM here so bed time.
24-Nov-2009 01:28 AM
oh, bummer... another test then... Playing All Songs (838) with random shuffling, here the first 60
1 695 99 4 833 6 619 603 449 607 323 38 582 809 213 732 17 351 448 685 533 355 822 86 510 26 768 208 715 298 268 592 593 306 35 709 365 612 3 325 598 42 187 238 288 627 299 402 5 83 440 373 348 54 370 750 460 55 604 60
I underlined the songs playing at "their own position". I didn't tally them in groups though. It really is bed time ;-)
24-Nov-2009 01:30 AM
24-Nov-2009 04:48 PM
BTW, as far as I know, the playlists, when created in Nokia Music Manager (NMM), are simple text files in the M3U format, stored in the data folder of your NMM. I suppose that it should be possible to randomly reorder such a M3U file with some trickery on the computer... then transfer a bunch of randomized playlists to the phone, et voila, problem solved?
Thanks for delaying your bedtime and doing some tests! ![]()
This looks interesting. I generate my playlists on the phone itself, and I can't find anywhere where the resulting playlists are stored (which is why I assume S40 doesn't give me access to that level of detail). I'll investigate other ways of creating playlists to see if I can get any M3U files in visible places that I can manipulate with a bit of programming.
Andy