MusicExplorer

Amarok 2.x Scripts

Source (link to git-repo or to original if based on someone elses unmodified work): Add the source-code for this project on git.opendesktop.org

4
Score 68%
Description:

This script only works with Amarok 2.0. 2.1 cannot be supported util several Amarok-bugs are fixed.

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.
Last changelog:

10 years ago

alpha 1.2b:
- added functionality to avoid songs
- corrected startup error msg
- b) adding songs works for newest svn

alpha 1.1:
what should work:
- download of the MusicExplorer coordinates (fixed)
- generate dynamic playlists according to configuration

what might work:
- adding fixed songs manually to the playlist

what will definitly not work:
- removing songs/changing order will likely corrupt the script -> restart it

dustbln

8 years ago

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

Report

rahulthewall3000

8 years ago

Good news - I have implemented this project for Winamp. I am looking to port it to Amarok as well. :)

Report

valoriez

9 years ago

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.

?

Report

piemonkey

9 years ago

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.

Report

valoriez

9 years ago

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,

Report

C

kk7

9 years ago

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

Report

mintlars

9 years ago

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.

Report

Trail_deactivated

9 years ago

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)

Report

scharc

9 years ago

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 ;)

Report

MeMarko

9 years ago

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.

Report

C

kk7

9 years ago

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...

Report

MeMarko

9 years ago

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...

Report

davewantsmoore

10 years ago

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!

Report

C

kk7

10 years ago

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.^^

Report

bodly

10 years ago

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.

Report

Mamarok

9 years ago

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...

Report

Takahani

9 years ago

Hi,

Looking here :
http://amarok.kde.org/wiki/Development/Script_API

There are 2 signals
# void trackRemoved(int row)
# void trackInserted(QVariant track, int row)
Is that it ?

Report

nhnFreespirit

10 years ago

[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" )

Report

C

kk7

10 years ago

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).

Report

10 years ago

alpha 1.2b:
- added functionality to avoid songs
- corrected startup error msg
- b) adding songs works for newest svn

alpha 1.1:
what should work:
- download of the MusicExplorer coordinates (fixed)
- generate dynamic playlists according to configuration

what might work:
- adding fixed songs manually to the playlist

what will definitly not work:
- removing songs/changing order will likely corrupt the script -> restart it

File (click to download) Version Description Packagetype Architecture Downloads Date Filesize DL OCS-Install
Pling
Details
license
version
alpha1.2b
updated Dec 02 2008
added Nov 24 2008
downloads today
0
page views today 2
System Tags addon