]> kaliko git repositories - mpd-sima.git/blob - data/man/mpd_sima.cfg.5
Enhanced queuing behavior in random mode (Closes #16)
[mpd-sima.git] / data / man / mpd_sima.cfg.5
1 '\" t
2 .\"     Title: mpd_sima.cfg
3 .\"    Author: Jack Kaliko <kaliko@azylum.org>
4 .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
5 .\"      Date: 11/18/2017
6 .\"    Manual: mpd-sima 0.14.5 User Manual
7 .\"    Source: mpd-sima
8 .\"  Language: English
9 .\"
10 .TH "MPD_SIMA\&.CFG" "5" "11/18/2017" "mpd-sima" "mpd-sima 0.14.5 User Manual"
11 .\" -----------------------------------------------------------------
12 .\" * Define some portability stuff
13 .\" -----------------------------------------------------------------
14 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15 .\" http://bugs.debian.org/507673
16 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
17 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18 .ie \n(.g .ds Aq \(aq
19 .el       .ds Aq '
20 .\" -----------------------------------------------------------------
21 .\" * set default formatting
22 .\" -----------------------------------------------------------------
23 .\" disable hyphenation
24 .nh
25 .\" disable justification (adjust text to left margin only)
26 .ad l
27 .\" -----------------------------------------------------------------
28 .\" * MAIN CONTENT STARTS HERE *
29 .\" -----------------------------------------------------------------
30 .SH "NAME"
31 mpd_sima.cfg \- mpd\-sima will try to maintain some titles ahead in the queue following different policies\&. This manual document the configuration file for mpd\-sima\&.
32 .SH "DESCRIPTION"
33 .PP
34 This manual page documents briefly
35 \fBmpd\-sima\fR
36 configuration options available in user configuration file (see
37 the section called \(lqFILES\(rq)\&.
38 .SH "EXAMPLES"
39 .SS "Album queue mode\&."
40 .PP
41 Here is an example of album queue configuration\&.
42 .sp
43 .if n \{\
44 .RS 4
45 .\}
46 .nf
47 [MPD]
48 host=example\&.org
49 port=8000
50
51 [sima]
52 history_duration=48  # 2 days
53 queue_length=5
54
55 [lastfm]
56 queue_mode=album
57 album_to_add=2
58
59 [crop]
60 # keep 30 played tracks in playlist
61 consume=30
62
63             
64 .fi
65 .if n \{\
66 .RE
67 .\}
68 .SH "CONFIGURATION FILE"
69 .PP
70 The configuration file consists of sections, led by a
71 \fB[section]\fR
72 header and followed by
73 \fBname:\ \&value\fR
74 entries, with continuations in the style of RFC 822 (see section 3\&.1\&.1, \(lqLONG HEADER FIELDS\(rq);
75 \fBname=value\fR
76 is also accepted\&. Lines beginning with
77 \fI\*(Aq#\*(Aq\fR
78 or
79 \fI\*(Aq;\*(Aq\fR
80 are ignored and may be used to provide comments (\fINota Bene:\fR
81 inline comment are possible using
82 \fI\*(Aq#\*(Aq\fR)\&.
83 .PP
84 The default values are used in the options lists below\&.
85 .SS "MPD section"
86 .PP
87 This section is meant to configure MPD access, MPD host address / port and password if necessary\&.
88 .PP
89 \fB[MPD]\fR
90 .RS 4
91 .RE
92 .PP
93 \fBhost=\fR\fIlocalhost\fR
94 .RS 4
95 Set MPD host\&. Use IP or FQDN\&.
96 .RE
97 .PP
98 \fBport=\fR\fI6600\fR
99 .RS 4
100 Set host port to access MPD to\&.
101 .RE
102 .PP
103 \fBpassword=\fR\fIs3cr3t\fR
104 .RS 4
105 Set MPD password to use\&. Do not use this option if you don\*(Aqt have enabled password protected access on your MPD server\&.
106 .RE
107 .SS "log section"
108 .PP
109 Configure logging\&.
110 .PP
111 \fB[log]\fR
112 .RS 4
113 .RE
114 .PP
115 \fBlogfile=\fR
116 .RS 4
117 File to log to, usually in d\(aemon mode\&.
118 .br
119 Defaut (empty or unset) is to log to stdin/stdout\&.
120 .RE
121 .PP
122 \fBverbosity=\fR\fIinfo\fR
123 .RS 4
124 Logging verbosity among
125 \fIdebug\fR,
126 \fIinfo\fR,
127 \fIwarning\fR,
128 \fIerror\fR\&.
129 .RE
130 .SS "Process daemonization"
131 .PP
132 Configure process daemon\&.
133 .PP
134 \fB[daemon]\fR
135 .RS 4
136 .RE
137 .PP
138 \fBdaemon=false\fR
139 .RS 4
140 whether to daemonize process or not\&.
141 .RE
142 .PP
143 \fBpidfile=\fR
144 .RS 4
145 Where to store process ID\&.
146 .RE
147 .SS "sima section"
148 .PP
149 Core mpd_sima\&.cfg configuration\&.
150 .PP
151 \fB[sima]\fR
152 .RS 4
153 .RE
154 .PP
155 \fBcontrib=\fR
156 .RS 4
157 .RE
158 .PP
159 \fBinternal=\fR\fILastfm, Random, Crop\fR
160 .RS 4
161 mpd\-sima\*(Aqs plugin management for internal source plugin and contrib (ie\&. external plugins)\&.
162 .br
163
164 Plugins list is a comma separated string list\&.
165 .br
166
167 Optional plugin\*(Aqs configuration lays in its own section\&.
168 .br
169 For instance a "AwesomePlugin" declared here gets its configuration from the corresponding section "[awesomeplugin]"\&.
170 .sp
171 The default list of plugins to load at startup:
172 \fBLastfm\fR,\fBRandom\fR,\fBCrop\fR\&.
173 .br
174
175 \fBCrop\fR
176 is an utility plugin, it does not queue any tracks (cf\&. below)\&.
177 .br
178
179 \fBRandom\fR
180 will queue a track at random if other plugins did not return any tracks\&.
181 .br
182
183 .sp
184 You can add here as many plugins you want, currently shipping
185 \fBLastfm\fR
186 and
187 \fBEchoNest\fR
188 only\&.
189 .br
190
191 The priority may be used to order them\&.
192 .RE
193 .PP
194 \fBhistory_duration=\fR\fI8\fR
195 .RS 4
196 How far to look back in history to avoid to play twice the same track/title (duration in hours)\&.
197 .br
198
199 The
200 \fBhistory_duration\fR
201 is also used to give priority to not recently played artists\&.
202 .RE
203 .PP
204 \fBqueue_length=\fR\fI2\fR
205 .RS 4
206 Threshold value triggering queue process\&.
207 .RE
208 .PP
209 \fBmusicbrainzid=\fR\fItrue\fR
210 .RS 4
211 Use MusicBrainzIdentifier to search music (mainly for artists)\&. Default is True, switch to False if you don\*(Aqt have MusicBrainzIdentifier set for at least 80% of you music library\&.
212 .br
213
214 Consider using these metadata as it enhances a lot artist/album/tracks identification\&. Use Picard to tag your file:
215 \m[blue]\fB\%https://picard.musicbrainz.org/\fR\m[]\&.
216 .RE
217 .SS "Crop section"
218 .PP
219 crop plugin\*(Aqs configuration:
220 .PP
221 \fB[crop]\fR
222 .RS 4
223 .RE
224 .PP
225 \fBconsume=\fR\fI10\fR
226 .RS 4
227 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\&.
228 .RE
229 .PP
230 \fBpriority=\fR\fI10\fR
231 .RS 4
232 Plugin priority
233 .RE
234 .SS "Random section"
235 .PP
236 Random plugin\*(Aqs configuration:
237 .PP
238 \fB[random]\fR
239 .RS 4
240 .RE
241 .PP
242 \fBflavour=\fR\fIsensible\fR
243 .RS 4
244 When no similar tracks are found, falling back to random queuing\&. Different mode, aka random flavour, are available:
245 \fIpure\fR,
246 \fIsensible\fR,
247 \fIgenre\fR\&.
248 .sp
249 .RS 4
250 .ie n \{\
251 \h'-04'\(bu\h'+03'\c
252 .\}
253 .el \{\
254 .sp -1
255 .IP \(bu 2.3
256 .\}
257 \fIpure\fR, pure random choice, even among recently played track\&.
258 .RE
259 .sp
260 .RS 4
261 .ie n \{\
262 \h'-04'\(bu\h'+03'\c
263 .\}
264 .el \{\
265 .sp -1
266 .IP \(bu 2.3
267 .\}
268 \fIsensible\fR, use play history to filter chosen tracks\&.
269 .RE
270 .sp
271 .RS 4
272 .ie n \{\
273 \h'-04'\(bu\h'+03'\c
274 .\}
275 .el \{\
276 .sp -1
277 .IP \(bu 2.3
278 .\}
279 \fIgenre\fR, Not implemented yet\&.
280 .RE
281 .sp
282 .RE
283 .PP
284 \fBpriority=\fR\fI50\fR
285 .RS 4
286 Plugin priority
287 .RE
288 .SS "LastFm section"
289 .PP
290 LastFM plugin\*(Aqs configuration\&.
291 .PP
292 \fB[lastfm]\fR
293 .RS 4
294 .RE
295 .PP
296 \fBqueue_mode=\fR\fItrack\fR
297 .RS 4
298 Queue mode to use among
299 \fItrack\fR,
300 \fItop\fR
301 and
302 \fIalbum\fR
303 (see
304 the section called \(lqQUEUE MODES\(rq
305 for info about queue modes)\&.
306 .RE
307 .PP
308 \fBmax_art=\fR\fI10\fR
309 .RS 4
310 Number of similar artist to retrieve from local media library\&.
311 .br
312 When set to something superior to zero, it tries to get as much similar artists from media library\&.
313 .RE
314 .PP
315 \fBdepth=\fR\fI1\fR
316 .RS 4
317 How many artists to base on similar artists search\&.
318 .br
319
320 The first is the last played artist and so on back in the history\&. Highter depth generates wider suggestions, it might help to reduce looping over same artists\&.
321 .RE
322 .PP
323 \fBsingle_album=\fR\fIfalse\fR
324 .RS 4
325 Prevent from queueing a track from the same album (it often happens with OST)\&.
326 .br
327
328 Only relevant in "track" queue mode\&.
329 .RE
330 .PP
331 \fBtrack_to_add=\fR\fI1\fR
332 .RS 4
333 How many track(s) to add\&. Only relevant in
334 \fBtop\fR
335 and
336 \fBtrack\fR
337 queue modes\&.
338 .RE
339 .PP
340 \fBalbum_to_add=\fR\fI1\fR
341 .RS 4
342 How many album(s) to add\&. Only relevant in
343 \fBalbum\fR
344 queue modes\&.
345 .RE
346 .PP
347 \fBcache=\fR\fITrue\fR
348 .RS 4
349 Whether or not to use on\-disk persistent http cache\&.
350 .br
351 When set to "true", sima will use a persistent cache for its http client\&. The cache is written along with the dbfile in:
352 .br
353
354 $XDG_CONFIG_HOME/mpd_sima/http/WEB_SERVICE\&.
355 .br
356
357 If set to "false", caching is still done but in memory\&.
358 .RE
359 .PP
360 \fBpriority=\fR\fI100\fR
361 .RS 4
362 Plugin priority
363 .RE
364 .SS "EchoNest section"
365 .PP
366 EchoNest plugin\*(Aqs configuration\&.
367 .PP
368 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\&.
369 .PP
370 \fB[echonest]\fR
371 .RS 4
372 .RE
373 .PP
374 \fBqueue_mode=\fR\fItrack\fR
375 .RS 4
376 .RE
377 .PP
378 \fBmax_art=\fR\fI10\fR
379 .RS 4
380 .RE
381 .PP
382 \fBdepth=\fR\fI1\fR
383 .RS 4
384 .RE
385 .PP
386 \fBsingle_album=\fR\fIfalse\fR
387 .RS 4
388 .RE
389 .PP
390 \fBtrack_to_add=\fR\fI1\fR
391 .RS 4
392 .RE
393 .PP
394 \fBalbum_to_add=\fR\fI1\fR
395 .RS 4
396 .RE
397 .PP
398 \fBpriority=\fR\fI100\fR
399 .RS 4
400 .RE
401 .SH "QUEUE MODES"
402 .PP
403 mpd\-sima offers different queue modes\&. All of them pick up tracks from artists similar to the last track in the queue\&.
404 .PP
405 mpd\-sima 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\&.
406 .PP
407 \fBtrack\fR
408 .RS 4
409 Queue a similar track chosen at random from a similar artist\&.
410 .RE
411 .PP
412 \fBtop\fR
413 .RS 4
414 Queue a track from a similar artist, chosen among "top tracks" according to last\&.fm data mining\&.
415 .RE
416 .PP
417 \fBalbum\fR
418 .RS 4
419 Queue a whole album chosen at random from a similar artist\&.
420 .sp
421 \fINota Bene:\fR
422 .br
423
424 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\&.
425 .br
426
427 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\&.
428 .br
429
430 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\&.
431 .sp
432 mpd\-sima 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\*(Aqt be queued\&.
433 .RE
434 .SH "FILES"
435 .PP
436 ${XDG_CONFIG_HOME}/mpd_sima/mpd_sima\&.cfg
437 .RS 4
438 Configuration file\&.
439 .RE
440 .PP
441 ${XDG_DATA_HOME}/mpd_sima/sima\&.db
442 .RS 4
443 SQLite DB file\&.
444 .RE
445 .PP
446 ${XDG_DATA_HOME}/mpd_sima/WEB_SERVICE/
447 .RS 4
448 Persistent http cache\&.
449 .RE
450 .PP
451 Usually
452 \fBXDG_DATA_HOME\fR
453 is set to
454 ${HOME}/\&.local/share
455 and
456 \fBXDG_CONFIG_HOME\fR
457 to
458 ${HOME}/\&.config\&.
459 .br
460 You may override them using command line option
461 \fB\-\-var\-dir\fR
462 and
463 \fB\-\-config\fR
464 (cf\&.
465 \fBmpd-sima\fR(1))
466 .SH "FEEDBACK/BUGS"
467 .PP
468 The maintainer would be more than happy to ear from you, don\*(Aqt hesitate to send feedback,
469 \m[blue]\fB\%http://kaliko.me/id/\fR\m[]\&.
470 .PP
471 XMPP
472 users are welcome to join the dedicated chat room at
473 \m[blue]\fBkaliko\&.me@conf\&.azylum\&.org\fR\m[]\&.
474 .SH "SEE ALSO"
475 .PP
476 \fBmpc\fR(1),
477 \fBmpd\fR(1)
478 .PP
479 /usr/share/doc/mpd\-sima/
480 .SH "AUTHOR"
481 .PP
482 \fBJack Kaliko\fR <\&kaliko@azylum\&.org\&>
483 .RS 4
484 Wrote this man page and is currently leading MPD_sima project\&.
485 .RE
486 .SH "COPYRIGHT"
487 .br
488 Copyright \(co 2009-2017 Jack Kaliko
489 .br
490 .PP
491 This manual page was written for the Debian system (and may be used by others)\&.
492 .PP
493 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 3 published by the Free Software Foundation\&.
494 .PP
495 On Debian systems, the complete text of the GNU General Public License can be found in
496 /usr/share/common\-licenses/GPL\&.
497 .sp