RoarAudio/Vortrag/Was ist RoarAudio: Unterschied zwischen den Versionen

Aus UUGRN
(→‎Produkte: + ne menge Inhalt...)
Zeile 49: Zeile 49:
  
 
=== Produkte ===
 
=== 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 ====
 
==== 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.
 +
 
 +
==== 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).
  
==== Haupt Packet ====
+
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.
...
 
  
 +
<!--
 
===== VS API =====
 
===== VS API =====
 
...
 
...
 +
-->
  
 
==== µRoar und µRoarD ====
 
==== µ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.
  
 
==== RoarAudio PlayList Daemon ====
 
==== RoarAudio PlayList Daemon ====
Zeile 67: Zeile 81:
  
 
==== aroarfw und SCRSI ====
 
==== 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 die das eigentliche Programm und die Schnittstelle zu RoarAudio eingefügt wird. Dies dient vor allem zum einbetten von µRoarD in andere Applikationen.
  
 
=== Zusammenfassung ===
 
=== Zusammenfassung ===

Version vom 9. April 2011, 01:16 Uhr

Was ist RoarAudio?
Ziel
ein Vortrag über das RoarAudio Projekt vor einem Unixpublikum mit keinem oder geringem Vorwissen zum Thema.
RoarAudio Logo

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.

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.


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

RoarAudio PlayList Daemon

...

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 die das eigentliche Programm und die Schnittstelle zu RoarAudio eingefügt wird. Dies dient vor allem zum einbetten von µRoarD in andere Applikationen.

Zusammenfassung

...