I’ve recently been thinking more about playlist generation, and I found a couple of academic papers on the subject:
- Fast Generation of Optimal Music Playlists using Local Search (2006)
- Scaling Up Music Playlist Generation (2003)
Both of these talk about using stochastic optimisation to produce playlists that satisfy a set of user-supplied constraints. This sounds like exactly what I want the core of Calliope to do – prepare a set of factors about the music, and then let the user choose which factors to prioritize. I’m playing with the Python simpleai module to see if this is enough to produce good results