Wiki

PulseAudio

PulseAudio

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

pulseaudio.pngPulseAudio {en} ist ein erweiterter Soundserver, der ab Ubuntu Hardy Heron 8.04 in Ubuntu und Xubuntu den Enlightened Sound Daemon standardmäßig ersetzt. Kubuntu nutzt PulseAudio noch nicht. Die Nutzung wird aber erst ab Ubuntu Intrepid Ibex 8.10 wirklich empfohlen. Ab Ubuntu Karmic Koala 9.10 läuft PulseAudio weitgehend problemlos, ohne dass Voreinstellungen verändert werden müssten.

Allgemeines

Streams verschiedener Programme können individuell über eine einfache grafische Oberfläche (GUI) sowohl in ihrer Lautstärke und Balance als auch in der Auswahl des Ausgabemoduls (Netzwerk, Soundkarte(n), USB-Kopfhörer) gesteuert werden, ohne dass die Kanäle sich dabei in die Quere kommen.

Hinweis:

PulseAudio ersetzt ALSA nicht! Zu den Details siehe Soundsystem.

Ubuntu 9.10

Pulseaudio ist standardmäßig bereits installiert und findet sich unter "System -> Einstellungen -> Klang".

##[[Bild(./Audio904.png

bis Ubuntu 9.04

Pulseaudio findet sich unter "System -> Einstellungen -> Audio".

##[[Bild(./pulseaudio.png

Andernfalls siehe Nachträgliche Installation.

Konfiguration

Ab Ubuntu Karmic Koala 9.10 ist eine spezielle Konfiguration in der Regel nicht erforderlich.

PulseAudio muss grundsätzlich neu gestartet werden [2], damit Änderungen an der Konfiguration greifen:

pulseaudio -k    -> Beendet PulseAudio
pulseaudio -D    -> Neustart als daemon 

Ggf. erscheint eine Meldung wie

W: ltdl-bind-now.c: Failed to find original dlopen loader.

die allerdings, wenn sie nicht von weiteren Fehlermeldungen begleitet wird, keinen Einfluss auf die Funktion hat.

Surround Sound

Um bei einer Surround-Soundkarte alle Kanäle nutzen zu können, muss in der Datei /etc/pulse/daemon.conf das Semikolon (Kommentarzeichen) in der Zeile "default-sample-channels" entfernt und als Wert die Anzahl der Kanäle eingetragen werden [2] [4]. Im Falle einer 5.1 Soundkarte wäre der Wert 6. Nach einem Neustart werden alle Kanäle im PulseAudio Volume Control angezeigt und sind auch regelbar.

ab Ubuntu 9.10

Der Wert von "enable-lfe-remixing" muss auf "yes" gestellt und das Semikolon in der Zeile entfernt werden, damit der "lfe" (Subwoofer) richtig arbeitet [2] [4]. Ist der Eintrag nicht vorhanden, so muss

enable-lfe-remixing = yes

hinzugefügt werden.

bis Ubuntu 9.04

Unter GNOME müssen unter "System -> Einstellungen -> Audio" die Geräte für Audiowiedergabe für einen reibungslosen Gebrauch auf "Automatisch erkennen", ggf. auch auf "PulseAudio-Soundserver", eingestellt sein. Für die Aufnahme-Option ist ebenfalls "PulseAudio-Soundserver" einzustellen.

Als "Vorgegebene Mixerspur" empfiehlt es sich, das Gerät "Playback: ALSA PCM on... (PulseAudio-Mixer)" (bzw der Playback-Eintrag passend zur gewünschten eigenen Soundkarte) auszuwählen und im Lautstärkeregler im Panel über rechte Maustaste und dann "Einstellungen" das selbe Gerät auszuwählen. Ansonsten ist der Lautstärkeregler ggf. wirkungslos. Als regelbarer Kanal ist dort nur "Master" auswählbar.

Audiostream aufnehmen

http://media.ubuntuusers.de/forum/attachments/2145665/pulse-audio-aufnahme.png
Aufnahme-Spur einrichten

Mit dem unter Ubuntu standardmäßig installierten Programmen Audio-Recorder oder Audacity ist es möglich, die Tonausgabe des Rechners direkt mitzuschneiden und in verschiedenen Formaten abzuspeichern. Um das Default-Ausgabegerät aufzuzeichnen, muss bei laufender Aufnahme in PulseAudio Volume Control (Paket pavucontrol installieren!) im Reiter "Aufnahme" mit rechte Maustaste die Spur auf "Monitor of (verwendete Soundkarte)" verschoben werden. Diese Einstellung wird gespeichert, sodass beim nächsten Aufnahme-Start gleich der Monitor verwendet wird. Dazu gibt es hier eine Anleitung (für Ubuntu 8.04 und 8.10) im Forum. In Ubuntu 9.10 Karmic Koala ist das Dropdown-Menü unten rechts im Aufnahmereiter direkt erreichbar.

Nachträgliche Installation

Es müssen folgende Pakete installiert [1] werden:

  • pulseaudio

  • pulseaudio-utils

  • gstreamer0.10-pulseaudio

Wiki/Vorlagen/Installbutton/button.png

bis Ubuntu 9.04

  • pulseaudio-module-hal

Wiki/Vorlagen/Installbutton/button.png

um mit HAL neue Geräte zu erkennen (nur bis Ubuntu 9.04 Jaunty Jackalope vorhanden)

nur Ubuntu 9.04

Optional kann mit

  • gnome-volume-control-pulse (universe)

Wiki/Vorlagen/Installbutton/button.png

ein alternativer Mixer der GNOME-Desktopumgebung installiert werden [1]. Nach einem Neustart steht ein neuer Lautstärkeregler für das Panel zur Verfügung. Über einen rechte Maustaste-Klick öffnet sich ein Pulldown-Menü. Hiermit können über "Audio-Einstellungen" weitere Anpassungen vorgenommen werden. Mehrere Reiter stehen zur Verfügung:

In "Klangeffekte" kann das Klangthema sowie die Lautstärke angepasst werden. "Eingabe" lässt Einstellungen zur Aufnahmequelle zu. "Ausgabe" listet die zur Verfügung stehenden Klangausgabegeräte auf und gestattet eine Anpassung der Balance. Unter "Anwendungen" kann die Lautstärke der derzeit genutzten Audioanwendungen individuell geregelt werden.

Falls der Mauszeiger über dem Tray-Icon verweilt, kann man mit dem mittlere Maustaste Mausrad die Lautstärke verändern.

Ubuntu 8.04

Optional kann noch

  • libao-pulse (universe)

Wiki/Vorlagen/Installbutton/button.png

installiert werden [1]. Zur Verwendung siehe libao - a cross platform audio library {en} .

PulseAudio installiert sich als Dienst. Dieser wird nach einem Neustart aktiv. Ob der Soundserver läuft, kann man mit dem Befehl ps im Terminal [2] feststellen, der gesuchte Prozess heißt pulseaudio:

ps -C pulseaudio 

Wenn alles korrekt ist, sollte die Ausgabe in etwa so aussehen:

  PID TTY          TIME CMD
 5747 ?        00:00:02 pulseaudio

Hilfsprogramme

Empfohlen werden: pavumeter910.png

pavumeter

Das Programm „PulseAudio Meter“ dient der Anzeige der Ausgabe/Aufnahme-Pegel, praktisch z.B. für Partys. Es muss das Paket pavumeter (universe) installiert werden [1].

pavucontrol

pavucontrol910.png

Dieses Programm stellt das wichtigste Werkzeug für die Soundkontrolle dar und bietet eine Übersicht über alle aktuellen Audioquellen mit einzelner und Master-Lautstärkeregelung. Dazu muss das Paket

  • pavucontrol (universe)

Wiki/Vorlagen/Installbutton/button.png

installiert sein [1]. Unter GNOME findet sich der PulseAudio-Mixer unter "Anwendungen -> Unterhaltungsmedien -> PulseAudio Lautstärkeregler". Im Reiter "Playback/Wiedergabe" finden sich die derzeit laufenden Soundausgaben. "Recording/Aufnahme" zeigt, welches Programm ggf. gerade aufnimmt. Im Reiter "Output Devices/Ausgabegeräte" erscheinen die Geräte, über die der Sound ausgegeben wird. "Input Decives/Eingabegeräte" zeigt entsprechend an, woher der Sound kommt. Im Fenster "Show/Anzeigen" unten kann jeweils festgelegt werden, welche Geräte angezeigt werden sollen. Ab Ubuntu 9.10 Karmic Koala ist der Reiter "Konfiguration" dazugekommen.

Im Reiter "Playback" kann nun die Ausgabe-Lautstärke jedes Streams individuell geregelt werden. Durch einen Rechtsklick rechte Maustaste auf einen Stream kann individuell ein Ausgabemodul gewählt werden, sofern mehrere Soundgeräte verfügbar sind.

In "Recording/Aufnahme" kann bei laufender Aufnahme durch einen Rechtsklick auf die angezeigten Anwendungen oder Schaltfläche rechts geregelt werden, welche Ausgabe aufgenommen werden soll.

Für "Input Devices/Eingabegeräte" bzw. "Output Devices/Ausgabegeräte" lässt sich die Lautstärke - auch kanalweise - regeln. Außerdem kann man auch festlegen, welches Gerät als Standard verwendet werden soll: rechte Maustaste, dann Checkbox "Default/Vorgabe".

In "Konfiguration" können Einstellungen für die verwendeten Soundkarten vorgenommen werden. Falls dort nichts (oder nicht alle Karten) aufgeführt sind, hilft ggf. dieser Abschnitt weiter.

Im Kontextmenü „Move Stream“ kann eine Audioquelle auf ein bestimmtes Ausgabegerät gelegt werden.

PulseAudio speichert alle Einstellungen (auch die Lautstärke-Einstellungen für jede verwendete Soundquelle) in der Datei ~/.pulse/volume-restore.table, sodass sie nur einmal vorgenommen werden müssen.

paprefs910.png

paprefs

Mit diesen „PulseAudio Preferences“ kann Netzwerkzugriff auf den Soundserver erlaubt und konfiguriert werden. Z.B. können Soundkarten mit Pulseaudio über das Netzwerk genutzt werden: nach Aktivieren der Option „Netzwerkzugriff auf lokale Audio-Geräte erlauben“ und „Allow other machines on the LAN to discover local sound devices“ könnte man den Sound eines Programms vom Schreibtisch-PC auf dem Notebook im Schlafzimmer ausgeben. Der Dialog ist auch unter „System -> Einstellungen -.> PulseAudio-Einstellungen“ zu finden. Es muss das Paket

  • paprefs (universe)

Wiki/Vorlagen/Installbutton/button.png

installiert werden [1].

Hinweis:

Ab Ubuntu Karmic Koala 9.10 nicht mehr empfohlen werden:

  • paman (universe)

  • padevchooser (universe)

Siehe The Perfect Setup {en} im PulseAudio-Wiki.

paman

pavumanager.png Bis einschließlich Ubuntu Jaunty Jackalope 9.04 wird der "PulseAudio Manager" empfohlen. Dieser ist im Paket

  • paman (universe)

Wiki/Vorlagen/Installbutton/button.png

enthalten [1] und lässt sich mit dem Befehl paman starten. Mit diesen Programm lassen sich alle relevanten Informationen über die Konfiguration, die verwendeten "sinks", die verfügbaren Geräte, die verwendbaren Module etc. abrufen. Im Reiter "Devices" lassen sich beispielsweise über die Schaltfläche "Properties" Regler für den Ausgabelevel der verwendeten "sinks" und Quellen erreichen.

padevchooser

Außerdem existieren noch etliche Module, die das reibungslose Zusammenspiel auf anderen Ebenen sichern [1]:

  • libsdl1.2debian-pulseaudio (zur Verwendung von SDL)

  • pulseaudio-module-gconf (um zusätzliche Konfigurationen in GConf: zu speichern)

  • pulseaudio-module-lirc (für die Verwendung von Fernbedienungen mit Lirc)

  • pulseaudio-module-x11 (ermöglicht PulseAudio, sich für X11 als Standard-Soundserver anzumelden)

  • pulseaudio-module-zeroconf (zur Verwendung mit Avahi)

Wiki/Vorlagen/Installbutton/button.png

Paketliste zum Kopieren:

sudo apt-get install libsdl1.2debian-pulseaudio pulseaudio-module-gconf pulseaudio-module-lirc pulseaudio-module-x11 pulseaudio-module-zeroconf 

sudo aptitude install libsdl1.2debian-pulseaudio pulseaudio-module-gconf pulseaudio-module-lirc pulseaudio-module-x11 pulseaudio-module-zeroconf 

Feinheiten

Qualität/CPU-Auslastung

Die Prozessor-Auslastung und die Qualität des Klangs (wichtig bei älterer Hardware!) hängen von der verwendeten Resampling-Methode ab. Änderungen sind durch das Editieren der Datei /etc/pulse/daemon.conf in einem Editor [4] mit Root-Rechten [3] möglich, verwendbar für "resample-method" sind [1]:

src-sinc-best-quality, src-sinc-medium-quality, src-sinc-fastest, speex-float-{10-0}, speex-fixed-{10-0}, ffmpeg, src-zero-order-hold, src-linear, trivial

In der Zeile

resample-method = 

wird die Resampling-Methode festgelegt. Standard-Einstellung ist "speex-float-1". Diese kann durch die aufgeführten Werte oben ersetzt werden. Um einen sinnvollen Kompromiss zwischen CPU-Auslastung und Klang zu finden, z.B bei stotternden oder verzerrten Skype-Anrufen, kann eine Änderung auf den Wert "speex-float-4" helfen.

Außerdem können bei weiterhin bestehenden Klangproblemen oder ganz fehlender Wiedergabe die Werte für die Einträge

default-fragments = 4
default-fragment-size-msec = 25

abgeändert werden, zunächst beispielsweise auf "default-fragments = 8" und "default-fragment-size-msec = 10". Ggf. müssen aber die geeigneten Werte für die eigene Soundkarte durch Versuche herausgefunden werden.

Hinweis:

Zeilen mit Semikolon ";" am Anfang werden als Kommentar interpretiert. Deshalb muss es entfernt werden, wenn die Zeile ausgewertet werden soll.

Priorität erhöhen

Sollte der Sound beim Umschalten zwischen Anwendungen oder anderen Arbeiten am PC immer mal wieder stocken/knacken, kann man die Priorität des PulseAudio-Dienstes erhöhen.

Hinweis:

Übertreibt man hierbei, kann es passieren, dass das System nicht mehr ordentlich heruntergefahren werden kann!

Dazu kann man entweder systemweit die Datei /etc/pulse/daemon.conf mit Root-Rechten[3] editieren oder diese Datei ins eigene, versteckte Verzeichnis ~/.pulse/ kopieren. Dort verändert man folgende Zeilen oder fügt sie ggf. ein.[1][4]

high-priority = yes       # default  no
rlimit-nice = 31          # default  31, Werte groesser als 31 werden auf 31 gesetzt!
nice-level = -11          # default -11, kleinstmoeglicher Wert: (20 - rlimit-nice), kleiner heisst mehr CPU-%

realtime-scheduling = yes # default no
rlimit-rtprio = 9         # default  9, Werte von 1 bis 99 erlaubt
realtime-priority = 9     # default  5, hoechstmoeglicher Wert: rlimit-rtprio, hoeher heisst mehr Prioritaet

Zusätzlich muss man für jeden Desktop-Benutzer in der Datei /etc/security/limits.conf folgende zwei Zeilen hinzufügen:

<$USER>     -  nice   -11     # Werte von -20 bis 19 erlaubt
<$USER>     -  rtprio  99     # Werte von 1 bis 99 erlaubt

Anstelle von <$USER> muss der Benutzername eingesetzt werden. Das Editieren dieser Datei erfordert Root-Rechte [3].

Ubuntu 9.10

Achtung!

Im PulseAudio von Ubuntu 9.10 wurde die Möglichkeit für "realtime-scheduling" deaktiviert (siehe PulseAudio UbuntuBugs {en}). Es ist also nie eingeschaltet, selbst wenn PulseAudio das im Syslog behauptet!

Man kann aber einen laufenden Pulseaudio-Daemon mit "chrt -p -v -r 9 $(ps -C pulseaudio -o pid=)" auf "realtime-scheduling" umschalten [1].

Ubuntu 9.04

Unter Ubuntu Jaunty Jackalope 9.04 kann man auch das Programm polkit-gnome-authorization starten und für PulseAudio High-priority scheduling erlauben. Für weitere Details siehe PolicyKit.

Problemlösungen

Die Verwendung von PulseAudio ist eigentlich erst ab Ubuntu Intrepid Ibex 8.10 (und einigermaßen leistungsstarker Hardware) uneingeschränkt zu empfehlen. Ein umfassender Beitrag dazu ("HOWTO: PulseAudio Fixes & System-Wide Equalizer Support") findet sich auf ubuntuforums.org {en} .

Ubuntu 9.10

Es kann vorkommen, dass einige Funktionen der Soundkarte über den Pulseaudioregler nicht erreichbar sind, zum Beispiel die karteninterne Mikrofonverstärkung. Diese kann in einem Terminal mit Hilfe des "alsamixer" aktiviert werden. Alternativ ist auch die Installation eines ALSA-Lautstärkereglers für GNOME, wie gnome-alsamixer oder gamix, möglich.

Audacity

Ab Ubuntu Karmic Koala 9.10 sollten keine Besonderheiten mehr auftreten. Sieh auch The Perfect Setup#Audacity {en} .

Skype

Ab Version 2.1 Beta unterstützt Skype Pulseaudio gut. Siehe Skype sowie The Perfect Setup#Skype {en} . Bei Problemen mit stotternden Anrufen kann die Klangqualität und eventuell die Prioritäten von PulseAudio, wie oben unter Klangverbesserung beschrieben, verändert werden. Siehe auch: Skype.

Einstellen des Ausgabemediums

Das aktuell voreingestellte "default"-Ausgabemedium kann mit [1]

pactl stat 

angezeigt werden.

Eine Liste aller verfügbaren Medien "sinks" erhält man mit [1]

pactl list 

Die Nummer des gewünschten Ausgabemediums kann dann in der Datei /etc/pulse/client.conf eingetragen werden:

default-sink = 

Anschließend ist ein Neustart erforderlich.

Debugging

Um hartnäckigen Problemen besser auf den Grund gehen zu können, kann der Pulseaudio-Daemon mit dem folgenden Befehl beendet und im Debugmodus neu gestartet werden [1]:

pulseaudio -k; sleep 4; pulseaudio -vv 

In der resultierenden Ausgabe lassen sich ggf. die Ursachen für Probleme ablesen.

Multichannel-Chipsätze

Bei einigen Chipsätzen (zum Beispiel ICE1712 in den Delta-Karten wie der Audiophile-2496 von M-Audio) sind die Kanäle nicht "richtig" benannt. Durch eine Änderung der Datei /etc/pulse/default.pa lässt sich Abhilfe schaffen, siehe hier {en} oder im Forum {de}. Ab Ubuntu 9.04 Jaunty Jackalope bzw. ab PulseAudio 0.9.13 taucht das Problem für die Audiophile-2496 nicht mehr auf. Nach dem gleichen Prinzip lässt sich auch die Terratec EWX2496 konfigurieren (siehe hier {de}). Beim nForce2-Chipsatz hilft ggf. diese Anleitung.

Für die Terratec DMX 6 Fire 24/96-Karte gibt es hier {it} eine Anleitung, um sie unter PulseAudio nutzen zu können. Die Anweisungen sind zwar italienisch, aber eigentlich gut zu verstehen (siehe dazu auch hier {de} im Forum).

PulseAudio und ALSA blockieren sich

In dem Falle müssen erst alle ALSA bzw. PulseAudio nutzenden Anwendungen geschlossen werden, um über das jeweils andere wieder Audio ausgeben zu können. Ein Workaround findet sich im Forum {de} .

Nur "dummy"-Gerät

Falls nur ein "dummy"-Gerät für die Ausgabe zur Verfügung steht und damit natürlich die Klangausgabe nicht funktioniert, kann es sein, dass die Soundkarte von einem anderen Prozess belegt ist und nicht von Pulseaudio benutzt werden kann. Dies kann z.B. bei einem Softmodem-Treiber (SmartLink) der Fall sein (siehe 449762 {en}). Welcher Prozess die Soundkarte belegt, kann mit folgendem Befehl überprüft werden [11]:

sudo fuser -v /dev/dsp* /dev/snd/* 

In der Ausgabe sollte nur pulseaudio für die Soundkarte vorkommen. Wird das Gerät aber durch den Treiber slmodemd belegt, kann entweder der Modem-Treiber deaktiviert (System > Systemverwaltung > Hardware-Treiber) oder eine Problemlösung aus der Launchpad-Diskussion genutzt werden.

Geräte werden nicht erkannt

Sollte die Soundkarte nicht oder nicht mehr erkannt werden, kann man mithilfe eines Workaround doch noch zu einer Soundausgabe kommen. Dazu muss die Datei /etc/pulse/default.pa in einem Editor mit Rootrechten bearbeitet werden [3][4]. Die Zeilen

#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0

ändern und die Kommentierung (#-Zeichen) entfernen:

load-module module-alsa-sink device=hw:0
load-module module-alsa-source device=hw:0

Die Device-Nr. "device=hw:0" ggf. den eigenen Gegebenheiten anpassen; ggf. können auch mehrere Karten (dazu entsprechend neue Zeilen erstellen) eingetragen werden.

PCM übersteuert

Wenn die Ausgabelautstärke PCM grundsätzlich zu hoch/übersteuert ist, kann in /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common in einem Editor [4] mit Root-Rechten [3] in der Sektion "PCM" das Argumement für "volume=merge" in "volume=ignore" abgeändert werden. Nach einem Neustart des Rechners (ein Neustart von PulseAudio ist nicht ausreichend!) ist die PCM-Einstellung dann fixiert, kann aber beispielsweise über den Alsamixer geändert werden (siehe 322909 {en}, Kommentare 29 und 30).

Programme, die nicht mit PulseAudio funktionieren

Trotzdem gibt es immer noch viele Programme, z.B. Spiele oder auch Wine, die nicht oder nicht gut mit PulseAudio funktionieren. Da PulseAudio ein direkter Ersatz für ESD ist, reicht es aber bei vielen Programmen, diese einfach auf ESD umzustellen. Ggf. können solche Programme auch auf der Kommandozeile mit [1]

padsp <Programmname> 

gestartet werden. Sie werden dann als OSS-Emulation von PulseAudio verarbeitet. Alternativ kann mit dem Befehl "pasuspender" Pulseaudio für die Nutzung eines bestimmten Programmes stillgelegt werden [1]:

pasuspender <Programmname> 

Wine

Wine unterstützt die Soundausgabe per ESD, was eine Soundwiedergabe ermöglicht, allerdings mit einer bei Spielen störenden Verzögerung. Als Alternative gibt es einen nativen Wine-Treiber für PulseAudio {en} . Weitere Tipps gibt es unter The Perfect Setup {en} im PulseAudio Wiki.

Stillegung unter Ubuntu 9.04

Will man lieber nur Alsa anstatt PulseAudio verwenden, so kann man den Soundserver mit folgender Anleitung {en} deaktivieren.


Diese Revision wurde gestern um 13:53 Uhr von Heinrich Schwietering erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet: Multimedia, Sound

Passwort vergessen?