From 263da2bc5276a39c6f91497df89c1390b189ba29 Mon Sep 17 00:00:00 2001 From: Peter Schnebel Date: Thu, 31 Oct 2013 21:30:39 +0100 Subject: [PATCH] too much text ... --- docs/plugins/mpdstats.py | 69 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/docs/plugins/mpdstats.py b/docs/plugins/mpdstats.py index 15335d704..55306b7fc 100644 --- a/docs/plugins/mpdstats.py +++ b/docs/plugins/mpdstats.py @@ -11,6 +11,19 @@ habits from `MPD`_. It collects the following information about tracks:: .. _MPD: http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki +Installing Dependencies +----------------------- + +This plugin requires the python-mpd library in order to talk to the MPD +server. + +Install the library from `pip`_, like so:: + + $ pip install python-mpd + +Configuring +----------- + To use it, enable it in your ``config.yaml`` by putting ``mpdstats`` on your ``plugins`` line. Then, you'll probably want to configure the specifics of your MPD server. You can do that using an ``mpd:`` section in your @@ -28,10 +41,66 @@ the config like this:: mpdstats: music_directory: /PATH/TO/YOUR/FILES +If you don't want the plugin to automatically update the rating, you can +disable it with:: + + mpdstats: + rating: False + +If you want to change the way the rating is calculated, you can set the +```rating_mix``` option like this:: + + mpdstats: + rating_mix: 1.0 + +For details, see below. + + +Usage +----- + Now use the ``mpdstats`` command to fire it up:: $ beet mpdstats +A Word On Ratings +----------------- + +Ratings are calculated based on the *play_count*, *skip_count* and the last +*action* (play or skip). It consists in one part of a *stable_rating* and in +another part on a *rolling_rating*. The *stable_rating* is calculated like +this:: + + stable_rating = (play_count + 1.0) / (play_count + skip_count + 2.0) + +So if the *play_count* equals the *skip_count*, the *stable_rating* is always +0.5. More *play_counts* adjust the rating up to 1.0. More *skip_counts* +adjust it down to 0.0. One of the disadvantages of this rating system, is +that it doesn't really cover *recent developments*. e.g. a song that you +loved last year and played over 50 times will keep a high rating even if you +skipped it the last 10 times. That's were the *rolling_rating* comes in. + +If a song has been fully played, the *rolling_rating* is calculated like +this:: + + rolling_rating = old_rating + (1.0 - old_rating) / 2.0 + +If a song has been skipped, like this:: + + rolling_rating = old_rating - old_rating / 2.0 + +So *rolling_rating* adapts pretty fast to *recent developments*. But it's too +fast. Taking the example from above, your old favorite with 50 plays will get +a negative rating (<0.5) the first time you skip it. Also not good. + +To take the best of both worlds, we mix the ratings together with the +```rating_mix``` factor. A ```rating_mix``` of 0.0 means all +*rolling* and 1.0 means all *stable*. We found 0.75 to be a good compromise, +but fell free to play with that. + +Warning +------- + This has only been tested with MPD versions >= 0.16. It may have difficulties on older versions. If that is the case, please report an `Issue`_.