The Databionic MusicMiner is a browser for music based on data mining techniques. You can create MusicMaps to visualize the similarity of songs and artists. Explore your music and create playlists based on the paradigm of geographical maps!

The first version of MusicMiner is being developed as part of a research project of the Databionics Research Group at the University of Marburg, Germany. It is meant to be a usable proof of concept to demonstrate our ideas for future music applications. Please understand that our main focus is on research and teaching. We can only provide limited user support via the mailing lists. If you find bugs, have ideas for further functionality, or think the manual is too brief we encourage you to participate and enhance the MusicMiner. You do not need to be a programmer to help.


For the impatient reader an uncommented guide to creating the first MusicMap with a few clicks.

  • Start Musicminer
  • Menu item File->Add music
  • Browse button
  • Select folder with music
  • Start button, wait...(it takes some time, until the display is updated)
  • Close button
  • Right click the root of the Music tree on the left.
  • Select popup menu item create music map.
  • Start button, wait...
  • Close button
  • Click with mouse on white sqares to play music

Starting MusicMiner

You can startup the MusicMiner by double clicking on the shortcut or executing the mminer command at a prompt.

We are currently using an in memory database for all songs because it makes installation easier. Startup may take a while if you have a lot of songs in the database. This can be speeded up using external databases (e.g. MySQL) supported in future versions of MusicMiner.

Adding music

To add music to the MusicMiner database, click on the File->Add music menu item. In the dialog you can select a folder to be searched for *.mp3, *.mp2, *.m4a, *.ogg, *.wav, and *.wma files with the Browse button. The Start button initiates the process. The meta data of the songs is parsed from the ID3 tag, the filename, and the folder names.

You can specify a comment for the folder and select whether subfolders should be searched as well. The smart parsing options tries to fill in missing or correct errornous meta information. This is not well tested and significantly slower than the default mode. You can further specify whether to overwrite existing songs and force several common fields of the meta data.

But be patient, it takes some time, until the display is updated. Whenever a directory is fully parsed, the processed songs will be listed.

Browsing music

Once in the database, the music can be browsed with a tree view. There are three sections in the tree, for

  • Music: contains your music.
  • Playlists: for storing playlists.
  • MusicMaps: for storing music maps
The levels of the music tree can be customized using the first three menu items in the View menu. More combinations of categories are possible, let us know what you would prefer. Selecting a node in the tree will make all songs in the selected category and all sub-categories appear in the song table at the bottom. The search field under the song table can be used to quickly search for songs by keyword.

Right clicking in the music tree or the song table will show popup menus for many rather self explanatory functions. You can play music directly or add it to the current playlist in the upper right corner. You can edit the meta data of single songs in place in the tables by double click on the table cell or simultaneously for a selectiong of songs with the popup. The popup menu of the current playlist offers more functionality, e.g. saving a playlist.

The popup menu item find similar songs in the song table can be used to browse the music database by similarity. Based on the sound descriptions the 10 most similar songs of the selected song are searched and displayed in the same table. Note: This function requires the sound descriptions of all songs and the pairwise similarities of all songs to be pre-calculated.

Creating MusicMaps

You can create MusicMaps for a playlist from the popup menu of the current playlist or the playlist tree. Simple press Start in the dialog. For more information on the remaining options, see the Databionic ESOM Tools user manual. When the map is done, click Close and it will be displayed automatically.

The View tab at the bottom offers many options to customize the view on your music map. Since music maps do not have a border per se, they are calculated in an endless universe as in computer games liek Civilization or PacMan. The maps are therefore displayed in tiled mode by default showing four adjacent copies. You can create a non-redundant island display by covering parts of the map with water keeping similar music together by creating an Island mask.

In the process of creating MusicMaps, the sound descriptions need to be extracted from each song. Depending on your computer speed this may take a while. The descriptions can be pre-calculated to speed up the interactive creation of music maps.

Browsing MusicMaps

There are several ways to interact with the maps. First of all, the current title is always displayed in the status line under the map while you move the mouse. The mouse modus in the upper right corner offers three different ways to select songs with the mouse:

  • click: simply left click on the map to select a single song.
  • drag: click and hold down the left mouse button and move the mouse. A red line is drawn on map and all songs under the line will be selected.
  • poly: click the left mouse button several times while moving the mouse it. A polygon line will be drawn. Right click to finish the polygon. All songs inside the shape will be selected. You can also hold down the mouse button for free hand drawing of the selection.
The mouse selection drop down at the top offers four different mouse functions to be performed with the selected songs
  • only info: the selected songs are displayed in the song table at the bottom.
  • play directly: play the selected songs. The players xmms for Linux and WinAmp for Windows are used if they are available. Otherwise the interval Java based player jlGui will be started.
  • collect: Add the selected songs to the internal playlist at the bottom.
  • enqueue: Add the selected songs to the playlist of the player program..

You can also display meta information about the songs on the map as colors. Choose the command color by from the popup menu of the playlist table to create a coloring by genres, artists or albums. Each color group will be displayed in the Classes tab at the bottom. This can also be used to create you own groups by selecting a group of songs with the mouse.

A music map displays usually the music it has been created for. You can also place new music on an existing map by selecting the place on music map command from the popup menu in the playlist tree and table. Each song will appear as a new point on the map where it fits best according to the sound descriptions.

Describing music

The sound descriptions are extracted from the digital audio files of the songs. This is a computationally demanding task and will take some time depending on the speed of your computer. The table below lists some performances reported by users. You can pre-calculate the sound descriptions of all songs with the menu command Mining->Extract audio features or running the mmafe command, e.g. over night, to calculate the sound descriptions for all songs where this is still neccessary. You can also share your sound descriptions by rating songs and submitting your ratings along with the automatically generated sound descriptions to a web server. The audio extraction task can check the web server for already calculated sound descriptions by other users and download them.

P4 2.6GHz15s per song

Additionally you can pre-calculate the pairwise similarities of your songs. This is not required to create music maps, but needed if you want to use the function find similar songs in the popup menu of the song table. You can pre-calculate the similarities of all songs with the menu command Mining->Determine song similarities or the mmsim command, e.g. over night, to calculate the similarities of all pairs where this is still neccessary. The calculation of a single similarity is very fast, but the number of pairs is quadratic in the size of your music collection. The table below lists some examples. If you have many songs, this might take some time and will also use up a lot of disk space and slow down starting and stopping MusicMiner.

100 songs5,000 pairs
1,000 songs500,000 pairs
10,000 songs50,000,000 pairs

The menu command Mining->Statistics will list among other information the percentage of sound descriptions and the percentage of similarities calculated for your music.

Rating music

To improve future versions of MusicMiner we would like to know how you describe your music. At any time you can right-click a song and rate it using several sliders for common aspects of musical sound and genre. Alternatively, you can ask MusicMiner to suggest some songs that you have been listening to frequently by chosing the menu item Mining->Suggest 10 songs to rate.

You do not need to use possible descriptors, initially all sliders are deactivated. We only want you to rate things that your are confident about. After rating a couple of songs a list of songs with similar ratings are displayed to help you in being consistent with you decisions.

After rating one or more songs you should submit your ratings to the web server by selecting the menu item Mining->Submit ratings, reviewing your decisions, possibly excluding some songs by unchecking the checkboxes and pressing the Start button.

Command Line Tools

The complete help for all MusicMiner command line tools is shown by calling them with the single argument -h. We give some typical examples below.

mmdb -s

Starts the database as a background process. Running the other tools will be much faster now. Don't forget to properly shut down the database with mmdb -S.

mmadd -f /data/mp3/Rock -g Rock -r -v

Adds all music files in the specified folder. The genre is set to Rock for all files, all folders are searched recursively and the output is verbose.

mmafe -p best

Extract sound descriptions from audio files on the playlist best.


Precalculate the pairwise similarities of all songs where the sound descriptions have been calculated.

mmap -p best

Create a MusicMap using the audio files on the playlist "best".

mmsearch -a 'Primus' -y 1999 -d '%a - %t' -s aAt

Searches for all songs in the database from 1999, for the artist Primus. The results will be printed like this: Artist - Title. The sorting order is: 1. by artist, 2. by album, 3. by title.

mmimport -f mm.xml -o 'My Friend'

Imports all songs from the XML file mm.xml into the database setting the owner to My Friend for all songs.

Additional commands are mmexport to export the whole database and mmdb for database maintenance.