<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Linux Attitude&#187; son</title>
	<atom:link href="http://linux-attitude.fr/tag/son/feed" rel="self" type="application/rss+xml" />
	<link>http://linux-attitude.fr</link>
	<description>Le libre est un état d&#039;esprit</description>
	<lastBuildDate>Fri, 17 Feb 2012 08:00:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Alsa</title>
		<link>http://linux-attitude.fr/post/alsa?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=alsa</link>
		<comments>http://linux-attitude.fr/post/alsa#comments</comments>
		<pubDate>Thu, 21 Apr 2011 16:30:24 +0000</pubDate>
		<dc:creator>peck</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Noyau]]></category>
		<category><![CDATA[planete-libre]]></category>
		<category><![CDATA[son]]></category>

		<guid isPermaLink="false">http://linux-attitude.fr/?p=1327</guid>
		<description><![CDATA[Niveau&#160;: &#160;&#160;&#160;&#160;&#160; Résumé&#160;: Aujourd'hui un truc obscur pour beaucoup d'entre nous&#160;: alsa. Pas la poudre blanche, mais le truc avec un mixer, enfin pas celui de la cuisine, mais celui de linux ... Pour simplifier disons que alsa est une API présentée par le noyau et qui permet d'accéder à travers une interface unique à [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Niveau</strong>&nbsp;: <span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="e">&nbsp;</span><br />
<strong>Résumé</strong>&nbsp;:</p>


<p>Aujourd'hui un truc obscur pour beaucoup d'entre nous&nbsp;: alsa. Pas la poudre blanche, mais le truc avec un mixer, enfin pas celui de la cuisine, mais celui de linux ...</p>


<p>Pour simplifier disons que alsa est une API présentée par le noyau et qui permet d'accéder à travers une interface unique à toutes les cartes son que vous pouvez avoir.</p>


<h3>Fichier de configuration</h3>

<p>Alsa étant relativement bien fait, ses utilisateurs (l'application qui émet du son, la gestion du volume ...) n'ont pas besoin de configuration particulière pour fonctionner. Mais il est possible de changer cette non configuration. Cela peut se faire soit de façon globale au système dans /etc/asound.conf soit spécifiquement à l'utilisateur dans ~/.asoundrc.</p>


<p>Que peut-on mettre dans ces fichiers&nbsp;?</p>


<p>Là ça devient vite obscur et peu documenté. Mais nous allons voir que c'est assez simple. Il s'agit d'une configuration hiérarchique. Vous avez le choix entre les 2 formats suivants pour écrire des valeurs (ou un mix des 2)&nbsp;:</p>
<pre>
# commentaire
val.eur.1 &quot;toto&quot;
val.eur.2 &quot;tata&quot;
val.ue &quot;help&quot;

val {
  eur {
   1 &quot;toto&quot;
   2 &quot;tata&quot;
  }
  ue &quot;help&quot;
}
</pre>


<h3>Éléments de configuration</h3>

<p>Mais que peut-on bien mettre dans ce fichier&nbsp;?</p>


<p>Ici les exemples sont nombreux, mais rarement expliqués.</p>


<p>Tout d'abord une liste détaillée se trouve ici&nbsp;: <a href="http://alsa.opensrc.org/Asoundrc.txt" hreflang="en">Asoundrc.txt</a></p>


<p>Reste à trouver ce que les attributs veulent dire. Ce qui va vous intéresser est essentiellement pcm qui permet de créer une nouvelle carte son (virtuelle). Les autres ne vous seront utiles que rarement et dépendront surtout du contenu de vos pcm.</p>


<p><span id="more-1327"></span></p>


<h3>Un pcm</h3>

<p>La première chose à déclarer dans un pcm est son type, vous avez le choix parmi les différents <a href="http://alsa.opensrc.org/ALSA_plugins" hreflang="en">plugins alsa</a>. Contemplez la densité de la documentation, heureusement vous en avez un peu plus ici&nbsp;: <a href="http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html" hreflang="en">pcm_plugins.html</a></p>


<p>Notez la présence de ladspa pour changer le pitch du son. J'ai déjà présenté <a href="http://linux-attitude.fr/post/changer-la-vitesse-de-lecture-dun-film-sans-deformer-le-son">son usage avec vlc</a> pour accélérer un son sans en changer la hauteur.</p>


<p>Chaque type a ses paramètres spécifiques. Tous les plugins qui ne font que traiter le signal (comme ladspa ou softvol) ont un paramètre slave. Il faut bien comprendre de que cela signifie. Un slave est un autre plugin (oui c'est sans fin :-) qui va recevoir le son depuis le plugin que l'on configure. Donc le son transite de master vers slave lors de la lecture mais il transite de slave vers master lors de l'enregistrement.</p>


<h3>Exemple</h3>


<p>Maintenant prenons un exemple utile, ajouter une <strong>pré-amplification</strong> logicielle au système. Pratique lorsqu'on a un portable et qu'aucun ampli externe ne nous permet de monter le son alors que c'est l'enregistrement de youtube qui est très faible.</p>


<p>Comment faire&nbsp;? Très simple, ajoutons une carte virtuelle de type <a href="http://alsa.opensrc.org/Softvol et ici  http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html#pcm_plugins_softvol" hreflang="en">softvol</a></p>
<pre>
pcm.softcard {
      type softvol
      slave.pcm &quot;default&quot;
# on associe un contrôle nommé pre-amp au mixage de la première carte son
      control.name &quot;Pre-Amp&quot;
      control.card 0 
}
</pre>


<p>C'est bien, mais cela veut dire qu'il faut indiquer à nos logiciels d'utiliser la carte softcard pour profiter de cet avantage. Quelques changements vont nous permettre de changer ceci pour tout le monde.</p>
<pre>
# on change la configuration du pcm par défaut
pcm.!default {
      type plug
# et on pointe bêtement vers la notre
      slave.pcm &quot;softcard&quot;
}

pcm.softcard {
      type softvol
# on laisse dmix choisir la bonne carte physique
      slave.pcm &quot;dmix&quot;
      control.name &quot;Pre-Amp&quot;
      control.card 0
# on en profite pour donner des limites plus sympa pour l'augmentation et la rédution du volume
      min_dB -5.0
      max_dB 20.0
      resolution 5
}
</pre>


<p>Avant de voir le contrôle, il faut lancer un premier test pour forcer la lecture du fichier de conf par alsa (c'est comme ça ...)&nbsp;:</p>
<pre>
# test de bruit presque blanc
$ speaker-test
</pre>


<p>Et maintenant nous avons un nouveau contrôle dans alsamixer (ou votre mixer préféré) permettant de régler la pré-amplification.</p>


<p>A vous de tester les autres plugins ...</p>

<p></p><p>Si vous avez aimé, il y a aussi : </p><ol><li><a href='http://linux-attitude.fr/post/mpd-music-player-daemon' rel='bookmark' title='Permanent Link: MPD (Music Player Daemon)'>MPD (Music Player Daemon)</a></li>
</ol>
	Tags:<a href="http://linux-attitude.fr/tag/noyau" title="Noyau" rel="tag">Noyau</a>, <a href="http://linux-attitude.fr/tag/planete-libre" title="planete-libre" rel="tag">planete-libre</a>, <a href="http://linux-attitude.fr/tag/son" title="son" rel="tag">son</a><br />
]]></content:encoded>
			<wfw:commentRss>http://linux-attitude.fr/post/alsa/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>MPD (Music Player Daemon)</title>
		<link>http://linux-attitude.fr/post/mpd-music-player-daemon?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mpd-music-player-daemon</link>
		<comments>http://linux-attitude.fr/post/mpd-music-player-daemon#comments</comments>
		<pubDate>Thu, 10 Sep 2009 22:13:14 +0000</pubDate>
		<dc:creator>geekou</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[son]]></category>

		<guid isPermaLink="false">http://linux-attitude.fr/?p=399</guid>
		<description><![CDATA[Ceci est un article invité, regardez en haut à gauche le nom de l'auteur ... Niveau&#160;: &#160;&#160;&#160;&#160;&#160; Résumé&#160;: Peut-être avez-vous déjà rêvé, lors de vos soirées d'été, de contrôler votre musique à distance avec votre téléphone portable dernière génération, ou tout simplement en étant gentiment assis dans votre chaise longue&#160;? MPD peut être la solution. [...]]]></description>
			<content:encoded><![CDATA[<p><em>Ceci est un article invité, regardez en haut à gauche le nom de l'auteur ...</em></p>


<p><strong>Niveau</strong>&nbsp;: <span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><br />
<strong>Résumé</strong>&nbsp;:</p>


<p>Peut-être avez-vous déjà rêvé, lors de vos soirées d'été, de contrôler votre musique à distance avec votre téléphone portable dernière génération, ou tout simplement en étant gentiment assis dans votre chaise longue&nbsp;? MPD peut être la solution.</p>


<h4>Music Player Daemon (MPD)</h4>


<p>MPD fait partie de cette famille de lecteurs de musique basés sur un modèle client/serveur (dans la même catégorie se trouve xmms2 par exemple). Globalement, le serveur lit les fichiers audio sur la machine hôte, et vous pouvez contrôler à distance (et bien sûr localement) la musique à diffuser.
Ainsi, il faut bien comprendre que les seuls messages qui transitent sur le réseau sont des messages de contrôle, et qu'aucun streaming audio n'est mis en jeu.</p>


<p>Les intérêts d'un tel modèle sont&nbsp;:</p>
<ul>
<li>bien sûr, le contrôle à distance par plusieurs machines</li>
<li>la lecture de musique indépendante de tout lecteur nécessitant un serveur X</li>
<li>le logiciel de contrôle (qu'on pourrait à tord appeler "lecteur") n'a pas à se soucier des divers plugins nécessaires à la lecture des fichiers audio ou encore de gérer la bibliothèque. MPD le fait déjà pour lui.</li>
</ul>

<p>L'un des principaux désavantages est que cela rajoute un poil de complexité lorsqu'un simple "play music.mp3" peut lire un fichier audio, mais les avantage sus-cités méritent de s'y essayer.</p>


<h5>Installation</h5>


<p>Sous Debian et dérivés, tout simplement faire en tant que root&nbsp;:</p>

<pre>$ aptitude install mpd</pre>


<p>Il va ensuite falloir configurer votre nouveau joujou. On se basera pour l'exemple sur la configuration par défaut du paquet Debian, mais le tout peut être adapté pour d'autres distributions. Le fichier de configuration <code>/etc/mpd.conf</code> contient des informations sur, entre autres,&nbsp;:</p>
<ul>
<li>le répertoire où se trouve toute votre musique. Par défaut, sous Debian, il se trouve dans <code>/var/lib/mpd/music</code></li>
<li>l'utilisateur sous lequel tourne le daemon (<code>mpd</code> par défaut, toujours sous Debian). Je conseillerai de laisser cet utilisateur crée par le paquet, et de ne pas mettre root...</li>
<li>l'adresse de bind du serveur. "127.0.0.1" par défaut, à adapter si vous voulez contrôler votre daemon à distance ("0.0.0.0" par exemple)</li>
<li>contrôle d'accès sur la gestion de la playlist, la lecture de la bilbiothèque, etc... par mot de passe (se référer au man pour plus d'infos.)</li>
</ul>

<p><span id="more-399"></span></p>


<p>Certains d'entre vous se demandent peut être comment faire si sa musique est répartie entre deux disques durs, ou plusieurs montages NFS, que sais-je... MPD supporte les liens symboliques lors de la recherche de fichiers audios (comportement contrôlable grâce aux variables <code>follow_outside_symlinks</code> et <code>follow_inside_symlinks</code> du fichier de configuration). Donc, imaginons que vous ayez de la musique en local sur votre machine, et sur votre disque dur externe USB. Vous pouvez donc faire quelque chose comme&nbsp;:</p>

<pre>$ sudo -u mpd ln -s /mnt/files/Musique /var/lib/mpd/music/local
$ sudo -u mpd ln -s /mnt/dd_externe/Musique /var/lib/mpd/music/dd</pre>


<p>Il faut ensuite générer la base de données initiale. Vous pouvez définir dans le fichier de configuration les tags à extraire de vos fichiers audio pour constituer la bibliothèque finale de MPD, grâce à la variable <code>metadata_to_use</code>. Ensuite, le script d'init du paquet debian a été prévu pour lancer la génération. Il suffit donc de faire, en tant que root&nbsp;:</p>

<pre># S'assurer que mpd soit arrêté
$ invoke-rc.d mpd stop
# Et c'est parti
$ invoke-rc.d mpd start-create-db</pre>


<p>Pour information, cette base de données est stockée par défaut (sous Debian) dans <code>/var/lib/mpd/tag_cache</code>, chemin modifiable dans <code>/etc/mpd.conf</code>.</p>


<p>Vous pouvez ensuite suivre l'avancement de la recherche en regardant le fichier de log de mpd&nbsp;:</p>

<pre># Les logs de mpd sont en 0644, donc pas forcément besoin d'être root
$ tail -f /var/log/mpd.log</pre>


<h5>Alsa et ses amis qui font du bruit</h5>


<p>Une autre option de MPD est qu'il peut diffuser votre musique sur plusieurs systèmes.
Le tout se passe toujours dans <code>/etc/mpd.conf</code>, dans la rubrique "Audio Output".</p>


<p>Si vous utilisez Alsa, il faut faire attention à la configuration de ce dernier et permettre à plusieurs utilisateur d'accéder au mixeur d'alsa. En effet, le daemon MPD tourne sous l'user <code>mpd</code>, et, par exemple, votre navigateur web sous votre user habituel. Alors, si vous voulez toujours entendre le doux son de deezer, il faut que votre <code>/etc/asound.conf</code> (ou <code>~/.asound.conf</code> suivant votre configuration) ressemble à ceci&nbsp;:</p>


<pre>$ cat /etc/asound.conf
pcm.mixeur {
   type dmix
   ipc_key 1024    # must be unique!
   ipc_key_add_uid false  # do not add uid to unique IPC key :: cette ligne est importante
   ipc_perm 0660  # allow multiple users to use the same IPC :: et celle-ci aussi
   slave {
       pcm "hw:0,0"
       period_time 0
       period_size 1024
       buffer_size 16384
       rate 44100
   }
}
pcm.!default {
   type plug
   slave.pcm "mixeur"
}</pre>


<p>Il faut aussi bien vérifier que votre utilisateur appartienne au groupe audio. Pour cela&nbsp;:</p>

<pre>$ id
# devrait afficher "audio" dans la liste des groupes</pre>

<p>Le cas échéant, faire en tant que root un&nbsp;:</p>

<pre>$ adduser votre_login audio</pre>

<p>et vous reloguer.</p>


<p>Vous pouvez aussi diffuser la sortie de MPD en streaming. Le fichier de configuration donne un exemple assez parlant.</p>


<h5>Les clients MPD</h5>


<p>Le wiki officiel de MPD nous donne <a href="http://mpd.wikia.com/wiki/Clients">une liste</a> plus ou moins exhaustive des clients MPD disponibles. Il y en a pour tous les goûts, de l'adepte du curseur clignotant au fan des interfaces graphiques Qt. Il y a même des clients pour Windows Mobile, pour pouvoir contrôler votre musique depuis votre transat grâce à votre Smartphone ou PDA en Wifi (ou en IPv6 over 3G, un jour, peut-être).</p>


<p>Pour ma part, j'ai essayé <a href="http://pympd.sourceforge.net/">pympd</a>. À part le manque de contrôle du volume interne de MPD, il s'en sort pas trop mal&nbsp;: recherche dans la bibliothèque par tags, affichage de l'arborescence initiale (ce qui peut être pratique si comme moi votre musique est déjà rangée par genre/artiste/album/année) et bien sûr contrôle de la playlist. La playlist est bien sûr gérée par le serveur, et modifier la playlist grâce à un client MPD fera que les autres client éventuellement connectés verront la modification.</p>


<p>Niveau Windows Mobile, <a href="http://sourceforge.net/projects/mobilempdnet/">mobilempd.net</a>, bien qu'un peu lent au démarrage, fait bien son travail.</p>


<p>Par exemple, vous pouvez aussi utiliser le client en ligne de commande <code>mpc</code> pour contrôler MPD grâce à des raccourcis claviers&nbsp;:</p>

<pre># Play/pause
$ mpc toggle
# Chanson suivante
$ mpc next
# Stop
$ mpc stop</pre>


<p>Je vous laisse ici donner vos impressions sur les clients que vous avez pu tester.</p>


<h5>Conclusion</h5>


<p>Cette article se veut comme une introduction à MPD, avec les quelques problèmes que j'ai pu rencontrer notamment au niveau d'ALSA. Je ne peux que vous conseiller de regarder plus en profondeur en n'hésitant pas à regarder le fichier de configuration de Debian assez bien commenté, ainsi que son <a href="http://linux.die.net/man/5/mpd.conf">man</a> (<code>man mpd.conf</code>).</p>


<p>Je tiens à remercier peck pour son beau travail sur ce site et pour m'avoir laisser m'exprimer.</p>


<p>Cet article continue prochainement avec l'ajout de <a href="http://jackaudio.org/">Jack</a> dans le lot, pour un contrôle plus fin du son de vos enceintes.
Parce que vos oreilles le valent bien.</p>

<p></p><p>Si vous avez aimé, il y a aussi : </p><ol><li><a href='http://linux-attitude.fr/post/alsa' rel='bookmark' title='Permanent Link: Alsa'>Alsa</a></li>
</ol>
	Tags:<a href="http://linux-attitude.fr/tag/planet-libre" title="planet-libre" rel="tag">planet-libre</a>, <a href="http://linux-attitude.fr/tag/son" title="son" rel="tag">son</a><br />
]]></content:encoded>
			<wfw:commentRss>http://linux-attitude.fr/post/mpd-music-player-daemon/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced (User agent is rejected)
Database Caching 9/23 queries in 0.059 seconds using apc
Object Caching 647/653 objects using apc
Content Delivery Network via N/A

Served from: linux-attitude.fr @ 2012-05-23 20:39:49 -->
