Posts Tagged The Echo Nest
The Busker and the CTO
Posted by Paul in Music, The Echo Nest, web services on July 22, 2009
At the recent Music Hackday developers Matt Biddulph and George J Cook garnered the Echo Nest prize with their iPhone Music Visualiser. They recently took a few minutes to answer some of my questions about themselves and the hack – so, without further ado, here are their answers:
1) Tell me a bit about yourselves. Where do you live? What do you do for a living? What do you do for fun?
Matt: I live in London and I’m the CTO at Dopplr (http://www.dopplr.com). I used to work at BBC Radio putting radio on the internet, and I’m a big music fan.
George: I live in London. I’m a musician and a flex contractor.
I was a busker for many years, and lived in a van, so now for fun I combine all of those aspects – I’m making an iphone app called iBusk: it’s the worlds first iphone busker. I also love being geeky and watching great movies – just saw Moon this weekend it’s really good, I highly recommend it.
2) How did each of you find your way to the Music Hackday. How did you hear about it? What made you want to hole up for 30+ hours with 200 programmers during a summer weekend?
Matt:I heard about the hackday from Dave Haynes, one of the organisers, whose company Soundcloud shares an office with us in East London. As a CTO I don’t always get a chance to spend solid time on coding as I’m busy running a company. The chance to sharpen some coding skills and try out some new APIs in a concentrated burst was very attractive. I heard the hackday was getting a lot of signups and I was looking forward to meeting a big crowd of like-minded geeks. Luckily the weather outside turned out to be pretty awful too.
George: I heard about it from my friend Jamie – he thought it’d be up my street, and he’s right.. the idea of lots of guys getting together for a common cause appeals to me – it has an A-team kind of feel to it, except the api’s are a bit more advanced than what ba hanniba and face would find in an old shed – though a montage of us building software probably isn’t as exciting as the A-team building a tank
3) Had you met each other before the hack day? How did you decide to hook up and work together?
Matt: We’d never met. I’d decided I wanted to do some for the iPhone as I’ve been learning Cocoa in my spare time. I was talking about what project to code with Eric from Soundcloud and George overheard us. He’s been working on some games that’ll be in the appstore soon and he was looking for an iPhone project to join.
It turned out we’d both done some work with the cocos2d game framework and so we had a shared knowledge of basic graphics programming. We’re both programmers so we divided up the tasks – I concentrated mostly on the web API access and George did most of the cocos2d coding.
George: I’ve never met anyone at hack day before. Matt was sat 2 desks away and said the word “iphone app” loud enough for my detectors to kick in, so I asked him what he was up to and asked if I could help. He’s a nice chap, so he let me join him :)
4) The project you built for hackday looks really cool – tell me about it – how did you build it? What APIs did you use? What’s next?
Matt: Our project uses the Soundcloud API to get a list of available tracks. When you choose a track, it downloads the MP3 and uploads it to Echonest for analysis (the free Objective C wrapper for the Echonest API helped us get started very quickly). When that’s done, it downloads the segment loudness data and uses it as a timeline to animate a visualisation of the music while playing back the track in sync. There’s a video at http://www.vimeo.com/5695496
The OpenGL graphics are generated by cocos2d – http://cocos2d.org/ – which is a really easy-to-use and well-structured framework for games. It gives you primitives such as sprites, particle systems and drawing tools without needing any OpenGL knowledge.
We used Github to collaborate on the source code while we were coding. We’ve open-sourced the code and so anyone who wants to use it as the basis for another project or improve the visualiser with better graphics is welcome to clone a copy from http://github.com/mattb/musichackday-viz
George: Matt was the genius behind the API’s – and I see he’s already elaborated on that: We basically took the echonest analysis and used the cocos2d iphone engine to create graphical representaitons. I was excited to be doing something with echonest as I’m certainly going to be using it in the future versions of my new iphone app – it was really nice having the objective c wrappers for it too – THANKS whoever did those.
5) Did the hack day live up to your expectations – would you go again?
Matt: Yes, it was a superb event. I love the hackday format and it was great to go to a music-specific event. I hear people are planning similar events around the world, including New York. That’d be great to go to.
George: I thought it was great, but I was hoping more people would’ve bought instruments and jammed in the evening – I had no idea that people would keep working all evening! Those dudes are hardcore! I think I would go again if I could find some slackers who’d be willing to take a chill pill, grab some bongo’s and guitars and jam out for the night, otherwise it’d be too much for me… too many hours in an office and I go slightly nuts ;)
Now time for the lightning round questions –
1) Mac, PC or Linux?
Matt: Mac
George: Mac
2) Programming Language of choice?
Matt: Ruby
George: Objective c
3) vi / emacs or other?
Matt: vi
George: pico ( I know, I suck)
4) Favorite coding music?
Matt: drum’n’bass and dubstep
George: gorillaz
5) Most frequently used web API
Matt: Flickr
George: google maps
6) Favorite music discovery site
Matt: Songkick
George: last.fm
7) My most frequently played song that I’m rather embarrassed about is:
Matt: Bohemian Rhapsody
George: interesting drug, off of bona drag, by morrissey
Thanks Matt, Thanks George for taking the time to answer these questions.
DJ API’s secret sauce
Last week at the Echo Nest 4 year anniversary party we had two renown DJs keeping the music flowing. DJ Rupture was the featured act – but opening the night was the Echo Nest’s own DJ API (a.k.a Ben Lacker) who put together a 30 minute set using the Echo Nest remix.
I was really quite astounded at the quality of the tracks Ben put together (and all of them apparently done on the afternoon before the gig). I asked Ben to explain how he created the tracks. Here’s what he said:
1. ‘One Thing’ – featuring Michael Jackson’s (dj api’s rip)
I found a half-dozen a cappella Michael Jackson songs as well as instrumental and a cappella recordings of Amerie’s “One Thing” on YouTube. To get Michael Jackson to sing “One Thing”, I stitched all his a cappella tracks together into a single track, then ran afromb: for each segment in the a cappella version of “One Thing”, I found the segment in the MJ a cappella medley that was closest in pitch, timbre, and loudness. The result sounded pretty convincing, but was heavy on the “uh”s and breath sounds. Using the pitch-shifting methods in modify.py, I shifted an a cappella version of “Ben” to be in the same key as “One Thing”, then ran afromb again. I edited together part of this result and part of the first result, then synced them up with the instrumental version of “One Thing.”
2. One Thing (dj api’s gamelan version)
I used afromb again here, this time resynthesizing the instrumental version of “One Thing” from the segments of a recording of a Balinese Gamelan Orchestra. I synced this with the a cappella version of “One Thing” and added some kick drums for a little extra punch
3. Billie Jean (dj api screwdown)
First I ran summary on an instrumental version of Beyoncé’s “Single Ladies (another YouTube find) to produce a version consisting only of the “ands” (every second eighth note). I then used modify.shiftRate to slow down an a cappella version of “Billie Jean” until its tempo matched that of the summarized “Single Ladies”. I synced the two, and repeated some of the final sections of “Single Ladies” to follow the form of “Billie Jean
Artist radio in 10 lines of code
Posted by Paul in code, fun, Music, playlist, The Echo Nest, web services on July 16, 2009
Last week we released Pyechonest, a Python library for the Echo Nest API. Pyechonest gives the Python programmer access to the entire Echo Nest API including artist and track level methods. Now after 9 years working at Sun Microsystems, I am a diehard Java programmer, but I must say that I really enjoy the nimbleness and expressiveness of Python. It’s fun to write little Python programs that do the exact same thing as big Java programs. For example, I wrote an artist radio program in Python that, given a seed artist, generates a playlist of tracks by wandering around the artists in the neighborhood of the seed artists and gathering audio tracks. With Pyechonest, the core logic is 10 lines of code:
def wander(band, max=10):
played = []
while max:
if band.audio():
audio = random.choice(band.audio())
if audio['url'] not in played:
play(audio)
played.append(audio['url'])
max -= 1
band = random.choice(band.similar())
(You can see/grab the full code with all the boiler plate in the SVN repository)
This method takes a seed artist (band) and selects a random track from set of audio that The Echo Nest has found on the web for that artist, and if we haven’t already played it, then do so. Then we select a near neighbor to the seed artist and do it all again until we’ve played the desired number of songs.
For such a simple bit of code, the playlists generated are surprisingly good..Here are a few examples:
Seed Artist: Led Zeppelin:
- You Shook Me by Led Zeppelin via licorice-pizza
- Suicide by Thin Lizzy via dmg541
- I Ain’t The One by Lynyrd Skynrd via artdecade
- Fortunate Son by Creedence Clearwater Revival via onesweetsong
- Susie-Q by Dale Hawkins via boogiewoogieflu
(I think the Dale Hawkins version of Susie-Q after CCR’s Fortunate Son is just brilliant)
Seed Artist: The Decemberists:
- The Wanting Comes In Waves/Repaid by The Decemberists via londononburgeoningmetropolis
- Amazing Grace by Sufjan Stevens via itallstarted
- Baby’s Romance by Chris Garneau via slowcoustic
- Saint Simon by The Shins via pastaprima
- Made Up Love Song #43 by Guillemots via merryswankster
(Note that audio for these examples is audio found on the web – and just like anything on the web the audio could go away at any time)
I think these artist-radio style playlists rival just about anything you can find on current Internet radio sites – which ain’t to0 bad for 10 lines of code.
Echo Nest projects at Music Hackday
Posted by Paul in Music, The Echo Nest on July 12, 2009
Here are some of the interesting Music Hackday projects that I’ve noticed that are using the Echo Nest. In no particular order: (Update: Added the Music Bore)
- iPhone Music Visualizer – an iPhone app that downloads tracks from Soundcloud, sends them to Echonest for analysis then uses openGL to play the track with a visualiser.

- MusicBore – an IRC bot that knows more about music than you do
- Danzen Party Mix = Puts a DONK on a music blog
- Music Bore – Hello. I am the Music Bore. I play music and I like to tell you ALL about the music I play. See the video
- Pix n Mixer – Allows a user to combine their favourite bars from different music songs into a single coherent audio file. Python beatmatches track’, creates audio file for each bar remixes tracks together.

- BotTalk – creates Girl Talk-Esque mixtapes – example: http://soundcloud.com/thesmith
- LONCYN – this hack looks at how long past artists have taken to appear in one city after first appearing in the other. This information is used to ‘predict’ when an artist that hasn’t appeared in both cities will make it big.
- SoundCloud playlist sampler – Automated album sampler/preview generation from public SoundCloud playlists
- MakeMyMixtape – Tell us your favourite genre and we return a pre-mixed audio file featuring the top artists for that genre.
Music Hackday is winding down
Posted by Paul in The Echo Nest on July 12, 2009
There are only a few hours of hacking left at Music Hackday, but the hackers are still going strong.
Here’ s a hardware hack – an automated drummer, submitted by Alistair and Mr Duck
Echo Nest on the iPhone
Posted by Paul in The Echo Nest on July 10, 2009
Melka just updated his Echo Nest Cocoa Framework to make it work with the iPhone. Here’s his track visualizer running on the device. This is totally awesome. And just in time for Music Hackday.
Echo Nest Remix 1.2 has just been released
Posted by Paul in code, fun, The Echo Nest on July 10, 2009
Just in time for hack day … Quoting Brian:
Hi all, 1.2 just “released.” There are prebuilt binary installers for Mac and Windows, and pretty detailed instructions for Linux and other source installs.
The main features of Remix 1.2 are video processing and time/pitch stretching, along with a reliance of “pyechonest” to do the communication with EN. This lets you do more than just track API calls.
Some relevant examples included in the stretch and videx folders.
Thanks to all for the hard work.
This release ties together the video processing, time and pitch stretching, making it possible to do the video and the stretching remixes from the same install. Awesome!
Flash Remix Demo
Posted by Paul in code, remix, The Echo Nest on July 10, 2009
Ryan Berdeen has been doing some cool things with Flash and the Echo Nest. He’s been making it the Echo Nest track analysis work with audio mixing functionality of Flash 10, effectively giving remix capabilities to the Flash programmer. He’s put together a simple demo that lets you upload a track and perform some manipulations of it. Check it out here: Flash Remix Demo (and the source is here). The demo uses Ryan’s new Echo Nest Flash API. Cool Stuff!
Adam Baratz speaks at the Django meetup
Adam Baratz, the man who built developer.echonest.com, gave a talk tonight at the Cambridge Django Meetup about the design and implementation of our web services using Python decorators and generators. I was lucky enough to hear the dry run of Adam’s talk – I learned a lot about Python and was inspired to dig deeper to learn the idioms. The video of the talk is online here: Cambridge Django Meetup on ustream
New Echo Nest Terms of Service – w00t
Posted by Paul in The Echo Nest, web services on July 9, 2009
We’ve updated the Echo Nest developer site to include recent API news. If you are interested in seeing what is up with the API, check it out. One news item that you’ll notice on the page today is that we have a new Terms of Service for the API that is much more developer friendly (you are no longer involving your first born when you use our API). We also have a set of API ground rules that explain what the TOS means without using a lot of legalese.




