<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>
<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>
<term><option>[sima]</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>
- <listitem>
- <para>This value triggers queue process if the queue
- 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>-->
- </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>
- <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>
+ <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">
<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 0 to keep all played tracks.
+ 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>When no similar tracks are found, falling back to random queuing.</para>
+ <para>Random plugin's configuration:</para>
+ <varlistentry> <!-- random -->
+ <term><option>[random]</option></term>
+ </varlistentry>
+ <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> <!-- randomfallback.flavour -->
+ <varlistentry> <!-- random.flavour -->
<term><option>flavour=</option><replaceable>sensible</replaceable></term>
<listitem>
- <para>When no similar tracks are found, falling back to
- random queuing. Different mode, aka random flavour,
+ <para>Different mode, aka random flavour,
are available:
<replaceable>pure</replaceable>,
<replaceable>sensible</replaceable>,
- <replaceable>genre</replaceable>.
<itemizedlist mark='bullet'>
<listitem>
<para><replaceable>pure</replaceable>, pure random choice, even among recently played track.
<para><replaceable>sensible</replaceable>, use play history to filter chosen tracks.
</para>
</listitem>
- <listitem>
- <para><replaceable>genre</replaceable>, Not implemented yet.
- </para>
- </listitem>
</itemizedlist>
</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>
<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>
<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>
cache.<sbr />When set to "true", sima will use a
persistent cache for its http client. The cache is
written along with the dbfile in:<sbr />
- <filename>$XDG_CONFIG_HOME/mpd_sima/http/WEB_SERVICE</filename>.<sbr/>
+ <filename>$XDG_DATA_HOME/mpd_sima/http/WEB_SERVICE</filename>.<sbr/>
If set to "false", caching is still done but in memory.
</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="genre">
+ <title>Genre section</title>
+ <para>Genre plugin's configuration.</para>
+ <para>This plugin permits offline autoqueuing based on files genre tag only.</para>
+ <para>it will try to queue tracks base on genre tags of tracks in the queue.</para>
+ <varlistentry> <!-- genre -->
+ <term><option>[genre]</option></term>
+ </varlistentry>
+ <varlistentry> <!-- tags.queue_mode -->
+ <term><option>queue_mode=</option><replaceable>track</replaceable></term>
+ <listitem>
+ <para>Queue mode to use among
+ <replaceable>track</replaceable>,
+ <replaceable>album</replaceable> (see <xref linkend="queue_mode"/> for info about queue modes).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <!-- genre.single_album -->
+ <term><option>single_album=</option><replaceable>false</replaceable></term>
+ <listitem>
+ <para>Prevent from queueing a track from the same album
+ (it often happens with OST).<sbr />
+ Only relevant in "track" queue mode.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <!-- genre.priority -->
+ <term><option>priority=</option><replaceable>80</replaceable></term>
+ <listitem>
+ <para>
+ Plugin priority
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <!-- genre.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> <!-- genre.album_to_add -->
+ <term><option>album_to_add=</option><replaceable>1</replaceable></term>
+ <listitem>
+ <para>How many album(s) to add. Only relevant in
+ <option>album</option> queue mode.</para>
+ </listitem>
+ </varlistentry>
+ </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>.</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 tag entries in this section are ANDed as a single MPD filter to look for titles
+ in the library. Moreover, for each tags, comma separated values are also ORed.<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 1982 through 1989.<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.queue_mode -->
+ <term><option>queue_mode=</option><replaceable>track</replaceable></term>
+ <listitem>
+ <para>Queue mode to use among
+ <replaceable>track</replaceable>,
+ <replaceable>album</replaceable> (see <xref linkend="queue_mode"/> for info about queue modes).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <!-- tags.single_album -->
+ <term><option>single_album=</option><replaceable>false</replaceable></term>
+ <listitem>
+ <para>Prevent from queueing a track from the same album
+ (it often happens with OST).<sbr />
+ Only relevant in "track" queue mode.</para>
+ </listitem>
+ </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.originaldate -->
+ <term><option>originaldate=</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>
+ <varlistentry> <!-- tags.album_to_add -->
+ <term><option>album_to_add=</option><replaceable>1</replaceable></term>
+ <listitem>
+ <para>How many album(s) to add. Only relevant in
+ <option>album</option> queue mode.</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 last track in the queue.</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 :
+-->