Last weekend, we were driving back from the Exploratorium, and were listening to the iPod in shuffle mode most of the time. As expected, it gave us a delightful selection to listen to: Stan Freberg (“There’ll Never Be Another War”, the Civil War version as opposed to the WWI reprise); a 10-second snippet of Katamari music; the title song from Rhinoceros Tap; two different Jewlia Eisenberg songs (one in her Charming Hostess incarnation, another as Red Pocket); some Herbert Grönemeyer (whom Miranda has turned into a fan of recently); Bernstein’s “The President Jefferson Sunday Luncheon Party March”; a portion of Mathis der Maler; some Andrews Sisters; a bit from Striking 12 that we skipped over since we’d listened to it on the drive up; and a few more pieces that I’ve forgotten. Hard to imagine a better way to spend a car ride.
And then, on Thursday, I was taking Miranda to daycare; what should the iPod decide to give me but “There’ll Never Be Another War”? Hmm, that’s a bit of a coincidence – which version of the song is it? Ah, “brother won’t fight brother”, Civil War again. Still, coincidences happen. After that same snippet of Katamari music, though, I was rather more suspicious, and “Rhinoceros Tap” sealed the deal. Though I did, after dropping Miranda off, fast-forward through fourteen songs and verify that we’d listened to all of them on our recent drive.
There are about 1200 songs in the iPod right now; clearly this is not a coincidence. I’d suspected problems like this in the past, but this was the first time that I’d gathered such compelling evidence. I guess they don’t bother to use a decent algorithm for picking new seeds for their random number generator? Which kind of boggles the mind – the device has a clock in it, so they can just use the current time as a seed! Not necessarily the only thing you’d want to use as a seed – I can imagine the clock dying, in which case you wouldn’t want shuffle to always return the same thing – but whatever they’re doing now sure isn’t good enough.
Maybe they keep a persistent seed which gets reset to zero when you reset the iPod? (Hopefully not when you just sync it, that would be too stupid for words.) And then gets bumped up each time you do some specific action (enter shuffle mode, maybe)? Because I do have to reset my iPod a few times a week; given that I only add or remove (non-podcast) songs once or twice a month, that could be a reason why I’m running into this particular problem.
Sigh.
Post Revisions:
There are no revisions for this post.
Wann ist denn man ein Mann?
Is the iPod’s shuffle algorithm secret? Why would it be? It doesn’t seem like the kind of thing where some incredibly inventive algorithm would provide competitive advantage.
8/12/2007 @ 10:27 am
It seems to be secret, yes; I doubt Apple seriously believes that it’s a competitive advantage, but they’re a secretive company, they don’t open source their products unless they have to (as far as I am aware), and I guess they’re not in the habit of letting people know this sort of individual technical detail. (None of which is particularly uncommon.)
8/12/2007 @ 1:13 pm
Yes, Apple is quite secretive, but they do some open source projects, most notably Darwin and WebKit.
I can see that with 1,200 songs having a faulty shuffle could be quite irritating. Is there a way to force it to reshuffle?
8/14/2007 @ 3:40 pm
They’re GCC and (to a lesser extent) GDB contributors, too, but there they have less of a choice. Not sure what license WebKit is under.
Yes, you can force it to reshuffle: just hit “Shuffle Songs” again. So it’s manageable: if I tell it to shuffle and if I think I’ve heard the first song recently, I just keep trying until I get something new.
8/14/2007 @ 3:44 pm