Danceability and Energy: Introducing Echo Nest Attributes

Tristan and I have been working hard to add a new kind of information to the Echo Nest’s audio APIs. We’re calling these things attributes, and they are quantities that are calculated with data from our track analysis. Our attributes depend on ground truth data generated by The Echo Nest’s awesome Data QA Team, a passionate group of musicians and music lovers that includes several Berklee students. When they tell us a song is danceable, we believe it.


We each groove to different music; what constitutes dance music is inherently subjective. The Echo Nest defines danceability as the ease with which a person could dance to a song, over the course of the whole song. We use a mix of features to compute danceability, including beat strength, tempo stability, overall tempo, and more. One cool thing that I’ve noticed is that remixes of songs tend to have a higher danceability score than the originals.

Here’s the distribution of danceability over all the songs we have analyzed (over 14 million).danceabilit histogram (50,000 songs)


Energy is less subjective. How energetic is the music? Does it make you want to bop all over the room, or fall into a coma? The feature mix we use to compute energy includes loudness and segment durations.

Here’s the distribution of energy over all the songs we have analyzed (over 14 million):Energy Histogram (50,000 songs)

Where’s the dance(ability) at?

Paul posted a teaser yesterday that hints at what kinds of things you can do with energy and danceability, together.

Here are the various ways you can interact with danceability and energy through the API:

  • - You can specify min/max danceability & energy when searching and sort your results by ascending or descending danceability/energy.
  • track.profile - You can retrieve danceability/energy for a track.
  • audio_summary -  danceability and energy are now part of a track’s audio summary.  Any place you can specify the audio_summary will give you danceability and energy (e.g. track.upload)
  • playlisting (both static and dynamic) - You can specify min/max danceability & energy when creating a playlist  and sort the output by ascending or descending danceability/energy.

Attributes show how powerful and complete The Echo Nest’s analyze data is. Armed with only those JSON documents, you could make own attribute, too. Maybe you want to implement goodness? But seriously, what are you going to do with danceability & energy for Boston Music Hackday? I can’t wait to find out.

Friday, October 15, 2010 — 11 notes   ()
  1. runningwithdata posted this