This is one of the ways that I know I'm a geek. When I put my music onto Random Repeat, I often find myself musing on how that might actually be implemented to strike a balance between randomness and getting a balance between the songs that you hear. It's like this.
First song is easy. I pick a random song from the list, call it A, and play it.
Now I have to pick another song, and here's where the options come in. I can just repeat the first step. However, that would give us the possibility that we'd just play A again, which would be a bit dull. So, I assume that I don't want to pick the same song twice and I pick a random song from [playlist - A] - call it B.
Now in my ideal implementation, you could just iterate over that. It does contain a tiny possibility of playing ABABABAB for infinity (or indeed ABBA :) ), but it's much closer to what I intuitively think of when I think random repeat should do. What actually seems to happen though in nearly all my devices is that when I get to the end of B, the device picks another track from [playlist - AB] and iterates over this until [playlist - songs played] is empty. Then it starts again, possibly with the constraint that A cannot be the same as Z (the last song played in the previous round). Which just seems ... less random to me. Still, it's a pleasant way to while away the time while you're waiting for the bus or whatever. I wonder what my iRiver will do...
First song is easy. I pick a random song from the list, call it A, and play it.
Now I have to pick another song, and here's where the options come in. I can just repeat the first step. However, that would give us the possibility that we'd just play A again, which would be a bit dull. So, I assume that I don't want to pick the same song twice and I pick a random song from [playlist - A] - call it B.
Now in my ideal implementation, you could just iterate over that. It does contain a tiny possibility of playing ABABABAB for infinity (or indeed ABBA :) ), but it's much closer to what I intuitively think of when I think random repeat should do. What actually seems to happen though in nearly all my devices is that when I get to the end of B, the device picks another track from [playlist - AB] and iterates over this until [playlist - songs played] is empty. Then it starts again, possibly with the constraint that A cannot be the same as Z (the last song played in the previous round). Which just seems ... less random to me. Still, it's a pleasant way to while away the time while you're waiting for the bus or whatever. I wonder what my iRiver will do...
no subject
Date: January 9th, 2004 06:47 am (UTC)From:Of course, it's not actually random then, except that at each stage, you'd be drawing from some distribution to chose a track. But you could do some neat things like increasing the probability of picking tracks with a similar mood or tempo, if you mark up your tracks accordingly.
Erm, there's also at least one paper I've seen presented recently that has something to do with picking tracks and artists and organising that kind of database, but I can't find a link to it at the moment :-( There's active academic research into track-choosing, though! There are also things like HPDJ which are even more clever, though may well require a bit more computation than the iriver could manage.
no subject
Date: January 9th, 2004 08:47 am (UTC)From: