
Source (link to git-repo or to original if based on someone elses unmodified work): Add the source-code for this project on opencode.net
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.
12 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
12 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
10 years ago
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
10 years ago
Report
valoriez
11 years ago
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
11 years ago
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
11 years ago
It seems odd that it isn't on the website!
Thanks again,
Report
kk7
11 years ago
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
11 years ago
Report
Trail_double
11 years ago
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
11 years ago
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
11 years ago
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
kk7
11 years ago
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
11 years ago
Are this data built on entire database?
If is so we need to think about building from other sources too...
Report
davewantsmoore
12 years ago
I'd never heard of musicexplorer.org.
This is awesome. Your work is much appreciated!
Report
kk7
12 years ago
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
Takahani
11 years ago
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
Mamarok
12 years ago
Report
bodly
12 years ago
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
nhnFreespirit
12 years ago
[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
kk7
12 years ago
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