background image
 

Blog

July 25 9:26am

Novelty playlists

We’ve been building a new playlisting engine here at the Echo Nest.  The engine is really neat – it lets you apply a whole range of very flexible constraints and orderings to make all sorts of playlists that would be a challenge for even the most savvy DJ.  Playlists like 15 songs with a tempo between 120 and 130 BPM ordered by how danceable they are by very popular female artists that sound similar to Lady Gaga, that live near London, but never ever include tracks by The Spice Girls.

I was playing with the engine this weekend, writing some rules to make novelty playlists to test the limits of the engine.   I started with  rules  typical for a similar-artist playlist: 15 songs long, filled with songs by artists similar to a seed artist (in this case Weezer), the first and last song must be by the seed artist, and no two consecutive songs can be by the same artist.  Simple enough, but then I added two more rules to turn this into a novelty playlist that would be very hard for a human to make.     See if you can guess what the two rules are.  I think one of the rules is pretty obvious, but the second is a bit more subtle.

 0    Tripping Down the Freeway - Weezer
 1    Yer All I've Got Ttonight - The Smashing Pumpkins
 2    The Most Beautiful Things - Jimmy Eat World
 3    Someday You Will Be Loved - Death Cab For Cutie
 4    Don't Make Me Prove It - Veruca Salt
 5    The Sacred And Profane - Smashing Pumpkins, The
 6    Everything Is Alright - Motion City Soundtrack
 7    The Ego's Last Stand - The Flaming Lips
 8    Don't Believe A Word - Third Eye Blind
 9    Don's Gone Columbia - Teenage Fanclub
10    Alone + Easy Target - Foo Fighters
11    The Houses Of Roofs - Biffy Clyro
12    Santa Has a Mullet - Nerf Herder
13    Turtleneck Coverup - Ozma
14    Perfect Situation - Weezer

Here’s another playlist – with a different set of  two novelty rules, with a seed artist of Led Zeppelin.   

0    El Niño - Jethro Tull
1    Cheater - Uriah Heep
2    Hot Dog - Led Zeppelin
3    One Thing - Lynyrd Skynyrd
4    Nightmare - Black Sabbath
5    Ezy Ryder - The Jimi Hendrix Experience
6    Soulshine - Govt Mule
7    The Gypsy - Deep Purple
8    I'll Wait - Van Halen
9    Slow Down - Ozzy Osbourne
10   Civil War - Guns N' Roses
11   One Rainy Wish - Jimi Hendrix
12   Overture (Live) - Grand Funk Railroad
13   Larger Than Life - Gov'T Mule

(Find the answers at MusicMachinery)

July 23 8:37am

The Music App Summit

Billboard has long been known for tracking the hottest artists, albums and songs. Now they are moving into new territory - Music Apps.  In October Billboard is hosting a Music App Summit - a day focused on the world of mobile music apps.  The summit will focus on new companies and technologies that are now building the next generation of music applications for mobile devices.    The summit has some awesome speakers and panelist  lined up from a cross section of domains  (technology, business and music) like Ge WangTed CohenDave KusekBrian Zisk and The Echo Nest’s CEOJim Lucchese.

At the core of the summit are Billboard’s first ever Music App Awards.  Billboard is giving awards to the best apps in a number of categories:

  • Best Artist-based App: Apps created specifically for an individual artist
  • Best Music Streaming App: Apps that allow users to stream, download or otherwise enjoy music, such as Internet radio or on-demand.
  • Best Music Engagement App: Apps that lets users engage in music in various ways, such as music games, music ID services, etc.
  • Best Music Creation App: App that lets users make their own music.
  • Best Branded App: App that best incorporates a sponsor with music capabilities to promote both the sponsor’s message and highlight the music
  • Best Touring App:  App created in conjunction with a specific tour or festival

Judges for the apps include Eliot Van Buskirk of  Wired, Ian Rogers of Top Spin and Grammy Award winner MC Hammer.

Winning developers receive some modest prizes - but the real award is getting to demo your app to the attendees of the summit - the movers and shakers of the music industry will be there looking for that killer music app - the winner in each of the app categories will get to show their stuff.  If you have a mobile music app consider submitting it to the Music App Awards.   The submission deadline is July 30.  (Reposted from MusicMachinery)

July 15 2:18pm

Echo Nest Remix at the Boston Python Meetup Group

Next week Paul Lamere, Director of Developer Platform at the Echo Nest will be giving a talk about remixing music with Echo Nest remix at the Boston Python Meetup Group.  If you are in the Boston / Cambridge area next week, be sure to come on by and say ‘hi’.  Info and RSVP for the talk are here:  The Boston Python Meetup Group on Meetup.com

Here’s the abstract for the talk:

Paul Lamere will tell us about Echo Nest remix. Remix is an open source Python library for remixing music. With remix you can use Python to rearrange a track, combine it with others, beat/pitch shift it etc. – essentially it lets you treat a song like silly putty.

The Swinger is an interesting example of what it can do that made the rounds of the blogosphere: it morphs songs to give them a swing rhythm.

For more details about the type of music remixing you can do with remix, feel free to read: http://musicmachinery…

July 7 5:55pm

Version 4 of developer.echonest.com has been released

We have just released the first official (i.e. non-beta) release of Version 4 of the Echo Nest API. There are lots of new features in V4 - too many to mention here, but to highlight just a few:

  • Faster
  • JSON Support for all APIs
  • song/identify - Identifies a song given Echo Nest Musical Fingerpint  hash codes.
  • artist search - now supports extended constraints and sorts, query by description
  • artist similarity - now supports extended constraints and sorts
  • more artist data
  • improved song search (with super powerful boosting)
  • Data Feeds - we’ve got rss feeds for nearly everything

There are updates to our client libraries to support all the new features: pyechonest and jEN.

So what does this mean to you? Well, if you are using our APIs, you don’t have to do anything right now, everything should work the same as it did before the release. Version 3 APIs will still be available and will still work exactly the same as they did last week. If you’ve been using the V4 beta APIs via ‘beta.developer.echonest.com’, these will continue to work as before as well. However, you will also be able to use the new V4 APIs directly via the URL ‘developer.echonest.com/api/v4.

The Transition Plan If you are using the V4 beta, you should switch your URLs from beta.developer.echonest.com to developer.echonest.com within the next month. We will stop supporting beta.developer.echonest.com by August 15. If you are using V3 of the APIs, you should think about transitioning to V4 in the next 6 months. We do not plan to support the V3 API beyond 2010. If you are using V2 of the API (is there anyone still using V2 of the API?), you should plan on transitioning to V4 by the end of July. V2 has been deprecated for a while and support for V2 will stop in the very near future.

June 24 8:22pm

New V4 beta API pushed tonight

Tonight we are pushing an update of our V4 beta APIs at beta.developer.echonest.com.  This is major milestone - the V4 APIs now implement all V3 functionality (along with much more).  Here’s what’s new in this beta release:

  • song/identify - Identifies a song given Echo Nest Musical Fingerpint hash codes.
  • track methods - upload, analyze and profile - are now fully supported
  • artist search - now supports extended constraints and sorts, query by description
  • artist similarity - now supports extended constraints and sorts
  • more artist data - like top terms (still very much in beta)
  • improved song search (with super powerful boosting)
  • Data Feeds - we’ve got rss feeds for everything

There are updates to our client libraries to support all the new features: beta_pyechonest and jEN.

    May 21 6:45am

    The Swinger

    The Swinger

    One of my favorite hacks at last weekend’s Music Hack Day is Tristan’sSwinger.  The Swinger is a bit of python code that takes any song and makes it swing.  It does this be taking each beat and time-stretching the first half of each beat while time-shrinking the second half.  It has quite a magical effect.  Some examples:

      Every Breath You Take (swing version) by TeeJay

    Money for Nothing (swing version) by TeeJay

    Cream (swing version) by TeeJay

    I Will (swing version) by TeeJay

    Swinger uses the new Dirac time-stretching capabilities of remix. Source code is available in the samples directory of remix.

    (Reposted from Music Machinery)

    May 14 12:33am

    Earworm and Capsule

    Over the past month, Tristan and I have been hard at work adding some new features to The Echo Nest Remix API, which is now at version 1.3. Here’s what’s new:

    • cloud.py - functionality to search for analyzed tracks to remix. No need to have your own audio.
    • pydirac - a new, great-sounding time-stretcher, which is stereo, and sample accurate. It’s a Python wrapper around a C module that makes use of the Dirac LElibrary.
    • action.py and cAction - crossfade, crossmatch, fadein, fadeout, and jump, with C implementations of core functionality for speed.

    We’ve developed two cool new examples to show off the new functionality: Earworm and Capsule.

    Earworm

    Earworm (thanks to Jonathan Feinberg for the name) makes it possible to extend or shrink a song to any length you might desire, without changing the tempo. It does this by constructing a network graph of the piece, using The Echo Nest’s analysis data. Each node in the graph is a beat in the song, and an edge exists between two nodes if the two beats, and the several beats that follow them, sound similar (close in timbre and pitch).

    Song Graph

        One possible rendering of a song graph.

    The graph shows us where we can make seamless transitions between different parts of the song. Stretching (or shrinking) the song is then just a matter of minimizing the number of “loop” points to reach a requested duration.

    Tristan took If I Ever Feel Better by Phoenix and made If I Ever Feel Longer, seamless 10 and 60-minute renditions of that track using earworm. He also made a track I call I Can’t Get Any Shorter, the shortest path through the song with reasonable transitions (about 25% as long as the original). And if you just can’t get enough of If I Ever Feel Better, you can have If I Ever Feel Better Forever, a 200-second version of the song that ends where it starts. If you loop it, you can listen to the track nonstop, seamlessly, forever.

    It’s easy to make your own earworm, even without audio. Install beta pyechonest, install remix, and cd to the earworm example:

        > python earworm.py INXS ‘Need you Tonight’

    Wait a moment for the audio and analysis to download, and before you know it, you’ll have a 10-minute version of ‘Need you Tonight’ by INXS. What you do next is up to you …

    Capsule

    Capsule takes a list of tracks, and automatically arranges and mixes them together. You can specify the transition time, and how long to hear each song. First, it searches for the best location where to make a transition and aligns beats. Because the songs may have different tempos, it uses one of the new actions, Crossmatch, which simultaneously cross-fades and beat-matches audio in the transitions. Crossmatch uses pydirac, the new time stretcher, to smoothly speed up and slow down the two song’s tempos. Crossmatch is an incredibly powerful tool for making great-sounding transitions.  So if you pass in two songs, with the default parameters, you’ll get 8 seconds of the first one, an 8 second crossmatch, 8 seconds of the second song, and a 6 second fade-out. 

    Hear it transition between two Bob Marley songs (Jamming -> Everything is Gonna Be Alright).

    The capsules render pretty quickly, due to cAction, the Python C Extension that handles some of the most computationally intensive code. So why stop at two songs? You can pass as many as you like. 

    Try it out, and post your results. I can’t wait to hear them. I’ll leave you with some examples to get those creative juices flowing:

    Bonus Earworms:

    Bonus Capsules:

    (reposted from Running with Data)

    May 12 8:59am

    Here come the music apps

    As a music application developer, I  have long been vexed by a problem that has made building and releasing a music application very difficult –where do I get the music? A music application needs music – but adding music  to an application is very hard.  I really have  just a few choices:  (1) I can use unlicensed content and hope nobody notices, (2) I can try to make the deals with the labels, (3) I can restrict my app to non-demand radio and pay per-stream royalties,  or (4) I can just skip the music.  None of these options is very appealing to me – If my application gets popular I will either get sued by the labels or swamped by music licensing fees.  It is better for me if no one notices my app at all. Even resources like album art and 30 second samples are tightly held by the content owners.

    What a crazy world!   We are at this incredible point in the history of music with millions of tracks at our fingertips. Now more than ever, we need new ways to explore, organize and share music – but any kind of creativity in this space is stymied.  I could build the coolest music app in the world that could help millions of people connect with music, but without a source of legal content, my application will never see the light of day.    In my last year while working at the Echo Nest, I’ve seen some really amazing music applications made by very creative developers. These are apps that would make your jaw drop – but you’ll never see them. The apps are languishing on the virtual shelf because there’s no good way to get legal content for the apps.

    This weekend at Music Hack Day San Francisco we are going to change this. We are going to make it possible for developers to build applications around music content and release the applications to the world without having to worry about music licensing.  To do this, we are working with Play.me a new digital music service that offers on-demand music.  With the Echo Nest / Play.me program a developer can write music applications using all of the usual Echo Nest APIs – and include streaming content from the millions of songs in the  Play.me catalog. Play.me is very generous with its content giving a user 5 hours per week of on-demand music (once a user goes beyond their 5 hour allotment, full-streams are replaced with 30 second streams). Play.me’s strategy here is simple – they hope that by encouraging innovative applications built around their content they will attract more paying subscribers who get access to unlimited streams.    The Echo Nest and Play.me platforms are well integrated letting developers write apps that take advantage of all the deep Echo Nest data – artist similarities, news, reviews, blogs, bios, images, video and even our deep track-level music analysis for every artist and track in the Play.me catalog.  This is a big deal for music application developers.  We can finally build applications around real music without having to worry about being sued or going broke paying licensing fees if our apps get popular.  And if our application brings new subscribers to Play.me, we can make money through an affiliate program.  (Here’s the fine print – Play.me is currently US only (sorry, rest of the world), and to hear the full streams you need to register with Play.me (you just need an email address, no credit cards required))

    There are already some apps that have been built on top of the Echo Nest / Play.me APIs:

    MusicExplorerFXThe  award-winning Music Exploration tool.

    Slice – a music exploration and discovery application for the Android Platform

    PlaylistPathfinder – a novel application that creates playlists by finding paths through the Echo Nest artist similarity space.

    I’ll write in more depth about  these apps in subsequent posts – but the story for these apps are nearly identical – they were cool apps that were languishing on the music shelf because there was no way to release them with licensed content.  Now the apps can be released to the world and even help the application developer make some money.

    Over the years, we’ve seen many different ways for people to discovery new music come and go.  When I was growing up, the radio DJ was the primary way people people discovered new music.  The DJ was the tastemaker for the generation.  For the next generation, I think  music apps will be one of the primary ways people discover new music.

    If you have idea about a cool new music app, but have been stymied by the problem of how to get content for your app, check out this program.  More details will be forthcoming during Music Hack Day San Francisco.

    (Reposted from MusicMachinery.com)

    April 28 7:30am

    New API Architecture now in beta

    Last weekend at the Amsterdam Music Hack day we opened up beta access to the next version of our APIs.  This version is an all new architecture – that I’m rather excited about.


    Some new features:

    • Performance – api method calls run faster – on average API methods are running 3X faster than the older version.
    • JSON Output – all of our methods now support JSON output in addition to XML.  This greatly simplifies writing client libraries for the Echo Nest
    • Nimble coding – with the new architecture it will be much easier for us to roll out new features – so expect to see new features added to the Echo Nest platform every month
    • No cruft – we are revisiting our APIs to try to eliminate inconsistencies, redundancies and unnecessary features to make them as clean as we can.

    The beta version of our next generation APIs is here:  http://beta.developer.echonest.com/

    April 24 11:26am

    The Echo Nest Song API

    The Echo Nest Song API

    This weekend at the Amsterdam Music Hack day we are releasing lots of new stuff. First of all, we opening up beta access to the next version of our APIs.  This version is an all new architecture – that I’m rather excited about. Some new features:

    • Performance – api method calls run faster – on average API methods are running 3X faster than the older version.
    • JSON Output – all of our methods now support JSON output in addition to XML.  This greatly simplifies writing client libraries for the Echo Nest
    • Nimble coding – with the new architecture it will be much easier for us to roll out new features – so expect to see new features added to the Echo Nest platform every month
    • No cruft – we are revisiting our APIs to try to eliminate inconsistencies, redundancies and unnecessary features to make them as clean as we can.

    The beta version of our next generation APIs are here:  http://beta.developer.echonest.com/

    The first significant new API we are adding is the Song API – this gives you all sorts of ways to search for and retrieve song level data.  With the song API you can do the following:

    • search for songs via  artist name, song title, and description. You can affect the results with constraints and sorts:
      • constrain the results by a number of factors including musical attributes like tempo, loudness, time signature and key, artist hotttnesss, location
      • sort – the results by any of the attributes
    • Find similar songs – find similar songs to  a seed song
    • Find profile – get all sorts of info about a song including audio, audio summary info, track data for different catalogs, song hottttnesss, artist_hotttnesss, artist_location, and detailed track analysis
    • Identify songs – works in conjunction with the ENMFP

    There are lots of things you can do with this API. Here’s just a quick sample of the types of queries you can make:

    Find the loudest thrash songs

    song/search?sort=loudness-desc&description=thrash

    Find indie songs for jogging

    song/search?min_tempo=120&description=indie&max_tempo=125

    Fetch the tempo of Hey Jude

    search?title=hey+jude&bucket=audio_summary&artist=the+beatles

    Fetch the track audio and analysis of Bad Romance

    search?title=bad+romance&bucket=tracks&bucket=id:paulify&artist=lady+gaga

    Find songs similar to Bad Romance

    song/similar?id=SOAOBBG127D9789749

    We have two clients that support the new beta version of the API:

    • jen-api – a java client
    • beta_pyechonest – a new branch of the venerable pyechonest library. Grab it from SVN with
    svn checkout http://pyechonest.googlecode.com/svn/branches/ beta-pyechonest-read-only

    I’ll be writing more about all of the new APIs real soon.   Access the beta Echo Nest APIs here:

    http://beta.developer.echonest.com/


    (reposted from MusicMachinery)

    Follow us on Twitter