</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">
</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>
<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>
</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>
+ <varlistentry> <!-- daemon.daemon -->
+ <term><option>daemon=false</option></term>
<listitem>
- <para>How far to look back in history to avoid to play
- twice the same track/title (duration in
- hours).</para>
+ <para>whether to daemonize process or not.</para>
</listitem>
</varlistentry>
- <varlistentry> <!-- sima.queue_length -->
- <term><option>queue_length=</option><replaceable>1</replaceable></term>
+ <varlistentry> <!-- daemon.pidfile -->
+ <term><option>pidfile=</option></term>
<listitem>
- <para>This value triggers queue process if the play
- list length is less than specified
- queue_length.</para>
- </listitem>
- </varlistentry>
- <varlistentry> <!-- sima.user_db -->
- <term><option>user_db=</option><replaceable>false</replaceable></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 here as many plugins you want,
+ currently shipping <option>Lastfm</option> only.<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">
<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 play list.
- Allow to maintain a fixed length play list.
- Set to 0 to keep all played tracks.
+ <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>
+ 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.flavour -->
<term><option>flavour=</option><replaceable>sensible</replaceable></term>
<listitem>
<para>When no similar tracks are found, falling back to
</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>
<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>
<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>
<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 -->
<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>
</para>
</listitem>
</varlistentry>
+ <varlistentry> <!-- lastfm.priority -->
+ <term><option>priority=</option><replaceable>100</replaceable></term>
+ <listitem>
+ <para>
+ Plugin priority
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
</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>
+ tracks from artists similar to the last track in the queue.</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
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>
+ is skipped and won't be queued.</para>
</listitem>
</varlistentry>
</variablelist>