It's clear that you could use Genre to support this type of algorithm, the more times a user listenes to a genere, it has a higher likelihood of being suggested from the Charts.
Try Pandora.fm approach. They categorise each song: instruments used, specific vocals or specific guitar rifts etc. Now you have similarity of each song based on N dimensions. As far as I know categorisation is done by humans, not by machines.
Thanks but this is collaborative filtering and I'm looking for simply a content filtering approach based on a sole user's past activity.
Try Pandora.fm approach. They categorise each song: instruments used, specific vocals or specific guitar rifts etc. Now you have similarity of each song based on N dimensions. As far as I know categorisation is done by humans, not by machines.
UPD quick internet search Automatic Musical Instrument Recognition and Related Topics
Having N dimension you can find similarity of objects with ML algorithm for example with Decision Trees.