PulseAudio

De ArchwikiFR
(Redirigé depuis Pulseaudio)

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:

Utilisation

Pour démarrer PulseAudio :

pulseaudio --start

Pour arrêter PulseAudio:

pulseaudio --kill
Note : Dans certains environnements de bureau, PulseAudio est lancé automatiquement avec la session X11. Reportez-vous à la section sur les environnements de bureau pour les détails.

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 supportent pas PulseAudio mais supportent 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.

Attention : Les applications utilisant OSS ne joueront alors plus de son, il vous faudra configurer PulseAudio en conséquence.
Attention : Il existe un bug avec les cartes audio HDA-Intel qui ne permettent pas d'écouter plus d'une instance audio d'une unique application à la fois. Désinstaller ce paquet résoudra alors le souci.

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 :

Fichier: /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) 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 :
Fichier: /etc/openal/alsoft.conf
drivers=pulse,alsa

libao

Éditez le fichier de configuration de libao :

Fichier: /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é, 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).

Note : Par défault, le serveur PulseAudio écoute sur le port 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

Note : si {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 à cours 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.

Si vous utilisez KDE 4 :

start-pulseaudio-x11; start-pulseaudio-kde

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.
  • veromix (Qt) : une alternative à pavucontrol pour KDE disponible sur AUR.