Go to file
2016-04-15 21:49:50 +02:00
bliss@0b289b9be7 Improve code, first working version 2016-04-15 21:49:50 +02:00
include Store errors in db and allow to pass them again 2016-04-06 18:57:11 +02:00
src Improve code, first working version 2016-04-15 21:49:50 +02:00
.gitignore First commit 2016-04-06 00:35:22 +02:00
.gitmodules First commit 2016-04-06 00:35:22 +02:00
client.sh Purge database before running a rescan 2016-04-06 18:00:11 +02:00
CMakeLists.txt First commit 2016-04-06 00:35:22 +02:00
README.md Add README.md 2016-04-06 12:27:28 +02:00

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.