## UYKFD Description

From: andrew cooke <andrew@...>

Date: Fri, 5 Feb 2010 09:13:16 -0300

I just posted this at reddit -
- and thought I might as well copy it here (UYKFD, the program I am
referring to is here - http://code.google.com/p/uykfd/ )

i wrote a program that generates playlists from related artists and
configured it so that the list slowly "drifts" over time. i use that
to generate lists of music that i then upload to my mp3 player.

for example the list i've been listening to recently was generated by
starting with a certain ratio (my music collection covers a lot of
years). it starts with the cure, joy division, echo + the bunnymen.
that drifts to siouxsie, the lsits, bikini kill. then sonic youth,
animal collective, xiu xiu, the national, the strokes, beta band,
dinosaur jr. later the foals, linertines, jamie t. a bit later still
it moves to some portuguese stuff (barao vermelho, os mutantes,
gilverto gil). then, via tom ze, to more experimental stuff (ground
zero, praxis) before returning to more listenable jazz (gianluca
petrella, astro can caravan, miles davis), back to slightly more odd
stuff (art zoyd, fred frith) then zappa, the mars volta, jane's
addicition, alan parsons project, genesis (oldies but goodies!),
police, supertramp. mellowing out with grateful dead, jimi hendrix.
after that it seems to decide to follow male vocalists - john cale,
jeff buckely, nick cave, elvis costell, david byrne....

i listed all that to show how it manages to cover a nice range of
music without sounding like it's on random play - the tracks that
follow each other usually sound pretty related (not always, because
the software only "knows" about artists, not individual tracks - given
an artist, tracks are selected at random).

it works out who is related to who using last fm tags. because these
can be almost anything it sometimes finds quite unusual connections.

although i am really happy with this, and the software is available
rough around the edges; (2) extremely slow (takes a day on my quad
core to generate the graphs necessary); (3) a bit nasty to get running
(written in scala, uses mysql as a db) and (4) i don't want to put
effort into supporting it. but if anyone is intersted and smart enough
to get it working themselves, feel free to google it out and give it a
go.

ps i generate a pile of lists on hard disk and then have a script that
copies a couple of lists to the mp3 player (along with the playlists).
i can get 2 or 3 playlsists (200 tracks each) on my 8Gb player (fairly
high bitrate mp3s) and that's several hundred different albums (but
only a few tracks from each). the main drawback with listening to the
mp3 player is that if you like something you can't go listen to other
music by the same person. but if i'm at home playing form hard disk
(with squeeze server) that's not a problem of course.