We are doing it Live!

November 21, 2012

Last week we announced support for song types in our playlist API. With the song type you can control the types of songs that are returned in your playlists and song search results.  This week we are announcing the beta release of two new song types:  live  and studio.   With the live song type, you can restrict results to songs that we believe are recorded in front of a live audience. Likewise, the studio song type can be used to restrict results to songs that are recorded in a studio. 

For example, the following query will create an artist radio seeded with the artist Muse where all the songs in the playlist are live songs:

http://developer.echonest.com/api/v4/playlist/static?api_key=FILDTEOIK2HBORODV&artist=muse&format=json&results=5&type=artist-radio&song_type=live

This call yields results like:

        "songs": [
            {
                "artist_id": "ARR3ONV1187B9A2F59", 
                "artist_name": "Muse", 
                "id": "SOHMBCV13712E7A544", 
                "title": "Intro [Live From Wembley Stadium]"
            }, 
            {
                "artist_id": "ARVG4OK1187B9B6BD3", 
                "artist_name": "The Killers", 
                "id": "SOSELDB13725E946FD", 
                "title": "Phantom Of The Opera (Live)"
            }, 
            {
                "artist_id": "ARJ7KF01187B98D717", 
                "artist_name": "Coldplay", 
                "id": "SOVEWOL12AF72AB8A0", 
                "title": "God Put A Smile Upon Your Face (Live In Sydney)"
            }, 
            {
                "artist_id": "AR6892W1187B9AC71B", 
                "artist_name": "Placebo", 
                "id": "SODZTPW12A6D4F8909", 
                "title": "The Bitter End (Live At La Cigale)"
            }, 
            {
                "artist_id": "ARCAQ8K1187FB437B0", 
                "artist_name": "Kasabian", 
                "id": "SOOXQDI12A8C142E7F", 
                "title": "Runaway (Live)"
            }
        ]

Likewise you can use the studio attribute to restrict results to studio-recorded music:

http://developer.echonest.com/api/v4/playlist/static?api_key=FILDTEOIK2HBORODV&artist=grateful+dead&format=json&results=5&type=artist-radio&song_type=studio

This yields results like:

        "songs": [
            {
                "artist_id": "AREGX5K1187B9B6C9E", 
                "artist_name": "Grateful Dead", 
                "id": "SOVPMJY1376FEE20F7", 
                "title": "Casey Jones"
            }, 
            {
                "artist_id": "ARGLOWN1187B99C06D", 
                "artist_name": "North Mississippi Allstars", 
                "id": "SOZSRVP136BB6BB5F4", 
                "title": "Goin' Down South"
            }, 
            {
                "artist_id": "ARR40ET1187B9B4FC5", 
                "artist_name": "Jerry Garcia", 
                "id": "SODJOHE13134397010", 
                "title": "Love Scene"
            }, 
            {
                "artist_id": "AR8KJG41187B9AF8EC", 
                "artist_name": "Assembly of Dust", 
                "id": "SOTWHSB1312A8AA220", 
                "title": "Borrowed Feet (Feat. John Scofield)"
            }, 
            {
                "artist_id": "ARSRSPK1187B995ECD", 
                "artist_name": "New Riders of the Purple Sage", 
                "id": "SOREWFW1312A8A4F65", 
                "title": "Henry"
            }
        ]

The live and studio attributes are determined solely based upon the song acoustics.  If there is crowd noise at the beginning or end of a song, it will be labeled as live.  This approach is independent of any other metadata - if the song sounds live we will label it as live.   Of course there are some outliers. A song like Bennie and the Jets by Elton John is a studio song, but it sounds live because there is some synthetic crowd noises during the intro. We label that song as live.  

The perceptive reader may wonder why we have two seemingly complimentary song types of live and studio.  Indeed, in a perfect world, a song that is not live should be a studio and vice versa.  Unfortunately, not everything is so clear cut.  We are very confident that some songs are live and we are very confident that some songs  are studio, but there are also a lot of songs that we just aren’t sure of based upon their audio which label they should get.  These songs will be neither be labeled studio nor live (you can consider these to be the Schrödinger’s cat of songs - you can’t tell if they are live or not until you listen to them).  You can retrieve the live / studio attributes with the song_type bucket.

If you are interested in the details you can peek under the hood and look at the raw liveness attribute. We have added this attribute to the audio_summary bucket for a song. This liveness attribute is a number between 0 and 1 that gives a measure of how ‘live’ we think the song is. The higher the liveness the more likely the song is a live song.  

To demonstrate the live song type,  I’ve built a little demonstration app called “We are doing it Live!”. This app will generate Spotify Artist Radio playlists filled with live tracks.

You can try out the demo at http://static.echonest.com/demo/live.html. The source code can be found on github.

This live/studio song type feature is still in beta, but we think it is already good enough to allow you to start creating cool apps.  So try out the demo, read the API docs and get coding.