The BPM Explorer

Last month I wrote about using the Echo Nest API to analyze tracks to generate plots that you can use to determine whether or not a machine is responsible for setting the beat of a song.   I received many requests to analyze tracks by particular  artists, far too many for me to do without giving up my day job.   To satisfy this pent up demand for click track analysis I’ve written an application called the BPM Explorer that you let you create your own click plots.  With this application you can analyze any song in your collection, view its click plot and listen to your music, synchronized with the plot.  Here’s what the app looks like:

Check out the application here:  The Echo Nest BPM Explorer.  It’s written in Processing and deployed with Java Webstart, so it (should) just work.

My primary motiviation for writing this application was to check out the new Echo Nest Java Client to make sure that it was easy to use from Processing.   One of my secret plans is to get people in the Processing community interested in using the Echo Nest API.  The Processing community is filled with some  ultra-creative folks that have have strong artistic, programming and data visualization skills.   I’d love to see more song visualizations like this and this that are built using the Echo Nest APIs.  Processing is really cool – I was able to write the BPM explorer in just a few hours (it took me longer to remember how to sign jar files for webstart than it did to write the core plotter).    Processing strips away all of the boring parts of writing graphic programming (create a frame,  lay it out with a gridbag, make it visible,  validate, invalidate, repaint, paint arghh!). For processing, you just write a method ‘draw()’ that will be called 30 times a second.   I hope I get the chance to write more Processing programs.

Update: I’ve released the BPM Explorer code as open source – as part of the echo-nest-demos project hosted at google-code.  You can also browse the read  for the BPM Explorer.

, , , ,

  1. #1 by Stephen Green on April 9, 2009 - 10:57 am

    Ah, those inscrutable Lamere keyboard shortcuts: how I’ve missed them :-)

    Nice job on the explorer. Any chance you’re going to support un-DRMed AAC? For some reason, I thought it was a good idea to rip my CDs into this format, and I wanted to run some of the new Tragically Hip album through the explorer…

  2. #2 by brian on April 9, 2009 - 11:35 am

    sorry stephen, the analyzer refuses to admit the existence of any post-Henhouse TH records. You’ll get a “BRIAN-0 error” i believe if you try

  3. #3 by Hans on April 9, 2009 - 12:19 pm

    Niche, Thx

  4. #4 by Sten Anderson on April 9, 2009 - 4:12 pm

    Cool app.

    Netbeans takes much of the pain out of deploying via webstart, including the typically painful jar self-signing.

    • #5 by plamere on April 9, 2009 - 4:15 pm

      Indeed, to deploy the app I ended up abandoning the processing IDE and moving the project into netbeans to get all the signing goodness. It was stil a big pain because netbeans kept refusing to recognize packages and classes that were clearly there. I ended up having to start a virgin netbeans project and add the processing java classes one by one by hand.

  5. #6 by Ben Bennett on April 9, 2009 - 10:51 pm

    Is the processing source available somewhere? Javaws is not available for sun-jdk-1.6 on x86_64.

    Thanks!

  6. #8 by Ed on April 10, 2009 - 11:50 pm

    Thanks for the neat tool! I just used it to analyze my own playing.

    Fun!

  7. #9 by hoptical_allusions on May 25, 2010 - 8:22 pm

    I have no idea if you look at comments on old posts, but the link below points to an alternative visualization method that seems to be able to show the same thing, albeit with more color. I haven’t tried implementing it, so I don’t know much beyond that : http://werner.yellowcouch.org/Papers/bpm04/index.html

    • #10 by Paul on May 25, 2010 - 8:29 pm

      thanks for the pointer

  1. The BPM Explorer | ryangruss.com