====== PulseAudio : config, trucs et astuces ======
* Objet : Configuration du son avec PulseAudio
* Niveau requis : {{tag>débutant avisé}}
* Commentaires : //Tout ce que vous avez toujours souhaité savoir sur PulseAudio sans jamais oser prendre le temps de le lire sur un wiki.//
* Débutant, à savoir : [[doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
* Suivi : {{tag>à-tester à-compléter}}
* Création par [[user>captnfab]] 17/09/2013
* Testé par <...> le <...>
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=5810|ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
**Nota :** Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !
===== Introduction =====
aptitude show pulseaudio
Paquet : pulseaudio
Version : 12.2-4+deb10u1
État: installé
Automatiquement installé: oui
Multiarchitecture : étranger
Priorité : optionnel
Section : sound
Responsable : Pulseaudio maintenance team
Architecture : amd64
Taille décompressée : 6565 k
Dépend: libasound2 (>= 1.1.0), libc6 (>= 2.27), libcap2 (>= 1:2.10), libdbus-1-3 (>=
1.9.14), libgcc1 (>= 1:3.0), libice6 (>= 1:1.0.0), libltdl7 (>= 2.4.6),
liborc-0.4-0 (>= 1:0.4.25), libpulse0 (= 12.2-4+deb10u1), libsm6, libsndfile1
(>= 1.0.20), libsoxr0 (>= 0.1.0), libspeexdsp1 (>= 1.2~beta3.2-1), libstdc++6
(>= 4.1.1), libsystemd0, libtdb1 (>= 1.2.7+git20101214), libudev1 (>= 183),
libwebrtc-audio-processing1, libx11-6, libx11-xcb1, libxcb1, libxtst6, adduser,
lsb-base (>= 3.2-13), libasound2-plugins, pulseaudio-utils
Recommande: rtkit, libpam-systemd, dbus-user-session
Suggère: udev, pavumeter, pavucontrol, paman, paprefs
Description : serveur de son PulseAudio
PulseAudio, précédemment connu sous le nom de Polypaudio, est un serveur de son pour
les systèmes POSIX et Win32. Il peut remplacer le serveur de son ESD, en apportant une
latence plus faible, une qualité de mixage et de ré-échantillonnage supérieure et une
meilleure architecture générale.
Les fonctionnalités de PulseAudio sont entre autres :
* une qualité élevée de mixage logiciel de plusieurs flux audio avec prise
en charge de plus d'une source. Peut être utilisé pour combiner plusieurs cartes son en
une (avec ajustement du taux d'échantillonage) ;
* un grand nombre de bibliothèques clientes gérées. Les
applications client ESD, ALSA, oss, libao et GStreamer sont gérées telles quelles. Des
greffons PulseAudio natifs sont également disponibles pour xmms et mplayer ;
* un bon comportement en faible latence et une mesure très précise de la
latence pour la diffusion et l'enregistrement. Il est possible de synchroniser
complètement plusieurs flux à diffuser ;
* une transparence du réseau permettant à une application de jouer ou
enregistrer du son sur une machine différente que celle où elle s'exécute ;
* une architecture extensible de greffons avec notamment des greffons pour
jackd, multicast-rtp lirc et avahi.
Ce paquet fournit le démon et l'ensemble de modules de base.
Site : http://www.pulseaudio.org
Étiquettes: implemented-in::c, interface::daemon, network::client, network::server,
protocol::tcp, role::program, works-with::audio
Cette page est en construction, elle dispose notamment de liens placés en référence pour quiconque voudra contribuer au tuto (et aux TP associés). Avis aux amateurs zé amatrices !
===== Installation =====
==== Paquets de base ====
apt-get update && apt-get install pulseaudio
Le paquet pulseaudio-utils, qui fournit les outils en ligne de commande, sera installé automatiquement (c'est une dépendance).
==== Paquets complémentaires ====
Si les dernières versions des bureaux GNOME, MATE, etc. permettent d'effectuer des réglages de PulseAudio, comme le choix de la sortie audio, ce n'est pas le cas de certains environnements, tel Xfce 4.10 (Debian 8) ; il est alors pertinent d'installer les paquets pavucontrol et gstreamer0.10-pulseaudio :
apt-get install pavucontrol gstreamer0.10-pulseaudio
Le paquet gstreamer0.10-pulseaudio permet d'agir sur le volume PulseAudio via l'applet Xfce (tableau de bord).
Le paquet gstreamer0.10-pulseaudio, obsolète, n'est plus disponible à partir de Debian 9 Stretch. Xfce 4.12 installe le paquet xfce4-pulseaudio-plugin, il ne reste qu'à ajouter le greffon PulseAudio au tableau de bord.
===== Utilisation =====
==== Interface graphique (pavucontrol) ====
Une fois installé, ''pavucontrol'' est lancé via le menu Applications > Multimédia > Contrôle du volume PulseAudio.
{{/file-R2c2841ccb350cc78a9bad969ed5a7b56.png?150}} {{/file-Ra035095156f0afc3053792ad3f3a3052.png?150}} {{/file-R43074e874056fca391e62efd768923f0.png?150}} {{/file-R37ef21b65b35e07f78dc7f92484e7859.png?150}}
==== Interface en ligne de commande ====
Les commandes ''pacmd'' et ''pactl'' sont particulièrement bien documentées (en anglais accessible, rien à voir avec le théâtre élisabéthain m() dans les pages de manuel ; à noter que la page ''pacmd'' renvoie à la page ''pulse-cli-syntax'' :
man pulse-cli-syntax
On consultera également avec un plaisir non feint les pages ''pulseaudio'', ''default.pa'', ''pulse-client.conf'', et ''pulse-daemon.conf''.
==== Exemple : contrôler le volume au clavier ====
Les trois commandes de base (respectivement augmenter, diminuer, basculer la sourdine) sont :
pactl set-sink-volume @DEFAULT_SINK@ +10%
pactl set-sink-volume @DEFAULT_SINK@ -10%
pactl set-sink-mute @DEFAULT_SINK@ toggle
Il est possible de remplacer ''@DEFAULT_SINK@'' par le numéro (index) correspondant au périphérique de sortie (sink) par défaut.
==== contrôler le volume depuis le terminal ====
En commande((utile via un ampli par exemple)) par le [[doc:systeme:terminal|terminal]] pour le lecteur MPV :
mpv -volume=150 "TA_VIDEO"
Pour un réglage en dur : \\
Par exemple (pour mpv) tu tapes :
nano ~/.conf/mpv/mpv.conf
Et tu mets cette option :
volume=150
Source sur le forum : https://debian-facile.org/viewtopic.php?pid=314625#p314625
Sacré golgot200 tout de même... ^_^
===== Configuration et personnalisation =====
Sous Debian 8 Jessie, les paramètres de PulseAudio modifiés par l'utilisateur (par exemple la sortie audio) //ne sont pas// conservés d'une session à l'autre. La manipulation requise est à effectuer après chaque redémarrage de la machine. Toutefois, l'utilisateur dispose de trois fichiers de configuration permettant de modifier les réglages par défaut de PulseAudio : les fichiers ''/etc/pulse/client.conf'', ''/etc/pulse/default.pa'', et ''/etc/pulse/daemon.conf'' ; il est possible, voire recommandé, de les copier vers le répertoire ''~/.config/pulse'' avant de les modifier, chaque utilisateur pouvant ainsi définir sa propre configuration.
PulseAudio cherche sa configuration dans cet ordre : d'abord les fichiers dans le $HOME, puis les fichiers par défaut si les précédents n'existent pas. S'il trouve un fichier de configuration dans le $HOME de l'utilisateur, il le charge et ne charge pas celui par défaut. Le fichier du $HOME doit donc contenir l'ensemble des instructions nécessaires à la recherche des cartes son et à la bonne configuration audio.
==== Exemple : définir la sortie HDMI par défaut ====
La plupart des ordinateurs "modernes" disposent de plusieurs sorties audio : associées aux connecteurs analogiques (jacks) et éventuellement numériques, coaxial (RCA) et/ou optique (TOSLINK), ou encore à un port HDMI qui selon l'usage de la machine doit parfois être défini sortie par défaut.
On copie le fichier de configuration de PulseAudio dans le $HOME via la commande suivante :
cp /etc/pulse/client.conf ~/.config/pulse/client.conf
Toujours dans un terminal, on identifie le nom des périphériques de sortie disponibles :
pacmd list-sinks | egrep 'index|name:|muted|device.description|active'
index: 0
name:
muted: no
device.description = "GF119 HDMI Audio Controller Digital Stereo (HDMI)"
active port:
* index: 1
name:
muted: no
device.description = "Audio interne Stéréo analogique"
active port:
Ce retour équivaut à ce qui est affiché dans l'interface graphique pavucontrol sous l'onglet "Périphériques de sortie" ; on voit ici que la sortie par défaut est la sortie associée au contrôleur audio analogique. Pour définir la sortie HDMI par défaut, on modifie le fichier ''~/.config/pulse/client.conf'' :
nano ~/.config/pulse/client.conf
; default-sink =
Par défaut, la ligne qui nous intéresse est [[doc:programmation:commenter|commentée]], il faut donc la décommenter et la compléter avec le nom du périphérique de sortie identifié plus haut :
default-sink = alsa_output.pci-0000_01_00.1.hdmi-stereo
Une fois enregistrée, la modification est prise en compte immédiatement, il est donc //inutile// de redémarrer quoi que ce soit... notamment le démon PulseAudio.
Remarque : cette modification effectuée via le fichier ''client.conf'' n'est visible ni dans le retour de la commande ''pacmd list-sinks'' ni dans l'interface graphique pavucontrol sous l'onglet "Périphériques de sortie" ; si cela vous perturbe, modifiez préférentiellement la ligne concernée du fichier ''default.pa'' (cf. [[#exemplechoisir-un-profil-pour-une-carte|infra]]).
==== Exemple : fixer la source d'enregistrement ====
Il est également possible de définir le périphérique d'entrée, ou source, qui sera utilisé par défaut. Ceci semble particulièrement intéressant lorsque l'utilisateur est régulièrement amené à [[utilisateurs:chalu:tutos:enregistrer-le-son-du-pc-avec-audacity|enregistrer]] le flux audio général (et non une source externe donnée).
On copie le fichier de configuration de PulseAudio dans le $HOME via la commande suivante :
cp /etc/pulse/client.conf ~/.config/pulse/client.conf
Toujours dans un terminal, on identifie le nom des périphériques d'entrée disponibles :
pacmd list-sources | egrep 'index|name:|muted|device.description|active'
index: 0
name:
muted: no
device.description = "Monitor of GF119 HDMI Audio Controller Digital Stereo (HDMI)"
index: 1
name:
muted: no
device.description = "Monitor of Audio interne Stéréo analogique"
* index: 2
name:
muted: no
device.description = "Audio interne Stéréo analogique"
active port:
Ce retour équivaut à ce qui est affiché dans l'interface graphique pavucontrol sous l'onglet "Périphériques d'entrée" ; on voit ici que la source par défaut est le périphérique associé aux connecteurs physiques de la carte son (entrée-ligne, microphone, etc.), ce qui ne convient pas nécessairement à l'usage le plus fréquent de la machine. Pour capturer par défaut le flux audio interne, on modifie le fichier ''~/.config/pulse/client.conf'' :
nano ~/.config/pulse/client.conf
; default-source =
Par défaut, la ligne qui nous intéresse est [[doc:programmation:commenter|commentée]], il faut donc la décommenter et la compléter avec le nom du périphérique d'entrée identifié plus haut :
default-source = alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
Une fois enregistrée, la modification est prise en compte immédiatement, il est donc //inutile// de redémarrer quoi que ce soit... notamment le démon PulseAudio.
Remarque : cette modification effectuée via le fichier ''client.conf'' n'est visible ni dans le retour de la commande ''pacmd list-sources'' ni dans l'interface graphique pavucontrol sous l'onglet "Périphériques d'entrée" ; si cela vous perturbe, modifiez préférentiellement la ligne concernée du fichier ''default.pa'' (cf. [[#exemplechoisir-un-profil-pour-une-carte|infra]]).
==== Exemple : isoler les contrôles de volume ====
Le comportement par défaut de PulseAudio, sous Debian, est de "lisser" ou "niveler" le volume des applications ; il en résulte des //interactions// entre le volume d'une application donnée et le volume du périphérique de sortie. Le résultat peut sembler déroutant voire agaçant((Voyez comme la révolte gronde sur le forum : [[https://debian-facile.org/viewtopic.php?id=23269|ici]], [[https://debian-facile.org/viewtopic.php?id=26522|ici]], ou [[https://debian-facile.org/viewtopic.php?id=26886|là]], par exemple.)) et parfois même franchement tympano-déchirant((J'affectionne Pussy Riot période 2011-2014, mais bon mollo sur les potars quoi !)). Bref, ça ne va pas. Du tout.
On copie le fichier de configuration de PulseAudio dans le $HOME via la commande suivante :
cp /etc/pulse/daemon.conf ~/.config/pulse/daemon.conf
Pour retrouver calme et sérénité, on modifie le fichier ''~/.config/pulse/daemon.conf'' :
nano ~/.config/pulse/daemon.conf
; flat-volumes = yes
Par défaut, la ligne qui nous intéresse est [[doc:programmation:commenter|commentée]], il faut donc la décommenter et exprimer clairement son désaccord :
flat-volumes = no
Puis on redémarre proprement le serveur de son PulseAudio avec :
pulseaudio --kill && pulseaudio --start --verbose
I: [pulseaudio] main.c: Démarrage du démon réussi.
Il est //inutile// de redémarrer la machine ; la modification est //effective//.
==== Exemple : choisir un "profil" pour une carte ====
On copie le fichier de configuration de PulseAudio dans le $HOME via la commande suivante :
cp /etc/pulse/default.pa ~/.config/pulse/default.pa
Toujours dans un terminal, on identifie le nom de la carte son et les profils disponibles :
pacmd list-cards
1 card(s) available.
index: 1
name:
driver:
owner module: 7
properties:
alsa.card = "0"
alsa.card_name = "HDA ATI SB"
alsa.long_card_name = "HDA ATI SB at 0xfebf8000 irq 16"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:00:14.2"
sysfs.path = "/devices/pci0000:00/0000:00:14.2/sound/card0"
device.bus = "pci"
device.vendor.id = "1002"
device.vendor.name = "Advanced Micro Devices, Inc. [AMD/ATI]"
device.product.id = "437b"
device.product.name = "IXP SB4x0 High Definition Audio Controller"
device.form_factor = "internal"
device.string = "0"
device.description = "Audio interne"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
profiles:
input:analog-stereo: Stéréo analogique Input (priority 60, available: unknown)
output:analog-stereo: Stéréo analogique Output (priority 6000, available: unknown)
output:analog-stereo+input:analog-stereo: Duplex stéréo analogique (priority 6060, available: unknown)
output:analog-surround-40: Surround analogique 4.0 Output (priority 700, available: unknown)
output:analog-surround-40+input:analog-stereo: Surround analogique 4.0 Output + Stéréo analogique Input (priority 760, available: unknown)
output:analog-surround-41: Surround analogique 4.1 Output (priority 800, available: unknown)
output:analog-surround-41+input:analog-stereo: Surround analogique 4.1 Output + Stéréo analogique Input (priority 860, available: unknown)
output:analog-surround-50: Surround analogique 5.0 Output (priority 700, available: unknown)
output:analog-surround-50+input:analog-stereo: Surround analogique 5.0 Output + Stéréo analogique Input (priority 760, available: unknown)
output:analog-surround-51: Surround analogique 5.1 Output (priority 800, available: unknown)
output:analog-surround-51+input:analog-stereo: Surround analogique 5.1 Output + Stéréo analogique Input (priority 860, available: unknown)
output:analog-surround-71: Analog Surround 7.1 Output (priority 700, available: unknown)
output:analog-surround-71+input:analog-stereo: Analog Surround 7.1 Output + Stéréo analogique Input (priority 760, available: unknown)
output:iec958-stereo: Stéréo numérique (IEC958) Output (priority 5500, available: unknown)
output:iec958-stereo+input:analog-stereo: Stéréo numérique (IEC958) Output + Stéréo analogique Input (priority 5560, available: unknown)
off: Éteint (priority 0, available: unknown)
active profile:
sinks:
alsa_output.pci-0000_00_14.2.analog-stereo/#0: Audio interne Stéréo analogique
sources:
alsa_output.pci-0000_00_14.2.analog-stereo.monitor/#1: Monitor of Audio interne Stéréo analogique
alsa_input.pci-0000_00_14.2.analog-stereo/#2: Audio interne Stéréo analogique
ports:
analog-input-front-mic: Front Microphone (priority 8500, latency offset 0 usec, available: no)
properties:
device.icon_name = "audio-input-microphone"
analog-input-rear-mic: Rear Microphone (priority 8200, latency offset 0 usec, available: no)
properties:
device.icon_name = "audio-input-microphone"
analog-input-linein: Entrée-ligne (priority 8100, latency offset 0 usec, available: no)
properties:
analog-output-lineout: Line Out (priority 9900, latency offset 0 usec, available: yes)
properties:
analog-output-headphones: Casques analogiques (priority 9000, latency offset 0 usec, available: no)
properties:
device.icon_name = "audio-headphones"
iec958-stereo-output: Digital Output (S/PDIF) (priority 0, latency offset 0 usec, available: unknown)
properties:
Dans cet exemple, la machine ne dispose que d'une seule carte, identifiée par : ''alsa_card.pci-0000_00_14.2''.
Les manipulations sur pavucontrol ayant permis d'établir que le profil adapté est ''output:analog-stereo'', on ajoute la commande adéquate à la fin du fichier ''~/.config/pulse/default.pa'' :
echo 'set-card-profile alsa_card.pci-0000_00_14.2 output:analog-stereo' >> ~/.config/pulse/default.pa
Puis on redémarre proprement le serveur de son PulseAudio avec :
pulseaudio --kill && pulseaudio --start --verbose
I: [pulseaudio] main.c: Démarrage du démon réussi.
Il est //inutile// de redémarrer la machine ; la modification est //effective//.
===== Remerciements =====
Merci à nounours, Caribou22, sqatty, otyugh, pour leurs retours... et à chalu, pour la motivation des troupes :-)
===== Sources =====
* [[https://web.archive.org/web/http://handylinux.org/forum/viewtopic.php?id=1914|[Résolu] Skype : réglages son]] (Forum HandyLinux)
* [[https://www.perhonen.fr/blog/2015/06/changer-la-sortie-son-par-defaut-de-pulseaudio-sous-gnome-shell-1821|Changer la sortie son par défaut de PulseAudio sous Gnome]] (Perhonen)
* (en) [[https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/DefaultDevice/|Default devices]] (freedesktop.org)
===== Liens utiles =====
* [[https://doc.ubuntu-fr.org/pulseaudio|PulseAudio]] (Documentation Ubuntu Francophone)
* (en) [[https://wiki.ubuntu.com/PulseAudio|PulseAudio]] (Ubuntu Wiki)
* (en) [[https://wiki.archlinux.org/index.php/PulseAudio|PulseAudio]] (ArchWiki)
* (en) [[https://wiki.gentoo.org/wiki/PulseAudio|PulseAudio]] (Gentoo Wiki)
* (en) [[http://forums.debian.net/viewtopic.php?t=12497|How-To: Pulseaudio]] (Debian User Forums)
* (en) [[http://forums.fedoraforum.org/showthread.php?t=190954|Pulseaudio - Multiple users]] (FedoraForum.org)
* (en) [[http://mpd.wikia.com/wiki/PulseAudio|PulseAudio]] (Music Player Daemon Community Wiki)