PulseAudio (Français)
PulseAudio est un serveur de son.
Installation
PulseAudio se trouve dans le dépôt [extra] et se décline en différents paquets selon vos besoins:
- pulseaudio-bluetooth: pris en charge du Bluetooth (Bluez)
- pulseaudio-equalizer: Égaliseur (qpaeq)
- pulseaudio-gconf[broken link: package not found]: prise en charge de GConf (paprefs)
- pulseaudio-jack: détection de source et jackdbus (JACK)
- pulseaudio-lirc: contrôle du volume infrarouge (LIRC)
- pulseaudio-xen[broken link: package not found]: hyperviseur Xen
- pulseaudio-zeroconf: pris en charge de Zeroconf (Avahi / DNS-SD)
Utilisation
Pour démarrer PulseAudio :
pulseaudio --start
Pour arrêter PulseAudio:
pulseaudio --kill
Configuration
La commande pacmd
permet de changer "à chaud" la configuration de PulseAudio en mode interactif. Lancer pacmd
et taper "help" pour plus d'informations.
ALSA
Pour les applications qui ne prennent pas en charge PulseAudio mais ALSA, il est recommandé d'installer le plugin pulseaudio-alsa :
pacman -S pulseaudio-alsa
Ce paquet fournit le fichier /etc/asound.conf
pour configurer ALSA à l'utilisation de PulseAudio.
Si vous êtes sur Arch x86_64 et que vous voulez avoir du son dans les applications 32 bits il faut installer les paquets lib32-libpulse et lib32-alsa-plugins depuis le dépôt [multilib].
Pour empêcher les applications d'utiliser l'émulation OSS d'ALSA et de contourner ainsi PulseAudio il faut enlever le module snd_pcm_oss
en exécutant :
rmmod snd_pcm_oss
Il faudra ensuite blacklister le module.
OSS
Il y a plusieurs manières de faire jouer les applications OSS à travers PulseAudio :
osspd
C'est la méthode la plus simple.
Il faut installer ossp et le démarrer :
pacman -S ossp systemctl start osspd.service
Ensuite vous pouvez activer le service.
padsp
Si vous avez une application qui utilise OSS vous pouvez la faire fonctionner avec PulseAudio en la démarrant avec padsp
:
padsp OSSprogram
Quelques exemples :
padsp aumix padsp sox foo.wav -t ossdsp /dev/dsp
Si vous préférez vous pouvez aussi renommer le programme OSSprogram-bin et le remplacer par un script du genre :
/usr/bin/OSSProgram
#!/bin/sh if test -x /usr/bin/padsp; then exec /usr/bin/padsp /usr/bin/OSSprogram-bin "$@" else exec /usr/bin/OSSprogram "$@" fi
GStreamer
Pour que GStreamer utilise PulseAudio, exectuez gstreamer-properties
(fait partie de gnome-media[broken link: package not found]) et sélectionnez PulseAudio Sound Server en entrée et en sortie. Vous pouvez aussi le faire en ligne de commande en mettant les variables gconf /system/gstreamer/0.10/default/audiosink
à pulsesink et /system/gstreamer/0.10/default/audiosrc
à pulsesrc :
gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosink pulsesink gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosrc pulsesrc
Certaines applications (comme Rhythmbox) ignorent la propriété audiosink, mais utilisent à la place musicaudiosink, qui ne peut pas être configurée avec gstreamer-properties
mais seulement avec gconf-editor
ou en ligne de commande :
gconftool-2 -t string --set /system/gstreamer/0.10/default/musicaudiosink pulsesink
OpenAL
OpenAL Soft devrait utiliser PulseAudio par défaut, mais il peut être configuré explicitement pour le faire :
/etc/openal/alsoft.conf
drivers=pulse,alsa
libao
Éditez le fichier de configuration de libao :
/etc/libao.conf
default_driver=pulse
ESD
PulseAudio se substitue à Enlightened Sound Daemon (ESD). Les clients ESD devraient fonctionner avec PulseAudio sans configuration supplémentaire.
Réseau
PulseAudio permet de streamer le son d'un serveur pulseaudio vers un ou plusieurs autres de plusieurs façon différentes. Pour des informations plus détaillées, la documentation est ici.
La configuration suivante permet simplement de jouer le son d'un PC sur un autre.
Sur le serveur
Modifiez ~/.config/pulse/default.pa
ou /etc/pulse/default.pa
( ou bien /etc/pulse/system.pa
si pulseaudio est lancé en tant que service système, ce qui est déconseillé ) et ajoutez la ligne suivante :
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;172.16.0.0/16
Ici le serveur acceptera uniquement les clients venant des adresses précisées.
Pour accepter n'importe quel client :
load-module module-native-protocol-tcp auth-anonymous=true
Si ni auth-ip-acl
ni auth-anonymous
ne sont précisés, l'authentification se fait via ~/.pulse-cookie
qui doit être identique sur le serveur et le(s) client(s).
tcp/4713
.Sur le client
Modifiez ~/.config/pulse/client.conf
ou /etc/pulse/client.conf
( le premier active la directive pour un seul utilisateur, le second pour tous ) et ajoutez :
default-server = server-address
server-address peut être un nom de domaine, une IPv4 ou autre : pour la syntaxe détaillé voir la documentation
{hostname
} se trouve au début de l'adresse du serveur, la connexion n'est tenté que s'il correspond au hostname actuel.Il est aussi possible de préciser l'adresse du serveur dans la variable d'environement $PULSE_SERVER
.
Réinitialiser sa configuration
Bien que pulseaudio soit relativement stable, il peut arriver après certaines manipulations que vous vous retrouviez à court de son. Pas de panique, dans la plupart des cas, il vous suffira de supprimer le dossier de configuration de pulseaudio côté utilisateur, ~/.config/pulse/
, pour en retrouver à votre reconnexion un nouveau, fraîchement configuré.
Environnements graphiques
X11
Pour démarrer PulseAudio depuis une session X:
start-pulseaudio-x11
PulseAudio va être démarrer et les plugins X11 démarrés.
Quelques programmes qui peuvent être utiles :
- paprefs (Gtk) : interface graphique qui permet dans de configurer certaines options (notamment ayant trait au réseau) de PulseAudio.
- pavucontrol (Gtk) : un contrôleur de volume qui s'insère dans la zone de notification.
- veromixAUR[broken link: package not found] (Qt) : une alternative à pavucontrol pour KDE disponible sur AUR.
Dépannage
Pas de son dans le casque avec Intel HDA
Si la sortie audio du panneau avant ne fonctionne pas et qu'elle est configurée en HD Audio, il peut s'agir d'un conflit avec les modules de son.
Il suffit de modifier les options du module snd
, par exemple en créant en créant le fichier suivant :
/etc/modprobe.d/alsa-base.conf
options snd slots=snd-hda-intel,snd-usb-audio
Les modifications seront permanentes et effectives dès le prochain démarrage du système.