Uh oh. The celestial jukebox has arrived
Posted by Paul in Music, playlist, The Echo Nest on August 28, 2009
The Spotify iPhone app has been approved. With this app, I will now be able to carry 5 million songs in my pocket, and every week thousands more songs will be added to my collection automatically. This is the proverbial celestial jukebox – the great jukebox in the cloud that lets me listen to any song I want to hear. This is going to change how we listen to music. When we can listen to any song, anywhere, any time and on any device our current ways of interacting with music will be woefully inadequate. Shuffle play with 5 million songs just won’t work. Listener’s paralyzed by too much choice will just go back to the Eagles greatest hits album because its easier and safer than trying to find something new. People will start to wonder “What good are 5 million songs if I only listen to the 100 that I listened to in high school?” The new challenge that these next generation music services face is helping their listeners find new and interesting music. Tools for music discovery will be key to keeping listener’s coming back. Five years from now, the most successful music sites will be the ones that have figured out how to help people find new music.
What will music discovery look like in 5 years? I don’t know for sure, but I do know that it will go way beyond the ‘artist radio’ approach that we see now. I suspect that at the core of music discovery will be a smart, personalized, context-aware playlist engine that will give you a continuous stream of interesting music. The engine will know kind of music you like and don’t like, the kind of music you like to listen to when you are driving vs. working vs. relaxing, the music taste of the people you are with, your sense of musical adventure, what your friends are listening to, what songs were played on the TV shows you watched last night, what song fits well with the last song that was played, what artists are in the news, what artists are coming to town in the next few weeks, what artists have new albums coming out. The list goes on and on. It is hard to predict what will happen in 5 years, but I wouldn’t be too surprised if we see something that looks like this: 
(Image courtesy of David Jennings)
Cool music 2.0 panels at SXSW
I took a tour through the many music 2.0 related panels for SXSW 2010. Here’s my short list of favorites.
- Music Discovery Redux – Controlled Chaos – Continuing the fun debate from SXSW 2009 about music discovery – humans vs. machines, metrics
- Screw Music and Mobiles, I have my iPod! – Petar Djekic from Mufin looks at the mobile music business
- Practical Uses for Music Industry Technical Standards – Discussion of how OEM’s, music services, social networks, retailers are working together to create monetizable music services in the cloud
- Visual Music and Realtime Interactive Performance – This panel explores how to engage audiences, foster collaboration, remix, mashup, create opportunities for dynamic improvisation, and prepare for tomorrow’s advances in live performance
- Online Tastemakers: Death or Rebirth of Music Curation – . A new breed of tastemakers are cropping up with innovative twists. Are they helping or hurting? Is online music curation dying or evolving?
- Set Your Data Free – a panel on copyrights and licenses
- Realtime Social Discovery – Using people to Find Content – Instead of using tags, genres or other slices, instead allow users to interact with your content, let users form relationships (the social graph) and then see their friend’s interactions with your site.
- The State of Music Blogs in 2010 – Just how important are music blogs to the industry today, is that prominence growing or fading, and how will new technologies and strategies impact the marketing mix in the coming year?
- Bands, Fans and Brands – Learning from past music industry hits and misses, this panel will evaluate the ways music and technology intersects, delighting fans while challenging labels.
- 10 Cool Audacity Tricks You (probably) Didn’t Know – the title says it all
- Remixing for the Masses – My totally self-serving recommendation. In this panel we show how automatic music analysis and remix technology is making it easier for anyone to create their own music remixes, from simple alterations like adding more cowbell to your favorite song to complex manipulations that would be worthy of the next ‘Grey Album’.
The best way to make sure that a cool panel will be held is to go and vote for it.
Remixing for the masses at SXSW 2010
Posted by Paul in code, The Echo Nest on August 25, 2009
We are hoping to be able to present a panel on Echo Nest remix at next year’s SXSW interactive. We want to show lots of rather nifty ways that one can use Echo Nest remix to manipulate music – lots of code plus lots of music and video remix examples. What could be more fun? To actually get to present the panel we have to make it through the SXSW panel picking process. If you think this might be a good panel, head on over to our panel proposal page and vote for our panel called ‘remixing for the masses‘.
Revisiting iLike music recommendations
Posted by Paul in Music, recommendation on August 18, 2009
There has been quite a bit of rumor in the last couple of days that iLike is about to be acquired by MySpace. iLike is one of the biggest music apps in the Facebook world so it seems that this acquisition could set up an interesting dynamic between MySpace and Facebook. I’ve never been a big fan of iLike. It never has really worked for me as a music discovery site, instead it always seemed to me to be just another social web site that just happened to use music taste as a way to find new friends.
Back in October 2005, on the day when iLike first launched, I took the site for a spin and wrote about the rather poor iLike music recommendations. Six months later I checked again and their music recommendations were still really crappy. With iLike in the news, I decided to take one more look to see how there music recommendations have improved since 2005. Here’s what I found.
For my first test, I created an iLike radio station with a seed artist of Miles Davis, iLike happily added The Pogues, Christina Aguileira and the Dixie Chicks to the mix. That left me feeling kind of blue.
Next up, a little bit of James Brown – iLike filled out the playlist with the Pretenders and the electronic artist A.M. (and who is Carl Hatmaker? – this feels like a shill recommendation for an iLike/Garageband artist). Again, a playlist that left my neck hurting from the iPod whiplash as I was jerked from genre to genre.
Another try, some Aphex Twin. This leads to some PJ Harvey, The Buzzcocks and the Mars Volta. (ouch!)
Listening to Bob Marley – iLike gave me some Clapton, Moby and Queen.
It looks like today’s iLike music recommendations are not much better than they were back in October of 2005. A good fraction of the recommended artists are clunkers that don’t match the seed artist – sometimes feeling like anti-recommendations – (Christina may be just about as far away from Miles as one can get). They also like to sprinkle in their own Garageband artists which seems to me more like an artist promotion rather than an honest recommendation. After four years, I’m still not impressed with iLike’s music recommendations. When I’m looking for new music, I’ll continue to go somewhere else. But I’m open minded, I’ll be sure to check in again in four years to see if they’ve got it right.
The Stairway Detector
Posted by Paul in data, fun, Music, playlist, The Echo Nest, web services on August 17, 2009
Last night I was watching the pilot for Glee (a snarky TV version of High school musical) with my 3 teenage daughters. I was surprised to hear the soundtrack filled with songs by the band Journey, songs that brought me back to my own high school years. The thing that I like the most about Journey is that many of their songs have this slow and gradual build up over the course of the whole song as in this song Lovin Touchin Squeezin:
A number of my favorite songs have this slow build up. The canonical example is Zep’s ‘Stairway to Heaven’ – it starts with a slow acoustic guitar and over the course of 8 minutes builds to metal frenzy. I thought it would be fun to see if I could write a bit of software that could find the songs that have the same arc as ‘Stairway to Heaven’ or ‘Lovin, Touchin Squeezin’ – songs that have this slow build. With this ‘stairway detector’ I could build playlists filled with the songs that fire me up.
The obvious place to start with is to look how the loudness of a song changes overtime. To do this I used the Echo Nest developer API to extract the loudness as a function of time for Journey’s Lovin, Touchin Squeezin:
In this plot the light green curve is the loudness, while the blue line is a windowed average of the loudness. This plot shows a nice rise in the volume over the course of the song. Compared to a song like the Beatles ‘Ticket to Ride’ that doesn’t have this upward slope:
From these two examples, it is pretty clear that we can build our stairway-detector just by looking at the average slope of the volume. The higher the slope, the bigger the build. Now, I suspect that there’s lots of ways to find the average slope of a bumpy line – but I like to always try the simplest thing that could possibly work first – and for me the simplest thing was to just divide the average loudness of the second half of the song by the average loudness of the first half of the song. So for example, with the Journey song the average loudness of the second half of the song is -15.86 db and the average of the first half of the song is -24.37 db. This gives us a ratio of 1.54, while ‘Ticket to ride’ gets a ratio of 1.06. Here’s the Journey song with averages shown:
Here are a few more songs that fit the ‘slow build’ profile:
‘Stairway to Heaven’ has a score of 1.6 so it has a bigger build than Journey’s Lovin’.
Simon and Garfunkle’s ‘Bridge over troubled water’ has an even bigger build with a score of 1.7.
Also sprach Zarathustra has a more modest score of 1.56
With this new found metric I analyzed a few thousand of the tracks in my personal collection to find the songs with the biggest crescendos. The biggest of all was this song by Muse with a whopping score of 3.07:
Another find is Arcade Fire’s “My Body is a Cage” with a score of 2.32.
The metric isn’t perfect. For instance, I would have expected Postal Services ‘Natural Anthem’ to have a high score because it has such a great build up, but it only gets a score of 1.19. Looking at the plot we can see why:
After the initial build up, there’s a drop an energy for that last quarter of the song, so even though the song has a sustained crescendo for 3 minutes it doesn’t get a high score due to this drop.
Of course, we can use this ratio to find tracks that go the other way, to find songs that gradually wind down. These seem to occur less frequently than the songs that build up. One example is Neutral Milk Hotel’s Two Headed Boy:
Despite the fact that I’m using a very naive metric to find the loudness slope, this stairway detector is pretty effective in finding songs that have that slow build. It’s another tool that I can use for helping to build interesting playlists. This is one of the really cool things about how the Echo Nest approaches music playlisting. By having an understanding of what the music actually sounds like, we can build much more interesting playlists than you get from genius-style playlists that only take into account artists co-occurrence.
WordPress and Soundcloud
yay! WordPress now directly supports the Soundcloud player, so now I can embedded my Soundcloud tracks. Here’s a track that I built with Echo nest remix a few months back:
Would you like a free ISMIR Registration?
My colleague and buddy Steve at Sun has an extra ISMIR registration that he’s going to give away to someone who really needs it. So if a free registration may make the difference between whether or not you can get to ISMIR, head on over to Steve’s blog and read the details about how you can apply for this free registration.
What is the tempo of this song?
Posted by Paul in Music, The Echo Nest on August 6, 2009
Please help us settle a debate we are having in the office. What is the tempo of this song?
Making better plots
Posted by Paul in code, fun, The Echo Nest, visualization on August 5, 2009
For many years, I’ve used awk and gnuplot to generate plots but as I switch over to using Python for my day to day programming, I thought there might be a more Pythonic way to do plots. Google pointed me to Matplotlib and after kicking the tires, I’ve decided to retire gnuplot from my programming toolkit and replace it with matplotlib.
Matplotlib is a 2D plotting library that produces a wide variety of high quality figures suitable for interactive applications or for inserting into publications. A quick tour of the gallery shows the wide range of plots that are possible with Matplotlib. The syntax for creating plots is simple and familiar to anyone who’s used matlab for plotting.
With this new tool in my programming pocket, I thought I’d update my click plotter program to use matplotlib. (The click plotter is a program that generates plots showing how a drummer’s BPM varies over the course of a song. By looking at the generated plots it is easy to see if the beat for a song is being generated by a man or a machine. Read more about it in ‘In Search of the Click Track‘).
The matplotlib code to generate the plots is straightforward:
def plot_click_track(filename): track = track_api.Track(filename) tempo = float(track.tempo['value']) beats = track.beats times = [ dict['start'] for dict in beats ] bpms = get_bpms(times)plt.title('Click Plot for ' + os.path.basename(filename)) plt.ylabel('Beats Per Minute') plt.xlabel('Time') plt.plot(times, get_filtered_bpms(bpms), label='Filtered') plt.plot(times, bpms, color=('0.8'), label='raw') plt.ylim(tempo * .9, tempo * 1.1) plt.axhline(tempo, color=('0.7'), label="Tempo") plt.show()The complete source code for click_plot is in the example directory of the pyechonest module.
Here are a few examples plots generated by click_plot:
To create your own click plots grab the example from the SVN repository, make sure you have pyechonest and matplotlib installed, get an Echo Nest API key and start generating click plots with the command:
% click_plot.py /path/to/music.mp3
New news feed for developer.echonest.com
Posted by Paul in code, Music, The Echo Nest, web services on July 30, 2009
If you are interested in keeping up with the latest news about the Echo Nest APIs you can now subscribe to a developer.echonest.com news feed where we are posting news and articles about the Echo Nest APIs. Read more and subscribe at developer.echonest.com.







