dbm: Similarity-based playlists and music library navigation for rockbox


dbm can be used to

  • navigate your music library by musical similarity, as determined by last.fm similar artists and genre tags.
  • generate random playlists based on musical similarity, as well as single-artist playlists, etc
  • specify a last.fm user and browse music in your collection that they have listened to recently
  • find music in your collection that you have not listened to recently
  • keep on your music player biographies of all artists in your collection
  • create lists of recommended similar artists that are not in your library
  • create an alphabetical index of links to artists in your music library
  • download album art

dbm is designed to be used with rockbox – an open source firmware alternative that runs on a wide range of MP3 players. Rockbox brings many new features to MP3 players, and the main aim of dbm is to create a system of links and playlists based on music similarity which can be used under rockbox.


Please download dbm from here.


Using dbm

I use dbm to set up my ipod so that the main file menu looks like


Navigation folder

This contains a system of links to different folders in the library. Currently this holds

  • Last.fm Similar For every artist, there are links to folders in the library corresponding to similar artists (links to folders containing albums by similar artists, and also links to compilations featuring a track by that artist, or by a similar artist). This provides an alternative method for choosing music to listen to: first pick an artist that's roughly the sort of music you're considering, then scroll through the similar artist offerings and either jump to one of them or to the original artist.
  • Musicspace Similar This is the same as Last.fm Similar, except that musical similarity is defined by a personal spreadsheet file, rather than by last.fm.
  • A-Z An alphabetical index allowing you to access a particular artist rapidly, in the same way as one can with the Rockbox database.

Playlists folder

The folders of playlists currently generated are

  • Last.fm Similar: For every artist, a random playlist of tracks by similar artists (using last.fm similarity). As an example, here are the last.fm similar artist playlists it created for me.
  • Musicspace Similar: The same as Last.fm Similar, but using the personal music similarity file.
  • Single Artists: For every artist, a random playlist of tracks by that artist [also provided by the rockbox database feature]
  • All Artists: Playlists of tracks taken entirely at random from the library. This is broken up into several playlists of 1000 tracks among which there are no repeats.

Other folders

  • Library This contains my actual music; this folder is not created by dbm .

The basic procedure for using dbm is:

1. Connect your rockbox music player

2. Scan your music library (File menu: Scan library)

Select the folder on your rockbox device where you keep all your music. If you are still using itunes then this will be called "iPod_Control". After scanning a library, dbm will download similar artists data from last.fm for every artist in the library. This can take a while; however, if you save your library once it's done then you should not need to do it from scratch again. Note that the music library can be any folder containing music; it doesn't necessarily have to be your entire collection.

3. Specify output folders and rockbox device location (Tasks menu: Settings)

The output folders for the playlists and navigation links must be empty folders. dbm will create various subfolders inside them containing the playlists and links. Once it has finished, you are free to rename and/or move these folders to wherever you want.

4. Generate the navigation links and playlists (Tasks menu)

Recent changes

  • 2009-07-04 Sat: dbm now creates a folder containing biographies (from last.fm) for all artists in the library. rockbox opens these automatically with a text viewer when you hit select.
  • 2009-06-11 Thu: You can now make playlists and links based on last.fm tags. This looks quite promising.
  • 2009-05-21 Thu: You can now enter the names of last.fm users and get playlists and links to music that they have listened to and that you have. Also for music they haven't listened to (useful if the user is you)
  • 2009-04-19 Sun: The GUI now allows you to view your music library as it is arranged on disk, and by artist. Amongst other things this makes it easy to locate badly tagged music.
  • 2009-04-15 Wed: There is now an album art downloader that attempts to get cover art for all your music. (It retrieves jpegs which you'll need to convert to .bmp for rockbox)
  • 2009-04-15 Wed: To make dbm ignore a folder, place a file in that folder named '.ignore' (file contents don't matter; it can be empty)
  • 2009-04-11 Sat: Similarity can be defined by a personal 'musicspace file', as well as by last.fm similar artists
  • 2009-04-06 Mon: dbm now has a GUI
  • 2009-04-05 Sun: MusicBrainz tags are definitely helpful, but are no longer essential for dbm to work
  • 2009-04-05 Sun: mpc and flac formats supported, in addition to mp3, ogg, mp4, m4a.


If present, dbm will use MusicBrainz identifiers to keep track of artists, albums and tracks. If not, it will just use the artist names it finds in the tags. The MusicBrainz Picard tagger can be used to add these identifiers to your music library.

The original command-line interface still works. Instructions for using dbm from the command line are here.

Feedback, problems etc

I'd appreciate it if you'd drop me an email if you're using dbm: davison at stats dot ox dot ac dot uk. I'm still working on it. If you encounter problems, please email me with a copy of the logfile dbmlog.txt and, if you don't mind sharing it, a compressed copy of the saved library file that dbm creates. I'm happy to discuss the project direction, new features etc.


Humberto Santana and Sheamus Sweeney for suggestions and testing; Amr Hussan for creating the python last.fm API pylast; the rockbox developers. html generated by emacs org-mode.