I'm not sure off the top of my head, but that's definitely an active area of music recommendation research. There was someone in the lab at my university (BYU) who was/is working on a project he called pop*, although I'm not finding it with a quick google search. It's a system for composing new music, but part of the idea is that by figuring out how to make a system that understands the elements of music composition, it'll help in other areas like music recommendation too.
As time goes on I am planning to integrate things like this into Lagukan. I think a major problem with mainstream recommenders is that they mix together the two problems of 1) deciding when and how often to play songs the user already knows, 2) recommending entirely new songs. Lagukan is an ensemble recommender, i.e. it combines different algorithms. The core algorithm I've made is focused entirely on problem #1, but the plan is to incorporate lots of different approaches (e.g. algorithms based on compositional elements) for problem #2, and then have Lagukan be able to adapt to what works for individual people.