bliss@4781124ff1 | ||
client | ||
include | ||
src | ||
.gitignore | ||
.gitmodules | ||
CMakeLists.txt | ||
main_args.c | ||
main_mpd.c | ||
README.md |
MPDBliss
MPDBliss is an attempt at binding Bliss to MPD to be able to play smooth mixes with MPD, à la Grooveshark radio.
Dependencies
To build it you will need sqlite3
and libmpdclient
, plus the required
dependencies from bliss
(see
https://github.com/Polochon-street/bliss).
Build
git clone --recursive https://github.com/phyks/mpdbliss
cd mpdbliss; mkdir build
cmake ..
make
This will build a mpdbliss
executable.
Usage
mpdbliss
is made of two components. First one, mpdbliss
, has to run on the
MPD server machine (or at least have access to the music files) and will build
and maintain a parallel database of song "features" and distances between
them, as computed by bliss
. This will be stored in
$XDG_DATA_HOME/mpdbliss/
(defaults to ~/.local/share/mpdbliss
). Second one
is a client, to create playlist based on the currently playing song.
client.sh
script at the root of this repository is an example of such a
script. Such client script needs to have access to the database build in first
step.
See mpdbliss --help
for up to date doc.
Note: mpdbliss
supports the MPD_HOST
/MPD_PORT
environment variables.
You can overload them passing it command-line argument. Passwords should be
provided in the host string following the standard MPD syntax.
There are basically 3 modes of operation:
--rescan
which will trigger a full rescan of your MPD database and recreate the associated bliss database.--update
which will do the same, but will only consider newly added musics.- Without any flag,
mpdbliss
will listen for MPD IDLE protocol, and trigger an update of the database whenever the MPD database is modified.
Typical usage would be to run a --rescan
first, and then either do periodic
--update
or let it run listening at MPD IDLE protocol to maintain MPD
database and mpdbliss
database in sync.
Check the client.sh
script for an example client script to build smooth MPD
playlists.
out any flag, mpdbliss
will listen for MPD IDLE protocol, and trigger
an update of the database whenever the MPD database is modified.
Typical usage would be to run a --rescan
first, and then either do periodic
--update
or let it run listening at MPD IDLE protocol to maintain MPD
database and mpdbliss
database in sync.
Check the client/client.py
script for an example client script to build smooth MPD
playlists.