{"id":1303,"date":"2018-05-29T13:22:18","date_gmt":"2018-05-29T11:22:18","guid":{"rendered":"http:\/\/pila.fr\/wordpress\/?p=1303"},"modified":"2018-05-29T13:22:45","modified_gmt":"2018-05-29T11:22:45","slug":"raspberry-pi-du-son-en-reseau-avec-pulseaudio","status":"publish","type":"post","link":"https:\/\/pila.fr\/wordpress\/archives\/1303","title":{"rendered":"Raspberry Pi : Du son en r\u00e9seau avec PulseAudio"},"content":{"rendered":"<p>Cet article d\u00e9crit comment utiliser le Raspberry Pi comme sortie son ( sink ) distante ( en r\u00e9seau ), pour un ordinateur sous Linux.<\/p>\n<p>Il exploite les capacit\u00e9s r\u00e9seau de PulseAudio, tant cot\u00e9 Raspberry que sur l&rsquo;ordinateur source.<\/p>\n<p>2 m\u00e9thodes de connexions sont propos\u00e9es :<\/p>\n<ul>\n<li>La d\u00e9couverte automatique du Raspberry par Pulseaudio, simple et pratique, mais pas toujours tr\u00e8s fiable<\/li>\n<li>La configuration manuelle du Raspberry comme sortie son \u00ab\u00a0tunnel\u00a0\u00bb sur l&rsquo;ordinateur source<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<h2>Configuration du Raspberry Pi<\/h2>\n<p>Installer les packages n\u00e9cessaires :<\/p>\n<blockquote><p><code>$ apt-get install pulseaudio avahi-daemon dbus-x11<\/code><\/p><\/blockquote>\n<p>Configurer PulseAudio, en ajoutant \u00e0 la fin du fichier <em>\/etc\/pulse\/system.pa<\/em>, la ligne suivante (dans ce cas, tous les clients du r\u00e9seau 192.168.0.0\/24 sont autoris\u00e9s \u00e0 se connecter)<em><br \/>\n<\/em><\/p>\n<blockquote><p><code>load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0\/24<\/code><\/p><\/blockquote>\n<p>Ajouter ensuite un service systemd pour PulseAudio, en cr\u00e9ant le fichier <em>\/etc\/systemd\/system\/pulseaudio.service<\/em>, avec pour contenu :<\/p>\n<blockquote><p><code>[Unit]<br \/>\nDescription=PulseAudio Daemon<\/code><\/p>\n<p><code>[Install]<br \/>\nWantedBy=multi-user.target<\/code><\/p>\n<p><code>[Service]<br \/>\nType=simple<br \/>\nPrivateTmp=true<br \/>\nExecStart=\/usr\/bin\/pulseaudio --system --realtime --disallow-exit --no-cpu-limit<\/code><\/p><\/blockquote>\n<p>Il ne rester qu&rsquo;\u00e0 activer le service, puis \u00e0 le d\u00e9marrer :<\/p>\n<blockquote><p><code>$ systemctl enable pulseaudio<\/code><\/p>\n<p><code>$ systemctl start pulseaudio<\/code><\/p><\/blockquote>\n<p>A ce stade, la mise en place du cot\u00e9 du Raspberry Pi devrait \u00eatre achev\u00e9e. Cependant, chez moi, cette configuration produisait des craquements tr\u00e8s audibles.<\/p>\n<p>Le probl\u00e8me a \u00e9t\u00e9 r\u00e9solu en \u00e9diter le fichier <em>\/etc\/pulse\/system.pa<\/em>, et en rempla\u00e7ant la ligne<\/p>\n<blockquote><p><code>load-module module-udev-detect<\/code><\/p><\/blockquote>\n<p>Par<\/p>\n<blockquote><p><code>load-module module-udev-detect tsched=0<\/code><\/p><\/blockquote>\n<p>A partir de l\u00e0, 2 choix (qui ne sont pas mutuellement exclusifs, les 2 cohabitent tr\u00e8s bien) s&rsquo;offrent \u00e0 vous :<\/p>\n<h2>D\u00e9couverte manuelle :<\/h2>\n<p>Plus fiable que la d\u00e9couverte automatique, mais plus contraignante (n\u00e9cessite de configurer chaque ordinateur voulant exploiter la sortie son du Raspberry, et ne fonctionne pas si le Raspberry n&rsquo;est pas joignable au d\u00e9marrage de l&rsquo;ordinateur source)<\/p>\n<p>Sur l&rsquo;ordinateur source, ajouter dans le fichier \/etc\/pulse\/default.pa la ligne suivante :<\/p>\n<blockquote><p><code>load-module module-tunnel-sink-new server=<strong>XXX.XXX.XXX.XXX<\/strong> sink_name=Remote sink_properties=\"device.description='Raspberry'\" channels=2 rate=44100<\/code><\/p><\/blockquote>\n<p>En indiquant l&rsquo;adresse IP du Raspberry<\/p>\n<h2>D\u00e9couverte automatique<\/h2>\n<p>Sur le Raspberry, installer les packages n\u00e9cessaires :<\/p>\n<blockquote><p><code>$ apt-get install pulseaudio-module-zeroconf<\/code><\/p><\/blockquote>\n<p>Toujours sur le raspberry, configurer PulseAudio, en ajoutant \u00e0 la fin du fichier <em>\/etc\/pulse\/system.pa<\/em>, la ligne suivante<\/p>\n<blockquote><p><code>load-module module-zeroconf-publish<\/code><\/p><\/blockquote>\n<p>Sur l&rsquo;ordinateur source, installer le paquet de configuration du PulseAudio<\/p>\n<blockquote><p><code>$ apt-get install paprefs<\/code><\/p><\/blockquote>\n<p>Ex\u00e9cuter <em>paprefs<\/em>, puis activer la d\u00e9couverte des appareils en r\u00e9seau :<\/p>\n<p><a href=\"http:\/\/pila.fr\/wordpress\/wp-content\/uploads\/paprefs-network-config.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1313\" src=\"http:\/\/pila.fr\/wordpress\/wp-content\/uploads\/paprefs-network-config-300x151.png\" alt=\"\" width=\"500\" height=\"252\" srcset=\"https:\/\/pila.fr\/wordpress\/wp-content\/uploads\/paprefs-network-config-300x151.png 300w, https:\/\/pila.fr\/wordpress\/wp-content\/uploads\/paprefs-network-config.png 668w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>Red\u00e9marrer ensuite l&rsquo;ordinateur cible, le Raspberry devrait \u00eatre disponible comme nouvelle sortie son !<\/p>\n<h2>Conclusion<\/h2>\n<p>En commen\u00e7ant cette manipulation, j&rsquo;avais peur que la latence de l&rsquo;audio ne la rende inutile.<\/p>\n<p>Si un peu de latence se fait en effet sentir (+200ms mesur\u00e9s par rapport \u00e0 une sortie sur la carte son interne du PC), elle est toutefois suffisamment faible pour ne pas perturber un usage d&rsquo;\u00e9coute musicale.<\/p>\n<p>Pour une utilisation Home Cin\u00e9ma en revanche, il se peut que cette latence pose probl\u00e8me, \u00e0 vous de juger !<\/p>\n<p>Source :<\/p>\n<ul>\n<li><a href=\"https:\/\/manurevah.com\/blah\/en\/p\/PulseAudio-Sound-over-the-network\">https:\/\/manurevah.com\/blah\/en\/p\/PulseAudio-Sound-over-the-network<\/a> (Simple, mais obsol\u00e8te depuis systemd)<\/li>\n<li><a href=\"http:\/\/serendipity.ruwenzori.net\/index.php\/2015\/06\/01\/sending-an-audio-stream-across-the-network-to-a-remote-raspberry-pi-with-pulseaudio-the-easy-way\">http:\/\/serendipity.ruwenzori.net\/index.php\/2015\/06\/01\/sending-an-audio-stream-across-the-network-to-a-remote-raspberry-pi-with-pulseaudio-the-easy-way<\/a> (tr\u00e8s d\u00e9taill\u00e9)<\/li>\n<li><a href=\"https:\/\/askubuntu.com\/questions\/497887\/ubuntu-14-04-pulseaudio-in-hdmi-sound-crackling\/529137\">https:\/\/askubuntu.com\/questions\/497887\/ubuntu-14-04-pulseaudio-in-hdmi-sound-crackling\/529137<\/a> (pour r\u00e9soudre les craquements)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Cet article d\u00e9crit comment utiliser le Raspberry Pi comme sortie son ( sink ) distante ( en r\u00e9seau ), pour un ordinateur sous Linux. Il exploite les capacit\u00e9s r\u00e9seau de PulseAudio, tant cot\u00e9 Raspberry que sur l&rsquo;ordinateur source. 2 m\u00e9thodes de connexions sont propos\u00e9es : La d\u00e9couverte automatique du Raspberry par Pulseaudio, simple et pratique, &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/pila.fr\/wordpress\/archives\/1303\">Lire la suite<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[151],"tags":[],"class_list":["post-1303","post","type-post","status-publish","format-standard","hentry","category-raspberry","item-wrap"],"_links":{"self":[{"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/posts\/1303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/comments?post=1303"}],"version-history":[{"count":11,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/posts\/1303\/revisions"}],"predecessor-version":[{"id":1315,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/posts\/1303\/revisions\/1315"}],"wp:attachment":[{"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/media?parent=1303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/categories?post=1303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/tags?post=1303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}