Archive for category Uncategorized

Where’s the Drama?

I’m at Music Hack Day Berlin this week where I’m just finishing up my hack called Where’s the Drama?

Where’s The Drama? will automatically find the most dramatic bits in your favorite music, so you can skip right to the best part of the song. No need to listen to anything else. Here’s a video of the app in action:


 So get out your cigarette lighter, stand up and start to listen more dramatically.

The app is online, but please treat it gently – it has a really hacky Spotify integration that will probably fall over if you look at it too hard. The code is on github.


The Wub Machine

Peter Sobot (@psobot ) has used The Echo Nest Remix to automatically add dubstep to any song.

The Crash Bandicoot Dubset remix is pretty wild.  Peter says that The Wub Machine is still work in progress. Check out how it works and add your ideas to the mix on Peter’s blog.

, , ,

Leave a comment

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.

, , , ,


Collaborative Filtering and Diversity

One of the things Anthony and I talked about at our “Help! My iPod thinks I’m emo.” SXSW panel last week is the ‘Harry Potter Effect’ – how popular items in a recommender can lead to (among other things) feedback loops that lead to a situation where the rich get richer.  A  popular item like that latest Coldplay or Metallica album get purchased often with other albums and therefore end up getting recommended more frequently – and because it gets recommended – it gets purchased more often until it is sitting on the top of the charts.  The Harry Potter effect can result in a lowering of the diversity of items consumed.

In his post, Online Monculture and the End of the Niche, Tom Slee over at whimsley has run a simulation that shows how this drop in diversity occurs – and also explains the non-intuitive result that while the use of a recommender can lead to decreased diversity overall, it can lead to increased diversity for an individual.  Tom  explains this with a metaphor:  In the Internet World the customers see further, but they are all looking out from the same tall hilltop. While without a recommender  individual customers are standing on different, lower, hilltops. They may not see as far individually, but more of the ground is visible to someone.

As an example of this effect,  here’s a recommendation from Amazon that shows how 8% of  those that shopped for The Big Penis Book

bigbwent on to buy a Harry Potter book.  A recommender that pushes those that are buying books about big penises toward Harry Potter may indeed increase the diversity of those individuals (they may never have considered harry potter before, because of all those penises), but does indeed lower the overall diversity of the community as a whole (everyone is buying harry potter).

It is an interesting post, with charts and graphs and a good comment thread.  Worth a read.  (Thanks for the tip  Jeremy)

1 Comment

Overview of the Echo Nest Remix API

Adam Lindsay has put together some really nice documentation for the remix API:

  • An Overview of the Echo Nest Remix API – This is, as Adam puts it, a “high-level tourist’s guide” to the API.  In this guide, Adam walks the reader through the hierarchy of information returned by the API (beats, bars, tatums, sections and segments), and then goes on to describe some of the ways all of this information can be retrieved and manipulated using the remix methods.  Adam has put together some rather ingenious classes and patterns that make walking through the information in a song really easy. For instance, to find all of the beats in a song that fall on the first beat of the measure, one could code:
        beats =
        ones = beats.that(fall_on_the(1))

    I like Adam’s way of thinking about remix:  “Remix makes each song its own API: each song offers queries into its own features, and can return any number of transformed versions of itself, all of which are sensitive to the original song’s musical features”

  • remix module documentation – Adam has generated some Javadoc style documentation for remix.  This lays out all of the classes, building blocks, helper functions and variables that you need to know about to use remix.  Until now, it has been necessary to look at code samples or delve into the remix code to see what methods and tools were available.  This set of documentation lets you drive the car without having to open the hood to start it. Great stuff.

Thanks much, Adam for providing this documentation.  The whole community is benefitting from your work. Awesome!

Leave a comment

On the ferry

I’m on the ferry between Vermont and upstate NY blogging with my iphone on my way to picking up my son from school for his spring break. I was able to use the 4 hour drive here to practice my sxsw talk: “help! My iPod thinks I’m emo”.

Here’s a shot out the window. There’s still ice on the lake. I suspect there will be less ice in Austin TX.


Leave a comment

Collaborative Playlists

playlistsCollaborative playlists seem to be all the rage.  Fred Wilson writes how he collaborated with his twitter followers to create a primal screen playlist.  Jason talks about combining twitter search, hashtags and Lucas’s playTwitter. Twisten and Blip let you twitter songs and play tweets of others. But I’ve been creating and enjoying collaborative playlists for over a year with Spotify.  Collaborative playlists are fun and a great way to share music and Spotify’s approach makes it dead easy.    You just create a playlist (easy as iTunes), mark it as ‘collaborative’ and share the URL of the playlist with your friends (or the world). Anyone with the URL to the shared playlist can add to, delete or reorder songs on the playlist.  Of course, the down side is that someone can really mess up your playlists.  I have a few suggestions  that could make Spotify collaborative playlists even better:

  1. Add version control to playlists – so when some vandal adds “Never gonna give you up”  50 times to your playlist you can recover
  2. Allow playlist editors to add tags or notations to their additions so you can see why a particular song was added to the playlist
  3. Allow for lengthy text description of playlists and tracks in the playlist (like the XSPF supports)
  4. Let me share a read-only version of a collaborative playlist
  5. Create a directory of playlists so that Spotify users can easily find public and collaborative playlists by name, tag or description.

One day perhaps the whole world will be able to enjoy Spotify’s collaborative playlists.

2 Comments, TechCrunch and the RIAA

There was a bit of a kerfuffle on Friday evening when TechCrunch posted a story headlined: Did Just Hand Over User Listening Data To the RIAA? – where they “reported” on a rumor that had handed over a bunch of data  to the RIAA so the RIAA could track down pirates of the new U2 album .  The answer to the headline question is an unequivocal  “no!”.  The folks at would never do that, and they have denied it in no uncertain terms.

But still two days later, the headline stands on the front page of TechCrunch, and only readers who venture past the fold will see mention that has denied the rumor.  Why doesn’t TechCrunch change the headline or post prominently in the first paragraph that has denied it the rumor?   Why is TechCrunch posting a story based on a single source?  No doubt, such headlines bring lots of links and readers to TechCrunch, but it is not responsible journalism. Reporting on rumor, gossip and subsequently failing to correct the false reporting is just bad journalism.


A test post

Well .. what do you know … a new post, in a new blog …  I’ m just trying things out a bit.  I’m not sure if I like the wsywig editor or not.  So far it seems ok.  Lets add a picture!

A little bit of country, a little bit of rock'n'roll.

A little bit of country, a little bit of rock'n'roll.

That was pretty easy to do, and I was able to have it align on the left hand side, which is a pretty common way for me to layout my posts.  I like how they let you add a caption as well.

But really, blogs are all about links, so lets add a link or two.  First a link to this blog: and now a link to a search engine that I use quite often.

It looks like wordpress has an autosave feature, which is pretty nice.

Embedding a youtube video is pretty easy too … instead of having to grab all of the embedded object html – with wordpress I can just use the URL to the youtube video.  Saves having to go into raw html mode.  You can embedd videos like this not only from Youtube but from google video and dailymotion as well.  So, let me try embedding a video.  I found this video on the web, not sure if anyone has seen it before, but it is pretty funny, about a skateboarding dog.  Check it out.

Pretty cool.

They also let you ‘add a poll’. I wonder what that is like. Let’s try it out:

I’m eagerly waiting the results.

Now, just a few more things to try out.  Bold, italics, strikethrough .

  1. Some
  2. numbered
  3. lists
  • Some
  • bullet
  • points

And a block quote where I tell you:

Trackbacks are a way to notify legacy blog systems that you’ve linked to them. If you link other WordPress blogs they’ll be notified automatically using pingbacks, no other action necessary.

Sometimes I like colorful text too.

Well, that’s it for now… my first wordpress test post.  It seems pretty full featured, which is no surprise since it is used by a number of people.  Now I’m going to save this entry, preview it and post it.  So there.

1 Comment