Rate MP3 songs and create playlists based on ratings
rateplay is a Perl script using the POE framework, a Gtk GUI and
the musicus (xmms-based) MP3 player.
rateplay plays MP3s in two different phases: The training phase and the play phase. During training, it randomly plays songs from a collection and asks the user for ratings on two criteria: The energize and the schmoop level. It stores these ratings persistently in an SQLite database (automatic setup, no fiddling required).
During the play phase, it lets the user select acceptable energize and schmoop levels and randomly plays songs matching these criteria.
What are energize and schmoop? The energize level of a song describes how fast a song is and how much energy the song emits on a scale from 1 to 5. The schmoop level, on the other end, describes how schmoopie a song is. If you're a Seinfeld fan, you'll know what schmoopie is ("You're schmoopie! No, you're schmoopie!"), for the rest of the world it's the softness of a song, the in-certain-situations-playability.
It's a personal call, but I would rate "Thunderstruck" by AC/DC at an energize level of 5 und a schmoop level of 1. On the other end of the scale, "Don't Know Why" by Norah Jones would probably get an energize level of 1 and a schmoop level of 5.
Your mileage might vary, but I think it shows the concept. This double-rating allows for useful playlist requirements later on, like "play fast songs, but none that drive my boy/girlfriend away" with allowed energize levels of 4-5 and schmoop levels 3-5.
Or, "play titles for my bachelor party", with allowed energize levels of 3-5 and schmoop levels 1-3.
Stable Release (05/01/2004)
Please send bugs reports or requests for enhancements to the author: firstname.lastname@example.org
Mike Schilli <email@example.com>, 2004