MusicExplorer is the new way to generate intelligent dynamic Playlists.
Imagine all songs you have as points in space, where similar songs lie near to each other. This script can walk around in this space and generate smooth playlists (no big jumps in genre for example).
The script can also act as a DJ. Just add the songs you definitly want to hear to the playlist and the script will automaticly reorder them and add some more songs in between such that you get nice transitions between your songs.
The first time you start, the plugin will download the coordinates for all your songs from MusicExplorer.org (poor page atm), which might take some time. You definitly want to read the FAQ that comes with this script.
Keep in mind that this is an alpha release: There are still a some API functions needed in order to finish this. If you are a developer, take a look at the TODO list.

MusicExplorer coordinates are powered by last.fm.
Ratings & Comments
19 Comments
Hi! I tried your script because the describtion was just to promising, but (of course) it did not work with Amarok 2.3. Is there a any hope that this combination will work one day? ;) If not: Is there a safe way to get rid of the data (SQL stuff) the script created in my database? Greetz, dustbln
Good news - I have implemented this project for Winamp. I am looking to port it to Amarok as well. :)
Googling around to figure out how to use this Amarok plugin, I've seen repeatedly: read the FAQ. But I can find it nowhere. The help tab here takes me to a blank question form and asks me to create an account, which I did. I still see no FAQ -- not on the homepage of the project, not here, and not anywhere else, either. ?
I wondered this, then I found it, in the script's folder inside the amarok folder, ie. /home/you/.kde/share/apps/amarok/scripts/music_explorer/FAQ Personally, I'd like to know of the vital status of this project. Is it dead, or just waiting for the API changes that you wanted? If it's the latter, you should try getting in touch with the Amarok devs.
Thanks for the reply, piemonkey. Thanks to you, I have found and read the FAQ. It seems odd that it isn't on the website! Thanks again,
Hi guys, It's right: the project is currently on ice. missing API was one thing but since version 2.1 some important features were added so my only excuse to not fix it is my lack of time (which is a bad excuse :) ). But I will release a new version until end of June. And sorry for the website: I'm not affiliated with them directly: I'm only the guy with the plugin :D
Oh man, I hope you get the time soon. This is probably the best script for amarok 2 yet. Maybe you should try to get help from other devs to get this thing rolling.
If you wish to check which tracks do not have coordinates and for what reason... First connect to the database, with Amarok not running. (Taken from amarok.kde.org/wiki) Some tools like MySQL Administrator require a daemon to connect to. You can start such a daemon like this: cd ~/.kde4/share/apps/amarok /usr/sbin/mysqld --defaults-file=`pwd`/my.cnf --default-storage-engine=MyISAM --datadir=`pwd`/mysqle --socket=`pwd`/sock --skip-grant-tables The skip-grant-tables means you can use any password or username to connect to it. 'localhost' will not work, the MySQL client will try to use a unix socket. Using 127.0.0.1 as the host makes it work. Once you connect with MySQL Query Browser, you can use the following SQL Query (export to HTML is also nice): SELECT a.name, b.name, t.title, m.code FROM music_explorer m, tracks t, artists a, albums b where m.code != 0 and m.url_id = t.url and t.artist = a.id and t.album = b.id The codes listed are the following: CODE_ARTIST_NOT_FOUND = 1; CODE_TITLE_NOT_FOUND = 2; CODE_NO_COORDINATES = 3; CODE_NO_ARTIST = 4; CODE_NO_TITLE = 5; CODE_NOT_LOOKED_UP = 7; (I wouldn't mind if this was implemented in the script as well :D)
First: Awesome! I was looking for a script like this! Id like to see in my collection which titles have no coords... and could there be a button which brings me directly to the repopulate feature? im looking forward to see how this really nice script will grow ;)
Suggestions: This script seems to repeat songs too fast... So there must be a flag to each song after being played not to play it again. But not use this if playlist has been completely new. So integer as identifier or something in database. Also: Script must go in some direction not just get the nearest hit. It also need to have available way back to center of this coordinates or turn to new way on the edge... Or: Choose lets say 10 nearest songs from played and then randomly choose one from them regardless to distance.
Make sure you have "random (smooth) path" activated in the configuration or else the script will stick to a given song as you described. I agree, that the small database (~400'000songs atm) is the biggest problem for the script to perform well. And this number is limited by hardware... :( I am looking forward for a better database which can do estimations for coordinates such that all songs on last.fm are also recognized. Hopefully I will find some time in february to work on it myself...
This is really great stuff. The only problem is there is many songs missing... Are this data built on entire database? If is so we need to think about building from other sources too...
I just registered specifically to say YOU ROCK! .... Genius playlists (from iTunes) have been my "missing feature" I'd never heard of musicexplorer.org. This is awesome. Your work is much appreciated!
Thank you very much for your motivating post. ;) I suppose nobody heard of musicexplorer.org before since its a running research project and this script is somehow the first attempt to actually bring this to the user. I hope a developer will soon add some signal handlers for 'song-added' and 'song-removed' from the playlist and stuff like this. So I could reduce the nr of hacks in the code and maybe create a beta version. But I'm happy you like the new way of playlist generation.^^
Have you tried requesting the notifications you need on bugs.kde.org or on the amarok mailing list? I think they are frozen for the 2.0 release, but someone could probably add them for 2.1. Seems like this would be needed for any script that's going to be manipulating the playlist.
Hm, you definitely should file a bug and/or get in touch with the Amarok devs in #amarok on freenode or write a mail. They not necessarily hang around here and read the comments...
[MUSICEXPLORER] [SQL] SELECT * FROM music_explorer WHERE url_id=3 [MUSICEXPLORER] [SQL] INSERT INTO music_explorer (url_id, code, artist, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9) VALUES (3, 4, "", 0,0,0,0,0,0,0,0,0,0) amarok: [ScriptManager] [ERROR!] Script Error: "10:12:09 ReferenceError: next_track is not defined on Line: 163" Other than that it looks quite interesting. I could imagine that in the future, this could be integrated quite nicely as a bias type in the Dynamic Playlist editor if you are interested. ( A bias like "Music Explorer Distance < value" )
Thx for reporting. I fixed the bug (global variables are mean). Integrating this as a bias would definitly be a good idea and it would be easy to implement once an API to amarok exists (adding a bias button + all the needed signals).