I'm wondering if anyone has done something similar, but instead of trying to find similarities in the raw audio, they use tags available from sources like Last.FM, Musicbrainz, Discogs etc? And the ultimate answer to that is probably "those sources kinda suck". Discogs is like a trainspotter on the spectrum, fascinated by release IDs. Musicbrainz is kinda similar (each song will have a dozen matches of wildly different quality). Last.FM tags are used-generated which make some of them amazingly useful, and others amazingly detrimental.
I have a human-powered recommendation service that uses my own tags that I've added to my mp3 library over 25 years. I add instruments (not all, just the ones that stands out, like synth, flute, distortion, violin, piano), vocals (male/female, falsetto, spoken, rap), moods (happy, sad, angry, mellow, dramatic, chillout) and genre (I don't go too deep here, because I hate getting recommendations stuck within some obscure sub-genre). And that's it. I get it to play a random highly rated track with a keyword or two, and then use the tags from the first 10 songs to generate the next. But since, for me, music is a somewhat interactive experience, every 10 songs or so, I'll think of something that I want on the list (maybe reminded of it by another one that just played).
Other things I think might be useful for recommendation is Last.FM histories. Think about it, the are hundreds of thousands of active listeners "scrobbling" their listening history. You could easily parse that and group songs together that have been played within 5 songs of each other as long as they're not by the same artist and the time between the songs is around zero (ie: listened to in order, no pauses). Similarity is higher for songs that were next to each other and score drops.
I have a human-powered recommendation service that uses my own tags that I've added to my mp3 library over 25 years. I add instruments (not all, just the ones that stands out, like synth, flute, distortion, violin, piano), vocals (male/female, falsetto, spoken, rap), moods (happy, sad, angry, mellow, dramatic, chillout) and genre (I don't go too deep here, because I hate getting recommendations stuck within some obscure sub-genre). And that's it. I get it to play a random highly rated track with a keyword or two, and then use the tags from the first 10 songs to generate the next. But since, for me, music is a somewhat interactive experience, every 10 songs or so, I'll think of something that I want on the list (maybe reminded of it by another one that just played).
Other things I think might be useful for recommendation is Last.FM histories. Think about it, the are hundreds of thousands of active listeners "scrobbling" their listening history. You could easily parse that and group songs together that have been played within 5 songs of each other as long as they're not by the same artist and the time between the songs is around zero (ie: listened to in order, no pauses). Similarity is higher for songs that were next to each other and score drops.