</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>
</variablelist>
</refsect2>
+ <refsect2 id="daemon">
+ <title>Process daemonization</title>
+ <para>Configure process daemon.</para>
+ <variablelist>
+ <varlistentry> <!-- DAEMON -->
+ <term><option>[daemon]</option></term>
+ <listitem><para></para></listitem>
+ </varlistentry>
+ <varlistentry> <!-- daemon.daemon -->
+ <term><option>daemon=false</option></term>
+ <listitem>
+ <para>whether to daemonize process or not.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <!-- daemon.pidfile -->
+ <term><option>pidfile=</option></term>
+ <listitem>
+ <para>Where to store process ID.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
<refsect2 id="sima">
<title>sima section</title>
- <para>This section allows you to tweak core &dhutils; configuration.</para>
+ <para>Core &dhutils; configuration.</para>
<variablelist>
<varlistentry> <!-- SIMA -->
<term><option>[sima]</option></term>
<listitem><para></para></listitem>
</varlistentry>
- <varlistentry> <!-- sima.history_duration -->
- <term><option>history_duration=</option><replaceable>8</replaceable></term>
+ <variablelist>
+ <varlistentry> <!-- sima.contrib -->
+ <term><option>contrib=</option><replaceable></replaceable></term>
<listitem>
- <para>How far to look back in history to avoid to play
- twice the same track/title (duration in
- hours).</para>
+ <para></para>
</listitem>
</varlistentry>
- <varlistentry> <!-- sima.queue_length -->
- <term><option>queue_length=</option><replaceable>1</replaceable></term>
+ <varlistentry> <!-- sima.internal -->
+ <term><option>internal=</option><replaceable>Lastfm, Random, Crop</replaceable></term>
<listitem>
- <para>This value triggers queue process if the queue
- length is less than specified
- queue_length.</para>
+ <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> and
+ <option>EchoNest</option> only.<sbr />
+ The priority may be used to order them.
+ </para>
</listitem>
</varlistentry>
- <varlistentry> <!-- sima.user_db -->
- <term><option>user_db=</option><replaceable>false</replaceable></term>
+ <varlistentry> <!-- sima.history_duration -->
+ <term><option>history_duration=</option><replaceable>8</replaceable></term>
<listitem>
- <para>Temporarily removed feature</para>
- <!--<para>Look for user defined similarities in user data base.</para>-->
+ <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>
- </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>
- <variablelist>
- <varlistentry> <!-- sima.internal -->
- <term><option>internal=</option><replaceable>Crop, RandomFallBack, Lastfm</replaceable></term>
+ <varlistentry> <!-- sima.queue_length -->
+ <term><option>queue_length=</option><replaceable>2</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>
+ <para>Threshold value triggering queue process.</para>
</listitem>
</varlistentry>
- <varlistentry> <!-- sima.contrib -->
- <term><option>contrib=</option><replaceable></replaceable></term>
+ <varlistentry> <!-- sima.musicbrainzid -->
+ <term><option>musicbrainzid=</option><replaceable>true</replaceable></term>
<listitem>
- <para></para>
+ <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>
</variablelist>
+ </variablelist>
</refsect2>
<refsect2 id="crop">
<title>Crop section</title>
<term><option>consume=</option><replaceable>0</replaceable></term>
<listitem>
<para>How many played tracks to keep in the queue.
- Allow to maintain a fixed length queue.
+ Allows you to maintain a fixed length queue.
Set to 0 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>
<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>
</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="echonest">
+ <title>EchoNest section</title>
+ <para>EchoNest plugin's configuration.</para>
+ <para>Options for EchoNest are exactly the same as LastFm (same
+ default as well), except for cache plugin which is always
+ needed to limit number of requests to the service.</para>
+ <variablelist>
+ <varlistentry> <!-- echonest -->
+ <term><option>[echonest]</option></term>
+ </varlistentry>
+ <varlistentry> <!-- echonest.queue_mode -->
+ <term><option>queue_mode=</option><replaceable>track</replaceable></term>
+ </varlistentry>
+ <varlistentry> <!-- echonest.max_art -->
+ <term><option>max_art=</option><replaceable>10</replaceable></term>
+ </varlistentry>
+ <varlistentry> <!-- echonest.depth -->
+ <term><option>depth=</option><replaceable>1</replaceable></term>
+ </varlistentry>
+ <varlistentry> <!-- echonest.single_album -->
+ <term><option>single_album=</option><replaceable>false</replaceable></term>
+ </varlistentry>
+ <varlistentry> <!-- echonest.track_to_add -->
+ <term><option>track_to_add=</option><replaceable>1</replaceable></term>
+ </varlistentry>
+ <varlistentry> <!-- echonest.album_to_add -->
+ <term><option>album_to_add=</option><replaceable>1</replaceable></term>
+ </varlistentry>
+ <varlistentry> <!-- echonest.priority -->
+ <term><option>priority=</option><replaceable>100</replaceable></term>
+ </varlistentry>
</variablelist>
</refsect2>
</refsect1>
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>