tinyjo: (laden coal creature)
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...

Date: January 9th, 2004 05:08 am (UTC)From: [identity profile] soulsong.livejournal.com
You are so beautifully geeky :)

Date: January 9th, 2004 06:05 am (UTC)From: [identity profile] coalescent.livejournal.com
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.

And it doesn't do this randomly, either. At least, my stereo doesn't. A few months after I first got it, I spent a morning generating random sequences and comparing them. Given 5 12-track album with 100 or so sequences generated from each, the percentage distribution for the first track played was something like:

1 15%
2 5%
3 5%
4 5%
5 5%
6 20%
7 15%
8 5%
9 5%
10 10%
11 5%
12 5%

(numbers not exact because I'm going from memory here. Point is, it wasn't random.)

I always meant to do a more thorough analysis of the full sequences (particularly because I'm almost sure that there's some kind of 'if the previous track is 7, the next track is more likely to be 2' effect going on), or at least give the dataset to someone who was capable of doing so, but I never got around to it...

Date: January 9th, 2004 06:17 am (UTC)From: [identity profile] shepline.livejournal.com
You've thought about that way too much! Must be a Friday... ;)

So you're getting an iRiver then?

Date: January 9th, 2004 06:47 am (UTC)From: [identity profile] elleblue.livejournal.com
Maybe what you want is some kind of markov chain, so that the probability of picking a given song next is conditioned last song (or n songs) played previously.

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.

Profile

tinyjo: (Default)
Emptied of expectation. Relax.

June 2020

S M T W T F S
 1 23456
78910111213
14151617181920
21222324252627
282930    

Most Popular Tags

Expand Cut Tags

No cut tags
Page generated January 18th, 2026 04:10 pm
Powered by Dreamwidth Studios

Style Credit