Posts Tagged playlist

Using the wisdom of the crowds to build better playlists

At music sites like Rdio and Spotify, music fans have been creating and sharing music playlists for years. Sometimes these playlists are carefully crafted sets of songs for particular contexts like gaming or sleep and sometimes they are just random collections of songs.  If I am looking for music for a particular context, it is easy to just search for a playlist that matches that context.  For instance, if I am going on roadtrip there are hundreds of roadtrip playlists on Rdio for me to chose from. Similarly, if I am going for a run, there’s no shortage of running playlists to chose from.  However, if I am going for a run, I will need to pick one of those hundreds of playlists, and I don’t really know if the one I pick is going to be of the carefully crafted variety or if it was thrown together haphazardly, leaving me with a lousy playlist for my run.   Thus I have a problem –  What is the best way to pick a playlist for a particular context?

Naturally, we can solve this problem with data.  We can take a wisdom of the crowds approach to solving this problem. To create a running playlist, instead of relying on a single person to create the playlist, we can enlist the collective opinion of everyone who has ever created a running playlist to create a better list.

I’ve built a web app to do just this. It lets you search through Rdio playlists for keywords. It will then aggregate all of the songs in the matching playlists and surface up the songs that appear in the most playlists.  So if Kanye West’s  Stronger appears in more running playlists than any other song, it will appear first in the resulting playlist.  Thus songs, that the collective agree are good songs for running get pushed to the top of the list.  It’s a simple idea that works quite well. Here are some example playlists created with this approach:

Best Running Songs

Coding

Sad Love Songs

Chillout

Date Night

Sexy Time

This wisdom of the crowds approach to playlisting isn’t limited to contexts like running or coding, you can also use it to give you an introduction to a genre or artist as well.

Country

Post Rock

Weezer

The Smart Playlist Builder

The app that builds these nifty playlists is called The Smart Playlist Builder.  You type in a few keywords and it will search Rdio for all the matching playlists.  It will show you the matching playlists, giving you a chance to refine your query.  You can search for words, phrases and you can exclude terms as well. The query sad “love songs” -country will search for playlists with the word sad,  and the phrase love songs in the title, but will exclude any that have the word country.

Smart_Playlist_Builder

When you are happy with your query you can aggregate the tracks from the matching playlists. This will give you a list of the top 100 songs that appeared in the matching playlists.

Smart_Playlist_Builder

If you are happy with the resulting playlist, you can save it to Rdio, where you can do all the fine tuning of the playlist such as re-ordering, adding and deleting songs.

Top_sad_love_songs_-country_songs_via_SPB_–_Rdio

The Smart Playlist Builder uses the really nifty Rdio API. The Rdio folks have done a fantastic job of giving developers access to their music and data. Well done Rdio team!

Go ahead and give The Smart Playlist Builder a try to see how the wisdom of the crowds can help you make playlists.

, ,

7 Comments

Controlling the artist distribution in playlists

The Echo Nest engineering team just pushed out a new feature giving you more control over the artist makeup in playlists.  There is a new parameter to the playlist/static API called distribution that can be set to wandering  or focused.   When the distribution is set to wandering the artists will appear with approximately equal distribution in the playlist. If the distribution is set to focused artists that are more similar to the seed artists will appear more frequently.  When combined with the variety parameter, you have excellent control over the number and distribution of artists in a playlist.  If you want to create a playlist suitable for music discovery, create a playlist with high variety and a wandering distribution.  If you want to create a playlist that more closely mimics the radio experience choose a low variety and a focused distribution.

I’ve put together a little demo that lets you create playlists with different levels of variety and distribution settings. The demo will create a playlist given a seed artist and show you the artist distribution for the playlist.  Here’s the output of the demo with distribution set to focused:

You can see from the artist histogram that the playlist draws more from artists that are very similar to the seed artist (Weezer).  Compare to these results from a wandering playlist with the same seed and variety:

You can see that there is flatter distribution of artists in the playlist.   You can use variety and distribution to tailor playlists to the listener.  For instance, you can give the Classic Rock Radio experience to a listener by setting variety to relatively low, setting the distribution to focused and seeding with a classic rock artist like Led Zeppelin.  Here’s the artist distribution for the resulting playlist:

That looks like the artist rotation for my local classic rock radio.

Give the demo a try to see how you can use variety and distribution to match playlists to your listener’s taste.  Then read the playlist API docs to see how to use the API to start incorporating these attributes into your apps.

The Demo:  Playlist Distribution Demo (source)

, , , , ,

Leave a comment

Searching for chilled metal

It seems like every heavy metal band has at least one chill-out song – from Metallica’s Nothing Else Matters to Led Zeppelin’s That’s the Way.   These tracks give some relief from the otherwise relentless pounding of the hammer of the gods.  It’d be nice to be able to collect up a bunch of these chilled-metal songs into a playlist – perfect for when your mom’s visiting (she tells me that she doesn’t like pounding metal).

ChilLed Zeppelin - Some rights (by-nc-sa) reserved by Heinrich Klaffs

To find chilled metal, we can use The Echo Nest API.  The Echo Nest has calculated a wide range of acoustic and musical attributes for millions of songs. One such attribute is energy .  We can make  a simple song/search query for heavy metal songs that have low energy.  These will be our chilled-metal songs that your mom enjoys so much.  Here’s the API query:

http://developer.echonest.com/api/v4/song/search?&style=heavy+metal&sort=energy-asc

This query searches for songs by heavy metal artists, and sorts the results in order of ascending energy (so the lowest energy tracks will be returned first).  The query does a really good job of finding chilled metal.  Here’s a sampling of the results:


Sphinx (The Guardian) by Black Sabbath

[audio http://previews.7digital.com/clips/34/645345.clip.mp3]

Sphinx (The Guardian) by Black Sabbath  – energy: 0.0003


Demon Driver reprise by Gillan

[audio http://previews.7digital.com/clips/34/4179195.clip.mp3]

Demon Drive by Gillan – energy: 0.010


The Return by Saxon

[audio http://previews.7digital.com/clips/34/5318312.clip.mp3]

The Return by Saxon – energy: 0.013


Solitude by Judas Priest

[audio http://previews.7digital.com/clips/34/3544312.clip.mp3]

Solitude by Judas Priest  – energy: 0.049


Joan of Arc by UFO

[audio http://previews.7digital.com/clips/34/7952114.clip.mp3]

Joan of Arc by UFO – Energy: 0.05


Fear by Black Label Society

[audio http://previews.7digital.com/clips/34/5768332.clip.mp3]

Fear by Black Label Society Energy – 0.119


You can also use the Echo Nest Playlist API to generate a chilled metal playlist.   Here’s a call to create a playlist of chilled metal in XSPF format.

http://developer.echonest.com/api/v4/playlist/static?api_key=N6E4NIOVYMTHNDM8J&style=heavy+metal&max_energy=.1&type=artist-description&bucket=id:7digital&bucket=tracks&limit=true&format=xspf

You can toss this playlist into a player like VLC or Songbird that supports XSPF and start listening to chilled metal right away (30 second samples only) like this:

% curl 'http://developer.echonest.com/api/v4/playlist/static?api_key=N6E4NIOVYMTHNDM8J\
   &style=heavy+metal&max_energy=.1\
   &type=artist-description&bucket=id:7digital&bucket=tracks&limit=true\
   &format=xspf' > chilled-metal.xspf
% open chilled-metal.xspf

There you go, you now have all the tools you need to keep your chilled metal queue filled and fresh, almost everything you need to keep your mom happy.

Thanks much to 7Digital for providing audio clips and album art.

, ,

4 Comments

Do you use Smart Playlists?

[tweetmeme  only_single=false] iTunes Smart Playlists allow for very flexible creation of dynamic playlists based on a whole boat-load of parameters.  But I wonder how often people use this feature. Is it too complicated?  Let’s find out.  I’ve created a poll that will take you about 20 seconds to complete.   Go to iTunes, count up how many smart playlists you have.  You can tell which playlists are smart playlists because they have the little gear icon:

Don’t count the pre-fab smart playlists that come with iTunes (like 90’s music, Recently Added, My Top Rated, etc.).   Once you’ve counted up your playlists, take the poll:

, ,

13 Comments

Some preliminary Playlist Survey results

[tweetmeme source= ‘plamere’ only_single=false] I’m conducting a somewhat informal survey on playlisting to compare how well playlists created by an expert radio DJ compare to those generated by a playlisting algorithm and a random number generator.  So far, nearly 200 people have taken the survey (Thanks!).     Already I’m seeing some very interesting results. Here’s a few tidbits (look for a more thorough analysis once the survey is complete).

People expect human DJs to make better playlists:
The survey asks people to try to identify the origin of a playlist (human expert, algorithm or random) and also rate each playlist.  We can look at the ratings people give to playlists based on what they think the playlist origin is to get an idea of people’s attitudes toward human vs. algorithm creation.

  Predicted Origin  Rating
  ----------------   ------
  Human expert      3.4
  Algorithm         2.7
  Random            2.1  

We see that people expect humans to create better playlists than algorithms and that algorithms should give better playlists than random numbers.  Not a surprising result.

Human DJs don’t necessarily  make better playlists:
Now lets look at how people rated playlists based on the actual origin of the playlists:

  Actual Origin     Rating
  -------------     ------
  Human expert      2.5
  Algorithm         2.7
  Random            2.6 

These results are rather surprising.  Algorithmic playlists are rated highest, while human-expert-created playlists are rated lowest, even lower than those created by the random number generator.  There are lots of caveats here, I haven’t done any significance tests yet to see if the differences here really matter, the survey size is still rather small,  and the survey doesn’t present real-world playlist listening conditions, etc. Nevertheless, the results are intriguing.

I’d like to collect more survey data to flesh out these results.  So if you haven’t already, please take the survey:

The Playlist Survey

Thanks!

, , ,

1 Comment

Music Playlist quiz followup

I had a playlist quiz the other day. To recap, I asked, given a set of 6 songs, find the organizing principal and pick a new good song for the playlist.   A few attempted to extend the playlist, but only Adam offered a successful match.   Here are the seed songs, but this time I also include the album art – which may help you decide what songs fit and what don’t:

  • Made to measure – Umphrey’s McGeez
  • Diablo Rojo – Rodrigo Y Gabriella
  • Livin’ Thing – Electric Light Orchestra
  • Two Step – Dave Matthew’s Band
  • Vortex – Burst
  • Almost Honest – Megadeth

Adam’s suggestion of XTC’s Wake up fits well:

We’ll call this playlist, the squared circle.  There are lots more potential album covers for albums in this genre on Flickr: squaredcircle

, , ,

1 Comment

Help scientists build better playlists

Luke Barrington, a Music Information Retrieval researcher at UCSD,  is trying to improve the state of the art in automatic playlist generation.  He’s conducting a survey and he needs your help.

survey

If you are interested in helping out, take the survey.

Here are the details from Luke:

With music similarity sites like Pandora.com or iTunes’ Genius feature that recommends playlists, based on a song that we like, our MIR domain of music similarity and recommendation is finding a mass audience.  But are these systems any good?  Could we make something better?

This is what I’m trying to figure out and I would like to include your opinion in my analysis.

We are conducting an experiment where you can listen to playlists that are recommended, based on a “seed song”, and evaluate these recommendations.  We are comparing different recommendation systems, including Genius, artist similarity and tag-based similarity.  Most importantly, we’re are trying to discover the important factors that go into creating and evalutating a playlist.

If you’d like to participate in the experiment by listening to and evaluating some playlists, please go to:

http://theremin.ucsd.edu/playlist/

As an incentive, we’re offering a $20 iTunes gift card to whoever rates the most playlists (but it’s about quality, not quantity!)

To learn more, ask questions or make suggestions, feel free to drop me a line.

Thanks for your help,

Thanks for your help,

Luke Barrington,
Computer Audition Laboratory
U.C. San Diego
van.ucsd.edu

, ,

3 Comments