literate-dotfiles/docs/music.html

1433 lines
101 KiB
HTML

<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-01-11 sam. 21:59 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Music/Sound Configuration</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Dehaeze Thomas" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #ccc;
box-shadow: 3px 3px 3px #eee;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: visible;
padding-top: 1.2em;
}
pre.src:before {
display: none;
position: absolute;
background-color: white;
top: -10px;
right: 10px;
padding: 3px;
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="../css/htmlize.css"/>
<link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script type="text/javascript" src="../js/bootstrap.min.js"></script>
<script type="text/javascript" src="../js/jquery.stickytableheaders.min.js"></script>
<script type="text/javascript" src="../js/readtheorg.js"></script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2020 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
</script>
</head>
<body>
<div id="org-div-home-and-up">
<a accesskey="h" href="./index.html"> UP </a>
|
<a accesskey="H" href="./index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Music/Sound Configuration</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org1984a25">Pavu Control</a></li>
<li><a href="#orga2274a9">NCMPCPP</a>
<ul>
<li><a href="#orgc496501">Config</a></li>
<li><a href="#orgef62173">Bindings</a></li>
</ul>
</li>
<li><a href="#org62153d2">MPD</a>
<ul>
<li><a href="#org29acd51">Files and directories</a></li>
<li><a href="#org56ab0a3">General music daemon options</a></li>
<li><a href="#org3492e49">Symbolic link behavior</a></li>
<li><a href="#orgdf4e594">Zeroconf / Avahi Service Discovery</a></li>
<li><a href="#org59b27de">Permissions</a></li>
<li><a href="#orgc961a82">Database</a></li>
<li><a href="#org297b2d2">Input</a></li>
<li><a href="#org4064aa8">Audio Output</a></li>
<li><a href="#org68fdf05">Normalization automatic volume adjustments</a></li>
<li><a href="#orgac3dbcb">Character Encoding</a></li>
</ul>
</li>
<li><a href="#org4ad4c04">Beets</a></li>
<li><a href="#org887303a">Mopidy</a></li>
<li><a href="#org6b37adb">Radio with curseradio</a></li>
</ul>
</div>
</div>
<div id="outline-container-org1984a25" class="outline-2">
<h2 id="org1984a25">Pavu Control</h2>
<div class="outline-text-2" id="text-org1984a25">
<div class="org-src-container">
<pre class="src src-conf">[<span class="org-type">window</span>]
<span class="org-variable-name">width</span>=<span class="org-highlight-numbers-number">500</span>
<span class="org-variable-name">height</span>=<span class="org-highlight-numbers-number">400</span>
<span class="org-variable-name">sinkInputType</span>=<span class="org-highlight-numbers-number">1</span>
<span class="org-variable-name">sourceOutputType</span>=<span class="org-highlight-numbers-number">1</span>
<span class="org-variable-name">sinkType</span>=<span class="org-highlight-numbers-number">0</span>
<span class="org-variable-name">sourceType</span>=<span class="org-highlight-numbers-number">1</span>
<span class="org-variable-name">showVolumeMeters</span>=<span class="org-highlight-numbers-number">1</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orga2274a9" class="outline-2">
<h2 id="orga2274a9">NCMPCPP</h2>
<div class="outline-text-2" id="text-orga2274a9">
<p>
<a href="https://rybczak.net/ncmpcpp/">https://rybczak.net/ncmpcpp/</a>
Cheatsheet: <a href="https://pkgbuild.com/~jelle/ncmpcpp/">https://pkgbuild.com/~jelle/ncmpcpp/</a>
</p>
</div>
<div id="outline-container-orgc496501" class="outline-3">
<h3 id="orgc496501">Config</h3>
<div class="outline-text-3" id="text-orgc496501">
<div class="org-src-container">
<pre class="src src-conf"><span class="org-comment-delimiter">##############################################################################</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">This is the example configuration file. Copy it to $HOME/.ncmpcpp/config ##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">or $XDG_CONFIG_HOME/ncmpcpp/config and set up your preferences. ##</span>
<span class="org-comment-delimiter">##############################################################################</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##### </span><span class="org-comment">directories ######</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Directory for storing ncmpcpp related files. Changing it is useful if you</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">want to store everything somewhere else and provide command line setting for</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">alternative location to config file which defines that while launching</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">ncmpcpp.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span>
<span class="org-variable-name">ncmpcpp_directory</span> = ~/.config/ncmpcpp
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Directory for storing downloaded lyrics. It defaults to ~/.lyrics since other</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">MPD clients (eg. ncmpc) also use that location.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">lyrics_directory = ~/.lyrics</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##### </span><span class="org-comment">connection settings #####</span>
<span class="org-comment-delimiter">#</span>
<span class="org-variable-name">mpd_host</span> = localhost
<span class="org-variable-name">mpd_port</span> = <span class="org-highlight-numbers-number">6600</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">mpd_connection_timeout = 5</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Needed for tag editor and file operations to work.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-variable-name">mpd_music_dir</span> = ~/Music
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">mpd_crossfade_time = 5</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##### </span><span class="org-comment">music visualizer #####</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: In order to make music visualizer work you'll need to use mpd fifo</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">output, whose format parameter has to be set to 44100:16:1 for mono</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">visualization or 44100:16:2 for stereo visualization. Example configuration</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">(it has to be put into mpd.conf):</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter"><span class="org-type">## </span></span><span class="org-comment"><span class="org-type">audio_output</span></span><span class="org-comment"> {</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">type "fifo"</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">name "Visualizer feed"</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">path "/tmp/mpd.fifo"</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">format "44100:16:2"</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">}</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">visualizer_fifo_path = /tmp/mpd.fifo</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: Below parameter is needed for ncmpcpp to determine which output</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">provides data for visualizer and thus allow syncing between visualization and</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">sound as currently there are some problems with it.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">visualizer_output_name = Visualizer feed</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">If you set format to 44100:16:2, make it 'yes'.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">visualizer_in_stereo = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: Below parameter defines how often ncmpcpp has to "synchronize"</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">visualizer and audio outputs. 30 seconds is optimal value, but if you</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">experience synchronization problems, set it to lower value. Keep in mind</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">that sane values start with &gt;=10.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">visualizer_sync_interval = 30</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: To enable spectrum frequency visualization you need to compile ncmpcpp</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">with fftw3 support.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Available values: spectrum, wave, wave_filled, ellipse.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">visualizer_type = wave</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">visualizer_look = &#9679;&#9646;</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">visualizer_color = blue, cyan, green, yellow, magenta, red</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Alternative subset of 256 colors for terminals that support it.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">visualizer_color = 41, 83, 119, 155, 185, 215, 209, 203, 197, 161</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##### </span><span class="org-comment">system encoding #####</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">ncmpcpp should detect your charset encoding but if it failed to do so, you</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">can specify charset encoding you are using here.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: You can see whether your ncmpcpp build supports charset detection by</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">checking output of `ncmpcpp --version`.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: Since MPD uses UTF-8 by default, setting this option makes sense only</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">if your encoding is different.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">system_encoding = ""</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##### </span><span class="org-comment">delays #####</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Time of inactivity (in seconds) after playlist highlighting will be disabled</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">(0 = always on).</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">playlist_disable_highlight_delay = 5</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Defines how long messages are supposed to be visible.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">message_delay_time = 5</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##### </span><span class="org-comment">song format #####</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">For a song format you can use:</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">%l - length</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">%f - filename</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">%D - directory</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">%a - artist</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">%A - album artist</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">%t - title</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">%b - album</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">%y - date</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">%n - track number (01/12 -&gt; 01)</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">%N - full track info (01/12 -&gt; 01/12)</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">%g - genre</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">%c - composer</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">%p - performer</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">%d - disc</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">%C - comment</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">%P - priority</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">$R - begin right alignment</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">If you want to make sure that a part of the format is displayed only when</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">certain tags are present, you can archieve it by grouping them with brackets,</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">e.g. '{%a - %t}' will be evaluated to 'ARTIST - TITLE' if both tags are</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">present or '' otherwise. It is also possible to define a list of</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">alternatives by providing several groups and separating them with '|',</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">e.g. '{%t}|{%f}' will be evaluated to 'TITLE' or 'FILENAME' if the former is</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">not present.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: If you want to set limit on maximal length of a tag, just put the</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">appropriate number between % and character that defines tag type, e.g. to</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">make album take max. 20 terminal cells, use '%20b'.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">In addition, formats support markers used for text attributes. They are</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">followed by character '$'. After that you can put:</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- 0 - default window color (discards all other colors)</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- 1 - black</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- 2 - red</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- 3 - green</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- 4 - yellow</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- 5 - blue</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- 6 - magenta</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- 7 - cyan</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- 8 - white</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- 9 - end of current color</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- b - bold text</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- u - underline text</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- r - reverse colors</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- a - use alternative character set</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">If you don't want to use a non-color attribute anymore, just put it again,</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">but this time insert character '/' between '$' and attribute character,</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">e.g. {$b%t$/b}|{$r%f$/r} will display bolded title tag or filename with</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">reversed colors.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">If you want to use 256 colors and/or background colors in formats (the naming</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">scheme is described below in section about color definitions), it can be done</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">with the syntax $(COLOR), e.g. to set the artist tag to one of the</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">non-standard colors and make it have yellow background, you need to write</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">$(197_yellow)%a$(end). Note that for standard colors this is interchangable</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">with attributes listed above.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: colors can be nested.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">song_list_format = {%a - }{%t}|{$8%f$9}$R{$3(%l)$9}</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">song_status_format = {{%a{ "%b"{ (%y)}} - }{%t}}|{%f}</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">song_library_format = {%n - }{%t}|{%f}</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">current_item_prefix = $(yellow)$r</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">current_item_suffix = $/r$(end)</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">current_item_inactive_column_prefix = $(white)$r</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">current_item_inactive_column_suffix = $/r$(end)</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">now_playing_prefix = $b</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">now_playing_suffix = $/b</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">browser_playlist_prefix = "$2playlist$9 "</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">selected_item_prefix = $6</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">selected_item_suffix = $9</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">modified_item_prefix = $3&gt; $9</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: attributes are not supported for the following variables.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">song_window_title_format = {%a - }{%t}|{%f}</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: Below variables are used for sorting songs in browser. The sort mode</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">determines how songs are sorted, and can be used in combination with a sort</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">format to specify a custom sorting format. Available values for</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">browser_sort_mode are "name", "mtime", "format" and "noop".</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">browser_sort_mode = name</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">browser_sort_format = {%a - }{%t}|{%f} {(%l)}</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##### </span><span class="org-comment">columns settings #####</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">syntax of song columns list format is "column column etc."</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- syntax for each column is:</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">(width of the column)[color of the column]{displayed tag}</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: Width is by default in %, if you want a column to have fixed size, add</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">'f' after the value, e.g. (10)[white]{a} will be the column that take 10% of</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">screen (so the real width will depend on actual screen size), whereas</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">(10f)[white]{a} will take 10 terminal cells, no matter how wide the screen</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">is.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- color is optional (if you want the default one, leave the field empty).</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: You can give a column additional attributes by putting appropriate</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">character after displayed tag character. Available attributes are:</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- r - column will be right aligned</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- E - if tag is empty, empty tag marker won't be displayed</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">You can also:</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- give a column custom name by putting it after attributes, separated with</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">character ':', e.g. {lr:Length} gives you right aligned column of lengths</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">named "Length".</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- define sequence of tags, that have to be displayed in case predecessor is</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">empty in a way similar to the one in classic song format, i.e. using '|'</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">character, e.g. {a|c|p:Owner} creates column named "Owner" that tries to</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">display artist tag and then composer and performer if previous ones are not</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">available.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">song_columns_list_format = (20)[]{a} (6f)[green]{NE} (50)[white]{t|f:Title} (20)[cyan]{b} (7f)[magenta]{l}</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##### </span><span class="org-comment">various settings #####</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: Custom command that will be executed each time song changes. Useful for</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">notifications etc.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-variable-name">execute_on_song_change</span> = dunstify --replace=<span class="org-highlight-numbers-number">19845</span> <span class="org-string">"Now Playing &#9835;"</span> <span class="org-string">"$(mpc current)"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: Custom command that will be executed each time player state</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">changes. The environment variable MPD_PLAYER_STATE is set to the current</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">state (either unknown, play, pause, or stop) for its duration.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">execute_on_player_state_change = ""</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">playlist_show_mpd_host = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">playlist_show_remaining_time = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">playlist_shorten_total_times = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">playlist_separate_albums = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: Possible display modes: classic, columns.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">playlist_display_mode = columns</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">browser_display_mode = classic</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">search_engine_display_mode = classic</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">playlist_editor_display_mode = classic</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">discard_colors_if_item_is_selected = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">show_duplicate_tags = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">incremental_seeking = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">seek_time = 1</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">volume_change_step = 2</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">autocenter_mode = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">centered_cursor = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: You can specify third character which will be used to build 'empty'</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">part of progressbar.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">progressbar_look = =&gt;</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Available values: database, playlist.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">default_place_to_search_in = database</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Available values: classic, alternative.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">user_interface = classic</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">data_fetching_delay = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Available values: artist, album_artist, date, genre, composer, performer.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">media_library_primary_tag = artist</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">media_library_albums_split_by_date = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Available values: wrapped, normal.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">default_find_mode = wrapped</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">default_tag_editor_pattern = %n - %t</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">header_visibility = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">statusbar_visibility = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">titles_visibility = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">header_text_scrolling = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">cyclic_scrolling = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">lines_scrolled = 2</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">lyrics_fetchers = lyricwiki, azlyrics, genius, sing365, lyricsmania, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, internet</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">follow_now_playing_lyrics = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">fetch_lyrics_for_current_song_in_background = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">store_lyrics_in_song_dir = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">generate_win32_compatible_filenames = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">allow_for_physical_item_deletion = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: If you set this variable, ncmpcpp will try to get info from last.fm in</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">language you set and if it fails, it will fall back to english. Otherwise it</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">will use english the first time.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: Language has to be expressed as an ISO 639 alpha-2 code.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">lastfm_preferred_language = en</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">space_add_mode = add_remove</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">show_hidden_files_in_local_browser = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">How shall screen switcher work?</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- "previous" - switch between the current and previous screen.</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- "screen1,...,screenN" - switch between given sequence of screens.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Screens available for use: help, playlist, browser, search_engine,</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">media_library, playlist_editor, tag_editor, outputs, visualizer, clock,</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">lyrics, last_fm.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">screen_switcher_mode = playlist, browser</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: You can define startup screen by choosing screen from the list above.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">startup_screen = playlist</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: You can define startup slave screen by choosing screen from the list</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">above or an empty value for no slave screen.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">startup_slave_screen = ""</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">startup_slave_screen_focus = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Default width of locked screen (in %). Acceptable values are from 20 to 80.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">locked_screen_width_part = 50</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">ask_for_locked_screen_width_part = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">jump_to_now_playing_song_at_start = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">ask_before_clearing_playlists = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">clock_display_seconds = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">display_volume_level = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">display_bitrate = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">display_remaining_time = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Available values: none, basic, extended, perl.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">regular_expressions = perl</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: if below is enabled, ncmpcpp will ignore leading "The" word while</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">sorting items in browser, tags in media library, etc.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">ignore_leading_the = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: if below is enabled, ncmpcpp will ignore diacritics while searching and</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">filtering lists. This takes an effect only if boost was compiled with ICU</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">support.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">ignore_diacritics = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">block_search_constraints_change_if_items_found = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">mouse_support = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">mouse_list_scroll_whole_page = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">empty_tag_marker = &lt;empty&gt;</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">tags_separator = " | "</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">tag_editor_extended_numeration = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">media_library_sort_by_mtime = no</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">enable_window_title = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: You can choose default search mode for search engine. Available modes</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">are:</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- 1 - use mpd built-in searching (no regexes, pattern matching)</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- 2 - use ncmpcpp searching (pattern matching with support for regexes, but</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">if your mpd is on a remote machine, downloading big database to process</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">it can take a while</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">- 3 - match only exact values (this mode uses mpd function for searching in</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">database and local one for searching in current playlist)</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">search_engine_default_search_mode = 1</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">external_editor = nano</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: set to yes if external editor is a console application.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">use_console_editor = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">##### </span><span class="org-comment">colors definitions #####</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">It is possible to set a background color by setting a color value</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">"&lt;foreground&gt;_&lt;background&gt;", e.g. red_black will set foregound color to red</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">and background color to black.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">In addition, for terminals that support 256 colors it is possible to set one</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">of them by using a number in range [1, 256] instead of color name,</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">e.g. numerical value corresponding to red_black is 2_1. To find out if the</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">terminal supports 256 colors, run ncmpcpp and check out the bottom of the</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">help screen for list of available colors and their numerical values.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">What is more, there are two special values for the background color:</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">"transparent" and "current". The first one explicitly sets the background to</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">be transparent, while the second one allows you to preserve current</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">background color and change only the foreground one. It's used implicitly</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">when background color is not specified.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Moreover, it is possible to attach format information to selected color</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">variables by appending to their end a colon followed by one or more format</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">flags, e.g. black:b or red:ur. The following variables support this syntax:</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">visualizer_color, color1, color2, empty_tag_color, volume_color,</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">state_line_color, state_flags_color, progressbar_color,</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">progressbar_elapsed_color, player_state_color, statusbar_time_color,</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">alternative_ui_separator_color.</span>
<span class="org-comment-delimiter">##</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Note: due to technical limitations of older ncurses version, if 256 colors</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">are used there is a possibility that you'll be able to use only colors with</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">transparent background.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">colors_enabled = yes</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">empty_tag_color = cyan</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">header_window_color = default</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">volume_color = default</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">state_line_color = default</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">state_flags_color = default:b</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">main_window_color = yellow</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">color1 = white</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">color2 = green</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">progressbar_color = black:b</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">progressbar_elapsed_color = green:b</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">statusbar_color = default</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">statusbar_time_color = default:b</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">player_state_color = default:b</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">alternative_ui_separator_color = black:b</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">window_border_color = green</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">active_window_border = red</span>
<span class="org-comment-delimiter">#</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgef62173" class="outline-3">
<h3 id="orgef62173">Bindings</h3>
<div class="outline-text-3" id="text-orgef62173">
<div class="org-src-container">
<pre class="src src-conf">def_key <span class="org-string">"g"</span>
move_home
def_key <span class="org-string">"G"</span>
move_end
def_key <span class="org-string">"j"</span>
scroll_down
def_key <span class="org-string">"k"</span>
scroll_up
def_key <span class="org-string">"ctrl-u"</span>
page_up
def_key <span class="org-string">"ctrl-d"</span>
page_down
def_key <span class="org-string">"l"</span>
enter_directory
def_key <span class="org-string">"h"</span>
jump_to_parent_directory
def_key <span class="org-string">"."</span>
show_lyrics
def_key <span class="org-string">"n"</span>
next_found_item
def_key <span class="org-string">"N"</span>
previous_found_item
def_key <span class="org-string">"J"</span>
move_sort_order_down
def_key <span class="org-string">"K"</span>
move_sort_order_up
def_key <span class="org-string">"d"</span>
delete_playlist_items
def_key <span class="org-string">"+"</span>
volume_up
def_key <span class="org-string">"-"</span>
volume_down
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-org62153d2" class="outline-2">
<h2 id="org62153d2">MPD</h2>
<div class="outline-text-2" id="text-org62153d2">
<p>
<a href="https://www.musicpd.org/">https://www.musicpd.org/</a>
</p>
</div>
<div id="outline-container-org29acd51" class="outline-3">
<h3 id="org29acd51">Files and directories</h3>
<div class="outline-text-3" id="text-org29acd51">
<div class="org-src-container">
<pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">This setting controls the top directory which MPD will search to discover the</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">available audio files and add them to the daemon's online database. This</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">setting defaults to the XDG directory, otherwise the music directory will be</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">be disabled and audio files will only be accepted over ipc socket (using</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">file:// protocol) or streaming files over an accepted protocol.</span>
music_directory <span class="org-string">"~/Music"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting sets the MPD internal playlist directory. The purpose of this</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">directory is storage for playlists created by MPD. The server will use</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">playlist files not created by the server but only if they are in the MPD</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">format. This setting defaults to playlist saving being disabled.</span>
playlist_directory <span class="org-string">"~/.config/mpd/playlists"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting sets the location of the MPD database. This file is used to</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">load the database at server start up and store the database while the</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">server is not up. This setting defaults to disabled which will allow</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">MPD to accept files over ipc socket (using file:// protocol) or streaming</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">files over an accepted protocol.</span>
<span class="org-comment-delimiter">#</span>
db_file <span class="org-string">"~/.config/mpd/database"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">These settings are the locations for the daemon log files for the daemon.</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">These logs are great for troubleshooting, depending on your log_level</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">settings.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">The special value "syslog" makes MPD use the local syslog daemon. This</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">setting defaults to logging to syslog, otherwise logging is disabled.</span>
log_file <span class="org-string">"~/.config/mpd/log"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting sets the location of the file which stores the process ID</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">for use of mpd --kill and some init scripts. This setting is disabled by</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">default and the pid file will not be stored.</span>
<span class="org-comment-delimiter">#</span>
pid_file <span class="org-string">"~/.config/mpd/pid"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting sets the location of the file which contains information about</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">most variables to get MPD back into the same general shape it was in before</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">it was brought down. This setting is disabled by default and the server</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">state will be reset on server start up.</span>
state_file <span class="org-string">"~/.config/mpd/state"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">The location of the sticker database. This is a database which</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">manages dynamic information attached to songs.</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">sticker_file "~/.config/mpd/sticker.sql"</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org56ab0a3" class="outline-3">
<h3 id="org56ab0a3">General music daemon options</h3>
<div class="outline-text-3" id="text-org56ab0a3">
<div class="org-src-container">
<pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">This setting specifies the user that MPD will run as. MPD should never run as</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">root and you may use this setting to make MPD change its user ID after</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">initialization. This setting is disabled by default and MPD is run as the</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">current user.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">user "nobody"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting specifies the group that MPD will run as. If not specified</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">primary group of user specified with "user" setting will be used (if set).</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This is useful if MPD needs to be a member of group such as "audio" to</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">have permission to use sound card.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">group "nogroup"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting sets the address for the daemon to listen on. Careful attention</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">should be paid if this is assigned to anything other then the default, any.</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting can deny access to control of the daemon. Not effective if</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">systemd socket activiation is in use.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">For network</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">bind_to_address "any"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">And for Unix Socket</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">bind_to_address "~/.mpd/socket"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting is the TCP port that is desired for the daemon to get assigned</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">to.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">port "6600"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting controls the type of information which is logged. Available</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">setting arguments are "default", "secure" or "verbose". The "verbose" setting</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">argument is recommended for troubleshooting, though can quickly stretch</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">available resources on limited hardware storage.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">log_level "default"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Setting "restore_paused" to "yes" puts MPD into pause mode instead</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">of starting playback after startup.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">restore_paused "no"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting enables MPD to create playlists in a format usable by other</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">music players.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">save_absolute_paths_in_playlists "no"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting defines a list of tag types that will be extracted during the</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">audio file discovery process. The complete list of possible values can be</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">found in the user manual.</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This example just enables the "comment" tag without disabling all</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">the other supported tags:</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">metadata_to_use "+comment"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting enables automatic update of MPD's database when files in</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">music_directory are changed.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">auto_update "yes"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Limit the depth of the directories being watched, 0 means only watch</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">the music directory itself. There is no limit by default.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">auto_update_depth "3"</span>
<span class="org-comment-delimiter">#</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org3492e49" class="outline-3">
<h3 id="org3492e49">Symbolic link behavior</h3>
<div class="outline-text-3" id="text-org3492e49">
<div class="org-src-container">
<pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">If this setting is set to "yes", MPD will discover audio files by following</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">symbolic links outside of the configured music_directory.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">follow_outside_symlinks "yes"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">If this setting is set to "yes", MPD will discover audio files by following</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">symbolic links inside of the configured music_directory.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">follow_inside_symlinks "yes"</span>
<span class="org-comment-delimiter">#</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgdf4e594" class="outline-3">
<h3 id="orgdf4e594">Zeroconf / Avahi Service Discovery</h3>
<div class="outline-text-3" id="text-orgdf4e594">
<div class="org-src-container">
<pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">If this setting is set to "yes", service information will be published with</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Zeroconf / Avahi.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">zeroconf_enabled "yes"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">The argument to this setting will be the Zeroconf / Avahi unique name for</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">this MPD server on the network. %h will be replaced with the hostname.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">zeroconf_name "Music Player @ %h"</span>
<span class="org-comment-delimiter">#</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org59b27de" class="outline-3">
<h3 id="org59b27de">Permissions</h3>
<div class="outline-text-3" id="text-org59b27de">
<div class="org-src-container">
<pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">If this setting is set, MPD will require password authorization. The password</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">setting can be specified multiple times for different password profiles.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">password "password@read,add,control,admin"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting specifies the permissions a user has who has not yet logged in.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">default_permissions "read,add,control,admin"</span>
<span class="org-comment-delimiter">#</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgc961a82" class="outline-3">
<h3 id="orgc961a82">Database</h3>
<div class="outline-text-3" id="text-orgc961a82">
<div class="org-src-container">
<pre class="src src-conf"><span class="org-comment-delimiter"><span class="org-type">#</span></span><span class="org-comment"><span class="org-type">database</span></span><span class="org-comment"> {</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">plugin "proxy"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">host "other.mpd.host"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">port "6600"</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">}</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org297b2d2" class="outline-3">
<h3 id="org297b2d2">Input</h3>
<div class="outline-text-3" id="text-org297b2d2">
<div class="org-src-container">
<pre class="src src-conf"><span class="org-type">input</span> {
plugin <span class="org-string">"curl"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">proxy "proxy.isp.com:8080"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">proxy_user "user"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">proxy_password "password"</span>
}
</pre>
</div>
</div>
</div>
<div id="outline-container-org4064aa8" class="outline-3">
<h3 id="org4064aa8">Audio Output</h3>
<div class="outline-text-3" id="text-org4064aa8">
<div class="org-src-container">
<pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">MPD supports various audio output types, as well as playing through multiple</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">audio outputs at the same time, through multiple audio_output settings</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">blocks. Setting this block is optional, though the server will only attempt</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">autodetection for one sound card.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">An example of an ALSA output:</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"><span class="org-type">#</span></span><span class="org-comment"><span class="org-type">audio_output</span></span><span class="org-comment"> {</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">type "alsa"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">name "My ALSA Device"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">period_time "50000"</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">device "hw:0,0" # optional</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">mixer_type "hardware" # optional</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">mixer_device "default" # optional</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">mixer_control "PCM" # optional</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">mixer_index "0" # optional</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">}</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">For NCMPCPP Visualizer</span>
<span class="org-type">audio_output</span> {
type <span class="org-string">"fifo"</span>
name <span class="org-string">"Visualizer feed"</span>
path <span class="org-string">"/tmp/mpd.fifo"</span>
format <span class="org-string">"44100:16:2"</span>
}
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">An example of an OSS output:</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"><span class="org-type">#</span></span><span class="org-comment"><span class="org-type">audio_output</span></span><span class="org-comment"> {</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">type "oss"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">name "My OSS Device"</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">device "/dev/dsp" # optional</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">mixer_type "hardware" # optional</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">mixer_device "/dev/mixer" # optional</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">mixer_control "PCM" # optional</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">}</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">An example of a shout output (for streaming to Icecast):</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"><span class="org-type">#</span></span><span class="org-comment"><span class="org-type">audio_output</span></span><span class="org-comment"> {</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">type "shout"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">encoder "vorbis" # optional</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">name "My Shout Stream"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">host "localhost"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">port "8000"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">mount "/mpd.ogg"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">password "hackme"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">quality "5.0"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">bitrate "128"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">format "44100:16:1"</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">protocol "icecast2" # optional</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">user "source" # optional</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">description "My Stream Description" # optional</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">url "http://example.com" # optional</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">genre "jazz" # optional</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">public "no" # optional</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">timeout "2" # optional</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">mixer_type "software" # optional</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">}</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">An example of a recorder output:</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"><span class="org-type">#</span></span><span class="org-comment"><span class="org-type">audio_output</span></span><span class="org-comment"> {</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">type "recorder"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">name "My recorder"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">encoder "vorbis" # optional, vorbis or lame</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">path "/var/lib/mpd/recorder/mpd.ogg"</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">quality "5.0" # do not define if bitrate is defined</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">bitrate "128" # do not define if quality is defined</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">format "44100:16:1"</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">}</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">An example of a httpd output (built-in HTTP streaming server):</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"><span class="org-type">#</span></span><span class="org-comment"><span class="org-type">audio_output</span></span><span class="org-comment"> {</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">type "httpd"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">name "My HTTP Stream"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">encoder "vorbis" # optional, vorbis or lame</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">port "8000"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">bind_to_address "0.0.0.0" # optional, IPv4 or IPv6</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">quality "5.0" # do not define if bitrate is defined</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">bitrate "128" # do not define if quality is defined</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">format "44100:16:1"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">max_clients "0" # optional 0=no limit</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">}</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">An example of a pulseaudio output (streaming to a remote pulseaudio server)</span>
<span class="org-comment-delimiter">#</span>
<span class="org-type">audio_output</span> {
type <span class="org-string">"pulse"</span>
name <span class="org-string">"My Pulse Output"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">server "localhost" # optional</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">sink "remote_server_sink" # optional</span>
}
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">An example of a winmm output (Windows multimedia API).</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"><span class="org-type">#</span></span><span class="org-comment"><span class="org-type">audio_output</span></span><span class="org-comment"> {</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">type "winmm"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">name "My WinMM output"</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">or</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">device "0" # optional</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">mixer_type "hardware" # optional</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">}</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">An example of an openal output.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"><span class="org-type">#</span></span><span class="org-comment"><span class="org-type">audio_output</span></span><span class="org-comment"> {</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">type "openal"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">name "My OpenAL output"</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">}</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">An example of an sndio output.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"><span class="org-type">#</span></span><span class="org-comment"><span class="org-type">audio_output</span></span><span class="org-comment"> {</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">type "sndio"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">name "sndio output"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">mixer_type "hardware"</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">}</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">An example of an OS X output:</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"><span class="org-type">#</span></span><span class="org-comment"><span class="org-type">audio_output</span></span><span class="org-comment"> {</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">type "osx"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">name "My OS X Device"</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">device "Built-in Output" # optional</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">channel_map "-1,-1,0,1" # optional</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">}</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Example "pipe" output:</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"><span class="org-type">#</span></span><span class="org-comment"><span class="org-type">audio_output</span></span><span class="org-comment"> {</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">type "pipe"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">name "my pipe"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">command "aplay -f cd 2&gt;/dev/null"</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Or if you're want to use AudioCompress</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">command "AudioCompress -m | aplay -f cd 2&gt;/dev/null"</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">Or to send raw PCM stream through PCM:</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">command "nc example.org 8765"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">format "44100:16:2"</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">}</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">## </span><span class="org-comment">An example of a null output (for no audio output):</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"><span class="org-type">#</span></span><span class="org-comment"><span class="org-type">audio_output</span></span><span class="org-comment"> {</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">type "null"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">name "My Null Output"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">mixer_type "none" # optional</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">}</span>
<span class="org-comment-delimiter">#</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org68fdf05" class="outline-3">
<h3 id="org68fdf05">Normalization automatic volume adjustments</h3>
<div class="outline-text-3" id="text-org68fdf05">
<div class="org-src-container">
<pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">This setting specifies the type of ReplayGain to use. This setting can have</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">the argument "off", "album", "track" or "auto". "auto" is a special mode that</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">chooses between "track" and "album" depending on the current state of</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">random playback. If random playback is enabled then "track" mode is used.</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">See <a href="http://www.replaygain.org">&lt;http://www.replaygain.org&gt;</a> for more details about ReplayGain.</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting is off by default.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">replaygain "album"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting sets the pre-amp used for files that have ReplayGain tags. By</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">default this setting is disabled.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">replaygain_preamp "0"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting sets the pre-amp used for files that do NOT have ReplayGain tags.</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">By default this setting is disabled.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">replaygain_missing_preamp "0"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting enables or disables ReplayGain limiting.</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">MPD calculates actual amplification based on the ReplayGain tags</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">and replaygain_preamp / replaygain_missing_preamp setting.</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">If replaygain_limit is enabled MPD will never amplify audio signal</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">above its original level. If replaygain_limit is disabled such amplification</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">might occur. By default this setting is enabled.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">replaygain_limit "yes"</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This setting enables on-the-fly normalization volume adjustment. This will</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">result in the volume of all playing audio to be adjusted so the output has</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">equal "loudness". This setting is disabled by default.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">volume_normalization "no"</span>
<span class="org-comment-delimiter">#</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgac3dbcb" class="outline-3">
<h3 id="orgac3dbcb">Character Encoding</h3>
<div class="outline-text-3" id="text-orgac3dbcb">
<div class="org-src-container">
<pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">If file or directory names do not display correctly for your locale then you</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">may need to modify this setting.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">filesystem_charset "UTF-8"</span>
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-org4ad4c04" class="outline-2">
<h2 id="org4ad4c04">Beets</h2>
<div class="outline-text-2" id="text-org4ad4c04">
<p>
<a href="http://beets.io/">http://beets.io/</a>
</p>
<div class="org-src-container">
<pre class="src src-conf">directory: ~/Music
library: ~/Music/musiclibrary.db
import:
move: yes
</pre>
</div>
</div>
</div>
<div id="outline-container-org887303a" class="outline-2">
<h2 id="org887303a">Mopidy</h2>
<div class="outline-text-2" id="text-org887303a">
<div class="org-src-container">
<pre class="src src-conf">[<span class="org-type">spotify</span>]
<span class="org-variable-name">username</span> = dehaeze.thomas@gmail.com
<span class="org-variable-name">password</span> = ***REMOVED***
<span class="org-variable-name">client_id</span> = 3b740ab1-f26f-4c38-aee0-4dcb9e58b375
<span class="org-variable-name">client_secret</span> = ***REMOVED***
<span class="org-variable-name">bitrate</span> = <span class="org-highlight-numbers-number">320</span>
[<span class="org-type">mpd</span>]
<span class="org-variable-name">enabled</span> = true
<span class="org-variable-name">hostname</span> = 127.0.0.1
<span class="org-variable-name">port</span> = <span class="org-highlight-numbers-number">6600</span>
<span class="org-variable-name">password</span> =
<span class="org-variable-name">max_connections</span> = <span class="org-highlight-numbers-number">20</span>
<span class="org-variable-name">connection_timeout</span> = <span class="org-highlight-numbers-number">60</span>
<span class="org-variable-name">zeroconf</span> = Mopidy MPD server on $hostname
<span class="org-variable-name">command_blacklist</span> = listall,listallinfo
<span class="org-variable-name">default_playlist_scheme</span> = m3u
[<span class="org-type">audio</span>]
<span class="org-variable-name">output</span> = tee name=t t. ! queue ! autoaudiosink t. ! queue ! audioresample ! audioconvert ! audio/x-raw,rate=<span class="org-highlight-numbers-number">44100</span>,channels=<span class="org-highlight-numbers-number">2</span>,format=S16LE ! wavenc ! filesink location=/tmp/mpd.fifo
</pre>
</div>
</div>
</div>
<div id="outline-container-org6b37adb" class="outline-2">
<h2 id="org6b37adb">Radio with curseradio</h2>
<div class="outline-text-2" id="text-org6b37adb">
<div class="org-src-container">
<pre class="src src-conf">[<span class="org-type">opml</span>]
<span class="org-variable-name">root</span> = http://opml.radiotime.com/
[<span class="org-type">playback</span>]
<span class="org-variable-name">command</span> = /usr/bin/mpv
[<span class="org-type">interface</span>]
<span class="org-variable-name">keymap</span> = vi
[<span class="org-type">keymap.vi</span>]
<span class="org-variable-name">up</span> = k
<span class="org-variable-name">down</span> = j
<span class="org-variable-name">start</span> = <span class="org-highlight-numbers-number">0</span>
<span class="org-variable-name">end</span> = $
<span class="org-variable-name">pageup</span> = u
<span class="org-variable-name">pagedown</span> = d
<span class="org-variable-name">enter</span> = l
<span class="org-variable-name">stop</span> = p
<span class="org-variable-name">exit</span> = q
<span class="org-variable-name">favourite</span> = f
</pre>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-01-11 sam. 21:59</p>
</div>
</body>
</html>