Author: Ygg

I've been in search of the perfect Smart Playlist / Auto-Playlist for years. The idea is to play highly rated music more often, and to balance playing of familiar tracks with a healthy rotation of my entire library. Grab a cup of coffee, this gets involved Smiley

My rating is "exponential," ie. half of my music is rated 2 (fillers) but only half a percent at 5 (top 100 songs of all time), ratings 3 (best songs of the album) and 4 (best songs by the artist) in between. Rating of 1 is reserved for stinkers I never want to listen again. This means that any straight random playlist would play the worse music more often than the great tracks.

Here my current implementation, hopefully this will be useful.

1. Create seed playlists.
  • Seed 5 (rating 5, last played within 3 months)
  • Seed 4 (rating 4, last played within 1 month)
  • Seed 3 (rating 3, last played within 14 days)
  • Seed 2 (rating 2, last played within 7 days)
  • Good Salt (rating 3 or higher, last played NOT in the last 6 months, limit to 250 tracks at random)
  • Poor Salt (rating 2, last played NOT in the last 6 months, limit to 100 tracks at random)
2. Create Master Playlist collecting all of the above playlist into one.
  • on my library of 20k tracks this creates a playlist of ~700 tracks, ~100 of those rated 2, ~400 at 3, ~150 at 4, ~50 at 5
3. Create individual playlists with different criteria.
  • eg. Blues which takes all tracks from Master Playlist in the Blues genre
  • eg. 90s which takes all 90s tracks from Master playlist
  • anything else you can imagine!

This works extremely well and doesn't require any maintenance. It is my preferred listening method when I'm in the mood for a genre.

The main limitation of this setup is that you tend to get stuck listening to a bit too much of the same tracks - that's why the Salt playlists which add random tracks. A killer MB feature would be to have a field for "# times played in X months" which would allow me to drop a track from the rotation when it has reached a limit of plays in a given time period to avoid excessive repetition. Total playcount is not a solution, as that will skew the results between newly added tracks and old tracks.

My current project is WIP, to create a dynamic "radio" station. The idea is to take the above, and have a gentle rotation of genres for the times when I'm not in a mood for anything specific. IOW, it would start with a few mellow songs, go to alternative, then to rock, to metal, back to hard rock, blues, new age, etc. I've created an ugly but quite workable hack:

4. Create a custom field or comment for each of your tracks.

Use "A new age" "B blues" "C hard rock" "D heavy metal" etc. The alphabetical progression of however you want the flow to go is critical. Don't put all your new age songs in "A new age" but split them around to later on in the alphabet. For example, I selected all my Rock songs, sorted them by length, and split them up to 3 sections (D, J, S) - this also means you shouldn't get too many of the same artist back-to-back.

5. Create a playlist based on the Master Playlist #2 above, and sort it by the comment field you created in #4.

Don't shuffle. You'll get a progression which playes 2-10 songs in each step before going to the next genre.

This has limitations: you will always have the same genre progression, you might get the same songs back-to-back on consecutive days, you can't set the # of tracks in each step, and depending on your listening habits you might even skip steps for jarring transitions, going straight from Kings of Convenience to Allegaeon Smiley