You know the old story – if you put a frog in a pot of cold water and gradually heat the pot up, the frog won’t notice and will happily sit in the pot until the water boils and the frog is turned into frog soup. This story is at the core of my winter break programming project called Boil the Frog. Boil the Frog will take you from one music style to another gradually enough so that you may not notice the changes in music style. Just like the proverbial frog sitting in a pot of boiling water, with a Boil the Frog playlist, the Justin Bieber fan may find themselves listening to some extreme brutal death metal such as Cannibal Corpse or Deicide (the musical equivalent to sitting in a pot of boiling water).
To use Boil the Frog, you type in the names of any two artists you’ll be given a playlist that connects the two artists. Click on the first artist to start listening to the playlist. If you don’t like the route taken to connect two artists, you can make a new route by bypassing an offending artist. The app uses Rdio to play the music. If you are an Rdio subscriber, you’ll hear full tracks, if not you’ll hear a 30 second sample of the music.
You can create some fun playlists with this app such as:
- Miley Cyrus to Miles Davis
- Justin Bieber to Jimi Hendrix
- Patti Smith to the Smiths
- Elvis to Elvis
- The Carter Family to Rammstein
- Kanye West to Taylor Swift
- Cage the Elephant to John Cage
- Ryan Adams to Bryan Adams
- Righteous Brothers to Steven Wright
How does it work? To create this app, I use The Echo Nest artist similarity info to build an artist similarity graph of about 100,000 of the most popular artists. Each artist in the graph is connected to it’s most similar neighbors according to the Echo Nest artist similarity algorithm.
To create a new playlist between two artists, the graph is used to find the path that connects the two artists. The path isn’t necessarily the shortest path through the graph. Instead, priority is given to paths that travel through artists of similar popularity. If you start and end with popular artists, you are more likely to find a path that takes you though other popular artists, and if you start with a long-tail artist you will likely find a path through other long-tail artists. Without this popularity bias many routes between popular artists would venture into back alleys that no music fan should dare to tread.
Once the path of artists is found, we need to select the best songs for the playlist. To do this, we pick a well-known song for each artist that minimizes the difference in energy between this song, the previous song and the next song. Once we have selected the best songs, we build a playlist using Rdio’s nifty web api.
This is the second version of this app. I built the first version during a Spotify hack weekend. This was a Spotify app that would only run inside Spotify. I never released the app (the Spotify app approval process was a bit too daunting for my weekend effort), so I though I’d make a new version that runs on the web that anyone can use.
I enjoy using Boil the Frog to connect up artists that I like. I usually end up finding a few new artists that I like. For example, this Boil The Frog playlist connecting Deadmau5 and Explosions in the Sky is in excellent coding playlist.
Give Boil the Frog a try and if you make some interesting playlists let me know and I’ll add them to the Gallery.
#1 by thesicksikh on January 2, 2013 - 5:05 pm
This sounds very exciting and interesting as with pretty much everything I get from you. However, this doesnt seem to work. Once a list is generated, clicking on play of a track plays nothing. I tried using google chrome and firefox16.
#2 by Craig on January 3, 2013 - 5:15 pm
Do you have Flash installed and enabled? I believe the Rdio API requires that.
#3 by Victor Zaud on January 4, 2013 - 1:38 pm
is there any way to save these as playlists to Spotify? I guess you can just manually create them?
#4 by Paul on January 4, 2013 - 1:41 pm
Sorry, no way to make spotify versions of the playlist
#5 by Andy Ryan on January 4, 2013 - 1:40 pm
Really Digging the app, thanks for creating it. It’s seems to me a great way to discover new music. In fact the first one I put in gave me music I never heard of and I’m really enjoying the playlist. I select Porcupine Tree -> Matchbox Twenty fun stuff. Thanks again.
#6 by Paul on January 4, 2013 - 1:42 pm
Glad you like it, and thanks for the kind words.
#7 by Ana on January 8, 2013 - 7:14 am
It won’t play for me either, and I’ve got the Flash and everything.
Is it a licensing thing? I’m outside the US and the Rdio page says “not available in your country”.
Do you know if it’ll ever be available worldwide?
Even if doesn’t become available, thank you – this is something I’ve been dreaming of :D .
#8 by Paul on January 8, 2013 - 8:09 am
the app relies on Rdio to play music. If Rdio is not available in your country, then it won’t play. What music services are available in your country?
#9 by Ana on January 8, 2013 - 8:20 am
I don’t know – is there a list I could check against or it’s a “try this, see if it works; try that, see if it works” thing?
If it’s the latter, I can tell you that last.fm doesn’t work in Europe at all.
It was available worldwide, but a few years back they decided to remain free for the US, UK, Germany and France, I think, and as a subscriber feature for others… and in December they announced they’ll be pulling out of Europe completely – even subscribers can’t listen to their radio anymore, and now the “free” countries need a subscription.
#10 by Craig on January 8, 2013 - 6:48 pm
Also having some trouble getting this to run on Chrome (24.0.1312.52 beta) on OS X, no music plays.
Any ideas? Thanks!
#11 by Miranda @tvlive32 on January 10, 2013 - 10:27 pm
Not playing on Linux Mint, chrome Version 22.0.1229.94,
Hope you fix it soon and i will take part to the fun :)
#12 by Boldra on January 15, 2013 - 5:22 am
I wanted to apologise for being a bit rude to you on jwz’s blog. Jwz does kinda set the tone though :)
I am loving Boil the Frog, and discovering lots of new music. Thanks!
#13 by Paul on January 15, 2013 - 6:32 am
Glad you like it. I didn’t notice any rudeness or take any offense so no apologies necessary. — Paul
#14 by AB on January 16, 2013 - 11:22 am
the playllist doesn’t show up on my computer. do you know how to fix that?
#15 by Paul on January 20, 2013 - 7:00 am
sorry, hard to tell from here what the problem is. Try checking the browser console to see if there are any issues reported there.