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

Lu07/2016: GIMP FÜR PROFIS

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

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

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

Aktuelle Fragen

Mit Firewire Videos improtieren?
Werner Hahn, 09.06.2016 11:06, 5 Antworten
Ich besitze den Camcorder Panasonic NV-GS330, bei dem die Videos in guter Qualität nur über den 4...
lidl internetstick für linux mint
rolf meyer, 04.06.2016 14:17, 3 Antworten
hallo zusammen ich benötige eure hilfe habe einen lidl-internetstick möchte ihn auf linux mint i...
thema ändern
a b, 29.05.2016 16:34, 0 Antworten
Hallo Linuxer zuerst alle eine schönen Sonntag, bevor ich meine Frage stelle. Ich habe Ubuntu 1...
Ideenwettbewerb
G.-P. Möller, 28.05.2016 10:57, 0 Antworten
Liebe User, im Rahmen eines großen Forschungsprojekts am Lehrstuhl für Technologie- und Innova...
Welche Drucker sind Linux-mint kompatibel?
Johannes Nacke, 20.05.2016 07:32, 6 Antworten
Hallo Ihr Lieben, ich bitte um mitteilung welche Drucker Kompatibel sind mit Linux-Mint. LG Joh...