Soundsystem
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Ubuntu setzt bei der Standard-Installation auf die Advanced Linux Sound Architecture, kurz ALSA genannt. ALSA übernimmt die Ansteuerung der Soundkarten und stellt die eigentlichen Soundkarten-Treiber zur Verfügung. Diese Treiber sind bereits Teil des Kernels und brauchen deshalb nicht extra installiert zu werden. Im weiteren Text werden sie deshalb ALSA-Treiber genannt.
Vorgänger von ALSA (bis 2003) war das Open Sound System 🇬🇧 (OSS). Man kann es ausprobieren, falls die ALSA-Treiber wirklich gar nicht mit der vorhandenen Soundkarte funktionieren. Dies ist aber selten der Fall. Weiteres dazu siehe unten.
Weiterhin existieren noch Schnittstellen, welche in das Soundsystem zwischengeschaltet sind. Diese sollen den Programmierern das Leben erleichtern, der Anwender hat damit wenig zu tun. Bei Ubuntu ist dies GStreamer.
Einstellungen¶
Bei Ubuntu sind die Regler unter "Systemeinstellungen → Geräte → Klang" zu finden.
Bei Ubuntu mit Gnome-Shell (ab 18.04) sind die Regler unter "Einstellungen → Klang" zu finden.
Bei Kubuntu stellt man das Soundsystem im Kontrollzentrum ein.
Soundserver¶
Unter ALSA (und auch OSS) kann immer nur eine Anwendung gleichzeitig auf ein Ein- oder Ausgabegerät zugreifen. Es gibt zwar Audio-Interfaces, die mehrere virtuelle Geräte zur Verfügung stellen und die Klänge intern mischen. Das ist aber die Ausnahme, weswegen diese Funktion von einem sogenannten Soundserver zur Verfügung gestellt wird.
Soundserver übernehmen das Zusammenmischen mehrerer Tonquellen und die Weitergabe der Tonsignale an ALSA. Standard unter Ubuntu ist PulseAudio. Für professionelle Anwendungen steht JACK zur Verfügung. Als neue Generation der Soundserver und Standard ab Ubuntu 22.10 gilt das Multimedia-Framework Pipewire.
Anforderungen¶
Bei der Wahl des Soundservers sollte man bedenken, welche Anforderungen man an diesen stellt. Als Kriterien sind dabei möglich:
einfache Benutzung
Qualität
Anpassbarkeit
Netzwerkfähigkeit
Geschwindigkeit
Jeder Soundserver hat Vor- und Nachteile:
PulseAudio¶
PulseAudio (oft einfach kurz pa) ist als Soundserver bis Ubuntu 22.10 voreingestellt. Er bietet vielfältige Möglichkeiten und besitzt eine einfache grafische Oberfläche, um die Klang-Ereignisse auf dem Rechner zu kontrollieren. Des weiteren ist er noch netzwerkfähig. Jedoch beansprucht PulseAudio einiges an Rechnerleistung, was auf älteren Rechnern zu stockendem Ton führen kann. Wie man PulseAudio passend konfiguriert, steht hier: PulseAudio.
ALSA¶
Da ALSA in der Ubuntu-Standardinstallation sowieso immer aktiv ist, ist es die einfachste Möglichkeit für die Tonausgabe. Gleichzeitig stellt es auch die kürzesten Wege bei der Signalverarbeitung zur Verfügung und kommt mit sehr wenig Rechenzeit aus. Gleichzeitig bietet ALSA ein sehr hohes Maß an Anpassbarkeit durch selbst definierbare Schnittstellen. Näheres dazu findet man bei .asoundrc. Wie man das System ganz auf ALSA umstellt, steht im Artikel Sound Problembehebung.
JACK¶
Wie wäre es, ganz einfach die Audioausgabe von einem Programm zu einem anderen zu schicken? Oder vielleicht an zwei andere Programme? Und dann das Ergebnis einfach wieder im ersten Programm aufzuzeichnen? Das geht ganz einfach: mit dem Jack Audio Connection Kit (JACK). Wer diese Funktionalität nicht benötigt, ist mit PulseAudio besser bedient, das standardmäßig schon fertig eingerichtet ist. Will man aber ein Tonstudio realisieren, wird JACK interessant. Um die Konfiguration zu erleichtern, stehen mehrere Werkzeuge zur Verfügung, die unter JACK/Grafische Konfiguration aufgelistet sind. In der Multimedia-Distribution Ubuntu Studio ist Jack der Standard-Soundserver. Er wird dort standardmäßig durch das Programm Studio Controls 🇬🇧 konfiguriert, das in der Praxis allerdings nicht immer reibungslos läuft. Insofern empfiehlt sich von vornherein das Umsteigen auf das aus den Ubuntu-Paketquellen installierbare Programm Cadence.
PipeWire¶
Das Multimedia-Framework PipeWire hat das Potenzial, sowohl PulseAudio als auch JACK in Zukunft zu ersetzen, das es wie JACK auch mit niedrigen Latenzen arbeiten kann. Dies kann ermöglicht werden, das PipeWire einheitliche Schnittstellen zu den Programmen bereitstellt, die vorher nicht kompatibel waren. Daher lassen sich diese Anwendungen nun nebeneinander betreiben. Dabei stellt das Programm Konfigurationsdateien und bereits bekannte Werkzeuge für die JACK- und PulseAudio-Schnittstellen bereit. Es seinen Vorgängern bezüglich Geschwindigkeit und Effizienz jedoch überlegen.
OSS4¶
OSS4 ist die letzte Version des Open Sound Systems, das in der Vergangenheit eine Zeitlang das Standardsoundsystem von Linux war. OSS4 kann unter bestimmten Umständen Vorteile gegenüber ALSA bieten, lässt sich allerdings unter Ubuntu nur manuell installieren. Seit Kernel 2.5 (2003) wurde es durch ALSA ersetzt.
ESD¶
Der ESD (Enlightened Sound Daemon) hat eigentlich nur eine Eigenschaft: Er fungiert als Softwaremixer. Eigentlich spricht nichts für die Verwendung des ESD, aber auch nichts gravierendes dagegen. Bei GNOME werden die Systemklänge über PulseAudio geleitet. Näheres dazu in Sound Problembehebung.
Routing¶
Unter Routing versteht man den Weg, den die Tonsignale nehmen, wenn sie durch den Computer geleitet werden: ausgehend von der Tonquelle, zum Beispiel einem Abspielprogramm für Musik oder Video, bis hin zur Soundkarte. Es gibt mehrere sinnvolle Möglichkeiten, den das Tonsignal nehmen kann. Die Betonung liegt hierbei auf "sinnvoll", denn es lassen sich auch unsinnige Szenarien realisieren.
Es ist oft sinnvoll, den Abspielprogrammen mitzuteilen, welchen Soundserver sie benutzen sollen. Ansonsten kann es passieren, dass ihre Ausgaben ins Leere laufen und man nichts hört. Technisch ausgedrückt: Die Tonquellen sollten so konfiguriert werden, dass die passende Ausgabe-Schnittstelle verwendet wird.
ALSA¶
Der kürzeste Weg ist die direkte Kommunikation mit den ALSA-Treibern:
Soundquelle -> ALSA-Treiber -> Hardware
Dies hat allerdings den Nachteil, dass Soundkarten, die keine Hardwaremixing beherrschen, immer nur eine Soundquelle wiedergeben können. Deshalb gibt es die Möglichkeit, den ALSA-Soundserver (im weiteren kurz ALSA genannt) zu verwenden:
Soundquelle -> ALSA -> ALSA-Treiber -> Hardware
Will man hier Änderungen vornehmen, nutzt man das Werkzeug .asoundrc.
PulseAudio¶
Ab Ubuntu 8.04 wird PulseAudio verwendet. Mittlerweile können fast alle Programme mit PulseAudio kommunizieren, viele (z.B. die Browser Firefox und Chromium/Chrome) setzen es voraus.
Soundquelle -> PulseAudio -> ALSA-Treiber -> Hardware
PulseAudio ist auch netzwerkfähig:
Soundquelle -> PulseAudio -> Netzwerk -> PulseAudio -> ALSA-Treiber -> Hardware
Dies bedeutet zum Beispiel: Wenn auf zwei Rechnern PulseAudio aktiv ist, läuft auf dem einen das Abspielprogramm, während der andere den Ton ausgibt. Dies funktioniert bei genügend hoher Bandbreite der Verbindung sogar über das Internet.
Falls es nötig sein sollte kann ein ALSA-Soundserver sowohl vor als auch nach PulseAudio in den Signalweg eingeschaltet werden. Dies wird aber nur selten benötigt.
JACK¶
JACK bietet umfangreiche Möglichkeiten und ist für professionelle Anforderungen geeignet. Wer die Möglichkeiten nicht benötigt, ist mit Pulse Audio besser bedient.
Soundquelle -> JACK -> ALSA-Treiber -> Hardware
Geräte¶
Die Übergabe der Klangdaten von den Programmen an die Soundserver geschieht über sogenannte Soundgeräte (in Englisch "sound devices"). Generell erledigt Ubuntu die nötigen Einstellungen, um die Geräte anzusprechen. Da es mehrere Soundserver gibt, muss man Ubuntu mitteilen, welchen Soundserver man verwenden will.
PulseAudio¶
Nachdem man wie in PulseAudio beschrieben vorgegangen ist, werden die Soundausgaben mit Hilfe des ALSA-Routings direkt dem Soundserver übergeben. Alternativ kann man die Programme selbst mit PulseAudio kommunizieren lassen. Die Geräte selbst sind über die grafische Oberfläche des PulseAudio-Mixers (pavucontrol) zu erreichen und erscheinen dort als Programm-Name.
PipeWire¶
Bei PipeWire werden Geräte über den Session-Manager WirePlumber 🇬🇧 verwaltet. Da PipeWire eine Implementation eines PulseAudio-Servers ist, kann auch pavucontrol zur Konfiguration genutzt werden.
ALSA¶
Bei ALSA wird direkt auf Hardware-Ebene die erste Soundkarte (Nummer Null) angesprochen, z.B. als "hw:0
". Hat man mehrere Soundkarten, so lässt sich die zweite mit "hw:1
" ansprechen. Dies benötigt man aber selten. ALSA versteht außerdem weitere Benennungen, die nicht von der Ladereihenfolge der Module abhängig sind (siehe ALSA).
Wird zur Konfiguration von ALSA asoundconf verwendet, so wird ein Standard-Gerät mit dem Namen "default
" definiert. Dieses nimmt die Klangdaten entgegen und spielt sie ab. Diesen Namen trägt man in die Konfiguration von Abspielprogrammen ein - falls es nicht bereits schon dort eingetragen ist. Eigene Geräte können mittels einer .asoundrc definiert werden.
In der Regel ist von Ubuntu das default-Gerät bereits vordefiniert - man braucht gar nichts einzustellen.
JACK¶
Bei JACK nutzt man am besten das Programm Qjackctl oder Cadence 🇬🇧. In der Multimedia-Distribution Ubuntu Studio wird Jack durch das Program Studio Controls🇬🇧 konfiguriert.
ESD¶
ESD erzeugt ebenfalls ein Default-Gerät, welches man einfach nutzen kann, wenn man das Soundsystem auf ESD umgestellt hat.
OSS¶
Eine Besonderheit stellen die sogenannten oss-devices dar. In den Anfängen von Linux wurden sämtliche Klangausgaben über die Gerätedatei /dev/dsp abgewickelt. Einige Programme benutzen immer noch dieses und nur dieses Gerät zur Tonausgabe. Da es aber mittlerweile obsolet geworden ist, stellen die Soundserver eine Emulation dieses Geräts zur Verfügung. Bei ALSA aktiviert man diese Emulation durch Installation des Paketes alsa-oss. Näheres dazu findet man unter Sound Problembehebung.
Mixer¶
Der Mixer (auch Mischpult oder Lautstärke-Regelung genannt) greift direkt auf die vom Treiber zur Verfügung gestellten Lautstärke-Regler zu. Einen Überblick über die verfügbaren Regler erhält man mit Alsamixer. Jede Desktop-Umgebung (GNOME, KDE, usw.) bringt auch noch eigene Mixer mit, die im Prinzip aber nichts anderes als der Alsamixer machen. Sie haben lediglich ein anderes Aussehen, und einige Regler können als "unsichtbar" eingestellt sein, was sich jedoch leicht ändern lässt. Eine Übersicht ist im Artikel Mixer zu finden.
Der PulseAudio-Mixer (pavucontrol) stellt im Gegensatz zu den anderen Mixern für jedes Programm eigene Lautstärkeregler zur Verfügung.
Problembehebung¶
⚓︎ Sollte die Soundkarte einmal wirklich nicht mit ALSA funktionieren, so kann man das Open Sound System 🇬🇧 nutzen. Für den nicht-kommerziellen Einsatz ist die Verwendung kostenlos. Welche Karten unterstützt werden und wie man sie einbindet, findet man auf der OSS-Website. Ausdrücklich erwähnt seien hier die Soundblaster X-Fi Karten, welche von ALSA - wenn überhaupt - bisher nur rudimentär unterstützt werden.
Bei weiteren Problemen helfen die Artikel Soundkarten konfigurieren und Sound Problembehebung weiter. Prinzipiell ist es eine gute Idee, bei Soundproblemen mit einer einfachen Konfiguration zu beginnen. In der Regel bedeutet das die Umstellung des Soundsystems auf ALSA. Sollte dieses dann funktionieren, kann man das Soundsystem beliebig erweitern.
Soundkarten mit Hardwaremixing¶
Sound Problembehebung (Abschnitt „Hardware-Mixing“) beschreibt, wie man Hardwaremixing benutzt.
Links¶
Soundkarten Übersichtsseite
Soundsystem unter Linux - Artikel LinuxUser 06/2005 🇩🇪