RoarAudio: Unterschied zwischen den Versionen
(Grosser brocken ueber die Komponenten) |
K (winzige text korrektur) |
||
Zeile 18: | Zeile 18: | ||
Auch sei erwähnt das ein RoarAudio Sound Server weitere Protokolle von anderen Sound Servern implementieren kann. Dadurch wird nahe zu der komplette über bleibende Bereich der Applikationen die nicht mit Kompatibilitäts Bibliotheken gestartet werden können unterstützt. Siehe hierzu die [[RoarAudio/Installation_und_Einrichtung#Liste_der_unterst.C3.BCtzten_Protokolle|Liste der unterstützten Protokolle]]. | Auch sei erwähnt das ein RoarAudio Sound Server weitere Protokolle von anderen Sound Servern implementieren kann. Dadurch wird nahe zu der komplette über bleibende Bereich der Applikationen die nicht mit Kompatibilitäts Bibliotheken gestartet werden können unterstützt. Siehe hierzu die [[RoarAudio/Installation_und_Einrichtung#Liste_der_unterst.C3.BCtzten_Protokolle|Liste der unterstützten Protokolle]]. | ||
Ein Sound-Server mischt Audio Daten, die von verschiedenen Applikationen auf einer Soundcard abgespielt werden sollen. RoarAudio erweitert dieses Konzept indem er auch andere so genannte Output Streams haben kann als Soundcards: unter anderem Dumps in Dateien, [[Pipe]]s oder Streaming an einen (Web-)Streaming Server. Auch ist es möglich Daten nicht nur von Applikationen zu beziehen sondern die Input Streams auch Daten aus Dateien oder über das Netzwerk beziehen zu lassen. Ebenso ist es möglich Daten über Geräte wie Soundcards und [[ISDN]] Adaptern zu beziehen. | Ein klassischer Sound-Server mischt Audio Daten, die von verschiedenen Applikationen auf einer Soundcard abgespielt werden sollen. RoarAudio erweitert dieses Konzept indem er auch andere so genannte Output Streams haben kann als Soundcards: unter anderem Dumps in Dateien, [[Pipe]]s oder Streaming an einen (Web-)Streaming Server. Auch ist es möglich Daten nicht nur von Applikationen zu beziehen sondern die Input Streams auch Daten aus Dateien oder über das Netzwerk beziehen zu lassen. Ebenso ist es möglich Daten über Geräte wie Soundcards und [[ISDN]] Adaptern zu beziehen. | ||
Ein weiterer Unterschied zu herkömmlichen Sound-Servern ist, dass RoarAudio auch verschiedene komprimierte [[Codec]]s unterstützt wie [[Vorbis]], [[Speex]], [[CELT]] und andere. | Ein weiterer Unterschied zu herkömmlichen Sound-Servern ist, dass RoarAudio auch verschiedene komprimierte [[Codec]]s unterstützt wie [[Vorbis]], [[Speex]], [[CELT]] und andere. |
Version vom 8. Mai 2010, 11:27 Uhr
RoarAudio ist ein Sound-System für alle POSIX konformen Betriebssysteme (GNU/Linux, *BSD, Mac OS X und andere) unter aktiver Entwicklung. Es existieren auch experimentelle Ports zu anderen Systemen. RoarAudio kann als so genanntes drop-in-replacement für alle gängigen Sound Server verwendet werden. Das heißt das RoarAudio diese ersetzen kann ohne das die Anwendungs Software ersetzt werden muss oder Veränderungen an ihr oder Ihrer Konfiguration (abgesehen von Trivial-Änderungen) vorgenommen werden muss. Er ist als Ersatz für den Enlightened Sound Daemon (ESD, EsounD) entstanden und bietet viele zusätzliche Funktionen zum Beispiel für den Studio Betrieb.
RoarAudio besteht aus mehren Komponenten die auf einander Aufbauen:
- Der Sound Server
- Der Sound Server verarbeitet die anfragen der Klienten und mischt gegebenenfalls die (Audio-) Daten. Als Sound Server können für RoarAudio Zum Beispiel roard, µRoarD oder nrd zum Einsatz kommen.
- Die Klient-Bibliotheken
- Die Klient-Bibliotheken bieten den Klienten eine Schnittstelle an über die sie mit den Sound Servern kommuniziren können. Auch können weitere Funktionen angeboten werden wie Automatisches auffinden von Servern, Ein-/Ausgabe-Abstraktion und ähnliches welches die Kommunikation Erleichtert. Zum Einsatz kommen hier vor allem libroar und µRoar
- Klient Applikationen
- Die Klient Applikationen sind in der Regel Dienstprogramme dies Benutzers (Wie Mixer-GUIs), sowie Multimedia Programme.
- Kompatibilitäts Bibliotheken
- Diese Bibliotheken dienen dazu Applikationen welche keine native Unterstützung für RoarAudio besitzen eben diese an zu bieten. Dies geschieht in den meisten fällen in dem sie Bibliotheken anderer Sound Systeme und Sound Server emulieren. Diese Bibliotheken sind der Hauptgrund warum RoarAudio als drop-in-replacement angesehen werden kann und ein wichtiger Teil des Projektes. Für eine Liste siehe Liste der Kompatibilitäts Biblotheken.
- Kompatibilitäts Binarys
- Hierbei handelt es sich um eine Sammlung von kleinen Dienstprogrammen die Dienstprogramme anderer Sound Server und Sound Systeme emulieren und im Hintergrund auf die Dienstprogramme welche RoarAudio zur Verfügung stellt zurückgreifen. Siehe hierzu auch die Liste der Kompatibilitäts Binarys.
Auch sei erwähnt das ein RoarAudio Sound Server weitere Protokolle von anderen Sound Servern implementieren kann. Dadurch wird nahe zu der komplette über bleibende Bereich der Applikationen die nicht mit Kompatibilitäts Bibliotheken gestartet werden können unterstützt. Siehe hierzu die Liste der unterstützten Protokolle.
Ein klassischer Sound-Server mischt Audio Daten, die von verschiedenen Applikationen auf einer Soundcard abgespielt werden sollen. RoarAudio erweitert dieses Konzept indem er auch andere so genannte Output Streams haben kann als Soundcards: unter anderem Dumps in Dateien, Pipes oder Streaming an einen (Web-)Streaming Server. Auch ist es möglich Daten nicht nur von Applikationen zu beziehen sondern die Input Streams auch Daten aus Dateien oder über das Netzwerk beziehen zu lassen. Ebenso ist es möglich Daten über Geräte wie Soundcards und ISDN Adaptern zu beziehen.
Ein weiterer Unterschied zu herkömmlichen Sound-Servern ist, dass RoarAudio auch verschiedene komprimierte Codecs unterstützt wie Vorbis, Speex, CELT und andere.
RoarAudio ist dafür entworfen eine sehr niedrige Latenz aufzuweisen. Sie liegt zwischen < 1ms und 10ms. Auch besteht volle Netzwerk-Transparenz. Dass heißt das Applikationen nicht zwangsweise auf dem selben Rechner laufen müssen wie RoarAudio selbst. Die Applikationen (Clients) können sich auch via IP oder DECnet auf den Server miteinander verbinden.
Kompatibilität
RoarAudio bringt diverse Plugins sowie Kompatibilitäts-Layer (Bibliotheken + Binarys) mit. Zu den wichtigsten zählt die libroaresd, welche es jeder Applikation, die EsounD Unterstützung besitzt, ermöglicht RoarAudio zu nutzen. Da diese Bibliotheken Binär-kompatibel sind ist es nicht nötig die Applikation erneut aus dem Source-Code heraus zu kompilieren. Weitere Plugins sind unter anderem für MPlayer, XMMS und gstreamer (GNOME) verfügbar. An einem Ersatz für aRts (KDE) wird gearbeitet.
Lizensierung
Im Moment ist das Projekt unter der GPLv3 und LGPLv3. Auf Grund diverser Lizenz Probleme unterliegen alle Binär Versionen der GPLv3. Es besteht das Streben die Lizensierung auf eine weniger strikte Lizenz umzustellen.
Um Programmen unter nicht kompatibler Lizenz den Zugriff auf RoarAudio zu ermöglichen wurde µRoar geschrieben. Es handelt sich hierbei um eine minimalistsche Bibliothek welche den Zugriff, vor allem auf win32, ermöglicht.
Projekt Geschichte
Das Projekt hatte am Son den 31 August 2008 sein initialen Release.
Architektur
RoarAudio ist in mehrere unabhänigen Komponenten eingeteilt. Diese werden intern mit einem weitgehend Objekt Orientierten Design umgesetzt.
RoarAudio im OSI Modell
Schicht | Schicht Name | Objekte | Modul(e) | Beispiele |
---|---|---|---|---|
7 | Anwednung | Stream | Mixer | Musik Stück |
6 | Präsentation | Codec | Codec Filter | PCM, A-Law, Vorbis, ... |
5 | Sitzung | Client, Message | Steuer Logik | Befehle: QUIT, NEW_STREAM, ... |
4 | Transport | VIO, Socket | IO | TCP, NSP, ... |
3 | Netzwerk | VIO | IO | IP, DRP, ... |
2 | Sicherung | Ethernet, RS232, I2C, CAN, ... | ||
1 | Physikalisch | Kupfer, LWL, Funk |
Unterthemen
Weblinks
Offizielle Webpräsenz „RoarAudio”
Dieser Artikel ist leider sehr kurz. Also: Sei mutig und mache aus ihm bitte einen guten Artikel, wenn du mehr zum Thema „RoarAudio” weißt.