Search code examples
apiechonest

Echo Nest "artist familiarity" for classical music


http://developer.echonest.com/docs/v4/song.html#search indicates that artist_(max/min)_familiarity is "the maximum/minimum familiarity of any song". However, it seems to actually be "the maximum/minimum familiarity of the artist". This is normally fine, but is a problem for classical music, where the actual performing artist is in general not very familiar but the composer is; one would hope that searching for classical music with a high artist_familiarity would return Bach and Mozart compositions, but it doesn't (in my testing, for example, genre=classical&artist_min_familiarity=0.7&artist_max_familiarity=1 returns tracks by Vampire Weekend and not classical tracks by Bach). Is this somehow resolveable?


Solution

  • As you specified, song search method filtered with style=classical (there is no genre parameter style) returns artists and songs that we cannot describe as pure classical. I think the reason behind these is how Echonest implement familiarity algorithm. I guess It is possible to return the songs by Vampire Weekend if it is found out by Echonest algorithm that the artist has classical elements in their music and listened and popular(familiarity is actually described as well-knownness) over all the web more than Bach.

    If you really want to use song.search method directly I recommend you to add artist_start_year_before parameter that will filter the new age artists and reduce min familiarity a bit(bit hacky and not recommended):

    song/search?api_key=your_api_key&format=json&style=classical&artist_min_familiarity=0.5&artist_max_familiarity=1&artist_start_year_before=1900

    On the other hand

    genre/artists?api_key=your_api_key&format=json&results=10&name=classical

    and

    artist/search?api_key=your_api_key&format=json&genre=classical

    calls return results more relevant to what you expect. You can then use artist ids to find their songs