Paul
I'm the Director of Developer Community at The Echo Nest, a research-focused music intelligence startup that provides music information services to developers and partners through a data mining and machine listening platform. I am especially interested in hybrid music recommenders and using visualizations to aid music discovery.
Genre of the week: Arnocore
Mix death metal with lyrics based on the films of Arnold Schwarzenegger and you have Arnocore. Some examples:
Some more Arnocore:
Thanks for the tip Matthew.
Rearranging the Machine
Posted in Music, remix, The Echo Nest on January 5, 2010
Last month I used Echo Nest remix to rearrange a Nickelback song (See From Nickelback to Bickelnack) by replacing each sound segment with another similar sounding segment. Since Nickelback is notorious for their self-similarity, a few commenters suggested that I try the remix with a different artist to see if the musicality stems from the remix algorithm or from Nickelback’s self-similarity. I also had a few tweaks to the algorithm that I wanted to try out, so I gave it go. Instead of remixing Nickelback I remixed the best selling Christmas song of 2009 Rage Against The Machine’s ‘Killing in the Name’.
Here’s the remix using the exact same algorithm that was used to make the Bickelnack remix:
Like the Bickelnack remix – this remix is still rather musical. (Source for this remix is here: vafroma.py)
A true shuffle: One thing that is a bit unsatisfying about this algorithm is that it is not a true reshuffling of the input. Since the remix algorithm is looking for the nearest match, it is possible for single segment to appear many times in the output while some segments may not appear at all. For instance, of the 1140 segments that make up the original RATM Killing in the Name, only 706 are used to create the final output (some segments are used as many as 9 times in the output). I wanted to make a version that was a true reshuffling, one that used every input segment exactly once in the output, so I changed the inner remix loop to only consider unused segments for insertion. The algorithm is a greedy one, so segments that occur early in the song have a bigger pool of replacement segments to draw on. The result is that as the song progresses, the similarity of replacement segments tends to drop off.
I was curious to see how much extra error there was in the later segments, so I plotted the segment fitting error. In this plot, the red line is the fitting error for the original algorithm and the green line is the fitting error for shuffling algorithm. I was happy to see that for most of the song, there is very little extra error in the shuffling algorithm, things only get bad in the last 10% of the song.
You can hear see and hear the song decay as the pool of replacement segments diminish. The last 30 seconds are quite chaotic. (Remix source for this version is here: vafroma2.py)
More coherence: Pulling song segments from any part of a song to build a new version yields fairly coherent audio, however, the remixed video can be rather chaotic as it seems to switch cameras every second or so. I wanted to make a version of the remix that would reduce the shifting of the camera. To do this, I gave slight preference to consecutive segments when picking the next segment. For example, if I’ve replaced segment 5 with segment 50, when it is time to replace segment 6, I’ll give segment 51 a little extra chance. The result is that the output contains longer sequences of contiguous segments. – nevertheless no segment is ever in its original spot in the song. Here’s the resulting version:
I find this version to be easier to watch. (Source is here: vafroma3.py).
Next experiments along these lines will be to draw segments from a large number of different songs by the same artist, to see if we can rebuild a song without using any audio from the source song. I suspect that Nickelback will again prove themselves to be the masters of self-simlarity:
Here’s the original, un-remixed version of RATM- Killing in the name:
Watch out world, the Echo Nest is now unstoppable
Posted in fun, Music, The Echo Nest on December 22, 2009
Today, we are unveiling the new Echo Nest secret weapon that will guarantee World Domination: our new Echo Nest suit. These suits are in stunning robin’s egg blue velour and are made of a special textile that is guaranteed to absorb all forms of moisture, keeping us fresh and dry at all times. Here I am modeling the new suit at the Echo Nest Holiday party:
Here are the Echo Nest big wigs trying out the suit: Brian, on the left, doesn’t need a special suit — he already has a superpower (doughnut scrying).
Here’s Team Blue heading out at lunch to grab some burgers. They turned a few heads in Davis Square.
We have the suits in the office, and at any moment we are prepared to ‘suit up’ to meet any music data emergencies that may arise anywhere in the world. This suit is why the Echo Nest is so awesome.
The other obsession at the Echo Nest
Posted in fun, The Echo Nest on December 21, 2009
At the Echo Nest, everyone is obsessed with music. But there’s also another obsession as highlighted in this new photo blog: lookatthisfuckingcrema.com:
Echo Nest analysis and visualization for Dopplereffekt – Scientist
Posted in fun, remix, The Echo Nest, visualization on December 20, 2009
Normalisr – Time-based charts of your last.fm data
Posted in Music, web services on December 14, 2009
Worth checking out: Normalisr
Goodnight Netbeans, Hello Eclipse
I’ve been a user of Netbeans, Sun’s Java IDE for about 5 years now. In general I’ve been pretty happy with it – it was the first IDE that made me want to give up using VIM and a command line to develop Java. However there have been some nagging issues in the last few releases. Sometimes the Netbeans syntax highlighter will insist that there are syntax errors in the source when there are none. No matter what I do, I can’t convince Netbeans that the code is good. The code compiles and runs just fine, but Netbeans keeps telling me that there’s a problem with the code:
The ‘artist’ object indeed has a getHotness() method but Netbeans just doesn’t know about it. There have been a few other problems – I’ve had to resort to the commandline for SVN – netbeans seems to get confused about my repository, and performance has always been a bit slow, (startup time in particular).
This week I saw that there’s a new release candidate for Netbeans 6.8. I downloaded and installed it, hoping that it would fix some of the problems I was having. However, after using it for a few days I’m ready to toss it off my hard drive.
The performance of Netbeans on my system is abysmal. The editor frequently freezes for 5 seconds or more, likewise, I can’t scroll through a source file without seeing the beachball. Even simple cursor movement can take a second for the editor to respond. At first I assumed that there was something wrong with my install, so I uninstalled and re-installed, telling Netbeans to not import any of my old Netbeans data, but that didn’t help. Looking at my CPU, I see that Netbeans wants to use nearly 100% of my CPU even when it is idling.
Compare the Netbeans CPU load to Eclipse as they both sit idle (this is after Netbeans has been running for 30 minutes at least, so it should be done with all of its scanning). Now to be fair, I checked with SteveG – he said he hasn’t had any of these problems, so it seems that my performance issues with the new Netbeans are atypical, but that doesn’t really help me get my work done.
This week Google released GWT 2.0 – I’ve always been a big fan of GWT so I thought I’d give the new version a whirl. GWT has really good Eclipse integration, so I used this as an excuse to give Eclipse a try. So far, I like what I see. The GWT and App engine integration is really well done. I was able to create and deploy a GWT application to the Google app engine in about 30 minutes, while watching a rerun of the office (the episode where Dwight sets the office on fire and gives Stanley a heart attack).
And so, after using Netbeans for 5 years, I’m ready to give Eclipse a try. The next app from scratch I write I’ll use Eclipse.
Hottt or Nottt?
Posted in code, data, Music, The Echo Nest on December 9, 2009
At the Echo Nest we have lots of data about millions of artists. It can be interesting to see what kind of patterns can be extracted from this data. Tim G suggested an experiment where we see if we can find artists that are on the verge of breaking out by looking at some of this data. I tried a simple experiment to see what we could find. I started with two pieces of data for each artist.
- Familiarity – this corresponds to how well known in artist is. You can look at familiarity as the likelihood that any person selected at random will have heard of the artist. Beatles have a familiarity close to 1, while a band like ‘Hot Rod Shopping Cart’ has a familiarity close to zero.
- Hotttnesss – this corresponds to how much buzz the artist is getting right now. This is derived from many sources, including mentions on the web, mentions in music blogs, music reviews, play counts, etc.
I collected these 2 pieces of data for 130K+ artists and plotted them. The following plot shows the results. The x-axis is familiarity and the y-axis is hotttnesss. Clearly there’s a correlation between hotttnesss and familiarity. Familiar artists tend to be hotter than non-familiar artists. At the top right are the Billboard chart toppers like Kanye West and Taylor Swift, while at the bottom left are artists that you’ve probably never heard of like Mystery Fluid. We can use this plot to find the up and coming artists as well as the popular artists that are cooling off. Outliers to the left and above the main diagonal are the rising stars (their hotttnesss exceeds their familiarity). Here we see artists like Willie the Kid, Ben*Jammin and ラディカルズ (a.k.a. Rock the Queen). While artists below the diagonal are well known, but no longer hot. Here we see artists like Simon & Garfunkel, Jimmy Page and Ziggy Stardust. Note that this is not a perfect science – for instance, it is not clear how to rate the familiarity for artist collaborations – you may know James Brown and you may know Luciano Pavarotti, but you may not be familiar with the Brown/Pavarotti collaboration – what should the familiarity of this collaboration be? the average of the two artists, or should it be related to how well known the collaboration itself is? Hotttnesss can also be tricky with extremely unfamiliar artists. If a Hot Rod Shopping Cart track gets 100 plays it could substantially increase the band’s hotttnesss (‘Hey! We are twice as popular as we were yesterday!’)
Despite these types of confounding factors, the familiarity / hotttnesss model still seems to be a good way to start exploring for new, potentially unsigned acts that are on the verge of breaking out. To select the artists, I did the simplest thing that could possibly work: I created a ‘break-out’ score which is simply ratio of hotttnesss to familiarity. Artists that have a high hotttnesss as compared to their familiarity are getting a lot of web buzz but are still relatively unknown. I calculated this break-out score for all artists and used it to select the top 1000 artists with break-out potential, as well as the bottom 1000 artists (the fade-aways). Here’s a plot showing the two categories:
Here are 10 artists with high break-out scores that might be worth checking out:
- Ben*Jammin – German pop, with 249 Last.fm listeners with an awesome youtube video (really, you have to watch it)
- Lord Vampyr’s Shadowsreign – 32 Last.fm listeners – I’m not sure whether they are being serious or not in this video.
- Waking Vision Trio – 429 Last.fm Listeners – on youtube
- The Bart Crow Band – alt-country – 3K last.fm listeners – youtube
- Urine Festival – 500 last.fm listeners – really, not for the faint of heart – youtube
- Fictivision vs Phynn – 250 Last.fm listeners – trance – youtube
- korablove – 1,500 Last.fm listeners – minimal, deep house – youtube
- Deelstylistic – 1,800 Last.fm listeners – r&b – youtube
- Luke Doucet and the White Falcon – 900 Last.fm listeners – youtube
- i-sHiNe – 1,700 Last.fm listeners – on youtube
Rage against the pop machine this xmas
Posted in fun, Music, remix, The Echo Nest on December 5, 2009
There’s a movement this year to take back the Christmas charts from smarmy pop artists churned out by music factories like the X factor and Idol franchises. The kickoff to this movement is this exhortation posted in the ‘Rage Against the machine for Xmas #1‘ Facebook group:
Fed up of Simon Cowell’s latest karaoke act being Christmas No.1?
Me too… So who’s up for a mass-purchase of the track ‘KILLING IN THE NAME’ from December 13th (DON’T BUY IT YET!) as a protest to the X-Factor monotony?
The group already has nearly 150K members and has received press coverage in stereoboard, nme, Drownedinsound and BritishMusicScene.
Now ‘Killing in the name’ isn’t exactly your typical Christmas song, so to help get people into the spirit of the projects I thought I would try to make the song be a bit more appealing to those with traditional Christmas music sensibilities. And so, I fired up the Echo Nest Jingler and generated a Christmas version of ‘Killing in the Name’. (The Jingler is a bit of software that will Xmas-ify any song by automatically adding sleigh bells, signal bells and the occasional Santa-ho). Here are the results:
This is just to get you in the Rage against Christmas mood. Remember to buy the track on December 13.
From Nickelback to Bickelnack
Posted in code, fun, Music, remix, The Echo Nest on December 3, 2009
I saw that Nickelback just received a Grammy nomination for Best Hard Rock Performance with their song ‘Burn it to the Ground’ and wanted to celebrate the event. Since Nickelback is known for their consistent sound, I thought I’d try to remix their Grammy-nominated performance to highlight their awesome self-similarity. So I wrote a little code to remix ‘Burning to the Ground’ with itself. The algorithm I used is pretty straightforward:
- Break the song down into smallest nuggets of sound (a.k.a segments)
- For each segment, replace it with a different segment that sounds most similar
I applied the algorithm to the music video. Here are the results:
Considering that none of the audio is in its original order, and 38% of the original segments are never used, the remix sounds quite musical and the corresponding video is quite watchable. Compare to the original (warning, it is Nickelback):
Feel free to browse the source code, download remix and try creating your own.








