literate-dotfiles/docs/music.html

868 lines
50 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-28 mar. 21:32 -->
<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="#org29ff9bd">MPD (not used anymore)</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-variable-name">ncmpcpp_directory</span> = ~/.config/ncmpcpp
</pre>
</div>
<div class="org-src-container">
<pre class="src src-conf"><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>
</pre>
</div>
<div class="org-src-container">
<pre class="src src-conf"><span class="org-variable-name">mpd_music_dir</span> = ~/Music
</pre>
</div>
<div class="org-src-container">
<pre class="src src-conf"><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>
</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-org29ff9bd" class="outline-2">
<h2 id="org29ff9bd">MPD (not used anymore)</h2>
<div class="outline-text-2" id="text-org29ff9bd">
<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">music_directory <span class="org-string">"~/Music"</span>
playlist_directory <span class="org-string">"~/.config/mpd/playlists"</span>
db_file <span class="org-string">"~/.config/mpd/database"</span>
log_file <span class="org-string">"~/.config/mpd/log"</span>
pid_file <span class="org-string">"~/.config/mpd/pid"</span>
state_file <span class="org-string">"~/.config/mpd/state"</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> = &lt;&lt;get-password(passname=<span class="org-string">"spotify.com/dehaeze.thomas@gmail.com"</span>)&gt;&gt;
<span class="org-variable-name">client_id</span> = 3b740ab1-f26f-4c38-aee0-4dcb9e58b375
<span class="org-variable-name">client_secret</span> = mspixJ52Yq5xQKF980Rij8_geTM_2VU1Euk5K86uwfg=
<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-28 mar. 21:32</p>
</div>
</body>
</html>