Using MediaMonkey scripts and Last.fm to discover cool music you never knew you had!
If you’re anything like me you have a HUGE music collection and even though you’ve got gigs and gigs of tunes you find yourself listening to a very small subset of your entire library. Sites like Last.fm, Yahoo! Music, the iTunes Store, and Pandora are awesome at suggesting new artists that you might like based upon your listening habits. So you take their suggestions and keep adding to your collection at such a rate that more likely than not you’re missing out on some of the gems that you already have.
An important note: This technique really needs a library with over 2500 tunes. But if you don’t have a library that size you probably have a good handle on what’s in there anyway so you don’t need to bother with all of this.
Get a Last.fm Account
Using the Last.fm node with MediaMonkey does not require a Last.fm account but I highly recommend it. Why? Well, it’s neat getting a report of your listening habits. It also recommends concerts in your area, new music you might like, and all sorts of fun stuff. Oh, and it’s a great way to let your friends know what you’re listening to. Even cooler: if you have an iPhone you can stream your library whilst you’re out and about.
To get started go to http://www.Last.fm/. It’s free.
Start Rating Your Music
There’s an awful lot of groovy things you can take advantage of within MediaMonkey when you have a fully tagged library. For the purpose of this tutorial though, we’re going to talk about the rating tag.
MediaMonkey comes default with a couple of auto play lists that generate a list of songs you’ve ranked 4 stars or higher. Two of these lists are intended to be suitable for burning to either an audio CD or an MP3 CD, I use them to populate my iPod with my favorite music. It’s great for road trips, commutes, tuning out coworkers and the like. The third will play an hour of favorites you haven’t heard in a while. The more songs you have rated the more diverse and interesting these play lists become.
But you should also rank songs that aren’t your favorite if you really want to take advantage of this tutorial. Why? Well, as we’ll see in a bit, the Last.fm node is going to select songs that haven’t been rated yet. It’ll generate the next song in the Now Playing List and as a result it’ll find songs that you probably haven’t heard or haven’t listened to in a while. So any song that hasn’t been ranked is prioritized for play.
How you decide to rank your tunes is a matter of personal taste. I use the following ranking system, which works for me:
5 Stars – My absolute favorite songs. I consider it to be sensory deprivation to be without these tunes.
4.5 Stars – This rating is a tough one to define. Why? Well, it includes songs that I really love but I just can’t bring myself to giving ‘em five stars. It could be because the artist hasn’t “proven” themselves. Let’s just say that these are really awesome songs.
4 Stars – Any song I want to randomly pop up in my favorites list is ranked as at least 4 stars. These are the songs that at any given moment I really like at any given moment. If I get bored with them they’ll be demoted to 3.5 stars.
3.5 Stars – This rating is a bit of a transitional state. These songs COULD be awesome but I just don’t want to listen to ‘em right now. Also any song that isn’t rated 4+ by an artist I really love, like David Bowie, would get this rating by default.
3 Stars – This is the middle of the road: either I don’t really have anything against the song or it’s filler for an album (a great example would be anything that wasn’t a single by Aerosmith).
2.5 Stars – I don’t really use this rank.
2 Stars – These songs just don’t do anything for me. I don’t actively dislike them enough to hate them but I really don’t want to hear them. Anything by Dave Matthews and just about every country song fall into this rating.
1.5 Stars – I don’t really use this rank.
1 Stars – If there’s any justice in this universe I’ll never have to listen to this song again.
.5 Stars – I don’t really use this rank.
Bomb – I don’t use this rank. Why? Because on the player in MediaMonkey a bomb looks the same as if it hasn’t been rated and I find it useful to know if I’ve actually ranked the song or not.
Install the Last.fm Node Script
In order to make this whole thing work you’ll need the Last.fm node script for MediaMonkey. It’s pretty much the crux of the whole endeavor. This script allows MediaMonkey to pull XML feeds from Last.fm based upon various criteria. The criteria we’re using in this project is similar songs.
The Node script for MediaMonkey 3.1 can be found at: http://www.mediamonkey.com/forum/viewtopic.php?f=2&t=24879&start=0&st=0&.... This forum entry’s first post contains the release notes and download link for the script. To install this version (and only if you’re running MediaMonkey 3.1) do the following:
1. Download the MMIP file. MMIP files are MediaMonkey Installation Packages.
2. Start MediaMonkey. You’ll want to run it as “administrator” if you’re using Vista. To do this all you have to do is right click on the icon for MM and select “Run as administrator”.
3. Double click on the downloaded MMIP file.
4. It should return with “Product Installation Successful”. If it doesn’t the forum has an awful lot of help to address any issues.
The Node script for MediaMonkey 3.0 can be found at: http://www.thehedgemaze.com/lastfmnode.htm.
To install this version of the Last.fm Node do the following:
1. Shut down MediaMonkey
2. Download the Lastfm_DJ.zip file.
3. Extract the zip file.
4. Copy all of the files to your MediaMonkey script\auto directory. This directory is usually under C:\Program Files\MediaMonkey\script\auto
5. Restart MediaMonkey.
Modify the Last.fm DJ Settings
Now that you have the Last.fm node installed you’ll need to visit MediaMonkey options to modify the Last.fm DJ settings. Why’s this important? Well, by default the auto DJ tries to pull similar songs that have been rated. That’s not terribly helpful for what we’re trying to do. So let’s change them.
Navigate to Tools > Options
Then to Library > Last.fm Node
When you’ve done that you’ll be looking at a screen very similar to the image below.
The values we want to play with are in the DJ section which are on the bottom half of the script’s menu.
Select Rating – Set this to -1. This will tell the DJ program to try and find matching songs that haven’t been rated. You’ll notice that this value goes from -1 to 100. MediaMonkey sets its ratings on a 100 point scale, even though the interface uses a five star system. Each half star increment represents a 10 point shift on the scale. So bombs represent 0 and five stars represents 100. 4.5 stars represents 90. We’re setting this to -1 to pick songs that haven’t been rated.
How many days before track repeats – This value shouldn’t really matter considering that once you’ve listened to the song you’ll be rating it, but I like to leave this as the default.
How many hours before artist repeat – Set this to a value of your choosing. I like the seven hour setting because I’m trying to find new stuff and just listening to an entire album isn’t really the point. If the artist can repeat it’s very likely that you’ll end up listening to the entire discography of KISS.
Limit the available valid tracks – Leave this as a default of 30.
Number of times to retry with less restrictions – I’ve left this as a 2. This value is used when your library doesn’t contain anything that matches on the first run. It will usually increase the “Select Rating” value until it finds something to play. This value also explains why sometimes rated songs appear.
While you’re in the Options screen check to make sure that the default Auto-DJ function provided with MediaMonkey has been disabled. It can be found under Player > Auto-DJ/Now Playing. Uncheck the “Enable Auto-DJ” box and you’re set to go.
Enable Last.fm DJ Mode
Okay. Now that you have the DJ functionality set up, all you have to do is go back to the main screen and click the Last.fm icon. You’ll see the drop down gives you a “Last FM DJ mode”. In the screen shot provided I have put a big white circle around the Last.fm icon. Click that. It’s that easy.
You can also enable the DJ mode from the Options screen by clicking the DJ Mode box.
Play a Song You Like
Run a search on your library to find a song you want to use as the seed for your new music experience. It’s important to make sure that the song you’re using is going to show up as the last song in your Now Playing list. The easiest way to accomplish this is to search for a song by title so that it’s the only result in a search. Play that tune and watch with child-like wonder whilst the script does its magic.
As new tunes are played give ‘em a ranking.
A special note: If at first you don’t succeed, try, try again. What I’ve found while playing with this procedure is that if Last.fm generates a super popular song it’ll likely start a whole new tangent of music. Also, if you’ve already rated a bunch of a particular genre it’ll have difficulty finding something new and might generate some odd results. Try a couple of different tunes and give it some time.
So what’s happening during this process? When you get to the end of a playlist the last song is submitted to Last.fm and a collection of similar tracks is returned to MediaMonkey in XML format. MediaMonkey then compares this list to the songs in your library that meet the criteria set in the Last.fm DJ. It’ll keep trying until it finds a match or exceeds its retry value. The more songs you have, the more successfully this process works.
This tutorial assumes that you use MediaMonkey. And you really should. It’s superior to iTunes in many ways (not suggesting that iTunes is a bad program… It’s just isn’t nearly as powerful or flexible). MediaMonkey is available at http://www.mediamonkey.com.