]> kaliko git repositories - mpd-sima.git/blobdiff - data/man/mpd_sima.cfg.5.xml
Releasing 0.16.0
[mpd-sima.git] / data / man / mpd_sima.cfg.5.xml
index cb6f47dcc0717f4ee7bece2442ae85b7a3f79b43..149087f8a2a36243215ba6e2903e0b887d578afb 100644 (file)
@@ -57,8 +57,8 @@ man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
   </refmeta>
     <refnamediv>
         <refname>&dhutils;</refname>
-        <refpurpose>&dhpackage; will try to maintain some titles ahead in your play
-            list following different policies. This manual document the
+        <refpurpose>&dhpackage; will try to maintain some titles ahead in the queue
+            following different policies. This manual document the
             configuration file for &dhpackage;.</refpurpose>
     </refnamediv>
     <refsect1 id="description">
@@ -75,9 +75,15 @@ man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
             <para></para>
             <para></para>
         </refsect2> -->
+        <refsect2 id="tags">
+            <title>File tags queue mode (offline mode).</title>
+            <para>Here is an example of autoqueue using file tags only.</para>
+            <programlisting><xi:include href="tags.cfg" parse="text" />
+            </programlisting>
+        </refsect2>
         <refsect2 id="album">
-            <title>Album queue mode.</title>
-            <para>Here is an example of album queue configuration.</para>
+            <title>Album queue mode using last.fm recommendations (online mode).</title>
+            <para>Here is an example of album queue configuration using online recommendations system.</para>
             <programlisting><xi:include href="album.cfg" parse="text" />
             </programlisting>
         </refsect2>
@@ -129,8 +135,8 @@ man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
             </variablelist>
         </refsect2>
         <refsect2 id="log">
-            <para>Configure logging.</para>
             <title>log section</title>
+            <para>Configure logging.</para>
             <variablelist>
                 <varlistentry> <!-- LOG -->
                     <term><option>[log]</option></term>
@@ -139,7 +145,7 @@ man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
                 <varlistentry> <!-- log.logfile -->
                     <term><option>logfile=</option></term>
                     <listitem>
-                        <para>File to log to, usually in dæmon mode.<sbr />Defaut
+                        <para>File to log to, usually in dæmon mode.<sbr />Default
                             (empty or unset) is to log to stdin/stdout.</para>
                     </listitem>
                 </varlistentry>
@@ -155,64 +161,106 @@ man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
                 </varlistentry>
             </variablelist>
         </refsect2>
-        <refsect2 id="sima">
-            <title>sima section</title>
-            <para>This section allows you to tweak core &dhutils; configuration.</para>
+        <refsect2 id="daemon">
+            <title>Process daemonization</title>
+            <para>Configure process daemon.</para>
             <variablelist>
-                <varlistentry> <!-- SIMA -->
-                    <term><option>[sima]</option></term>
+                <varlistentry> <!-- DAEMON -->
+                    <term><option>[daemon]</option></term>
                     <listitem><para></para></listitem>
                 </varlistentry>
-                <varlistentry> <!-- sima.history_duration -->
-                    <term><option>history_duration=</option><replaceable>8</replaceable></term>
-                    <listitem>
-                        <para>How far to look back in history to avoid to play
-                            twice the same track/title (duration in
-                            hours).</para>
-                    </listitem>
-                </varlistentry>
-                <varlistentry> <!-- sima.queue_length -->
-                    <term><option>queue_length=</option><replaceable>1</replaceable></term>
+                <varlistentry> <!-- daemon.daemon -->
+                    <term><option>daemon=false</option></term>
                     <listitem>
-                        <para>This value triggers queue process if the play
-                            list length is less than specified
-                            queue_length.</para>
+                        <para>whether to daemonize process or not.</para>
                     </listitem>
                 </varlistentry>
-                <varlistentry> <!-- sima.user_db -->
-                    <term><option>user_db=</option><replaceable>false</replaceable></term>
+                <varlistentry> <!-- daemon.pidfile -->
+                    <term><option>pidfile=</option></term>
                     <listitem>
-                        <para>Temporarily removed feature</para>
-                        <!--<para>Look for user defined similarities in user data base.</para>-->
+                        <para>Where to store process ID.</para>
                     </listitem>
                 </varlistentry>
             </variablelist>
-            <para>&dhpackage;'s plugin management for internal source plugin
-                and contrib (ie. external plugins).<sbr /> Plugins list is a
-                comma separated string list.<sbr /> Optional plugin's
-                configuration lays in its own section.<sbr />For instance a
-                "AwesomePlugin" declared here gets its configuration from the
-                corresponding section "[awesomeplugin]".<sbr />internal plugins
-                will look for a section named after the lower-cased name of the
-                pluglin, ie.  RandomFallBack → randomfallback.
-            </para>
+        </refsect2>
+        <refsect2 id="sima">
+            <title>sima section</title>
+            <para>Core &dhutils; configuration.</para>
             <variablelist>
-                <varlistentry> <!-- sima.internal -->
-                    <term><option>internal=</option><replaceable>Crop, RandomFallBack, Lastfm</replaceable></term>
-                    <listitem>
-                        <para><option>Crop</option> and <option>RandomFallback</option>
-                            are utilities plugins while <option>Lastfm</option> is the
-                            actual queue plugin.<sbr /> Another queue plugin is available as
-                            a "techno preview", it relies on EchoNest web services, replace
-                            <option>LastFm</option> with <option>EchoNest</option> to try.</para>
-                    </listitem>
-                </varlistentry>
-                <varlistentry> <!-- sima.contrib -->
-                    <term><option>contrib=</option><replaceable></replaceable></term>
-                    <listitem>
-                        <para></para>
-                    </listitem>
+                <varlistentry> <!-- SIMA -->
+                    <term><option>[sima]</option></term>
+                    <listitem><para></para></listitem>
                 </varlistentry>
+                <variablelist>
+                    <varlistentry> <!-- sima.contrib -->
+                        <term><option>contrib=</option><replaceable></replaceable></term>
+                        <listitem>
+                            <para></para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry> <!-- sima.internal -->
+                        <term><option>internal=</option><replaceable>Lastfm, Random, Crop</replaceable></term>
+                        <listitem>
+                            <para>&dhpackage;'s plugin management for internal source plugin
+                                and contrib (ie. external plugins).<sbr /> Plugins list is a
+                                comma separated string list.<sbr /> Optional plugin's
+                                configuration lays in its own section.<sbr />For instance a
+                                "AwesomePlugin" declared here gets its configuration from the
+                                corresponding section "[awesomeplugin]".
+                            </para>
+                            <para>The default list of plugins to load at startup: <option>Lastfm</option>,<option>Random</option>,<option>Crop</option>.<sbr />
+                                <option>Crop</option> is an utility plugin, it does not queue any tracks (cf. below).<sbr />
+                                <option>Random</option> will queue a track at random if other plugins did not return any tracks.<sbr />
+                            </para>
+                            <para>You can add, combine here as many plugins you want.<sbr />
+                                The priority may be used to order them.
+                            </para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry> <!-- sima.history_duration -->
+                        <term><option>history_duration=</option><replaceable>8</replaceable></term>
+                        <listitem>
+                            <para>How far to look back in history to avoid to play
+                                twice the same track/title (duration in
+                                hours).<sbr />
+                                The <option>history_duration</option> is also used to give priority to not recently played artists.
+                            </para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry> <!-- sima.queue_length -->
+                        <term><option>queue_length=</option><replaceable>2</replaceable></term>
+                        <listitem>
+                            <para>Threshold value triggering queue process.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry> <!-- sima.musicbrainzid -->
+                        <term><option>musicbrainzid=</option><replaceable>true</replaceable></term>
+                        <listitem>
+                            <para>Use MusicBrainzIdentifier to search music (mainly
+                                for artists).
+                                Default is True, switch to False if you don't have
+                                MusicBrainzIdentifier set for at least 80% of you
+                                music library.<sbr /> Consider using these metadata as it
+                                enhances a lot artist/album/tracks identification.
+                                Use Picard to tag your file: <ulink url="https://picard.musicbrainz.org/"/>.
+                            </para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry> <!-- sima.repeat_disable_queue -->
+                        <term><option>repeat_disable_queue=</option><replaceable>true</replaceable></term>
+                        <listitem>
+                            <para>Prevent disabling queuing in repeat play mode.
+                            </para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry> <!-- sima.single_disable_queue -->
+                        <term><option>single_disable_queue=</option><replaceable>true</replaceable></term>
+                        <listitem>
+                            <para>Prevent disabling queuing in single play mode.
+                            </para>
+                        </listitem>
+                    </varlistentry>
+                </variablelist>
             </variablelist>
         </refsect2>
         <refsect2 id="crop">
@@ -222,22 +270,36 @@ man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
                     <term><option>[crop]</option></term>
                 </varlistentry>
                 <varlistentry> <!-- crop.consume -->
-                    <term><option>consume=</option><replaceable>0</replaceable></term>
+                    <term><option>consume=</option><replaceable>10</replaceable></term>
+                    <listitem>
+                        <para>How many played tracks to keep in the queue.
+                            Allows you to maintain a fixed length queue.
+                            Set to some negative integer to keep all played tracks.
+                        </para>
+                    </listitem>
+                </varlistentry>
+                <varlistentry> <!-- crop.priority -->
+                    <term><option>priority=</option><replaceable>10</replaceable></term>
                     <listitem>
-                        <para>How many played tracks to keep in the play list.
-                            Allow to maintain a fixed length play list.
-                            Set to 0 to keep all played tracks.
+                        <para>
+                            Plugin priority
                         </para>
                     </listitem>
                 </varlistentry>
         </refsect2>
-        <refsect2 id="randomfallback">
-            <title>RandomFallback section</title>
-            <para>RandomFallback plugin's configuration:</para>
-                <varlistentry> <!-- randomfallback -->
-                    <term><option>[randomfallback]</option></term>
+        <refsect2 id="random">
+            <title>Random section</title>
+            <para>Random plugin's configuration:</para>
+                <varlistentry> <!-- random -->
+                    <term><option>[random]</option></term>
                 </varlistentry>
-                <varlistentry> <!-- randomfallback.flavour -->
+                <varlistentry> <!-- random.track_to_add -->
+                    <term><option>track_to_add=</option><replaceable>1</replaceable></term>
+                    <listitem>
+                        <para>How many track(s) to add.</para>
+                    </listitem>
+                </varlistentry>
+                <varlistentry> <!-- random.flavour -->
                     <term><option>flavour=</option><replaceable>sensible</replaceable></term>
                     <listitem>
                         <para>When no similar tracks are found, falling back to
@@ -263,10 +325,18 @@ man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
                         </para>
                     </listitem>
                 </varlistentry>
+                <varlistentry> <!-- random.priority -->
+                    <term><option>priority=</option><replaceable>50</replaceable></term>
+                    <listitem>
+                        <para>
+                            Plugin priority
+                        </para>
+                    </listitem>
+                </varlistentry>
         </refsect2>
         <refsect2 id="lastfm">
             <title>LastFm section</title>
-            <para>This section allows you to tweak LastFM plugin's configuration.</para>
+            <para>LastFM plugin's configuration.</para>
             <variablelist>
                 <varlistentry> <!-- lastfm -->
                     <term><option>[lastfm]</option></term>
@@ -283,7 +353,7 @@ man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
                 <varlistentry> <!-- lastfm.max_art -->
                     <term><option>max_art=</option><replaceable>10</replaceable></term>
                     <listitem>
-                        <para>Number of similar artist to retrieve from local
+                        <para>Maximum number of similar artist to retrieve from local
                             media library.<sbr />When set to something superior
                             to zero, it tries to get as much similar artists
                             from media library.</para>
@@ -295,7 +365,7 @@ man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
                         <para>How many artists to base on similar artists
                             search.<sbr /> The first is the last played artist
                             and so on back in the history. Highter depth
-                            allows to get wider suggestions, it might help to
+                            generates wider suggestions, it might help to
                             reduce looping over same artists.
                             </para>
                     </listitem>
@@ -313,7 +383,9 @@ man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
                     <listitem>
                         <para>How many track(s) to add. Only relevant in
                             <option>top</option> and <option>track</option>
-                            queue modes.</para>
+                            queue modes. This is actually an upper limit,
+                            min(<option>max_art</option>,
+                            <option>track_to_add</option>) will be used.</para>
                     </listitem>
                 </varlistentry>
                 <varlistentry> <!-- lastfm.album_to_add -->
@@ -323,6 +395,14 @@ man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
                             <option>album</option> queue modes.</para>
                     </listitem>
                 </varlistentry>
+                <varlistentry> <!-- lastfm.track_to_add_from_album -->
+                    <term><option>track_to_add_from_album=</option><replaceable>0</replaceable></term>
+                    <listitem>
+                        <para>How many track(s) to add from each selected albums. Only relevant in
+                          <option>album</option> queue modes. When set to 0 or lower the whole album is queued.
+                          </para>
+                    </listitem>
+                </varlistentry>
                 <varlistentry> <!-- lastfm.cache -->
                     <term><option>cache=</option><replaceable>True</replaceable></term>
                     <listitem>
@@ -335,61 +415,126 @@ man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
                         </para>
                     </listitem>
                 </varlistentry>
+                <varlistentry> <!-- lastfm.priority -->
+                    <term><option>priority=</option><replaceable>100</replaceable></term>
+                    <listitem>
+                        <para>
+                            Plugin priority
+                        </para>
+                    </listitem>
+                </varlistentry>
             </variablelist>
         </refsect2>
+        <refsect2 id="tags">
+            <title>Tags section</title>
+              <para>Tags plugin's configuration. There is no default configuration for this plugin, it does not work out of the box.</para>
+              <para>
+                This plugin permits offline autoqueuing based on files tags only. Supported tags are
+              <option>'comment'</option>, <option>'date'</option>, <option>'genre'</option>, <option>'label'</option> and
+              <option>'originaldate'</option>. It currently supports single track queuing only, no album mode for this plugin.
+              </para>
+            <para>
+              In addition to supported tags above you can use an MPD filter. Please refer to MPD protocol documentation for more.
+            </para>
+            <para>
+              All entries in this section are ANDed as a single MPD filter to look for titles
+              in the library. Moreover, with tags, comma separated values are also ANDed.<sbr />
+              For instance setting "<option>genre=rock</option>" and
+              "<option>date=1982,1983,1984,1985,1986,1987,1988,1989</option>"
+              will end up looking for track tagged with genre <option>rock</option>
+              and date within 1985 through 1990.<sbr />
+              Using an MPD filter to replace <option>date</option> you can achieve
+              the same with the following setting: "<option>genre=rock</option>" and
+              "<option>filter=(date =~ '198[2-9]')</option>" (provided your MPD server
+              was compiled with libpcre).
+            </para>
+                <varlistentry> <!-- tags -->
+                   <term><option>[tags]</option></term>
+                </varlistentry>
+                <varlistentry> <!-- tags.filter -->
+                    <term><option>filter=</option></term>
+                    <listitem>
+                        <para>You can use here any valid MPD filter as defined in MPD protocol documentation.</para>
+                    </listitem>
+                </varlistentry>
+                <varlistentry> <!-- tags.comment -->
+                    <term><option>comment=</option></term>
+                </varlistentry>
+                <varlistentry> <!-- tags.date -->
+                    <term><option>date=</option></term>
+                </varlistentry>
+                <varlistentry> <!-- tags.genre -->
+                    <term><option>genre=</option></term>
+                </varlistentry>
+                <varlistentry> <!-- tags.label -->
+                    <term><option>label=</option></term>
+                </varlistentry>
+                <varlistentry> <!-- tags.priority -->
+                    <term><option>priority=</option><replaceable>80</replaceable></term>
+                    <listitem>
+                        <para>
+                            Plugin priority
+                        </para>
+                    </listitem>
+                </varlistentry>
+                <varlistentry> <!-- tags.track_to_add -->
+                    <term><option>track_to_add=</option><replaceable>1</replaceable></term>
+                    <listitem>
+                        <para>How many track(s) to add.</para>
+                    </listitem>
+                </varlistentry>
+        </refsect2>
     </refsect1>
     <refsect1 id="queue_mode">
         <title>QUEUE MODES</title>
-        <para>&dhpackage; offers different queue modes. All of them pick up
-            tracks from artists similar to the one currently played.</para>
+        <para>Different queue modes are available with some plugins (check for
+        <option>queue_mode</option> presence in plugin config).
+        </para>
         <para>&dhpackage; tries preferably to chose among unplayed artists or
-            at least not recently played artist. Concerning track and album
-            queue modes titles are chosen purely at random among unplayed
-            tracks.</para>
+        at least not recently played artist.</para>
         <variablelist>
-            <varlistentry>
-                <term><option>track</option></term>
-                <listitem>
-                    <para>Queue a similar track chosen at random from a similar artist.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term><option>top</option></term>
-                <listitem>
-                    <para>Queue a track from a similar artist, chosen among
-                        "top tracks" according to last.fm data mining.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term><option>album</option></term>
-                <listitem>
-                    <para>Queue a whole album chosen at random from a similar artist.</para>
-                    <para><emphasis>Nota Bene:</emphasis><sbr /> Due to the
-                        track point of view of database build upon tracks tags
-                        an album lookup for a specific artist will return
-                        albums as soon as this artist appears in a single track
-                        of the album.<sbr />
-                        For instance looking for album from "The Velvet
-                        Underground" will fetch "Last Days" and "Juno" OSTs
-                        because the band appears on the soundtrack of these two
-                        movies.<sbr />
-                        A solution is for you to set AlbumArtists tag to
-                        something different than the actual artist of the
-                        track. For compilations, OSTs etc. a strong convention
-                        is to use "Various Artists" for this tag.</para>
-                    <para>&dhpackage; is currently looking for AlbumArtists tags
-                        and avoid album where this tag is set with "Various
-                        Artists". If a single track within an album is found
-                        with AlbumArtists:"Various Artists" the complete album
-                        is skipped and won't be queued.<sbr />
-                        It is planned to allow users to set the values of
-                        AlbumArtists tag triggering this behaviour.  cf.
-                        feature request #2085 on the tracker.</para>
-                </listitem>
-            </varlistentry>
+          <varlistentry>
+            <term><option>track</option></term>
+            <listitem>
+              <para>Queue a similar track chosen at random from a similar artist.</para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term><option>top</option></term>
+            <listitem>
+              <para>Queue a track from a similar artist, chosen among
+                "top tracks" according to last.fm data mining.</para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term><option>album</option></term>
+            <listitem>
+              <para>Queue a whole album chosen at random from a similar artist.</para>
+              <para><emphasis>Nota Bene:</emphasis><sbr /> Due to the
+                track point of view of database build upon tracks tags
+                an album lookup for a specific artist will return
+                albums as soon as this artist appears in a single track
+                of the album.<sbr />
+                For instance looking for album from "The Velvet
+                Underground" will fetch "Last Days" and "Juno" OSTs
+                because the band appears on the soundtrack of these two
+                movies.<sbr />
+                A solution is for you to set AlbumArtists tag to
+                something different than the actual artist of the
+                track. For compilations, OSTs etc. a strong convention
+                is to use "Various Artists" for this tag.</para>
+              <para>&dhpackage; is currently looking for AlbumArtists tags
+                and avoid album where this tag is set with "Various
+                Artists". If a single track within an album is found
+                with AlbumArtists:"Various Artists" the complete album
+                is skipped and won't be queued.</para>
+            </listitem>
+          </varlistentry>
         </variablelist>
     </refsect1>
   <xi:include href="files.xml" />
   <xi:include href="feedback.xml" />
   <xi:include href="seealso.xml" />
 </refentry>
+<!-- vim: tabstop=4 softtabstop=4 shiftwidth=4 :
+-->