You are currently browsing the tag archive for the ‘PulseAudio’ tag.

Ceci est une traduction/adaptation partielle de l’excellent HOWTO: PulseAudio Fixes & System-Wide Equalizer Support (Hardy Heron) par Psyke, par conséquent toutes les louanges lui reviennent.

Préambule, Notes et Mises en Garde

Le but de ce guide est de faire fonctionner PulseAudio correctement et non pas de fixer un système ne pouvant jouer aucun son, pour ce dernier, voyez ici

Si vous avez du son avec quelques applications et pas d’autres ou que le mixage est mauvais, saccadé, ce guide est fait pour vous.

Si cela peut vous aidez, le diagramme suivant explique le fonctionnement de Pulseaudio. C’est un bon début pour déceler la source de votre problème. Si vous n’y comprenez rien, pas de soucis, lisez simplement la suite.

crédit: rudd-o

Quelles parties suivre?

La partie A permet de mettre en place le support de Pulseaudio pour toute application utilisant ALSA.

La partie B installera Adobe Flash Plugin version 10 (bêta) qui a une meilleure compatibilité avec PulseAudio que la version actuelle d’Ubuntu.

La partie C est recommandée si vous avec un son saccadé.

L’appendice A donne des conseils spécifiques à certaines applications.

L’appendice B tente de régler les problèmes de mixages/lecture.

L’appendice C annule tous les changements (au cas ou rien ne va plus).

Partie A (bug #198453)

Cette partie permettra à toute application ALSA d’utiliser PulseAudio. Si vous ne suivez pas cette étape, les applications utilisant ALSA bloqueront l’accès à la carte son et empêchera donc PulseAudio de fonctionner.

1. Sauvegardez les fichiers de configuration:

mkdir ~/pulse-backup && cp -r ~/.pulse ~/.asound* /etc/asound.conf /etc/pulse -t ~/pulse-backup/
sudo rm -r ~/.pulse ~/.asound* /etc/asound.conf

2. Assurez-vous d’avoir les bons dépots:

gksudo software-properties-gtk

Cliquez sur l’onglet mises à jour, activez les dépots multiverses, fermez et cliquez sur Recharger

3. Installez ou mettez à jour les paquets suivants pout utiliser correctement PulseAudio

sudo apt-get install libasound2 libasound2-plugins libasound2-dev padevchooser swh-plugins libao-pulse libsdl1.2debian-pulseaudio ladspa-sdk

4. Créez un nouveau fichier “/etc/libao.conf” et changez le driver par défaut par “pulse” pour vous assurer que les applis utiliseront correctement “libao”:

gksudo gedit /etc/libao.conf

collez la ligne suivante et sauvegardez:

default_driver=pulse

5. Créez un nouveau “~/.asoundrc”

gedit ~/.asoundrc

Collez les lignes suivantes pour vous assurer que les applications utilisant ALSA transmettront le son vers Pulseaudio, évitant ainsi à ALSA de monopoliser la carte

pcm.!default {
type pulse
}

ctl.!default {
type pulse
}

pcm.pulse {
type pulse
}

ctl.pulse {
type pulse
}

6. Tous les paquets dans “hardy-proposed” n’étant pas stable, ne mettez pas à jour tous les paquets proposés. Pour éviter de prendre trop de risques, retournez au point 2 et décochez le dépot « hardy-proposed », fermez et cliquez recharger. Sinon laissez le dépot comme il est et upgradez comme d’habitude.

Partie B: Adobe Flash 10 (bug #192888)

Important: Flash ne fonctionnera pas proprement si vous avez passé la Partie A.

La dernière version stable d’Adobe Flash ne fonctionne pas très bien avec PulseAudio. Bien qu’il y ai des solutions (comme installer le paquet « libflashdupport » et « nspluginwrapper »), Flash reste instable avec Pulseaudio. La version 10 elle, fonctionne très bien.

1. Vérifiez que vous n’avez pas installé « libflashdupport » qui pourrait rendre flash instable:

sudo apt-get remove libflashsupport

2. Téléchargez et installez « flashplugin-nonfree » depuis les dépots Intrepid:

i386:

wget http://archive.ubuntu.com/ubuntu/pool/multiverse/f/flashplugin-nonfree/flashplugin-nonfree_10.0.1.218ubuntu1_i386.deb
sudo dpkg -i flashplugin-nonfree_10.0.1.218ubuntu1_i386.deb

amd64:

wget http://archive.ubuntu.com/ubuntu/pool/multiverse/f/flashplugin-nonfree/flashplugin-nonfree_10.0.1.218ubuntu1_amd64.deb
sudo dpkg -i flashplugin-nonfree_10.0.1.218ubuntu1_amd64.deb

Partie C: Son saccadé (bug #188226 et bug #190754)

PulseAudio semble hacher le son sur de nombreux systèmes, probablement à cause du « CPU scheduler » du noyau 2.6.24-16-generic (bug #188226), problèmes de buffering (bug #190754), ou les deux. Ces instruction peuvent peut être regler ce problème.

Cette configuration est idéale pour ma carte audio, une “Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC’97 Audio Controller (rev 01)”. Il se peut qu’elle ne fonctionne pas aussi bien pour vous, essayez d’ajuster les valeurs si vous avez des problèmes.

1. Assurez vous que votre système soit mis à jour, avec une version du noyau supérieure à 2.6.24-18-generic, car il à été fixé pour éviter ces problèmes de saccade.

2. Ajoutez votre utilisateur aux groupes “pulse-access” et “pulse-rt”:

sudo adduser $USER pulse-access
sudo adduser $USER pulse-rt

3. Éditez “/etc/pulse/daemon.conf”:

gksudo gedit /etc/pulse/daemon.conf

Appliquez les changement aux lignes marquées en rouge, n’oubliez pas de retirer le point virgule.

; default-sample-format = s16le
; default-sample-rate = 44100
; default-sample-channels = 2

default-fragments = 8
default-fragment-size-msec = 5

Appendice A: Conseils généraux

Certaines applications ne fonctionneront pas, même avec ces bidouillages, mais il existe néanmoins des solutions:

1. Skype : dans les Options, périphériques audio, definissez “Sortie audio” et “Sonnerie” comme “pulse” et “Entrée” comme sortie physique du micro. Par exemple, le micro de mon portable est “plughw:I82801DBICH4,0″. Vous devez également suvre la partie C de ce guide pour éviter le hachage du son.

2. WINE: assurez vous d’utiliser la dernière version de Wine disponible
Le driver ALSA de WINE a été amélioré et devrait fonctionner avec PulseAudio dans la plupart des cas. Si ce n’est pas le cas, choisissez “ESD” comme serveur audio via “Configurer WINE” / “winecfg”. Si cela ne fonctionne toujours pas, utilisez « OSS » (mais vous devrez invoquer WINEen utilisant padsp comme ci-dessous).

3. OSS: Vous devez utiliser le wrapper « padsp » (inclu dans le paquet pulseaudio-utils) pour permettre aux application OSS de fonctionner correctement avec PulseAudio. Invoquez simplement un programme avec le suffixe padsp. Exemple:

padsp quake3

4. Pour le reste, voyez http://www.pulseaudio.org/wiki/PerfectSetup

Appendice B: Résolution des problèmes de lecture/mixage

Si vous n’arrivez pas à faire fonctionner une pplaication audio ou partager la carte son avec plusieurs applications, essayez ceci:

1. Ouvrez “PulseAudio Device Chooser” dans le menu applications/Son & Vidéo. Cliquez-gauche sur l’icone dans la barre des tâches, « Volume Control » puis sur l’onglet « playback »
2. Lancez une application et jouez y quelque chose.
3. Vérifiez que cette application possède une entrée dans le controle du volume,

Les résultats peuvent varier:

1. L’application s’affiche dans le contrôle du volume
2. L’application ne s’affiche pas dans le contrôle du volume
3. L’application plante et ne s’affiche pas dans le contrôle du volume

Résultat A: l’application est correctement configurée et fonctionne avec PulseAudio
Résultat B: l’application n’utilise pas PulseAudio, mais a reussi a utiliser la carte son car PulseAudio etait en veille
Résultat C: comme B sauf que PulseAudio n’était pas en veille et l’application ne pouvait pas accéder à la carte son.

Si vous avez B et C pour quelques applications, celles ci sont certainement problématique ou utilisent OSS (voir appendice A). Si vous avez ces même réultats pour l’ensemble des applications, votre système est mal configuré. Assurez vous d’avoir suivi ce guide à la lettre.

Appendice C: Annulation des changements

Si le guide a fait partir votre système en sucette, ces instructions devraient le rétablir à l’état initial

sudo dpkg -P –force-depends pulseaudio
sudo rm ~/.asoundrc* /etc/asound.conf /etc/libao.conf
sudo cp ~/pulse-backup/asound.conf /etc/
sudo cp ~/pulse-backup/libao.conf /etc/
cp ~/pulse-backup/.asoundrc* ~/

Source: l’excellent HOWTO: PulseAudio Fixes & System-Wide Equalizer Support (Hardy Heron) par Psyke83

Publicités

Première chose à savoir : par défaut PulseAudio est configuré en stéréo

C’est important à savoir avant d’aller bidouiller en vain asound.conf ou autres. Alsa est certainement déja configuré pour le surround par défaut, mais par défaut PulseAudio ne vous donnera que de la stéréo. Et pour rêgler cela, la manip’ est assez simple.

Première chose à faire, sauvegarder les fichiers de configuration que nous allons éditer:

sudo cp /etc/pulse/daemon.conf /etc/pulse/daemon.conf.original && /etc/pulse/default.pa /etc/pulse/default.pa.original.

La manière simple:

Si vous avez l’une des configuration suivantes, vous avez de la chance. Vous pouvez rêgler le problème simplement. Si ce n’est pas le cas, voyez la section suivante.

2.0, 4.0, 5.0, 5.1, 7.1

Ouvrez simplement un terminal et tapez:

gksudo gedit /etc/pulse/daemon.conf

Faites défiler le texte jusqu’à ce que vous voyez la ligne suivante

; default-sample-channels = 2

Décommentez la ligne en retirant le « ; » et changez le « 2 » selon votre configuration:

2.0 -> laissez 2
4.0 -> 4
5.0 -> 5
5.1 -> 6
7.1 -> 8

Sauvegardez, quittez, redémarrez pulseaudio (ou plus simplement redémarrez ubuntu) et voilà, le son surround devrait fonctionner normalement.

La manière moins simple

Vous devrez cette partie si vous avez l’une des configurations suivantes:

2.1, 4.1, 6.0 ou tout autre chose non listée plus haut.

Pourquoi est-ce plus compliqué?

Pulseaudio à une facon particulière de nommer les différents canaux. Dans la manière simple expliquée ci-dessus, vous dites à PulseAudio le nombre de canaux à utiliser mais dans un ordre déterminé. Cet ordre est le suivant

Avant G, Avant D, Arrière G, Arrière D, Centre, Subwoofer, Coté G, Coté D.

Si vous avez un système en 2.1, pulseaudio enverra les canaux gauche/droite correctement mais il enverra l’arrière gauche dans le subwoofer, et ce n’est pas vraiment l’effet recherché. Pour corriger cela, Ouvrez un terminal et tapez:

gksudo gedit /etc/pulse/default.pa

Cherchez les lignes suivantes:

### Automatically load driver modules depending on the hardware available
.ifexists module-hal-detect.so
 load-module module-hal-detect
 .else
 ### Alternatively use the static hardware detection module (for systems that
 ### lack HAL support)
 load-module module-detect
 .endif

Commentez toutes les lignes d’un « # ». Cela empêchera pulseaudio de configurer automatiquement votre carte son. Maintenant vous devez ajouter une ligne à ce bloc qui ressemblera à ceci:


### Automatically load driver modules depending on the hardware available
 #.ifexists module-hal-detect.so
 #load-module module-hal-detect
 #.else
 ### Alternatively use the static hardware detection module (for systems that
 ### lack HAL support)
 #load-module module-detect
 #.endif

### Configuration manuelle surround. Décommentez les lignes ci-dessus et commentez la ligne suivante pour
### revenir à la configuration originale.
load-module module-alsa-sink device_id=0 channels=5 channel_map=front-left,front-right,rear-left,rear-right,lfe

Dans cette configuration, il s’agit d’un sytème 4.1 avec une seule carte son.

Vous pouvez créer votre propre configuration en suivant l’exemple suivant. Il est important de noter que l’ordre des canaux est important. Si vous entendez que deux canaux sont inversés (genre centre/subwoofer avec arrière D/G) vous n’avez qu’à changer l’ordre de ces derniers. La plupart des cartes veulent que ces canaux soient spécifiés dans un ordre précis.

  • device_id correspond bien sur à la carte son. si vous n’avez qu’une carte, c’est certainement 0.
  • channels=X : le X devrait être remplacé par le nombre de canaux à utiliser.
  • channel_map=x,x,x,x,x,x,x cette liste séparée par desvirgule détermine les canaux à utiliser. Il est conseillé de suivre le même ordre utilise par PulseAudio (voir début du guide) et de simplement retirer le canal inutile. Les ccanaux valides sont les suivants (en gras):

left (G), right (R), mono, center (Centre), front-left (Avant R), front-right (Avant G), front-center (Avant Centre), rear-center (Arrière Centre), rear-left (Arrière G), rear-right (arrière D), lfe (LowFrequencyEffects: effets basse fréquence), subwoofer, front-left-of-center (Avant G du centre), front-right-of-center (Avant D du centre),  side-left (Coté G), side-right (Coté D), aux0 jusqu’à aux15 (Auxiliaires 0 à 15), top-center (Centre Haut), top-front-left (Haut, Avant G), top-front-right (Haut Avant D), top-front-center (Centre haut), top-rear-left (Haut Arrière G), top-rear-right (Haut Arrière D), top-rear-center (Haut Centre Arrière)

Il est préférable d’utiliser une combinaison des paramêtres suivants: front-left, front-right, front-center, rear-center, rear-left, rear-right, lfe, side-left, side-right

NOTES:

  • Un utilisateur reporte qu’en lancant PulseAudio depuis un terminal, alsa_ctl se plaignait de paramètre supplémentaire ou de surround51 introuvable. Il a dû spécifier « device=hw:0 » en remplacement de « device=hw:0,0 device_id=0 »
  • Si vous avez un subwoofer, il est conseillé d’utiliser lfe et non subwoofer, cela semble aller contre la logique mais le canal du subwoofer est quasiment toujours labellé « lfe »

Une fois terminé, sauvegardez le fichier, fermez, redémarrez et voilà!

Si vous n’avez pas de son ou si vous avez lamentablement foiré votre configuration, pas de panique! Pour retrouver votre configuration d’origine, ouvrez un terminal, tapez ceci et redémarrez.

sudo cp /etc/pulse/default.pa.original /etc/pulse/default.pa && cp /etc/pulse/daemon.conf.original /etc/pulse/daemon.conf

Source: Sammydee’s HOWTO: Surround sound in pulseaudio

Realtime, pour quoi faire?

Si votre idée du multimédia est de regarder des films ou écouter de la musique tout en naviguant sur internet, vous n’aurez probablement pas besoin du support en temps réel.

Le temps réel est important pour les personnes qui ont besoin de la priorité maximale pour les applications audio et vidéo et où ces fonctions sont la principale utilité de la machine (sur les DAW ou Digital Audio Workstations par exemple). Le realtime est important aussi pour les utilisateurs utilisant des programmes qui nécessitent une faible latence sur leurs machine.

En général, si vous êtes satisfait avec vos applications multimédia telles qu’elles sont, vous n’avez certainement pas besoin du realtime et vous risquez d’altérer votre machine si vous essayer de l’y forcer.

Oui mais j’ai des messages d’erreur!!!

Si lorsque vous démarrez PulseAudio en mode verbose (-v), vous vous inquiétez des messages suivant, pas de panique. Pulse n’a pas besoin d’être dans le groupe-rt pour fonctionner correctement. Il ne s’agit pas d’erreurs mais de messages informatifs (et oui, c’est ca le mode verbose).

$pulseaudio -vD
(...)
high-priority scheduling was requested in the configuration. However, we lack the necessary priviliges:
I: main.c: We are not in group 'pulse-rt' and PolicyKit refuse to grant us priviliges. Dropping SUID again.

I need real fuckin’ time, dammit!!!

Ok ok, si vous voulez vraiment du realtime avec pulseaudio et si vous avez deux sous de bon sens, vous tournez déjà sur un kernel realtime. Si ce n’est pas le cas, cherchez un peu vous trouverez comment faire. Une fois installé, il n’y a plus qu’à vous ajouter au groupe pulse-rt avec ces petites commandes:

pulseaudio -k
sudo adduser $USER pulse-rt
pulseaudio -vD

pulseaudio -k: termine pulseaudio comme il se doit
sudo adduser $USER pulse-rt: ajoutes l’utilisateur courant au groupe pulse-rt, vous pouvez bien sur remplacez $USER par le nom d’utilisateur que vous voulez
pulseaudio -vD: démarre pulseaudio en mode verbose (-v) et en tant que démon (-D grr!)

Et voilà!

Si vous ne le savez pas encore, PulseAudio est le nouveau serveur de son à tout faire. Pour ceux qui ne peuvent pas se séparer de JACK voici comment combiner les deux.

Deux modules sont disponibles: l’un pour la source (module-jack-source) et l’autre pour le sink (module-jack-sink). Cela signifie que tout logiciel compatible avec PulseAudio le sera également avec JACK et vice-versa, Youpi!

Le fichier à éditer est /etc/pulse/default.pa (pour une config globale) ou ~/.pulse/default.pa (pour une config per user). Toutes les options sont…optionelles donc l’ajout d’un simple « load-module module-jack-sink » ou « load-module module-jack-source » suffira mais voici tout de même la syntaxe au cas où.

load-module module-jack-sink sink_name=nom_du_sink server_name=nom_du_serveur client_name=nom_du_client channels=nombre_de_canaux
load-module module-jack-source source_name=nom_du_sink source_name=nom_de_la_souce server_name=nom_du_serveur client_name=nom_du_client channels=nombre_de_canaux

sink_name/source_name: définit le nom du sink ou de la source. Si omit, le sink sera nommé « jack-out » et la source « jack-in ».

server_name: détermine le serveur JACK auquel se connecter. Si omit, pulse se connectera au serveur par défaut.

client_name: définit le nom du client donné a JACK. Si omit, le nom sera PulseAudio.

channels: définit le nombre de canaux à utiliser. Si omit, le defaut sera le nombre de canaux disponibles sur le serveur JACK.

connect: prend une valeur booléenne si activé (enabled, valeur par defaut), PulseAudio essaiera de se conencter aux ports du server JACK.

Source: PulseAudio Modules

HELP !

Pour tout problème de son, conseils, ou simplement pour causer musique et apprécier l'ambiance, vous êtes les bienvenus au salon musique

Archives