With RQL and Combo.fm
Some of the most frequent questions and complaints we get at Last.fm include:
- “I’ve added hundreds or thousands of artists to my library, but it doesn’t play them.”
- “Is there any way to filter my music by a tag or genre?”
- “Can I ban artists from my stations?”
Fortunately, there is a way. Read on.
Radio Query Language (RQL) lets you combine Last.fm stations (artists, users, tags) and allows you to filter them with basic logical operators (or, and, not).
For example, if I want to filter my library radio to only play jazz, I can do this with the RQL string:
library:Maddieman and tag:"jazz"
If I want to exclude ‘Lady Gaga’ from ‘Pop’ tag radio:
tag:"pop" not simart:"lady gaga"
If I want to combine two unrelated stations:
tag:"classical" or tag:"electronic"
It’s perhaps easier to illustrate these as diagrams (click any image to launch the station):
If you want, you can make more complicated stations, such as “1980s, Rock, Female Vocalists“, which hopefully will give music like Blondie and The Pretenders. In practise though, this station didn’t give me the results I wanted (use the 80s tag at your own risk), so this one required a slight adjustment:
tag:"80s" and tag:"rock" and tag:"female vocalists" not tag:"pop" not tag:"hair metal"
However, be forewarned that overly complicated queries are unlikely to work. If you just want to listen to a very limited range of artists, you’re probably better off just creating a Spotify playlist.
That’s all fine and good, but how do you actually create your own stations? Fortunately one of our moderators, tburny, created a very nice user interface for RQL, called Combo.fm. It might not win any awards for web design, but it allows you to quickly and easily create custom radio stations.
On the left hand side, you pick the stations you want to include (from personal stations, artists, users, and tags). In the middle of the page you can edit the query and adjust the operators (or, and, not). On the right hand column you can launch your custom station, and you can also tweak the mainstream/obscurity of the artists played, as well as the repetition rates.
As a reminder:
- Or = Union of two or more stations, gives you everything.
- e.g. Pop OR Rock will play artists tagged as either pop or rock.
- And = Intersection of two or more stations, used to filter a station by tag.
- e.g. Pop AND Rock only plays music tagged as both Pop and rock.
- Not = Excludes content from your stations, used to ban artists and tags.
- e.g. Pop NOT Justin Bieber plays artists tagged as pop, but not those similar to Justin Bieber.
Discovery Mode is an advanced feature that attempts to play only music you haven’t listened to yet. It effectively treats your scrobbles as banned tracks. However, due to a quirk in its design, it doesn’t work with your standard Library radio by default, so simply selecting ‘Discovery mode’ won’t make any noticeable difference to your station. In order to activate it, you need to include a dummy tag as well, for example:
library:Maddieman not tag:"pornogrind" opt:discovery|true
None of the music in my library is tagged with “pornogrind”, so nothing is actually excluded; all this does is enable Discovery Mode to launch, and play me music from my library that I haven’t listened to yet.
That’s basically all there is to it. I tend to use it mostly for filtering my library or recommendations radio by a particular tag (e.g. french + female vocalists). It also works well with friends and neighbours radio, and for setting up multi-user stations (good for parties, etc). Give it a go, and see what you can come up with!