Computer: Algorithm
Statistical MP3 player   (+10, -1)  [vote for, against]
Play tracks according to dynamically generated scorefiles, not static playlists

Instead of playing just the tracks in your playlist, why not let your mp3 player know about *all* of your available music, rank it according to preference, and only play the top (for example) 20% of tracks 80% of the time? This could easily be done using a nonuniform random number generator to select the next track, it seems... Of course, you'd want different scorefiles for listening to different kinds of music, as well. Eventually, after a period of use, one might even be able to learn what tracks "go together", and use that knowledge for generating new scorefiles.
-- washort, Aug 16 2000

Launch.com http://www.launch.com
[bookworm, Aug 16 2000, last modified Oct 04 2004]

NetPerceptions http://www.netperceptions.com
Analysis software that could do this [vegemite, Aug 16 2000, last modified Oct 04 2004]

Cymbaline http://freshmeat.net/projects/cymbaline/
This MP3 player does just what you describe. [PurpleBob, Aug 16 2000, last modified Oct 04 2004]

GJay http://gjay.sourceforge.net
Makes playlists from song "color," freq. and BPM [yarnball, Sep 12 2002, last modified Oct 04 2004]

Last FM http://www.last.fm/
Free streaming radio that learns what you like and suggests songs [nelso, Oct 04 2004]

If you were using only top 20% of files, wouldn't the top songs keep raising their rating, and disable others from playing completely?
-- danilom, Sep 13 2000


Launch.com does something like this, although it adds an annoying GroupLens-like effect as well, and only has more popular stuff available.
-- bookworm, Sep 13 2000


I had a very similar idea earlier when working on my AI research (top secret and hush hush so no asking!) and my idea was this:

If you select a particular song to be played it gets 1 "preference point" so to speak.. and this is used to determine the songs to be played. You can select playing songs from the top OR bottom percent, point range, song count, etc.
-- ironfroggy, Sep 29 2000


Would you not then be in danger of homogenising your playlist? Select a few tracks that you like and then the available playlist will be based on those, and future iteratins of the process will simply extrapolate those choices -- you'd end up with a playlist of all the same kind of stuff; thus eliminating any possibility of randomness and of experiencing different forms of music. Much like the popular music charts, really...
-- csjasona, Jan 26 2001


It could randomly play a less preferred song, or it might have a playlist template (like a real radio station) that defines ranges of preference--so the player plays three tracks you like, one you don't like so much, two more you like, and one that's OK but you haven't heard in forever.

It could also note which songs have played recently and temporarily reduce their preference score so as to not play them again too soon. Those temporary preference scores might not be reset until all tracks have played, so the popular tracks' scores gradually drift lower.

And of course you should still have the option of jumping around your playlist willy-nilly.
-- markfox, Jan 26 2001


I worked on a project that went one further than this - by analying playlists (and/or library/purchase data) from many many many other listeners, you could perform (arbitrarily sophisticated) cluster analysis on the playlists (using your favorite diy mathematics toolkit, or NetPerceptions, or Andromedia or whatever). (Most of the commercial tools don't do a sufficiently good analysis job, nor do they run to completion in reasonable time frames.)

Then, if you listen to three or four songs, based on this broader analysis, the system could recommend more songs that you'd probably like to hear.

The recommended songs could be filtered based on what's actually in your collection. Or the system could go out and napster/gnutella get the songs you might like.

This works poorly when you only do an insular analsis on a single user's playlist - there's not enough data to do real inference. (we built this and it sucked)

This also works poorly when you only do superficial analysis of the songs based on "category" or "type". This leads to all sorts of bad inferences, since all [jazz|pop|punk|rap|rock|whatever] is not alike. (we tried it and it sucked)

You can get real cross-category recommendations that actually have a high probability of being correct.

We also implemented a scoring system for feedback so that a user could score the quality of a recommendation, both on an absolute scale, as well as relative to the previous song (e.g. Guns and Roses might be good, but not juxtaposed with the BeeGees).

Finally, it's not hard to see how the crassly commercial (my client, in this case) could use such a system to make recommendations for music to purchase. (does anyone actually purchase music these days??)
-- vegemite, Jun 08 2001


This is baked by the MP3 player Cymbaline (see link).
-- PurpleBob, Oct 22 2001



random, halfbakery