Home / LinuxUser / 2005 / 06 / Sound-Systeme unter Linux

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

War doch klar...
(233 Punkte bei 16 Stimmen)
Re: War doch klar...
(162 Punkte bei 6 Stimmen)
Re: Skype für 64-Bit-Prozessor u. Suse 12.1
(161 Punkte bei 4 Stimmen)
Kubuntu verliert Finanzierung
(130 Punkte bei 4 Stimmen)
Offen fürs Geschäft
(80 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Unter der Haube

Sound-Systeme unter Linux

01.06.2005 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.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

1748 Hits
Wertung: 69 Punkte (1 Stimme)

Schlecht Gut

Infos zum Autor

Jörg Luther

Jörg Luther

Jörg Luther arbeitet seit 1995 als IT-Journalist. Seine Vorliebe für das freie Betriebssystem lebt er privat in der LUG Erding und beruflich seit 2004 als Chefredakteur des LinuxUser aus.

Zum Blog von Jörg Luther →


Infos zur Publikation

Infos zur Publikation

LinuxUser 03/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Duden Korrektor unter 64-Bit
Duden Korrektor unter 64-Bit
Tim Schürmann, 06.02.2012 10:36, 0 Kommentare

Der Duden Korrektor bietet eine äußerst nützliche Rechtschreib- und Grammatikkorrektur für LibreOffice und bringt in der aktuellen Version 8 e...

Aktuelle Fragen

Ubuntu 11.10 Compiz 3D Cube flackern
Moritz Obenauer, 12.02.2012 12:25, 0 Antworten
Hallo! Ich habe Ubuntu 11.10 mit Unity und den Compiz 3D Cube ein gerichtet. Er funktioniert...
Suse 12.1 Bootvorgang bleibt seit Update stehen
Wimpy *, 12.02.2012 09:22, 2 Antworten
Seit Update auf Kernel 3.1.9-1.4-desktop i686 bleibt der Bootvorgang stehen. Es erscheint der gr...
N24 Stick (Huawei E173) und Ubuntu 11.04
Patrick Obenauer, 11.02.2012 11:54, 1 Antworten
Hallo zusammen! Ich benutze einen alten Laptop, der mit Ubuntu 11.04 flott und problemlos läuft....
Wie kann man beim Einsatz von Compiz die Fenster-Dekoration einstellen?
GoaSkin , 10.02.2012 20:12, 0 Antworten
Hallo, ich nutze Linux Mint mit dem Gnome-Derivat Mate. Da die Distribution Compiz nicht autom...
rndc reload zone - failed bad zone
Ludwig jun. B., 06.02.2012 16:08, 2 Antworten
Schönen guten Tag, ich habe folgendes Problem. Immer wenn ich folgendes Kommando ausführen bek...