Bearbeiten von „RoarAudio“

Aus UUGRN

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und speichere dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 7: Zeile 7:
 
[[Bild:RoarAudio-Logo-0.0.3.png|thumb|right|RoarAudio Logo]]
 
[[Bild:RoarAudio-Logo-0.0.3.png|thumb|right|RoarAudio Logo]]
  
'''RoarAudio''' ist ein Sound-System für alle [[POSIX]] konformen Betriebssysteme (GNU/Linux, *BSD und andere) unter aktiver Entwicklung. Es existieren auch experimentelle Schnittstellen zu anderen Systemen. RoarAudio kann als sogenanntes ''drop-in-replacement'' für alle gängigen Sound Server verwendet werden. Das heißt, dass RoarAudio diese ersetzen kann ohne das die Anwendungs Software ersetzt werden muss oder Veränderungen an ihr oder der Konfiguration (abgesehen von kleinen Änderungen) vorgenommen werden muss. Er ist als Ersatz für den [[Enlightened Sound Daemon]] (ESD, EsounD) entstanden und bietet viele zusätzliche Funktionen, z.B. für den Studio Betrieb.
+
'''RoarAudio''' ist ein Sound-System für alle [[POSIX]] konformen Betriebssysteme (GNU/Linux, *BSD 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, dass 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.
  
 
== Einleitung ==
 
== Einleitung ==
  
Ein klassischer Sound-Server mischt Audio Daten, die von verschiedenen Applikationen auf einer Soundkarte abgespielt werden. RoarAudio erweitert dieses Konzept, indem es auch andere, sogenannte Output Streams als Soundkarte interpretieren kann. Unter anderem ist die Ausgabe als Dateie, [[Pipe]]s oder Streaming zu einen (Web-)Streaming Server möglich. Ausserdem können Daten nicht nur von Applikationen bezogen werden. Die Input Streams sind auch in der Lage, Daten aus Dateien oder über das Netzwerk zu beziehen. Weitere Datenlieferanten können Soundkarten oder [[ISDN]] Adapter sein.
+
Ein klassischer Sound-Server mischt Audio Daten, die von verschiedenen Applikationen auf einer Soundkarte abgespielt werden. RoarAudio erweitert dieses Konzept, indem es auch andere, so genannte Output Streams, als Soundkarten haben kann. Unter anderem sind Dumps in Dateien, [[Pipe]]s oder Streaming an einen (Web-)Streaming Server möglich. 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 von RoarAudio zu herkömmlichen Sound-Servern: es werden bereits verschiedene komprimierte [[Codec]]s unterstützt, wie z.B. [[Vorbis]], [[Speex]], [[CELT]] u.a.
+
Ein weiterer Unterschied zu herkömmlichen Sound-Servern ist, dass RoarAudio auch verschiedene komprimierte [[Codec]]s unterstützt wie [[Vorbis]], [[Speex]], [[CELT]] und andere.
  
'''RoarAudio''' wartet mit einer sehr niedrige Latenz auf (zwischen < 1ms und 10ms). Die Netzwerkfähigkeit von RoarAudio gestattet es zudem, verschiedene Applikationen (Clients) dezentral auf anderen Rechnern auszuführen. Das heisst, diese müssen nicht auf dem gleichen Rechner installiert sein, auf dem RoarAudio läuft. Es ist auch möglich, die Applikationen (Clients) via [[IP]] oder [[DECnet]] mit dem Server zu verbinden.
+
'''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.
  
 
== Einteilung in Komponenten ==
 
== Einteilung in Komponenten ==
  
RoarAudio Komponenten:
+
RoarAudio besteht aus mehren Komponenten die auf einander Aufbauen:
 
; '''Der Sound Server'''
 
; '''Der Sound Server'''
: Der Sound Server verarbeitet die Anfragen der Clienten und mischt gegebenenfalls die (Audio-) Daten. Als Sound Server können für RoarAudio Zum Beispiel roard, [[µRoarD]] oder [[nrd]] zum Einsatz kommen.
+
: 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 ClientBibliotheken'''
+
; '''Die Klient-Bibliotheken'''
: Client-Bibliotheken sind Schnittstellen, die für die Kommunikation mit dem Sound-Server notwendig sind. Zudem können weitere Funktionen zur Verfügung gestellt werden. z.B. das automatische Auffinden von Servern, die Ein-/Ausgabe-Abstraktion u.a. Zum Einsatz kommen hier vor allem libroar und [[µRoar]].
+
: 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]].
; '''Client Applikationen'''
+
; '''Klient Applikationen'''
: Client-Applikationen sind in der Regel Dienstprogramme des Benutzers (Wie Mixer-GUIs) und Multimedia Programme.
+
: Die Klient Applikationen sind in der Regel Dienstprogramme dies Benutzers (Wie Mixer-GUIs), sowie Multimedia Programme.
 
; '''Kompatibilitäts Bibliotheken'''
 
; '''Kompatibilitäts Bibliotheken'''
: Diese Bibliotheken werden benutzt, um Applikationen die keine native Unterstützung für RoarAudio besitzen, einzubinden. Das geschieht meisst durch die Emulation von Bibliotheken anderer Sound-Systeme oder Server. Diese Bibliotheken sind der Hauptgrund, warum RoarAudio als ''drop-in-replacement'' angesehen werden kann und sind ein sehr wichtiger Teil des Projektes. Für eine Liste siehe [[RoarAudio/Installation_und_Einrichtung#Liste_der_Kompatibilit.C3.A4ts_Biblotheken|Liste der Kompatibilitäts Biblotheken]].
+
: 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 [[RoarAudio/Installation_und_Einrichtung#Liste_der_Kompatibilit.C3.A4ts_Biblotheken|Liste der Kompatibilitäts Biblotheken]].
 
; '''Kompatibilitäts Binarys'''
 
; '''Kompatibilitäts Binarys'''
: Hierbei handelt es sich um eine Sammlung von kleinen Dienstprogrammen. Diese kleinen Helfer laufen im Hintergrund von RoarAudio und sind z.B. in der Lage, andere Sound-Server oder Sound-Systeme zu emulieren. Siehe hierzu auch die [[RoarAudio/Installation_und_Einrichtung#Liste_der_Kompatibilit.C3.A4ts_Binarys|Liste der 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 [[RoarAudio/Installation_und_Einrichtung#Liste_der_Kompatibilit.C3.A4ts_Binarys|Liste der Kompatibilitäts Binarys]].
  
Erwähnt sei noch, dass in einen RoarAudio Sound-Server weitere Protokolle von anderen Sound-Servern implementiert werden können. Das gestattet eine nahezu vollständige Integration von Applikationen, die keine Kompatibilitätsbibliotheken besitzen und gestartet werden sollen. 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]].
  
 
== Kompatibilität ==
 
== Kompatibilität ==
'''RoarAudio''' bringt diverse Plugins sowie Kompatibilitäts-Layer (Bibliotheken + Binarys) mit. Zu den Wichtigsten zählt die libroaresd. Damit können Applikation die die EsounD Unterstützung besitzen, RoarAudio benutzen. Diese Bibliotheken sind Binär-kompatibel. Es ist also nicht notwendig 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.
+
'''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 ==
 
== Lizensierung ==
Im Moment ist das Projekt unter der GPLv3 und LGPLv3 lizensiert. Aufgrund verschiedener Lizenzprobleme unterliegen alle Binär Versionen der GPLv3 Lizenz. Es wird angestrebt, die Lizensierung auf eine weniger restriktive Lizenz umzustellen.
+
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 mit nicht kompatibler Lizenz den Zugriff auf RoarAudio zu ermöglichen, wurde [[µRoar]] geschrieben. Es handelt sich um eine kleine Bibliothek die den Zugriff auf win32 ermöglicht.
+
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.
  
 
== Entwicklung ==
 
== Entwicklung ==
Die Entwicklung ist stark Community basierend. Das bedeutet, dass viele Menschen an dem Projekt arbeiten und ihren Teil beitragen. Wenn du auch an der Entwicklung mitarbeiten möchtest, kannst du Kontakt über den IRC-Channel des Projektes aufnehmen oder die Mailinglisten nutzen. Über diese Wege findet zudem die Hauptkommunikation der Entwickler des Projekts statt.
+
Die Entwicklung ist sehr stark Community basierend. Das heißt das viele Individuen daran beteiligt sind und auch jeder der möchte Teile beitragen kann. Die Kommunikation findet primär auf den Mailinglisten des Projekts sowie im IRC Channel des Projektes statt.
  
Ein weiteres Merkmal, das RoarAudio von anderen Sound Systemen abgrenzt, ist das das RoarAudio Protokoll-Zentrisch und nicht Software-zentrisch entwickelt wird. Das heisst, dass zuerst das Protokoll und danach die Software entwickelt und geschrieben wird um die Spezifikationen umzusetzen. DAmit kann RoarAudio mit mehreren Server und Client-Biblotheken gleichzeitig arbeiten.
+
Ein weiteres Merkmal, das auch von anderen Sound Systemen abgrenzt, ist das RoarAudio Protokoll-Zentrisch und nicht Software-zentrisch entwickelt wird. Dies bedeutet das in erster Linie das Protokoll das verwendet wird entwickelt wird und in einem zweiten Schritt dann Software geschrieben wird die diese Spezifikationen umsetzt. Dies ist auch der Grund warum für RoarAudio mehre Server und Klient-Bibliotheken möglich und auch existent sind.
  
 
=== Release Zyklus ===
 
=== Release Zyklus ===
Künftig soll circa einmal im Monat ein kleines Release veröffentlicht werden. Dabei kann es sich um eine Beta, eine RC oder ein Major Release handeln. Begonnen wird Beta Releases. Sollte sich der Entwicklungsstand einem neuen Major Releases nähern, werden RC Releases veröffentlicht. Ein Major Release wird nach dem Abschluss aller Entwicklungsarbeiten an der Version abgeschlossen sind. Ein Major-Release kann man an der Versionsnummer erkennen. Diese hat keine Zusätze, wie z.B. 0.2, 0.3, 1.0. Das Major Release wird bei der Entwicklung in aller Regel als RC Release geführt.
+
Das Projekt hat sich das Ziel gesetzt etwa einmal pro Monat ein Release zu machen. Dabei kann es sich entweder um ein Beta, ein RC oder ein Major Release handeln. Zu beginn wird mit Beta Releases angefangen. Sollte sich der Stand den ziehen des nächsten Major Releases nähern so werden RC Releases getätigt. Sobald das Ziel des des Major Releases erreicht sein wird diese gemacht. Dies erkennt man daran das die Versionsnummer keinen Zusatz trägt (Beispiel: 0.2, 0.3, 1.0). Das Major Release wird bei der Entwicklung in aller Regel als RC Release geführt.
  
Zusätzlich zum Hauptzyklus gibt es den Pre-Release Zyklus. Dieser dient der Qualitätssicherung. Ist z.B. das Entwicklerteam der Ansicht, dass ein Release veröffentlicht werden kann, so wird dieses vorbereitet und als Release mit Pre-Release-Kennung (-prX) veröffentlicht. Nun kann jeder Entwickler mit einer Frist, welche in der Bekanntgabe steht und meist 2 Tage beträgt, Einspruch gegen das Release einlegen. Ist das der Fall, entscheidet das Entwicklerteam über das weitere Vorgehen. In der Regel wird das Problem behoben und ein neues Pre-Release veröffentlicht. Während des Pre-Release Zyklusses gilt ein sogenanntes 'feature freeze'. Das heißt, dass keine neuen Funktionen aufgenommen werden dürfen. Dieser Vorgang soll den Paket-Testern die Möglichkeit geben, die neue Version zu testen und eventuelle Probleme an die Entwickler zu melden.
+
Zu diesem Hauptzyklus wurde ein weiterer Zyklus eingefürt: der Pre-Release Zyklus. Dieser dient dazu die Qualität der Releases zu steigern. Sollte das Entwicklerteam der Meinung sein das sie ein Release durchführen können so wird dies vorbereitet und als Fertiges Release mit einer Pre-Release-Kennung (-prX) versehen veröffentlicht. Nun hat jeder das Recht binnen einer Frist (welche in der Bekanntgabe steht, meist aber 2 Tage beträgt) Einspruch gegen das Release ein zu legen. Sollte dies geschehen entscheidet das Entwicklerteam über das weitere Vorgehen. In aller Regel wird das Problem beseitigt und ein neues Pre-Release veröffentlicht. Während des Pre-Release Zyklusses gilt so genanntes 'feature freeze'. Das heißt das keine neuen Funktionen aufgenommen werden dürfen. Dieser Vorgang soll dazu dienen das als Beispiel Paket-Maintainer die neue Version testen können und etwaige Probleme Rückmelden können.
  
 
== Projekt Geschichte ==
 
== Projekt Geschichte ==
Das Projekt hatte am 31 August 2008 sein Initialrelease.
+
Das Projekt hatte am Son den 31 August 2008 sein initialen Release.
  
 
=== Projekt Meilensteine ===
 
=== Projekt Meilensteine ===
; 2008-08-31: Erstes öffentliches Release (v. 0.1)
+
; 2008-08-31 Erstes öffentliches Release (v. 0.1)
; 2009-02-04: Erstes Release der 0.2er Versionen (v. 0.2beta0)
+
; 2009-02-04 Erstes Release der 0.2er Versionen (v. 0.2beta0)
 
:  Hier wurde auch das Versionierungs Schema umgestellt
 
:  Hier wurde auch das Versionierungs Schema umgestellt
; 2009-05-21: Release von Version 0.2
+
; 2009-05-21 Release von Version 0.2
; 2009-09-06: Erste kommerzielle verwendet mit dem Programm ''roarphone'' (v. 0.3beta0)
+
; 2009-09-06 Erste kommerzielle verwendet mit dem Programm ''roarphone'' (v. 0.3beta0)
; 2010-06-11: Einführung des Prerelease Verfahrens zur Qualitätssteigerung
+
; 2010-06-11 Einführung des Prerelease Verfahrens zur Qualitätssteigerung
; 2010-08-22: Release von Version 0.3
+
; 2010-08-22 Release von Version 0.3
  
 
== Architektur ==
 
== Architektur ==

Bitte kopiere keine Inhalte, die nicht Deine eigenen sind!

Du gibst uns hiermit Deine Zusage, dass
  • Du den Text nicht aus Wikipedia kopiert hast
  • Du den Text selbst verfasst hast
  • oder der Text entweder
    • Allgemeingut (public domain) ist
    • oder der Copyright-Inhaber seine Zustimmung gegeben hat.
Wichtig
  • Benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Copyright-Inhabers!
  • Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der 'Diskussion:'-Seite darauf hin.
  • Bitte beachte, dass alle UUGRN-Beiträge automatisch unter der der Creative Commons Lizenz stehen.
  • Falls Du nicht möchtest, dass Deine Arbeit hier von anderen verändert und verbreitet wird, dann drücke nicht auf "Artikel Speichern".

Bitte beantworte die folgende Frage, um diese Seite speichern zu können (weitere Informationen):

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)

Folgende Vorlagen werden auf dieser Seite verwendet: