logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ceci est une ancienne révision du document !


PulseAudio : config, trucs et astuces

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
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
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, tels Xfce 4.8 et 4.10 ; 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).

Utilisation

Interface graphique (pavucontrol)

Une fois installé, pavucontrol est lancé via le menu Applications > Multimédia > Contrôle du volume PulseAudio.

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 et pulse-client.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.

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 deux fichiers de configuration permettant de modifier les réglages par défaut de PulseAudio : les fichiers /etc/pulse/client.conf et /etc/pulse/default.pa ; 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'
retour de la commande
    index: 0
	name: <alsa_output.pci-0000_01_00.1.hdmi-stereo>
	muted: no
		device.description = "GF119 HDMI Audio Controller Digital Stereo (HDMI)"
	active port: <hdmi-output-0>
  * index: 1
	name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
	muted: no
		device.description = "Audio interne Stéréo analogique"
	active port: <analog-output-lineout>

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
séquence interactive (extrait)
; default-sink =

Par défaut, la ligne qui nous intéresse est commentée, il faut donc la décommenter et la compléter avec le nom du périphérique de sortie identifié plus haut :

séquence interactive (extrait)
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. Par ailleurs, cette personnalisation peut théoriquement être configurée dans le fichier ~/.config/pulse/default.pa mais certains utilisateurs ont rapporté un “plantage” de PulseAudio, suite à une manipulation de ce type2).

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
retour de la commande
1 card(s) available.
    index: 1
    name: <alsa_card.pci-0000_00_14.2>
    driver: <module-alsa-card.c>
    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: <output:analog-stereo+input:analog-stereo>
    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
retour de la commande
I: [pulseaudio] main.c: Démarrage du démon réussi.

Il est inutile de redémarrer la machine ; la modification est effective.

Revenir vers Alsa

Si vous souhaitez revenir vers Alsa, vous pouvez consulter ce fil de discussion.

Sources

Liens utiles

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
2)
Voir le sujet [résolu]paramêtres "son" ne tiennent pas (Forum HandyLinux)
doc/media/pulseaudio.1489067407.txt.gz · Dernière modification: 09/03/2017 14:50 par ucino

Pied de page des forums

Propulsé par FluxBB