metamusic

Posted by Olek on January 27, 2009

People listen to music in different ways. Some people like listening to entire albums at once, others just like listening to the most popular songs from their favourite artists. The main facility for organising and listening to music is the playlist.

People make playlists which satisfy their listening habits. People make playlists to suit their mood, playlists which play all their favourite tracks of an artist (akin to the “best of” albums that artists release), playlists for dancing, playlists for working, or playlists of background music. Playlist creation is an art. DJs (those who arrange music in clubs, not those who write original music) are essentially professional dance playlist creators. There’s been times when I’ve spent hours putting together playlists which perfectly reflect how I feel when I’m happy, or when I’ve wanted a playlist to play while gaming, or when I’ve heard a song and thought “hey, that would sound awesome right after <some other song>”. However, creating a good playlist is made harder by large music collections. Sometimes you want a playlist to suit a mood and know you have some songs which would work perfectly but you can’t remember which ones and you spend half an hour listening to song before you find the right one. Or maybe that’s just my OCD :P

As good as playlists are at organising your music in such a way that it’s more accessible, creating a good playlist can take an inconveniently long time. There must be a better way of organising music, or atleast a more time efficient way. Well, there’s certainly been attempts to create better systems for organising music. The three main ones I know of are:

iTunes Genius was introduced with iTunes version 8. To use it you select a song and then click the Genius button (in the bottom right hand corner). It will then generate a playlist of songs which “go great together”. I’m not so sure. After testing it out a bit it somehow thinks “Jenny was a Friend of Mine” by The Killers “goes great” with “Vicarious” by Tool. Oddly, when I select “Jenny was a Friend of Mine” and click the Genius button it doesn’t come up with Tool on the generated playlist. Being iTunes, it also features a Genius Sidebar which makes recommendations for tracks on the iTunes store which it thinks will go great with the currently selected track. To even get Genius to work you need an iTunes account and for Genius to send “anonymous” information about the user’s song library the Apple database. I remain unconvinced.

The Winamp Playlist Generator works the same way as iTunes Genius.  It actually uses a Gracenote service called Playlist (or perhaps Playlist Plus) to generate a playlist of songs which supposedly “may cross genres and eras to create a playlist of similar music based on the user’s mood”. Interesting that this one deliberately says it tries to match the user’s mood based on the selected “seed” song. When I gave it try again using “Jenny was a Friend of Mine” as the seed song, it gave me a kind of eclectic mix of stuff from my library, including a Handel Oboe Concerto. It seemed to do a bit better when I used “Vicarious” as the seed (see the pictures below). I think this service does produce better results than Genius, although Genius also supposedly “becomes smarter” by compiling the info submitted by its users. However, with the Winamp Playlist Generator you don’t need to submit any info at all to some corporate overlord in the cloud, nor does it bother you with trying to get you to buy other music.

last.fm is a bit different from the other two playlist generators in that it’s more of a music community. There are a few different things it does but one most relevant is that you can go to the site and type in an artist name and it will play a track of that artist and then tracks by similar artists. And it’s actually really really good. Not only are the artists similar but the individual tracks are similar too. There’s a plugin for Songbird called Music Recommender which uses the last.fm similar artist info to suggest artists similar to the one you’re currently listening to (see pic below). However, it’s no where near as good as typing in an artist name to the website and it automatically playing similar tunes by similar artists. There’s a last.fm app you can download which provides this same functionality, but it’s still streamed so the quality isn’t necessarily that good. It would be cool if you could set it to just play local files, alas.

It’s worth mentioning that there are also facilities within most music apps (certainly iTunes and Winamp) that automatically generate lists of ’80s/’90s/whatever music based on the track metadata, but it isn’t really as good as trying to find songs which are similar based on some deeper information than just what is known from the metadata.

Also, there’s a project called the Music Genome Project (implemented at a site called Pandora), which tries to define music in terms of its base attributes (’genes’). If you go to the site you can type in a song or artist and it will play songs which are similar based on their attributes. Apparently each song is defined by up to 400 or so attributes. Unfortunately I was unable to test it due to living in Australia (apparently due to licensing restrictions they can only offer the service to people living in the US), and even after going through a US proxy there appeared some problem with the service: “We are having unexpected technical difficulties. Our engineers are scrambling to fix things”. I might edit this post if I manage to get to use the service another day. However, as part of the process for determining the ‘genes’ of a song the song must be “analyzed by a musician in a process that takes 20 to 30 minutes per song“. So it seems that even if the Pandora service works really well it has problems with scalability. ie. your favourite songs may not even be available.

For me the disappointing thing about the last.fm and Pandora services is that they both require the internet. Sure, most people are connected to the internet alot of the time either at home or via their phones, but there are plenty of times when this would be a restriction. Neither service has a mode where you can just have it work exclusively for your local music library. This is a shame, last.fm works really well and I’m curious to try out Pandora. It seems like there would be great demand for an app that would just work locally on your music collection to make recommendations and automatically play similar songs based on a seed song. It would be like listening to music on shuffle but you actually hear songs you really want to listen to based on your mood. And unlike traditional playlists, it would actually work better the larger the music collection.

However, I wonder if it’s even possible to write an app which can fulfil this description without using the internet. I wasn’t able to test Pandora so I can’t tell how similar the song selections were, but I know last.fm works really well. Perhaps it’s only possible to create an app that can provide accurate similar song selections by using the internet and analyzing the data provided by millions of users each with distinct tastes. Is it possible to create an app which could do something similar to the Music Genome Project but without requiring each song to be listened to by a musician, thus overcoming the problem of scalability? How are music attributes like timbre captured by a digital signal? I don’t know but it would be cool to find out ;)