Was ist von pulseaudio zu halten?

cabriofahrer

Well-Known Member
Ich benutze den MATE Desktop, was mir u.A. daran gefällt ist das kleine Lautsprechersymbol auf dem Panel, mir dem ich die Lautstärke durch Positionieren des Mauskursors und Drehen des Mausrads ganz schnell und einfach regeln kann. Nun habe ich mal zum Probieren gdm3 und gnome3 installiert mit der Folge, dass in MATE diese Funktion verloren gegangen ist. Ein Manipulieren des Lautsprechersymbols ist nun wirkungslos. Schuld dran ist mit Sicherheit pulseaudio, das von gdm3 als Abhängigkeit mitinstalliert wurde.
Wozu überhaupt Pulseaudio? Was soll das bringen? Nutzt Ihr das vielleicht aus einem bestimmten Grund?
 
Viele Anwenungen beharren heute auf Pulseaudio und es ist oft bei Paketen als Option gewählt. Wenn ich aus den Ports baue, vermeide ich es, weil ich keinen Sinn darin sehen kann. Das bedeutet nicht, dass ich es schlecht reden möchte.
KDE4 wird es sicherlich in irgendeiner Unterabhängigkeit mitbringen.

Man kann nebeneinander mehrere Soundsysteme installieren und nutzen. Dass Pulseaudio zusätzlich installiert wird, sollte nicht etwas in Mate zerstören, das ist jedenfalls seltsam.
Diese Lautsprechersymbole sind meist nur Abkürzungen zu grafischen Mixer-Programmen, die sich auch direkt aufrufen lassen. Bei mir derzeit stark im Kurs: /usr/local/bin/xfce4-mixer aber es gibt auch andere. Mitunter kann da auch das Audio-System oder die HW gewählt werden, auf die die Regler sich dann beziehen sollen.
 
Als jemand der Code für die Audioausgabe in (gar nicht mal so aufwändigen) Spielen geschrieben hat, sage ich: Pulseaudio ist eine noch größere Zumutung als ALSA. Es hat inakzeptabel hohe Latenzen, es ist bei weniger verbreiteten Formaten (16 Bit, 22kHz, Mono) massiv verbuggt. Und es gibt seit vielen, vielen, zu vielen Jahren keinerlei Ambitionen daran mal was zu ändern. Daher ist meine Empfehlung Pulseaudio zu vermeiden und jedem Gott dort draußen zu beten, dass Poettering nicht auf die Idee kommt es als systemd-pulseaudio in sein neues Meisterwerk zu integrieren.
 
Mir gehen gerade die Götter aus ... ich finde nur Linus Torvalds, Lennart Poettering und, das Gnomesche Orakel zu RedHat. Vielleicht braucht man für Linux einfach nur einen dementsprechend hohen Level an Eigenmasochismus.
 
Meinst Du den Theo (mir fällt auch hier nur einer ein) ?
Wer hat denn in der Linux Welt sonst noch ernsthaft was zu sagen ... RMS kann es nicht sein (sonst hätten die kein systemd) auch, wenn er als großes Vorbild anzusehen ist und, seine erbrachten Leistungen großen Respekt verdienen ?
 
Der OpenBSD-Theo natürlich, der hilft sicherlich gerne mal mit einem Tipp an die Linuxer aus ... wobei das vermutlich wenig PC wird.
 
Zurück zum Thema. Google findet sehr viele Einträge zu Problemen mit PulseAudio (siehe Debian). Ich benutze OSS ... wozu PulseAudio, also laut Herrn Poettering sinngemäß aus einem Interview, weil nur PulseAudio auf moderner Hardware und „consumer electronics" super funktioniert und, er ALSA und OSS als veraltet ansieht. Es bringt, mit und ohne systemd viel Ärger. Was liegt Dir mehr Mate oder Gnome 3 ? Wenn Mate, dann stellt sich die Frage nicht - wenn Gnome 3 dann, mußt Du mit der Situation leben. Es ist auch davon abhängig, was Du brauchst / machen willst.
 
Das eigentliche Problem ist das Linux kein Channel Mixing im Kernel macht. Das hat den Weg für dutzende inkompatible Userland-Lösungen frei gemacht. Die unterstützen dann noch zusätzliche Features wie Streaming. Aber den ganzen Ärger hätten wir nicht, wenn Linux Channel-Mixing im Sound-Treiber erledigen würde.
 
Das eigentliche Problem ist das Linux kein Channel Mixing im Kernel macht. Das hat den Weg für dutzende inkompatible Userland-Lösungen frei gemacht. Die unterstützen dann noch zusätzliche Features wie Streaming. Aber den ganzen Ärger hätten wir nicht, wenn Linux Channel-Mixing im Sound-Treiber erledigen würde.

Macht FreeBSD denn Channel Mixing im Kernel? Und was bedeutet das genau? Beispiele?
 
Macht FreeBSD denn Channel Mixing im Kernel? Und was bedeutet das genau? Beispiele?
Der Soundtreiber bekommt von einer Audioquelle einen Rohdatenstrom mit Sound für 1-n Kanäle.

Die billigsten Soundkarten können genau einen solchen Datenstrom aufnehmen, je nachdem kann es aber auch sein, dass die Karte 4 oder sogar 16 in Hardware mixen kann. Der Treiber muss das Feature nur nutzen.

Unter Linux ist das so, dass Du pro Soundkarte eine Senke (Device Node) hast (unter FreeBSD wäre das Device z.B. /dev/dsp0). Das heißt es kann nur eine Anwendung die Soundkarte direkt verwenden. Alle anderen bleiben außen vor. Also braucht man einen Sound-Server der sich das Device krallt und alle Audioquellen in einen Datenstrom mischt.

Unter FreeBSD ist das so, dass man sogenannte vchans hat. Der sysctl hw.snd.maxautovchans gibt vor wie viele davon automatisch angelegt werden können.

Wenn jetzt unter FreeBSD eine Anwendung auf /dev/dsp0 zugreift bekommt die transparent die Device-Node /dev/dsp0.0 zugewiesen, die nächste /dev/dsp0.1 usw. Der Treiber verwendet dann das Hardware-Mixing und wenn mehr vchans existieren als die Soundkarte unterstützt fängt der Treiber an die Softwareseitig zu mixen. Macht also automatisch das wofür Du unter Linux den Soundserver brauchst.

Das Mixing von mehreren Audioquellen ist übrigens nicht so kompliziert. Die Rohdaten sind einfach nur gewünschte Amplituden, die je nach Verstärkungsfaktor halt einer Ausgangsspannung entsprechen. Um Kanäle zu Mixen muss man die auf die gleiche Samplerate konvertieren (dazu ggf. interpolieren oder filtern), dann kann man für jeden Sample Zeitpunkt einfach den Durchschnitt der gewünschten Werte raushauen.
 
Genau. Das der Linux-Kernel das nicht kann, bzw. ALSA nicht kann ist schlicht falsch. :) Ich selbst benutze auf meinem Media-Center PC nur ALSA und kann diverse Audio-Programme parallel nutzen.

Ich habe aber auch positives zu Pulseaudio von Seiten der Entwickler (hier im Fall von Kodi) von Audioanwendungen gehört. Scheinbar ist es so, dass du als Entwickler nicht mehr allzu viel machen musst, um den Ton korrekt auszugeben. Man gibt Pulseaudio einfach nur die Sounddaten und den Rest macht Pulseaudio, während das bei ALSA wohl deutlich komplizierter ist. Gerade was so Sachen wie 5.1->Stereo/Stereo->5.1 Downmix/Upmix usw. Wohl auch die Erkennung ob man nun Interner Lautsprecher, HDMI oder Kopfhöhrer haben will, soll wohl unter Pulseaudio deutlich besser ablaufen und weniger aufwändig sein (bzw. der Entwickler muss sich darum gar nicht mehr kümmern)

Ich hab mich damit noch nicht so auseinandergesetzt. Von daher -> kann auch alles falsch sein.

Ich selbst nutze auf meinem MediaCenter PC ALSA weil darauf auch diverse akkurate Emulatoren laufen und deshalb Audiolatenz extrem wichtig ist, weshalb Pulseaudio hier leider schlicht versagt. Auch sind die Anforderungen höher, da Pulseaudio nicht wenig Leistung benötigt.

Auf meinem Notebook komme ich um Pulseaudio nicht drum rum, weil Anwendungen wie Skype harte Abhängigkeiten an Pulseaudio haben. Aber ich habe hier auch keine Probleme mit dem Sound. Darum habe ich auch keine Lust mich mit dem Pulseaudio-shim zu befassen.

Man hat übrigens auch schon seit einiger Zeit die Möglichkeit (auch offiziell) den JACK Soundserver unter Pulseaudio zu schieben. Das erhöht zwar die Latenz von Pulseaudio weiter, aber so kann man alles wichtige auf JACK stellen und GNOME und Pidgin Klänge kommen halt 10ms später als sonst ;)
 
ALSA kann tatsächlich seit einigen Jahren mehrere Streams im Userland mixen. Das geschieht per "dmix", was ein ganz normales ALSA-Plugin ist. Es ist seit ~2013 auch standardmäßig deaktiviert. Damit kam es viel zu spät, Pulseaudio war da schon voll lebendig...
 
Das ist auch nicht korrekt. dmix ist deaktiviert, wenn die Soundkarte selbst Hardware-Mixing kann. Meldet die Hardware kein Hardware-Mixing, dann schaltet ALSA automatisch dmix ein.

Man muss es nur konfigurieren, wenn man digitale Ausgänge mixen möchte.

Pulseaudios Existenz basiert auch nicht darauf, dass ALSA nicht 2 Streams gleichzeitig abspielen konnte. Da gab es schon zig andere Soundserver. Pulseaudio wollte Netzwerktransparenz im Stil von X11.
 
Pulseaudios Existenz basiert auch nicht darauf, dass ALSA nicht 2 Streams gleichzeitig abspielen konnte. Da gab es schon zig andere Soundserver. Pulseaudio wollte Netzwerktransparenz im Stil von X11.
Das ging auch vor PulseAudio schon mit vielen Sound-Daemons. PA ist die NIH-Lösung die sich leider durchgesetzt hat.
 
Das ist auch nicht korrekt. dmix ist deaktiviert, wenn die Soundkarte selbst Hardware-Mixing kann. Meldet die Hardware kein Hardware-Mixing, dann schaltet ALSA automatisch dmix ein.
Mkay, dass er dmix nur nutzt, wenn die Karte nicht in hardware mischen kann, wusste ich nicht.
 
Zurück
Oben