Sound-Systeme unter Linux

Unter der Haube

Um Linux optimale Töne zu entlocken, müssen eine ganze Reihe von Software-Komponenten zusammenspielen. Wir zeigen, welche.

Eigentlich sollte der Linux-Anwender mit Komponenten wie Sound-Treibern, den dazugehörigen Daemons oder gar Multimedia-Frameworks nichts zu tun haben: Im Idealfall interessieren diese Dinge nur Programmierer, die über die entsprechenden Schnittstellen ihre Software mit der Fähigkeit zur Tonausgabe ausstatten. Der User muss schlimmstenfalls bei der Installation den Treiber für die Sound-Karte manuell angeben, falls die Hardware-Erkennung der Distribution patzt.

Doch Multimedia-interessierte Anwender stolpern nach wie vor zwangsläufig früher oder später über Akronyme wie ALSA, Arts, ESD, JACK oder OSS. Wie hängen diese Komponenten zusammen – und was genau haben sie eigentlich mit der Ausgabe von Musik und Tönen zu tun? Wer die Antwort auf diese Fragen kennt, tut sich im Umgang mit Multimedia-Applikationen deutlich leichter. Im folgenden betrachten wir daher einmal die verschiedenen Software-Schichten zwischen Hardware und Anwendungen genauer.

Sound-Treiber im Kernel

Als grundlegende Abstraktionsschicht zwischen Hardware und Software existieren unter Linux zwei verschiedene Architekturen: Das ältere OSS und das aktuelle ALSA. Die entsprechenden Kernel-Treiber müssen entweder einkompiliert oder als Modul geladen werden. Bei einem selbst erstellten Kernel hat man die Auswahl zwischen beiden Varianten der Einbindung, die sich hinsichtlich Performance und Kompatibilität nicht unterscheiden. Die gängigen Distributionen bringen die notwendigen Module bereits mit und laden in aller Regel bereits beim Systemstart die korrekten Treiber.

Bis Linux 2.4 diente das Open Sound System (OSS) als Standard-Soundtreiber im Kernel. Bei Programmieren ist es nicht zuletzt deshalb beliebt, weil es auch für BSD und andere Unix-Derivate Implementationen dieser Architektur gibt. Auf OSS aufsetzende Software lässt sich daher verhältnismäßig einfach portieren. Das im Linux-Kernel eingesetzten OSS/Free steht unter der BSD-Lizenz, die auch proprietäre Implementationen erlaubt. Unter dem Namen OSS/Linux stellt die Firma 4Front Technologies [1] eine solche bereit. Falls Ihnen der Name 4Front bekannt vorkommt: Das Unternehmen betätigt sich auch als Maintainer des verbreiteten Mediaplayers Xmms.

Mit dem Kernel 2.6 hat offiziell eine neue Sound-Architektur OSS abgelöst: ALSA [2]. Das Kürzel steht für Advanced Linux Sound Architecture. ALSA kommt mit Sound-Geräten vom Onboard-Chipsatz bis zur professionellen Multikanal-Soundkarte zurecht, für die es modularisierte Soundtreiber zur Verfügung stellt. Im Gegensatz zu OSS ist die Architektur Thread-sicher und kommt daher auch ohne Probleme mit Mehrprozessor-Systemen klar. Zudem besitzt sie die Fähigkeit zum Full Duplexing, also zum parallelen Aufnehmen und Abspielen von Sound. ALSA bricht jedoch nicht völlig mit OSS, sondern stellt zur Erhaltung der Kompatibilität über die Bibliothek libaoss eine Userspace-Emulation der OSS-Programmierschnittstelle zur Verfügung. So können OSS-basierte Anwendungen weiterhin auf die alte API zugreifen.

Übrigens spricht aus technischer Sicht auch nichts dagegen, Module für beide Architekturen parallel auf dem System zu halten. OSS operiert direkt auf der Kernel-Ebene; ALSA betreibt seine Prozesse dagegen im Userspace und stellt die meisten Funktionen über Bibliotheken (wie die alsa-lib) bereit. Mittelfristig wird aber unter Linux wohl ALSA den Vorgänger OSS komplett ablösen: Die meisten Tools wie etwa Mixer setzen schon jetzt auf ALSA auf, und für den Fall eines Falles hält die neue Architektur ja die zu OSS binärkompatible Emulation via libaoss parat. Last not least steht ALSA unter der GPL.

Sound-Server

Kernel-Treiber stellen lediglich eine Abstraktionsschicht zwischen Hardware und Applikationen bereit. Für den exklusiven Zugriff einer einzelnen Anwendung auf ein Sound-Gerät würde das ausreichen. Versuchen jedoch mehrere Programme konkurrierend auf ein solches Device zuzugreifen, treten naturgemäß Probleme auf. Hier kommen die so genannten Sound-Server ins Spiel. Als Daemons implementiert, regeln sie quasi als Multitasking-Layer die entsprechenden Anforderungen der Applikationen an den Kernel-Treiber. Zudem operieren die gängigsten Vertreter nach einem Client/Server-Modell, was die transparente Verteilung von Sound via Netzwerk ermöglicht.

Zu den Senioren dieser Software-Klasse zählt der Enlightenment Sound Daemon (ESD, [3]). Wie sein Name bereits vermuten lässt, wurde er ursprünglich für die gleichnamige Desktop-Oberfläche entwickelt, bildet heute jedoch einen Bestandteil des Gnome-Projekts. ESD beschränkt sich als purer Sound-Daemon ausschließlich auf die Verwaltung und Verteilung (auch via Netzwerk) der entsprechenden Daten.

Anders KDEs Sound-Architektur, die auf den Namen Analog Realtime Synthesizer oder kurz Arts [4] hört: Über die reine Sound-Daemon-Funktion hinaus bildet sie einen kompletten, modularen Analog-Synthesizer ab und bringt diverse Wellengeneratoren sowie Effekt- und Ausgabe-Module mit. Der Daemon artsd beherrscht zwar grundsätzlich Full Duplexing, arbeitet dabei aber nicht völlig fehlerfrei. Für die Netzwerk-Kommunikation setzt er auf das Protokoll MCOP [5]. Im Moment befindet sich Arts jedoch im Winterschlaf – der Server wird nicht mehr weiter entwickelt.

Als Dritter im Bunde tritt das relativ neue Jack Audio Connection Kit (JACK, [6]) an. Der für Posix-Systeme entwickelte Realtime-Soundserver läuft derzeit unter Linux sowie Mac OS X. Er stellt relativ hohe Ansprüche an Bandbreite und System-Latency, die Entwickler empfehlen für seinen Einsatz das Einspielen eines Low-Latency-Kernel-Patches. Für schmalbrüstige Rechner eignet sich JACK daher nur bedingt.

Dafür wartet er mit beeindruckenden Eigenschaften auf: Er beherrscht volles Multiplexing bei niedrigen Verzögerung sowie fehlerfreies Full Duplex; Applikationen lassen sich sowohl in Standalone-Form als auch als Plugins einbinden. Eine Master/Slave-Gerätekonfiguration ermöglicht simultane Start/Stop- oder Pause-Operationen über mehrere Applikationen bzw. Komponenten hinweg. Ein Architekturdiagramm zu JACK finden Sie bei Interesse unter [7]. Aufgrund seiner Vorteile gilt JACK mittlerweile als aussichtsreicher Kandidat für eine mögliche Ablösung für Arts.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • 1.0 erschienen
    Gestern veröffentlichten die Entwickler von Rosegarden-4 die erste stabile Version des beliebten Allround-Musik-Programms. Rosegarden ist eins der weitest entwickelten Musikwerkzeuge unter Linux und auch im professionellen Umfeld für viele Musiker das Werkzeug der Wahl.
  • Musikbox
    Linux bietet für jeden Geschmack die passenden Programme, so auch für Musikfreunde. Die technischen Grundlagen des Linux-Soundsystems erklärt der folgende Artikel.
  • Alsa stark überarbeitet
  • VST-Audio-Plugins in Linux Abspielen
    Professionelles digitales Audio war früher die Domäne proprietärer Systeme, Linux hat aber mittlerweile aufgeholt. Heute lassen sich sogar Windows-spezifische VST-Plugins im Linux-Studio verwenden – wenn auch nicht ganz ohne Umstände.
  • Multimedia-Distribution Dream Studio
    Wer keine Zeit hat, seine Lieblingsdistribution manuell zum Tonstudio aufzubohren, findet in Dream Studio eine komfortable Fertiglösung aus Profi-Hand.
Kommentare

Infos zur Publikation

LU 12/2016: Neue Desktops

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Drucker Epson XP-332 unter ubuntu 14.04 einrichten
Andrea Wagenblast, 30.11.2016 22:07, 2 Antworten
Hallo, habe vergeblich versucht mein Multifunktionsgerät Epson XP-332 als neuen Drucker unter...
Apricity Gnome unter Win 10 via VirtualBox
André Driesel, 30.11.2016 06:28, 2 Antworten
Halo Leute, ich versuche hier schon seit mehreren Tagen Apricity OS Gnome via VirtualBox zum l...
EYE of Gnome
FRank Schubert, 15.11.2016 20:06, 2 Antworten
Hallo, EOG öffnet Fotos nur in der Größenordnung 4000 × 3000 Pixel. Größere Fotos werden nic...
Kamera mit Notebook koppeln
Karl Spiegel, 12.11.2016 15:02, 2 Antworten
Hi, Fotografen ich werde eine SONY alpha 77ii bekommen, und möchte die LifeView-Möglichkeit nu...
Linux auf externe SSD installieren
Roland Seidl, 28.10.2016 20:44, 1 Antworten
Bin mit einem Mac unterwegs. Mac Mini 2012 i7. Würde gerne Linux parallel betreiben. Aber auf e...