Switch to unified view

a/doc/sc2mpd.html b/doc/sc2mpd.html
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
3
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4
<head>
4
<head>
5
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
5
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
6
<meta name="generator" content="AsciiDoc 8.6.9" />
6
<meta name="generator" content="AsciiDoc 8.6.7" />
7
<title>sc2mpd: helper for upmpdcli Songcast support</title>
7
<title>sc2mpd: helper for upmpdcli Songcast support</title>
8
<style type="text/css">
8
<style type="text/css">
9
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
9
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
10
10
11
/* Default font. */
11
/* Default font. */
...
...
85
  margin-top: 0;
85
  margin-top: 0;
86
}
86
}
87
ul > li     { color: #aaa; }
87
ul > li     { color: #aaa; }
88
ul > li > * { color: black; }
88
ul > li > * { color: black; }
89
89
90
.monospaced, code, pre {
90
pre {
91
  font-family: "Courier New", Courier, monospace;
92
  font-size: inherit;
93
  color: navy;
94
  padding: 0;
91
  padding: 0;
95
  margin: 0;
92
  margin: 0;
96
}
97
pre {
98
  white-space: pre-wrap;
99
}
93
}
100
94
101
#author {
95
#author {
102
  color: #527bbd;
96
  color: #527bbd;
103
  font-weight: bold;
97
  font-weight: bold;
...
...
223
  border-left: 3px solid #dddddd;
217
  border-left: 3px solid #dddddd;
224
  padding-left: 0.5em;
218
  padding-left: 0.5em;
225
}
219
}
226
220
227
div.imageblock div.content { padding-left: 0; }
221
div.imageblock div.content { padding-left: 0; }
228
span.image img { border-style: none; vertical-align: text-bottom; }
222
span.image img { border-style: none; }
229
a.image:visited { color: white; }
223
a.image:visited { color: white; }
230
224
231
dl {
225
dl {
232
  margin-top: 0.8em;
226
  margin-top: 0.8em;
233
  margin-bottom: 0.8em;
227
  margin-bottom: 0.8em;
...
...
419
/*
413
/*
420
 * xhtml11 specific
414
 * xhtml11 specific
421
 *
415
 *
422
 * */
416
 * */
423
417
418
tt {
419
  font-family: "Courier New", Courier, monospace;
420
  font-size: inherit;
421
  color: navy;
422
}
423
424
div.tableblock {
424
div.tableblock {
425
  margin-top: 1.0em;
425
  margin-top: 1.0em;
426
  margin-bottom: 1.5em;
426
  margin-bottom: 1.5em;
427
}
427
}
428
div.tableblock > table {
428
div.tableblock > table {
...
...
451
451
452
/*
452
/*
453
 * html5 specific
453
 * html5 specific
454
 *
454
 *
455
 * */
455
 * */
456
457
.monospaced {
458
  font-family: "Courier New", Courier, monospace;
459
  font-size: inherit;
460
  color: navy;
461
}
456
462
457
table.tableblock {
463
table.tableblock {
458
  margin-top: 1.0em;
464
  margin-top: 1.0em;
459
  margin-bottom: 1.5em;
465
  margin-bottom: 1.5em;
460
}
466
}
...
...
531
}
537
}
532
538
533
@media print {
539
@media print {
534
  body.manpage div#toc { display: none; }
540
  body.manpage div#toc { display: none; }
535
}
541
}
536
537
538
</style>
542
</style>
539
<script type="text/javascript">
543
<script type="text/javascript">
540
/*<![CDATA[*/
544
/*<![CDATA[*/
541
var asciidoc = {  // Namespace.
545
var asciidoc = {  // Namespace.
542
546
...
...
747
<a href="#whatis_songcast">further</a> for more explanations about what this does.</p></div>
751
<a href="#whatis_songcast">further</a> for more explanations about what this does.</p></div>
748
<div class="paragraph"><p><strong>sc2mpd</strong> has mostly been tested with 16 bits sound but a recent change
752
<div class="paragraph"><p><strong>sc2mpd</strong> has mostly been tested with 16 bits sound but a recent change
749
seems to have fixed 24 bits sound, so this should be now usable for
753
seems to have fixed 24 bits sound, so this should be now usable for
750
MACs. <strong><em>This needs mpd 0.19 on the renderer. Do not try 24 bits sound with
754
MACs. <strong><em>This needs mpd 0.19 on the renderer. Do not try 24 bits sound with
751
mpd 0.18 !</em></strong> (or turn the volume very low&#8230;). Using Songcast from a Mac (24
755
mpd 0.18 !</em></strong> (or turn the volume very low&#8230;). Using Songcast from a Mac (24
752
 bits audio) needs <strong>mpd 0.19</strong>, configured with <code>--disable-audiofile</code>.
756
 bits audio) needs <strong>mpd 0.19</strong>, configured with <tt>--disable-audiofile</tt>.
753
As Debian and Ubuntu tend to lag quite bit on MPD progresses, I have set up
757
As Debian and Ubuntu tend to lag quite bit on MPD progresses, I have set up
754
<a href="downloads.html#mpd">backport repositories</a> for recent mpd versions
758
<a href="downloads.html#mpd">backport repositories</a> for recent mpd versions
755
(currently 0.19.9), for Ubuntu, Debian i386/amd64 and Raspbian.</p></div>
759
(currently 0.19.9), for Ubuntu, Debian i386/amd64 and Raspbian.</p></div>
756
<div class="paragraph"><p>And to conclude the misc warnings section: <strong>there is no software volume
760
<div class="paragraph"><p>And to conclude the misc warnings section: <strong>there is no software volume
757
control</strong> of the Songcast Receivers for now: use either a local mixer or the
761
control</strong> of the Songcast Receivers for now: use either a local mixer or the
...
...
822
   <strong>mpd</strong> will play the stream.
826
   <strong>mpd</strong> will play the stream.
823
</p>
827
</p>
824
</li>
828
</li>
825
<li>
829
<li>
826
<p>
830
<p>
827
By directly using the <strong>alsa</strong> audio driver. <strong><em>This only works with 16
831
By directly using the <strong>alsa</strong> audio driver.
828
   bits sound for now (so only with a Windows sender, no Macs allowed)</em></strong>
829
</p>
832
</p>
830
</li>
833
</li>
831
</ul></div>
834
</ul></div>
832
<div class="paragraph"><p>What approach is used is decided by a parameter in the upmpdcli
835
<div class="paragraph"><p>What approach is used is decided by a parameter in the upmpdcli
833
configuration file: <code>scplaymethod</code> (see <a href="#Configuration">[Configuration]</a> further)</p></div>
836
configuration file: <tt>scplaymethod</tt> (see <a href="#Configuration">[Configuration]</a> further)</p></div>
834
<div class="paragraph"><p>Control:</p></div>
837
<div class="paragraph"><p>Control:</p></div>
835
<div class="ulist"><ul>
838
<div class="ulist"><ul>
836
<li>
839
<li>
837
<p>
840
<p>
838
If <strong>upmpdcli</strong> finds an executable <strong>sc2mpd</strong> command in the PATH when
841
If <strong>upmpdcli</strong> finds an executable <strong>sc2mpd</strong> command in the PATH when
...
...
853
  through HTTP.
856
  through HTTP.
854
</p>
857
</p>
855
</li>
858
</li>
856
<li>
859
<li>
857
<p>
860
<p>
858
If the <em><code>mpd</code></em> method is in use, <strong>upmpdcli</strong> instructs <strong>mpd</strong> to play the
861
If the <em><tt>mpd</tt></em> method is in use, <strong>upmpdcli</strong> instructs <strong>mpd</strong> to play the
859
  URL for the <strong>sc2mpd</strong> output.
862
  URL for the <strong>sc2mpd</strong> output.
860
</p>
863
</p>
861
</li>
864
</li>
862
</ul></div>
865
</ul></div>
863
<div class="paragraph"><p>When using <em><code>mpd</code></em> more bufferisation occurs and there may be a significant
866
<div class="paragraph"><p>When using <em><tt>mpd</tt></em> more bufferisation occurs and there may be a significant
864
delay (up to around 10S) between the time when Songcast is activated and
867
delay (up to around 10S) between the time when Songcast is activated and
865
the time sound appears.</p></div>
868
the time sound appears.</p></div>
866
<div class="paragraph"><p>Given the bufferisation and delay control issues when going through MPD,
869
<div class="paragraph"><p>Given the bufferisation and delay control issues when going through MPD,
867
only the <em><code>alsa</code></em> method is usable in multi-room configurations. Even with a
870
only the <em><tt>alsa</tt></em> method is usable in multi-room configurations. Even with a
868
single player, the <em><code>mpd</code></em> method will experience skips from time to
871
single player, the <em><tt>mpd</tt></em> method will experience skips from time to
869
time. The reasons are explained in the <a href="scmulti.html">multi-room</a>
872
time. The reasons are explained in the <a href="scmulti.html">multi-room</a>
870
page.</p></div>
873
page.</p></div>
871
</div>
874
</div>
872
</div>
875
</div>
873
<div class="sect1">
876
<div class="sect1">
...
...
875
<div class="sectionbody">
878
<div class="sectionbody">
876
<div class="paragraph"><p>There are packages available for Raspbian and Debian Wheezy i386 and amd64.</p></div>
879
<div class="paragraph"><p>There are packages available for Raspbian and Debian Wheezy i386 and amd64.</p></div>
877
<div class="paragraph"><p>So add the repositories:</p></div>
880
<div class="paragraph"><p>So add the repositories:</p></div>
878
<div class="literalblock">
881
<div class="literalblock">
879
<div class="content">
882
<div class="content">
880
<pre><code>echo deb http://www.lesbonscomptes.com/upmpdcli/downloads/debian/ unstable main | sudo tee /etc/apt/sources.list.d/upmpdcli.list
883
<pre><tt>echo deb http://www.lesbonscomptes.com/upmpdcli/downloads/debian/ unstable main | sudo tee /etc/apt/sources.list.d/upmpdcli.list
881
echo deb-src http://www.lesbonscomptes.com/upmpdcli/downloads/debian/ unstable main | sudo tee -a /etc/apt/sources.list.d/upmpdcli.list
884
echo deb-src http://www.lesbonscomptes.com/upmpdcli/downloads/debian/ unstable main | sudo tee -a /etc/apt/sources.list.d/upmpdcli.list
882
echo deb http://www.lesbonscomptes.com/upmpdcli/downloads/mpd-debian/ unstable main  | sudo tee -a /etc/apt/sources.list.d/upmpdcli.list
885
echo deb http://www.lesbonscomptes.com/upmpdcli/downloads/mpd-debian/ unstable main  | sudo tee -a /etc/apt/sources.list.d/upmpdcli.list
883
echo deb-src http://www.lesbonscomptes.com/upmpdcli/downloads/mpd-debian/ unstable main  | sudo tee -a /etc/apt/sources.list.d/upmpdcli.list</code></pre>
886
echo deb-src http://www.lesbonscomptes.com/upmpdcli/downloads/mpd-debian/ unstable main  | sudo tee -a /etc/apt/sources.list.d/upmpdcli.list</tt></pre>
884
</div></div>
887
</div></div>
885
<div class="paragraph"><p>Install (the mpd and libupnp versions in the repo have bug fixes):</p></div>
888
<div class="paragraph"><p>Install (the mpd and libupnp versions in the repo have bug fixes):</p></div>
886
<div class="literalblock">
889
<div class="literalblock">
887
<div class="content">
890
<div class="content">
888
<pre><code>sudo apt-get update
891
<pre><tt>sudo apt-get update
889
sudo apt-get install upmpdcli sc2mpd mpd libupnp6</code></pre>
892
sudo apt-get install upmpdcli sc2mpd mpd libupnp6</tt></pre>
890
</div></div>
893
</div></div>
891
<div class="paragraph"><p>And seed the next section for configuring.</p></div>
894
<div class="paragraph"><p>And seed the next section for configuring.</p></div>
892
</div>
895
</div>
893
</div>
896
</div>
894
<div class="sect1">
897
<div class="sect1">
...
...
898
<h3 id="_on_the_receiver_side">On the Receiver side</h3>
901
<h3 id="_on_the_receiver_side">On the Receiver side</h3>
899
<div class="paragraph"><p>No configuration is necessary by default: if <strong>sc2mpd</strong> is present,
902
<div class="paragraph"><p>No configuration is necessary by default: if <strong>sc2mpd</strong> is present,
900
<strong>upmpdcli</strong> will advertise the Songcast capability, and any host with a
903
<strong>upmpdcli</strong> will advertise the Songcast capability, and any host with a
901
Songcast sender installed should be able to use it.</p></div>
904
Songcast sender installed should be able to use it.</p></div>
902
<div class="paragraph"><p>However, you can set a number of values in the upmpdcli configuration file
905
<div class="paragraph"><p>However, you can set a number of values in the upmpdcli configuration file
903
(you <strong>must</strong> set the <strong>upmpdcli</strong> <code>-c</code> option for <strong>sc2mpd</strong> to see them, the
906
(you <strong>must</strong> set the <strong>upmpdcli</strong> <tt>-c</tt> option for <strong>sc2mpd</strong> to see them, the
904
environment variable will not work):</p></div>
907
environment variable will not work):</p></div>
905
<div class="dlist"><dl>
908
<div class="dlist"><dl>
909
<dt class="hdlist1">
910
sclogfilename
911
</dt>
912
<dd>
913
<p>
914
Name of the file which will receive <strong>sc2mpd</strong> log messages. <tt>stderr</tt> by
915
default. This <em>can&#8217;t be</em> the same file used by <strong>upmpdcli</strong>.
916
</p>
917
</dd>
918
<dt class="hdlist1">
919
scloglevel
920
</dt>
921
<dd>
922
<p>
923
Log verbosity.
924
</p>
925
</dd>
906
<dt class="hdlist1">
926
<dt class="hdlist1">
907
scplaymethod
927
scplaymethod
908
</dt>
928
</dt>
909
<dd>
929
<dd>
910
<p>
930
<p>
911
This decides how audio is played, with 2 possible
931
Used by <strong>upmpdcli</strong> and <strong>sc2mpd</strong>.  This decides how audio is played, with 2
912
values, <em><code>alsa</code></em> or <em><code>mpd</code></em>. Using <em><code>mpd</code></em> is somewhat easier, but
932
possible values, <em><tt>alsa</tt></em> or <em><tt>mpd</tt></em>. Using <em><tt>mpd</tt></em> is somewhat easier, but
913
unusable in <a href="scmulti.html">multi-room</a> configurations, and you risk
933
unusable in <a href="scmulti.html">multi-room</a> configurations, and you risk
914
small drops even in single-player settings.
934
small drops even in single-player settings.
915
</p>
935
</p>
916
</dd>
936
</dd>
917
<dt class="hdlist1">
937
<dt class="hdlist1">
918
scalsadevice
938
scalsadevice
919
</dt>
939
</dt>
920
<dd>
940
<dd>
921
<p>
941
<p>
922
If the <em><code>alsa</code></em> method is set, the <code>scalsadevice</code>
942
If the <em><tt>alsa</tt></em> method is set, the <tt>scalsadevice</tt>
923
parameter defines the interface name. Use <code>aplay -L</code> to find the
943
parameter defines the interface name. Use <tt>aplay -L</tt> to find the
924
appropriate name. Also check that user <em><code>upmpdcli</code></em> belongs to the
944
appropriate name. Also check that user <em><tt>upmpdcli</tt></em> belongs to the
925
<em><code>audio</code></em> group.
945
<em><tt>audio</tt></em> group.
926
</p>
946
</p>
927
</dd>
947
</dd>
928
<dt class="hdlist1">
948
<dt class="hdlist1">
929
sclogfilename
949
sccvttype
930
</dt>
950
</dt>
931
<dd>
951
<dd>
932
<p>
952
<p>
933
Name of the file which will receive <strong>sc2mpd</strong> log messages. <code>stderr</code> by
953
If the <em><tt>alsa</tt></em> play method is used, this defines the libsamplerate
934
default. This <em>can&#8217;t be</em> the same file used by <strong>upmpdcli</strong>.
954
converter type. See <a href="http://www.mega-nerd.com/SRC/api_misc.html#Converters">http://www.mega-nerd.com/SRC/api_misc.html#Converters</a>.
935
</p>
955
The default is to use SRC_CVT_FASTEST, resulting in around 24% CPU usage
936
</dd>
956
for sc2mpd processing a 16 bits stream on a Raspberry Pi 1. The value can
937
<dt class="hdlist1">
957
be specified either as a string (e.g SRC_SINC_FASTEST), or a value (e.g 2).
938
scloglevel
939
</dt>
940
<dd>
941
<p>
942
Log verbosity.
943
</p>
958
</p>
944
</dd>
959
</dd>
945
<dt class="hdlist1">
960
<dt class="hdlist1">
946
schttpport
961
schttpport
947
</dt>
962
</dt>
948
<dd>
963
<dd>
949
<p>
964
<p>
950
If the <em><code>mpd</code></em> method is set, this defines the HTTP port used by <strong>mpd</strong> to
965
If the <em><tt>mpd</tt></em> method is set, this defines the HTTP port used by <strong>mpd</strong> to
951
connect to <strong>sc2mpd</strong>. 8768 by default. This must be an available port on
966
connect to <strong>sc2mpd</strong>. 8768 by default. This must be an available port on
952
<code>localhost</code>, and it will only accept connections from <code>localhost</code>.
967
<tt>localhost</tt>, and it will only accept connections from <tt>localhost</tt>.
953
</p>
968
</p>
954
</dd>
969
</dd>
955
<dt class="hdlist1">
970
<dt class="hdlist1">
956
sc2mpd
971
sc2mpd
957
</dt>
972
</dt>
958
<dd>
973
<dd>
959
<p>
974
<p>
960
Path for the <strong>sc2mpd</strong> executable file (e.g. <code>/usr/local/bin/sc2mpd</code>). Only
975
Used by <strong>upmpdcli</strong>. Path for the <strong>sc2mpd</strong> executable file
961
useful if <strong>sc2mpd</strong> was not installed to a location in the executable $PATH
976
(e.g. <tt>/usr/local/bin/sc2mpd</tt>). Only useful if <strong>sc2mpd</strong> was not installed
962
set for the init scripts. Typically only <code>/bin</code> and <code>/usr/bin</code> are in
977
to a location in the executable $PATH set for the init scripts. Typically
963
there. This allows <strong>upmpdcli</strong> to find <strong>sc2mpd</strong> if it is not in the standard
978
only <tt>/bin</tt> and <tt>/usr/bin</tt> are in there. This allows <strong>upmpdcli</strong> to find
964
location.
979
<strong>sc2mpd</strong> if it is not in the standard location.
965
</p>
980
</p>
966
</dd>
981
</dd>
967
</dl></div>
982
</dl></div>
968
</div>
983
</div>
969
<div class="sect2">
984
<div class="sect2">
...
...
1029
<div class="paragraph"><p>Building the Openhome libraries is a bit of a black art, and the <strong>sc2mpd</strong>
1044
<div class="paragraph"><p>Building the Openhome libraries is a bit of a black art, and the <strong>sc2mpd</strong>
1030
source comes with an <em>ohbuild.sh</em> script which will try to clone the
1045
source comes with an <em>ohbuild.sh</em> script which will try to clone the
1031
Openhome Git repositories and build the libs:</p></div>
1046
Openhome Git repositories and build the libs:</p></div>
1032
<div class="literalblock">
1047
<div class="literalblock">
1033
<div class="content">
1048
<div class="content">
1034
<pre><code>cd sc2mpd
1049
<pre><tt>cd sc2mpd
1035
mkdir /my/place/for/openhome
1050
mkdir /my/place/for/openhome
1036
sh ohbuild.sh /my/place/for/openhome</code></pre>
1051
sh ohbuild.sh /my/place/for/openhome</tt></pre>
1037
</div></div>
1052
</div></div>
1038
<div class="paragraph"><p>Miscellaneous error messages will be displayed during the build. Hope for
1053
<div class="paragraph"><p>Miscellaneous error messages will be displayed during the build. Hope for
1039
the best&#8230;</p></div>
1054
the best&#8230;</p></div>
1040
<div class="paragraph"><p>When this is done, build <strong>sc2mpd</strong>, using the following commands inside the
1055
<div class="paragraph"><p>When this is done, build <strong>sc2mpd</strong>, using the following commands inside the
1041
<em>sc2mpd</em> directory:</p></div>
1056
<em>sc2mpd</em> directory:</p></div>
1042
<div class="literalblock">
1057
<div class="literalblock">
1043
<div class="content">
1058
<div class="content">
1044
<pre><code>sh autogen.sh
1059
<pre><tt>sh autogen.sh
1045
./configure --prefix=/usr --with-openhome=/my/place/for/openhome
1060
./configure --prefix=/usr --with-openhome=/my/place/for/openhome
1046
make
1061
make
1047
sudo make install</code></pre>
1062
sudo make install</tt></pre>
1048
</div></div>
1063
</div></div>
1049
<div class="paragraph"><p>The build uses static Openhome libraries, so you can move the executable to
1064
<div class="paragraph"><p>The build uses static Openhome libraries, so you can move the executable to
1050
another machine without needing the Openhome directory (don&#8217;t forget to
1065
another machine without needing the Openhome directory (don&#8217;t forget to
1051
install the <em>libmicrohttpd</em>, <em>libsamplerate</em> and <em>libasound</em> runtimes
1066
install the <em>libmicrohttpd</em>, <em>libsamplerate</em> and <em>libasound</em> runtimes
1052
though).</p></div>
1067
though).</p></div>
...
...
1064
</div>
1079
</div>
1065
</div>
1080
</div>
1066
<div id="footnotes"><hr /></div>
1081
<div id="footnotes"><hr /></div>
1067
<div id="footer">
1082
<div id="footer">
1068
<div id="footer-text">
1083
<div id="footer-text">
1069
Last updated 2015-07-19 18:32:36 CEST
1084
Last updated 2015-07-27 09:57:59 CEST
1070
</div>
1085
</div>
1071
</div>
1086
</div>
1072
</body>
1087
</body>
1073
</html>
1088
</html>