Finding the most dramatic bits in music

Evanescence is one of my guilty listening pleasures. I enjoy how Amy Lee’s voice is juxtaposed against the wall of sound produced by the rest of the band.   For instance, in the song Imaginary, there’s a 30 seconds of sweet voice + violins before you get slammed by the hammer of the gods:

This extreme change in energy makes for a very dramatic moment in the music.  It is one of the reasons that I listen to progressive rock and nu-metal (despite the mockery of my co-workers).    However, finding these dramatic gems in the music is hard – there’s a lot of  goth- and nu-metal to filter through, and much of it is really bad. After even just a few minutes of listening I feel like I’m lost at a Twicon.   What I need is a tool to help me find these dramatic moments, to filter through the thousands of songs to find the ones that have those special moments when the beauty comes eye to eye with the beast.

My intuition tells me that a good place to start is to look at the loudness profile for songs with these dramatic moments.  I should expect to see a sustained period of relatively soft music followed by sharp transition to a sustained period of loud music.  This is indeed what we see:


Loudness plot for 'Imaginary'

This plot shows a windowed average of the Echo Nest loudness for the first 50 seconds of the song.  In this plot we see a relatively quiet first 10 seconds (hovering between -21 and -18 db), followed by an extremely loud section of around -10db). (Note that this version of the song has a shorter intro than the version in the Youtube video).  If we can write some code to detect these transitions, then we will have a drama detector.

The Drama Detector: Finding a rising edge in a loudness profile is pretty easy,  but we want to go beyond that and make sure we have a way to rank then so that we can find the most dramatic changes.  There are two metrics that we can use to rank the amount of drama:  (1) The average change in loudness at the transition and (2) the length of the quiet period leading up to the transition.  The bigger the change in volume and the the longer it has been quiet means more drama.  Let’s look at another dramatic moment as an example:

The opening 30 seconds of Blackest Eyes by Porcupine Tree fit the dramatic mold. Here’s an annotated loudness plot for the opening:

The drama-finding algorithm simply looks for loudness edges above a certain dB threshold and then works backward to find the beginning of the ‘quiet period’.  To make a ranking score that combines both the decibel change and the quiet period, I tried the simplest thing that could possible work which is to just multiply the change in decibels by the quiet period (in seconds).  Let’s try this metric out on a few songs to see how it works:

  • Porcupine Tree – Blackest Eyes – score:  18 x 24 = 432
  • Evanescence – Imaginary (w/ 30 second intro) – score: 299
  • Lady Gaga – Poker Face- score: 82 – not very dramatic
  • Katy Perry – I kissed a girl – score: 33 – extremely undramatic

This seems to pass the sanity test, dramatic songs score high, non-dramatic songs score  low (using my very narrow definition of dramatic).   With this algorithm in mind, I then went hunting for some drama.  To do this, I found the 50 artists most similar to Evanescence, and for each of these artists I found the 20 most hotttest songs. I then examined each of these 1,000 songs and ranked them in dramatic order.  So, put on your pancake and eye shadow, dim the lights, light the candelabra and enjoy some dramatic moments

First up is the wonderfully upbeat I want to Die by Mortal Love.   This 10 minute long song has a whopping drama score of  2014. There a full two minutes of quiet starting at 5 minutes into the song before the dramatic moment (with 16 dB of dramatic power!) occurs:

The dramatic moment occurs at 7:12 seconds into the song – but I’m not sure if it is worth the wait.  Not for me, but probably something they could play at the Forks Washington High School prom though.

The song Jillian by Within Temptation gets a score of  861 for this dramatic opening:

Now that’s drama!  Take a look at the plot:

The slow build – and then the hammer hits.  You can almost see the vampires and the werewolves colliding in a frenzy.

During this little project I learned that most of the original band members of Evanescence left and formed another band called We are the Fallen – with a very similar sound (leading me to suspect that there was a whole lot of a very different kind of drama in Evanescence). Here’s their dramatic Tear The World Down (scores a 468):

Finally we have this track Maria Guano Apes – perhaps my favorite of the bunch:


Update: @han wondered how well the dramatic detector faired on Romantic-era music.  Here’s a plot for Berlioz’s Symphony Fantastique: March to the Scaffold:

This gets a very dramatic score 361.   Note that in the following rendition the dramatic bit that aligns with the previous plot occurs at 1:44:

Well – there you have it , a little bit of code to detect dramatic moments in music. It can’t, of course, tell you whether or not the music is good, but it can help you filter music down to a small set where you can easily preview it all.   To build the drama detector, I used  a few of The Echo Nest APIs including:

  • song/search – to search for songs by name and to get the analysis data (where all the detailed loudness info lives)
  • artist/similar – to find all the similar artists to a seed (in this case Evanescence)

The code is written in Python using pyechonest,  and the plots were made using gnuplot.   If you are interested in finding your own dramatic bits let me know and I’ll post the code somewhere.

, , ,

  1. #1 by Rick on February 20, 2011 - 5:35 pm

    This is a great idea. If only there was some way to detect how good the musical composition of the transitions is as well. This would be tough though. Maybe integrating realtime feeds from the rankings on Amazon or iTunes into the algorithm?

    And then there are those moments that happen in a song that aren’t part of the transitions. These can be just as powerful. Hmmm. How about an algorithm that tells how good a song is! I bet the record companies would like that. Wait, are there still record companies out there?

  2. #2 by Paul Oswald on February 20, 2011 - 9:45 pm

    Very interesting. I was wondering if you could run two songs by request? When you said “dramatic” I thought of two that maybe won’t be detected this simply: Stairway to Heaven and November Rain.

    If you had asked me to describe dramatic musically, I would have said loudness is important (although that’s so manipulated with newer music) but also a switch from a half-time feel to a double-time feel. Is BPM detectable as a rolling average?

    • #3 by Paul on February 21, 2011 - 10:45 am

      Paul Oswald – yes you are right, songs with slow builds won’t be detected this way. But see this post The Stairway Detector for some experiments on detecting the slow build. Interesting idea about looking for a double time feel too. — P

  3. #4 by Zac on February 21, 2011 - 10:40 am

    You should try either The Pixies or Nirvana who both prided themselves on their quiet-LOUD-quiet dynamic.

    • #5 by Paul on February 21, 2011 - 10:50 am

      Hi Zac – Nirvana does have lots of good quiet/loud moments. Highest of the 110 songs I checked was: Gallons Of Rubbing Alcohol Flow Through The Strip with a score of 856. The magic moment occurs at 6:19 seconds into the song.

%d bloggers like this: