RoarAudio/Vortrag/Was ist RoarAudio
- Ziel
- ein Vortrag über das RoarAudio Projekt vor einem Unixpublikum mit keinem oder geringem Vorwissen zum Thema.
Abstrakt
Der Vortag "Was ist RoarAudio?" soll kurz das RoarAudio Projekt vorstellen. Er bewegt sich auf einer nicht-technischen Ebene und ist für alle Arten von Zuhörern geeignet.
Über den Referent
Philipp 'ph3-der-loewe' Schafft schreibt seit etwa 10 Jahren Software (primär in C und Perl). Im Moment studiert er Elektrotechnik/Automatisierungstechnik.
Besondere Interessen liegen in dem Bereich der Netzwerke und Bus Systeme, Mikrocontrollern, Kryptographie und Digitaler Audio Verarbeitung sowie Entwicklung kreativer Lösungen für Mathematik und Logik Rätseln und Übungen.
In seiner Freizeit beschäftigt er sich außerdem intensiv mit Großkatzen.
Vortrag
Was ist RoarAudio?
RoarAudio ist ein so genanntes Sound System. Es ist die Software welche zwischen einer Applikation des Benutzers, zum Beispiel eine Player, und dem Treiber sich befindet.
Das Sound System, und so auch RoarAudio, sorgt dafür das sich mehre Programme die vorhandene Hardware teilen können. Es sorgt dafür das einzelne Programme nicht gegenseitig sich den Zugang zu den Resourcen der Soundkarte versperren.
Auch fügt das Sound System zusätzliche Funktionalitäten hinzu. Hierzu zählen zum Beispiel getrennte Lautstärke Regelung für verschiedene Programme.
RoarAudio ist besonders auf die Produktion von Radio in Echtzeit ausgelegt. Es ist Netzwerktransparent. Das heißt das Programme auch über das Netzwerk Zugriff nehmen können. Auch kann man mit roard -- Was das ist Später -- direkt beispielsweise Internet Radio senden.
Neben seiner guten Netzwerkfähigkeit hebt sich RoarAudio auch durch die gute Unterstützung von Komprimierten Audio Übertragungen und der Unterstützung für Meta Daten hervor.
Audio Stack unter UNIX und GNU/Linux
Unter UNIX und auch unter GNU/Linux greifen Programme niemals direkt auf Hardware zu. Selbiges gilt auch für die Audio Ausgabe. Im allgemeinen Falle durchlaufen sie drei Schichten:
- Die Interne Schicht des Programms das etwas abspielen will,
- Das Sound System,
- Die Audio Treiber im Kernel.
In einigen fällen sind die Audio Treiber im Kernel und das Sound System das selbe. Dies ist beispielsweise bei OSS, dem Open Sound System, und ALSA, der Advanced Linux Sound Architecture. Oft ist dies aber auch getrennt. Diese beiden Treiber Pakete sind die wohl bekanntesten, auch wenn OSS entgegen landläufiger Meinung auf keinem aktuellen Betriebssystem als Standard Treiber vorkommt. OSS wird heute faktisch nur noch Emuliert.
RoarAudio Projektziele
Das RoarAudio Projekt hat sich zum Ziel gesetzt ein Sound System zu entwickeln das folgende Eigenschaften hat:
- Es soll den POSIX Philosophien weitestgehend gerecht werden.
- Besonders hervorzuheben ist die starke Anlehnung an das POSIX Ein-/Ausgabekonzept.
- Auch hervorzuheben ist die Portabilität: RoarAudio ist verfügbar für 8-Bit µ-Controllern bis hin zu Großrechnern mit OpenVMS, GNU/Linux, Alle arten von BSDs und Win32 eingeschlossen.
- Echte Netzwerkstransparenz. Daraus resultiert unmittelbar ein Server-Klient Konzept. Optimierungen für den häufigen Fall das Klient und Server auf dem Selben Rechner sind existieren.
- Funktionalität für die Radio Produktion.
- Funktionalität für den Einsatz im Bühnen und Lautraum Bereich.
Aus den obigen Überlegungen wurde klar das es sinnvoll ist keine klassische Software Entwicklung zu betreiben sondern viel mehr ein Protokoll zu entwickeln und eine Referenz Implementierung an zu bieten. Dies gescheit auch in der Praxis auf diesem Wege. Mehr dazu später.
Produkte
Das Projekt arbeitet an mehren Produkten gleichzeitig. Dazu gehören das Besagte Protokoll im Mittelpunkt und die angegliederten Implementierungen. Neben den direkt auf das Protokoll Bezug nehmenden Produkten werden auch einige nicht unmittelbar damit zusammenhängenden Software Pakete gepflegt die aber im Umfeld von RoarAudio nützlich sind.
Im folgenden werden nun ein paar dieser Produkte kurz vorgestellt.
Protokolle
Wie bereits erwähnt ist der Kern des Projekts das RoarAudio Protokoll.
Dieses wird unabhängig von der Software entwickelt. Es wird bei der Entwicklung keinerlei Rücksicht auf die spätere Implementierung genommen so das eine Implementierungs unabhängige und saubere Struktur entsteht.
Neben dem RoarAudio Protokoll ist noch erwähnenswert das ein zweites Protokoll namens Tantalos entwickelt wird: Dabei handelt es such um ein Protokoll zum automatischen finden von Kontent wie Musik im Netzwerk.
Status
Grundlegende Protokoll Entwicklung ist abgeschlossen. Es sind aber noch viele interessante Zusatz Funktionalitäten auf der Zu-Bearbeiten-Liste.
Haupt Paket
Das Haupt Paket ("roaraudio") ist ein versuch das Protokoll Referenz zu implementieren. Aber auch diese Implementierung ist unvollständig (primär bedingt durch die Zeit die es braucht die neuen Spezifikationen um zu setzen).
Das Paket besteht aus roard, dem Sound Server, libroar und freunden welche die Klient seitige Schnittstelle liefern und einigen Hilfsprogrammen so wie so genannten Kompatibilitäts Layern. roard kann neben dem RoarAudio Protokoll auch verschiedene Protokolle anderer Sound Systeme. Die Kompatibilitäts Layern dienen dazu Software die für andere Sound Systeme geschrieben sind mit RoarAudio Unterstützung so zu sagen nach zu rüsten. Es handelt sich hierbei nicht nur um eine OSS Emulation.
Status
Das Haupt Paket ist in einem gut Benutzbarem Stadium und in mehren GNU/Linux Distributionen vorhanden.
µRoar und µRoarD
Neben der Implementierung durch das Haupt Paket entstanden im Laufe der Zeit weitere Implementierungen des Protokolls. Die wichtigsten zwei sind µRoar und µRoarD.
Bei µRoar handelt es sich um eine Klient Bibliothek unter der LGPL Version 3. Diese wurde ursprünglich entwickelt um unter Win32 proprietären Programmen den Zugriff auf RoarAudio Server zu ermöglichen.
µRoarD hingegen ist ein zweiter RoarAudio Server. Er ist bei weitem nicht so vollständig wie roard dafür aber wie der Name schon erraten lässt deutlich schlanker.
Status
µRoar wird seit langem als Stabil angesehen. µRoarD ist in aktiver Entwicklung gilt allgemein als Stabil. Beide sind in mehren GNU/Linux Distributionen vorhanden.
RoarAudio PlayList Daemon
Beim RoarAudio PlayList Daemon handelt es sich um eine Wiedergabelisten Verwaltungs Software. Er dient dazu Wiedergabelisten zu verwalten und Einträge daraus ab zu spielen. Zusammen mit einem RoarAudio Server und einer GUI (zum Beispiel App::RPLD::GUI) erscheint er fast wie ein gewöhnlicher Player. Im Gegensatz zu diesen hat er aber keine Logik für den Umgang mit den Audiodaten und lässt diese ausschließlich durch den RoarAudio Server verwalten.
Im Zusammenhang mit dem RoarAudio PlayList Daemon oder kurz RPLD gibt es verschieden weitere Pakete wie dem Perl Modul Audio::RPLD zum steuern, App::RPLD::GUI -- einer GUI --, Romie -- einem Webfrondend -- oder auch vclt-tools -- einem Paket zum erstellen von Wiedergabelisten.
Status
Der RoarAudio PlayList Daemon erreicht bald seine Stabile Phase und befindet sich derzeit in einem gut benutzbaren Zustand. Er ist in mehren GNU/Linux Distributionen vorhanden.
aroarfw und SCRSI
Zu guter Letzt gibt es noch verschiedene Produkte für den Eingebetteten und teilweise Eingebetteten Einsatz:
aroarfw ist einen Hardware und System unabhäniges Framework zur Entwicklung von Software die RoarAudio verwendet. Es ist vor allem für Kleinst-Rechner wie µ-Controllern gedacht.
Bei SCRSI handelt es sich um eine Schnittstelle die zwischen das eigentliche Programm und die Schnittstelle zu RoarAudio eingefügt wird. Dies dient vor allem zum einbetten von µRoarD in andere Applikationen.
Status
Sowohl aroarfw als auch SCRSI stehen unter aktiver Entwicklung und sind in einem verwendbaren Zustand. Kontakt mit den Entwicklern wird aber empfohlen. aroarfw findet sich in mehren GNU/Linux Distributionen.
Zusammenfassung
Mittlerweile ist RoarAudio zu einer echten Alternative zu anderen Sound Systemen geworden. Gerade im Bereich der Radio und Web-Radio Produktion, aber auch beim Versand von Audio durch das Lokale Netzwerk ist es ein gutes Mittel.
Durch die Allgemein sehr Standard freundliche Einstellung des Projekts ist die Software zu vielem anderen gut Kompatibel.
Auch die Kompatibilitäts Layer sind auf jeden Fall ein großes Plus da so fast alle Software, auch ohne native RoarAudio Unterstützung, mit RoarAudio zusammenarbeiten kann.