RoarAudio/Installation und Einrichtung: Unterschied zwischen den Versionen
(→Basis Tools: +Musik abspielen) |
(→ROAR_OPTIONS: +workaround:no-slp) |
||
(86 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''RoarAudio''' ist ein mächtiger Multi Plattform Soundserver. Im folgenden Artikel sollen Installations- und Konfigurations-Hinweise gegeben werden. Für eine Beschreibung der Software siehe Artikel [[RoarAudio]]. | '''RoarAudio''' ist ein mächtiger Multi Plattform Soundserver. Im folgenden Artikel sollen Installations- und Konfigurations-Hinweise gegeben werden. Für eine Beschreibung der Software siehe Artikel [[RoarAudio]]. | ||
Weitere Informationen finden sich auf der Homepage unter [http://roaraudio.keep-cool.org/docs.html Documentation and Wikis]. Hier Gibt es auch ein englisch sprachiges Handbuch. | |||
[[Bild:RoarAudio-Logo-0.0.3.png|thumb|right|RoarAudio Logo]] | [[Bild:RoarAudio-Logo-0.0.3.png|thumb|right|RoarAudio Logo]] | ||
Zeile 6: | Zeile 8: | ||
=== Installation aus den Sourcen heraus === | === Installation aus den Sourcen heraus === | ||
Als erstes sollte man auf die [http://roaraudio.keep-cool.org Homepage] gehen und sich die aktuellen Sources herunterladen. Von dort kann man sich zum Beispiel mittels [[wget]] die Sourcen herunterladen: | Als erstes sollte man auf die [http://roaraudio.keep-cool.org Homepage] gehen und sich die aktuellen Sources herunterladen. Von dort kann man sich zum Beispiel mittels [[wget]] die Sourcen herunterladen: | ||
$ wget http://roaraudio.keep-cool.org/dl/roaraudio-0. | $ wget http://roaraudio.keep-cool.org/dl/roaraudio-0.4beta0.tar.gz | ||
Danach muss das Archiv mittels [[tar]] entpackt werden: | Danach muss das Archiv mittels [[tar]] entpackt werden: | ||
$ tar -xzvf roaraudio-0. | $ tar -xzvf roaraudio-0.4beta0.tar.gz | ||
Dann wechselt man in das neue RoarAudio Verzeichnis und führt 'configure' aus: | |||
$ ./configure | $ ./configure | ||
Die Übersetzung kann nun erfolgen: | Die Übersetzung kann nun erfolgen: | ||
$ make | $ [[make]] | ||
Im nächsten Schritt wird das | Im nächsten Schritt wird das frisch gebackene [[Binary]] nun im System installiert. | ||
$ su | $ [[su]] | ||
# make install | # make install | ||
beziehungsweise vereinfacht mittels [[sudo]]: | beziehungsweise vereinfacht mittels [[sudo]]: | ||
Zeile 25: | Zeile 27: | ||
Aufräumen ... | Aufräumen ... | ||
$ make clean | $ make clean | ||
=== archlinux === | |||
... | |||
=== OpenBSD === | |||
... | |||
=== Debian === | |||
Unter Debian stehen Pakete zur Verfügung. Diese können einfach wie folgt installiert werden: | |||
# apt-get install roaraudio roaraudio-extra libroar-compat0 | |||
Entwickler sollten weiterhin die Entwiklungspakete installieren: | |||
# apt-get install libroar-dev roaraudio-dbg | |||
== Konfigurieren == | == Konfigurieren == | ||
=== Allgemein === | |||
Allgemein gesprochen gibt es keine Konfigurationsdateien oder Ähnliches für RoarAudio. Der Daemon wird mittels seiner [[Kommandozeile]]n Parameter konfiguriert. Die Clients mittels deren Konfigurations Dialogen und den Umgebungsvariablen (siehe Unten) sowie deren Kommandozeilen Parametern. | |||
==== Globaler Standard Server Definieren ==== | |||
Die Einzige Ausnahme ist die Datei /etc/roarserver. Bei ihr handelt es sich um einen Symlink welcher auf den Globalen Standard Server verweist. | |||
Beispiele: | |||
# ln -s /tmp/.otherroar /etc/roarserver | |||
# ln -s remote.address.example.com /etc/roarserver | |||
==== OpenSLP (ZeroConf) ==== | |||
Damit RoarAudio Clients ihren Server im Netzwerk automatisch finden können muss bei diesem OpenSLP aktiviert sein. Dazu reicht es in der Regel schon aus ''--slp'' dem roard mit zu übergeben. Es muss allerdings darauf geachtet werden das für die öffentlichen Listen Sockets mittels --bind eine echte Adresse angegeben ist. Diese kann natürlich auch ein Hostname sein. | |||
Im weiteren kann es Sinn ergeben einen ''slpd'' zu installieren. | |||
==== Server seitige EsounD Emulation ==== | |||
Server seitige EsounD Emulation kann aktiviert werden durch das erzeugen eines zusätzlichen Listen Sockets mit der korrekten Protokoll Kennung. Dies gescheit mittels ''--new-sock'' und ''--proto''. Es muss eine andere Adresse und/oder Port für diesen verwendet werden. Dies gescheit mittels der Standard Optionen ''--port'', ''--bind'' und ''--sock''. | |||
Beispiele: | |||
# roard [...] --new-sock --proto esd --sock /tmp/.esd/socket | |||
# roard [...] --new-sock --proto esd --bind 0.0.0.0 --port 16001 | |||
=== archlinux === | |||
... | |||
=== Debian und Debian basierende Systeme === | |||
Auf Debian Basierenden Systemen gibt es eine Datei namens /etc/default/roaraudio. Sie Beinhaltet alle gängig Einstellmöglichkeiten und ist gut kommentiert. | |||
==== OpenSLP (ZeroConf) ==== | |||
Zum einschalten von OpenSLP muss unter Debian und Debian basierenden Systmen nur folgender Eintrag in der Konfigurationsdatei gemacht werden: | |||
ROARD_SLP='YES' | |||
Weiterhin muss wie oben beschreiben ein echter Hostname gesetzt werden, Dies gescheit mittels: | |||
ROARD_HOST='myserver.name' | |||
==== Server seitige EsounD Emulation ==== | |||
Zur Verwendung der Server seitigen EsounD Emulation muss unter Debian nur der Parameter ''ROARD_EMUL_ESD_AF'' gesetzt werden. | |||
Beispiele: | |||
ROARD_EMUL_ESD_AF='TCP' | |||
ROARD_EMUL_ESD_AF='UNIX' | |||
ROARD_EMUL_ESD_AF='DECnet' | |||
== Benutzen == | == Benutzen == | ||
=== Plugins === | === Plugins === | ||
==== libao ==== | ==== libao ==== | ||
Nach der erfolgreichen Installation sollte das libao Plugin 'roar' zur | Nach der erfolgreichen Installation sollte das libao Plugin 'roar' zur Verfuegung stehen. | ||
Um es als Standard Ausgabe zu benutzen muss folgendes in die | Um es als Standard Ausgabe zu benutzen muss folgendes in die Datei /etc/libao.conf geschrieben werden: | ||
default_driver=roar | default_driver=roar | ||
==== XMMS ==== | |||
Ist das XMMS Plugin installiert so lässt es sich unter XMMS einfach in den Plugin Einstellungen auswählen: Man drückt Strg+P und kann es dann unter ''Output Plugin'' finden. Nach dem Klicken auf ''OK'' einfach den laufenden Titel neu starten und das Plugin sollte verwendet werden. | |||
Findet XMMS das Plugin nicht sollte überprüft werden ob roard läuft und XMMS muß gegebenfalls nach dem Starten von roard neu gestartet werden da XMMS dazu neigt, Plugins für nicht beim Start laufende Ausgaben zu verstecken. | |||
Da das Plugin noch keinen Optionen Dialog hat muss der Server gegeben falls wie in Abschnitt [[#Server_ohne_Optionen_des_Players_ausw.C3.A4hlen|Server ohne Optionen des Players auswählen]] gezeigt eingestellt werden. | |||
==== Audacious ==== | |||
Zum einrichten des Audacious kann die Anleitung für das XMMS Plugin hergenommen werden. Die aus zu führenden schritte sind die selben. | |||
<!-- | <!-- | ||
==== mplayer ==== | ==== mplayer ==== | ||
==== gstreamer ==== | ==== gstreamer ==== | ||
--> | --> | ||
=== Programme ohne Plugins === | |||
==== Audacity ==== | |||
Audacity kann mittels roarify verwendet werden: | |||
$ roarify audacity | |||
==== GNOME Mixer ==== | |||
Der GNOME Mixer sollte von sich aus wunderbar funktionieren sofern das gstreamer Plugin installiert ist. Anderenfalls kann er auch mittels roarify gestartet werden: | |||
$ roarify gnome-volume-control | |||
==== Amarok ==== | |||
Amarok funktioniert mittels beider EsounD emulationen (Server seitig oder Client seitig) unter Benutzung der XINE Engine. Diese Muss dazu ausgewählt werden im Konfigurations Dialog. Danach auf den Treiber 'esd' umstellen. | |||
Bei Verwendung der gstreamer Engine kann entweder das RoarAUdio Plugin verwendet werden oder das EsounD Plugin. | |||
==== GNOME ==== | |||
GNOME bassirt heute auf gstreamer. Für dieses gibt es ein Plugin das empfohlen wird. | |||
==== KDE ==== | |||
Je nach KDE Version kann aRtsd dazu konfiguriert werden EsounD als backend zu benutzen oder in neueren KDE versionen kann ein passendes Phonon Backend eingestellt werden. | |||
==== MPD ==== | |||
MPD lässt sich mittels roarify starten wenn der OSS Treiber geladen ist. Der libao Treiber scheint eine macke zu haben und mpd lässt sich gar nicht starten. | |||
MPD lässt sich durch den [[RoarAudio PlayList Daemon]] ersetzen. Dieser ist von hause aus voll mit RoarAudio integriert. | |||
==== MPlayer ==== | |||
MPlayer funktioniert wunderbar mittels EsounD Emulation (Client + Server). Ansonsten gibt es ein experimentelles Plugin für MPlayer. | |||
==== Wine ==== | |||
Wine kann die Server Seitige EsounD emulation benutzen. Dazu muss ein weiteres Plugin installiert werden. Dies kann dann mittels ''winecfg'' aktiviert werden. | |||
=== Basis Tools === | === Basis Tools === | ||
RoarAudio kommt mit | RoarAudio kommt mit diversen Basis Tools welche dazu genutzt werden können Dateien abzuspielen, Webradio zu hören und die gemischten Audio Daten wieder weiter zu verwenden. | ||
==== Musik abspielen ==== | ==== Musik abspielen ==== | ||
Zeile 52: | Zeile 149: | ||
$ roarvorbis bar.ogg | $ roarvorbis bar.ogg | ||
Zum | Zum Abspielen von Musik im Hintergrund ohne einen Player im Vordergrund zu benötigen benutzt man ''roarradio'': | ||
$ roarradio http://www.mein-webradio.org/blubb.ogg | $ roarradio http://www.mein-webradio.org/blubb.ogg | ||
=== Kompatibilitäts Biblotheken === | ==== Musik speichern und streamen ==== | ||
RoarAudio kann Musik nicht nur an Soundcards schicken sondern auch in Dateien oder zu einem [[icecast]] oder ähnlichen Streaming-Server. | |||
Zum Speichern und Auslesen von Musik kann das Programm ''roarmon'' eingesetzt werden: | |||
$ roarmon --codec vorbis output.ogg | |||
''roarmon'' kann auch in Pipes eingesetzt werden: | |||
$ roarmon | myenc -o bla.ext - | |||
Zum Streamen mittels libshout kann ''roarshout'' eingesetzt werden. | |||
$ roarshout myserver.de 8000 hackme /roar.ogg | |||
Die Parameter sind mit denen von [[oggfwd]] kompatibel und lassen sich mittels ''--help'' nachschlagen. | |||
Auch ist es möglich das ''roard'' selbst einen Streaming-Server mittels libshout ansprechen kann: | |||
$ roard -oN -o shout -O http://source:hackme@myserver.de:8000/roar.ogg | |||
Hier erzeugt das -oN ein neues Output ('''o'''utput '''N'''ew) mit dem Treiber ''shout''. Die URL gibt die Adresse des Servers an. Der Eintrag ist gleichbedeutend mit dem aus dem Beispiel von ''roarshout''. Das Wort '''source''' ist hier der Benutzername, er wird bei ''roarshout'' nicht angeben da er der Standard Wert ist muss hier aber angegeben werden Grunds der syntaktischen Korrektheit. | |||
==== Steuerung mittels roarctl ==== | |||
===== Server Status ===== | |||
Der Server lässt sich mittels folgendem Befehlen beenden: | |||
$ roarctl exit # Sofort beenden | |||
$ roarctl terminate # Beenden sobald alle Clients disconnected sind (Bei vielen Playern: Nach dem aktuellen Titel) | |||
Auserdem kann der Server in den Standby Mode versetzt werden: | |||
$ roarctl standby # oder.. | |||
$ roarctl off # In den Standby gehen | |||
$ roarctl resume # oder ... | |||
$ roarctl on # In den normal Modus gehen | |||
Abgefragt werden kann der aktuelle Status mittels des Befehls ''standbymode'': | |||
$ roarctl standbymode | |||
===== Client und Stream Informationen Auslesen ===== | |||
Mit dem Befehl ''allinfo'' lassen sich nahe zu alle Informationen über Clients und Streams ausgeben: | |||
$ roarctl allinfo | |||
Es gibt auch spezialisiertere Befehle: | |||
$ roarctl serveroinfo # Informationen über des Servers Mischer | |||
$ roarctl listclients # Informationen über die Clients (Player) | |||
$ roarctl liststreams # Informationen über die Streams | |||
Die Befehle lassen sich mit dem Parameter ''-v'' (verbose - Erweiterte Anzeige) kombinieren. | |||
===== Clients und Streams Manipulieren ===== | |||
Es gibt mehrere Manipulation die zur Laufzeit erfolgen können. Eine der wichtigsten ist es einen Client oder Stream zu kicken: | |||
$ roarctl kick client 123 | |||
$ roarctl kick stream 123 | |||
Weitere Optionen können für Streams verändert werden. Eine weitere wichtige ist die Lautstärke. Sie lässt sich mittels ''volume'' verstellen: | |||
$ roarctl volume 123 mono 50% | |||
Dieser Befehl setzt die Lautstärke auf 50% für den Stream 123. Zu beachten ist hier das ''mono''. Es gibt an das man die Lautstärke für einen Kanal setzen will. Wenn der Stream mehr Kanäle hat, meist 2 für Stereo, so versucht ''roarctl'' sinnvoll fortzusetzen: in diesem Falle wird die Lautstärke für alle Kanäle gesetzt. | |||
Möchte man den Pegel für den rechten und linken Kanal getrennt steuern so kann man das Schlüsselwort ''stereo'' verwenden: | |||
$ roarctl volume 123 stereo 80% 30% | |||
Dies setzt die Lautstärke auf 80% Links und 30% Rechts. Hat man mehr als 2 Kanäle kann man auch die Anzahl der Kanäle explizit angeben. In diesem Falle muss die Anzahl der weiteren Parametern exakt der Kanalanzahl entsprechen, zum Beispiel: | |||
$ roarctl volume 123 4 20% 40% 60% 80% | |||
Anstatt prozentualer Angaben können auch absolute gemacht werden. Die Skala reicht von 0 bis 65535 (inklusive): | |||
$ roarctl volume 123 mono 8192 | |||
Weiterhin ist es mit Neueren Versionen auch möglich angaben in dB zu benutzen sofern Unterstützung für die Standard Mathematik Bibliothek mit einkompiliert wurde: | |||
$ roarctl volume 123 mono -12dB | |||
==== Zwei Soundserver miteinander verbinden ==== | |||
RoarAudio kann zwei Soundserver mit einander in verschiedensten weisen Koppeln. Hierzu dient das Tool roarinterconnect. | |||
Um dies zu tun muss man die Adressen der Server angeben und Informationen über den Type der Verbindung. | |||
Sollten keine Server angegeben werden wird als lokaler Server der default Server benutzt und der entfernte Server wird versucht via OpenSLP auf zu lösen. | |||
===== Typen ===== | |||
Die Typenangabe ist in zwei teile aufgeteilt: der Server Type (Protokoll) und der Verbindungs Type (Stream Type). | |||
Die Folgenden Server Typen gibt es im Moment: | |||
* '''roar''' für RoarAudio Server | |||
* '''esd''' für [[EsounD]] Server | |||
* '''simple''' für PulseAudio ''simple'' Protokoll | |||
* '''oss''' für [[OSS]] Geräte Dateien | |||
Die Verbindungs Typen sind die folgenden: | |||
* '''bidir''' für eine bidirektionale Verbindung (nur RoarAudio, default) | |||
* '''filter''' um einen Soundserver als Filter für den Anderen zu verwenden | |||
* '''transmit''' um lediglich die Lokale Ausgabe auf den entfernten Server zu spiegeln | |||
* '''receive''' um die Ausgabe des entfernten Servers auf den lokalen zu spiegeln | |||
===== Beispiele ===== | |||
$ roarinterconnect --type transmit --remote stereoanlage.local | |||
===== Einschränkungen ===== | |||
Der als lokaler Server angegebene Server muss die Fähigkeit haben ''Background Streams'' zu verwenden und es muss ich um einen RoarAudio Server handeln. Andere Protokolle sind hier nicht unterstützt. | |||
=== Kompatibilitäts Layer === | |||
{{Minimal Version|0.2beta3|RoarAudio}} | |||
Mittels des Tools ''roarify'' können Kompatibilitäts Bibliotheken geladen sowie Kompatibilitäts Binarys ausgeführt werden. Dazu wird roarify einfach der Name des Programms über geben welches mit den Kompatibilitäts Bibliotheken geladen werden soll, beziehungsweise das Programm welches emuliert werden soll: | |||
$ roarify myplayer | |||
$ roarify mplayer -ao esd bla.ogg | |||
$ roarify aucat ... | |||
$ roarify esd | |||
$ roarify artsplay ... | |||
==== Liste der Kompatibilitäts Biblotheken ==== | |||
{| class="wikitable" | |||
! Name | |||
! Kompatibel zu | |||
! Ab Version | |||
! Beschreibung | |||
|- | |||
| libroaresd | |||
| Enlightened Sound Daemon | |||
| 0.1 | |||
| Client seitige Binär kompatible EsounD Emulation. Nahezu alle Applikationen funktionieren mit dieser einwandfrei. | |||
|- | |||
| libroarpulse-simple | |||
| PulseAudio<br>Simple API | |||
| 0.1 | |||
| Client seitige Binär kompatible PulseAudio Emulation. Hierbei handelt es sich um eine Emulation der ''Simple API''. Nicht alle Clients laufen damit. (Name bei Version 0.3beta5 geändert.) | |||
|- | |||
| libroarpulse | |||
| PulseAudio<br>Asynchrone API | |||
| 0.3beta5 | |||
| Client seitige Binär kompatible PulseAudio Emulation. Hierbei handelt es sich um die Haupt API. Diese wird zum teil unterstützt. Einige Programme laufen damit. | |||
|- | |||
| libroararts | |||
| aRts - KDE Sound System | |||
| 0.1 | |||
| Eine Cleint seitige binär kompatible aRtsc Emulation. Die meisten Programme laufen mit ihr. Die meisten die nicht mit ihr laufen haben höchst fragwürdige aRtsc Plugins weswegen viele Distributoren die besagten Plugins aus den Paketen entfernt haben. | |||
|- | |||
| libroaryiff | |||
| YIFF Sound System | |||
| 0.1beta2 | |||
| Eine binär kompatible Emulation der YIFF Sound System API. Die Emulation umfasst alle dokumentierten teile der API inklusive der Teile welche durch die original Bibliothek nicht implementiert sind. Einige Veränderungen wurden durchgeführt um eklatante Sicherheitslöcher zu schließen. Diese Änderungen sollten die meisten Applikationen nicht beeinträchtigen. Genaue Tests liegen aber nicht vor aufgrund des mangels an Applikationen welche das YIFF Sound System benutzen. | |||
|- | |||
| libroarsndio | |||
| OpenBSD sndio | |||
| 0.2beta3 | |||
| Eine Emulation des aktuellen OpenBSD Sound Interfaces (sndio). Sie ist auch auf nicht OpenBSD Systemen funktionsfähig und kann als Portierungshilfe verwendet werden. Sie ist nahezu vollständig und wir unter stetiger Kommunikation mit dem OpenBSD sndio Team entwickelt. | |||
|- | |||
| libroaross | |||
| Open Sound System (OSS) | |||
| 0.3beta3 | |||
| Hierbei handelt es sich um eine preload Bibliothek welche das Open Sound System emuliert. Die meiste Software läuft mit dieser Emulation einwandfrei. Es handelt sich um eine der besten OSS Emulationen gemessen an der menge der Software welche damit läuft. | |||
|- | |||
| libroaross | |||
| DMX4Linux | |||
| 0.3beta4 | |||
| DMX4Linux Emulation. Derzeit nur schreib Support. Lese Support kann mittels dmx Treiber emulirt werden. | |||
|- | |||
| libroarrsound | |||
| RSound | |||
| 0.3beta5 | |||
| Eine binär kompatible Emulation des der librsound des RSound Sound Systems. Da das RSound Sound System noch extrem jung ist herrscht hier noch eine gewissen Instabilität. | |||
|} | |||
==== Liste der Kompatibilitäts Binarys ==== | |||
{{Minimal Version|0.3beta2|RoarAudio}} | |||
{| class="wikitable" | |||
! Sound Systen Name | |||
! Ab Version | |||
! Beinhaltete Tools | |||
|- | |||
| EsounD | |||
| 0.3beta2 | |||
| esd esdcat esdfilt esdmon esdplay (''ab 0.3beta5:'') esddsp | |||
|- | |||
| aRts | |||
| 0.3beta3 | |||
| artsd artscat artsplay (''ab 0.3beta5:'') artsdsp | |||
|- | |||
| NAS | |||
| 0.3beta3 | |||
| auplay (''ab 0.3beta5:'') audial audiooss* | |||
|- | |||
| YIFF Sound System | |||
| 0.3beta3 | |||
| yiff yplay yshutdown | |||
|- | |||
| PulseAudio | |||
| 0.3beta3 | |||
| pacat paplay (''ab 0.3beta5:'') padsp | |||
|- | |||
| dtmfdial | |||
| 0.3beta5 | |||
| dtmfdial | |||
|- | |||
| RSound | |||
| 0.3beta6 | |||
| ross rsd | |||
|- | |||
|} | |||
* = ''audiooss'' ist ein externes Paket und gehört nicht zu NAS direkt dazu. Es wird aber von offizieller Seite auf audiooss verwiesen. | |||
==== Liste der unterstützten Protokolle ==== | |||
{| class="wikitable" | |||
! Protokoll Name | |||
! Ab Version | |||
! Beschreibung/Kommentare | |||
|- | |||
| RoarAudio (nativ) | |||
| 0.1 | |||
| Das native RoarAudio Protokoll. | |||
|- | |||
| EsounD | |||
| 0.3beta0 | |||
| Eine nahe zu komplette EsounD Emulation auf Server Seite. Nahe zu alle Applikationen funktioniren mit dieser Emulation unter Verwendung der original Client Bibliothek. | |||
|- | |||
| Simple | |||
| 0.3beta4 | |||
| Das PulseAudio Simple Protokoll. Alle nötigen Parameter können mittels der ''--proto-*'' Optionen gesetzt werden. Der Standardwert liegt auf Playback-Stream und den nativen Audio Parametern des roards. | |||
|- | |||
| RSound | |||
| 0.3beta5 | |||
| Das Protokoll der RSound Netzwerk-Sound Abstraktionsebene (''schlanker Sound Server''). | |||
|- | |||
| RPlay | |||
| 0.3beta7 | |||
| Emulation eines Subsets des Protokolls des RPlay sound servers | |||
|- | |||
|} | |||
=== Umgebungsvariablen === | |||
==== Übersicht ==== | |||
Diese Übersicht zeigt die wichtigsten Umgebungsvariablen auf. Weitere werden durch die Kompatibilitäts Layer verwendet. | |||
{| class="wikitable" | |||
! Variable | |||
! Beispiel | |||
! Beschreibung | |||
|- | |||
| HOME | |||
| /home/phi | |||
| Heimatverzeichnis des Benutzers | |||
|- | |||
| USER | |||
| phi | |||
| Aktueller Benutzername | |||
|- | |||
| TERM | |||
| xterm | |||
| Aktueller [[Terminal]] Type | |||
|- | |||
| DISPLAY | |||
| :0 | |||
| Adresse des benutzen [[X11]] Servers | |||
|- | |||
| ROAR_SERVER | |||
| remote.example.com | |||
| Adresse des Daemons | |||
|- | |||
| ROAR_OPTIONS | |||
| workaround:use-execed | |||
| Optionen für libroar | |||
|- | |||
| CDDA_DEVICE | |||
| /dev/cdrom | |||
| Device Name für [[CDDA]] (Audio CDs) Zugriff | |||
|- | |||
| ROAR_PROXY | |||
| ssh | |||
| Zu verwendeter Proxy Type | |||
|- | |||
| http_proxy | |||
| http://localhost:8118/ | |||
| Adresse des [[HTTP]] Proxys | |||
|- | |||
| socks_proxy | |||
| localhost:1080 | |||
| Adresse des [[SOCKS]] Proxys | |||
|- | |||
| ssh_proxy | |||
| myserver.remote.network | |||
| Adresse des [[SSH]] Servers der als Proxy dienen soll | |||
|- | |||
|} | |||
==== ROAR_OPTIONS ==== | |||
Die Umgebungsvariable ''$ROAR_OPTIONS'' besteht aus durch Leerzeichen getrennten Options Zeichenketten. | |||
{| class="wikitable" | |||
! Parameter | |||
! Unter-Parameter | |||
! Beispiel | |||
! Beschreibung | |||
|- | |||
| #/Leer-Option | |||
| (keine) | |||
| #Ein_Kommentar | |||
| Leere Optionen und Optionen welche mit einem # beginnen werden ignoriert. | |||
|- | |||
| workaround | |||
| (mehrere) | |||
| workaround:use-execed | |||
| Steuert die Verwendung von Workarounds. | |||
|- | |||
| workaround | |||
| use-execed | |||
| workaround:use-execed | |||
| Setzt das benutzen des use-execed-Workarounds. Dieser kann helfen wenn sich ein NAT-Gateway zwischen Server und Client befindet. | |||
|- | |||
| workaround | |||
| no-slp | |||
| workaround:no-slp | |||
| Schaltet die Verwendung von OpenSLP aus. | |||
|- | |||
| warning/warn | |||
| (mehrere) | |||
| warn:sysio | |||
| Steuert die Verwendung von Warnungen. | |||
|- | |||
| warning/warn | |||
| sysio | |||
| warn:sysio | |||
| Schaltet Warnungen ein die auf sysio verwendenden Code hinweisen. Dies kann Entwicklern bei schreiben Portabler Software helfen. | |||
|- | |||
| warning/warn | |||
| obsolete | |||
| warn:obsolete | |||
| Warnt bei Aufruf von Funktionen die als ''veraltet'' makeirt sind. Dies soll Entwicklern helfen ihre Software auf einem aktuellen stand zu halten und ''Faild to build from source''-Fehlern vor zu beugen. | |||
|- | |||
| warning/warn | |||
| all | |||
| warn:all | |||
| Schaltet alle Warnungen ein. | |||
|- | |||
| force-rate | |||
| (keine) | |||
| force-rate:44100 | |||
| Erzwingt die eine bestimmte Abtastrate bei allen Streams. | |||
|- | |||
| force-bits | |||
| (keine) | |||
| force-bits:16 | |||
| Erzwingt die eine bestimmte Anzahl von Bits pro Abtastwert bei allen Streams. | |||
|- | |||
| force-channels | |||
| (keine) | |||
| force-channels:2 | |||
| Erzwingt die eine bestimmte Anzahl von Kanälen bei allen Streams. | |||
|- | |||
| force-codec | |||
| (keine) | |||
| force-codec:pcm_s_be | |||
| Erzwingt die einen bestimmten [[Codec]] bei allen Streams. | |||
|- | |||
| codec | |||
| (mehrere) | |||
| codec:vorbis:q:1 | |||
| Setzt Optionen für Codecs. | |||
|- | |||
| codec | |||
| quality/q | |||
| codec:vorbis:q:1 | |||
| Setzt den Qualitätswert für einen Codec. | |||
|- | |||
| codec | |||
| complexity | |||
| codec:roar_speex:complexity:8 | |||
| Setzt die Komplexität mit welcher der Codec arbeiten soll. | |||
|- | |||
| codec | |||
| dtx | |||
| codec:roar_speex:dtx:true | |||
| Setzt das DTX Flag eines Codecs. | |||
|- | |||
| codec | |||
| cc-max | |||
| codec:roar_celt:cc-max:80 | |||
| Setzt die Größe des CC-Puffers eines Codecs. | |||
|- | |||
| codec | |||
| vbr | |||
| codec:vorbis:vbr:true | |||
| Setzt das VBR Flag eines Codecs. | |||
|- | |||
| codec | |||
| mode | |||
| codec:roar_speex:mode:wb | |||
| Setzt den den Modus für einen Codec. (Werte für Speex: nb, wb, uwb) | |||
|- | |||
| set-server | |||
| (keine) | |||
| set-server:/tmp/otherserver | |||
| Setzt den libroar/Applications Standard Server. Dies sollte nur unter seltenen Umständen getan werden. ''$ROAR_SERVER'' sollte in den allermeisten fällen Verwendung finden. | |||
|- | |||
| set-authfile | |||
| (keine) | |||
| set-authfile:/home/phi/.roarauth | |||
| Setzt die Datei mit den Authentifikations-Cookies. | |||
|- | |||
| x11-display | |||
| (keine) | |||
| x11-display::4 | |||
| Setzt das X11 Display, überschreibt $DISPLAY. | |||
|- | |||
| trap-policy | |||
| (keine) | |||
| trap-policy:warn | |||
| Setzt die default Aktion die bei einem Trap ausgeführt werden soll. Mögliche Parameter sind: ignore, warn, abort, kill, stop und die. Nicht alle Parameter sind auf allen Plattformen verfügbar. | |||
|- | |||
| daemonimage | |||
| (keine) | |||
| daemonimage:/home/phi/bin/roard | |||
| Setzt das Standard Image (Programmdatei) des Servers für die Verwendung von Adressen im +fork-Namensraum. | |||
|- | |||
| serverflags | |||
| (mehrere) | |||
| serverflags:nonblock | |||
| Setzt Flags für den Verbindungsaufbau. | |||
|- | |||
| serverflags | |||
| nonblock | |||
| serverflags:nonblock | |||
| Verbietet das Verwenden von Langsamen Verbindungsverfahren (Nicht alle Server werden gefunden wenn diese Option gesetzt ist). | |||
|- | |||
| serverflags | |||
| hardnonblock | |||
| serverflags:hardnonblock | |||
| Verbietet das Verwenden von Langsamen Verbindungsverfahren und ist strenger als nonblock (Nicht alle Server werden gefunden wenn diese Option gesetzt ist). | |||
|- | |||
| serverflags | |||
| localonly | |||
| serverflags:localonly | |||
| Verbietet das Verbinden mit nicht lokalen Servern. Da nicht immer erkannt werden kann ob ein Server Lokal ist kann bei Verwendung dieser Option weder garantiert werden das nur Lokale Server angesprochen werden noch das alle lokalen Server gefunden werden. | |||
|- | |||
| protocolversion | |||
| (keine) | |||
| protocolversion:2 | |||
| Setzt die Standard Protokoll Version. Sollte nur in Ausnahmefällen verwendet werden. | |||
|- | |||
|} | |||
==== Liste der Umgebungsvariablen der Kompatibilitäts Layer ==== | |||
Diese Übersicht zeigt die Umgebungsvariablen der Kompatibilitäts Layer auf. | |||
{| class="wikitable" | |||
! Variable | |||
! Layer | |||
! Beispiel | |||
! Beschreibung | |||
|- | |||
| ESPEAKER | |||
| libroaresd | |||
| some.remote.server | |||
| Server Name des RoarAudio Servers auf den verbunden werden soll. | |||
|- | |||
| PULSE_SERVER | |||
| libroarpulse | |||
| some.remote.server | |||
| Server Name des RoarAudio Servers auf den verbunden werden soll. | |||
|- | |||
| AUDIODEVICE | |||
| libroarsndio | |||
| aucat:0 | |||
| Server Name, RoarAudio Server Adresse oder sndio Device Name für Waveform (PCM) Daten | |||
|- | |||
| MIDIDEVICE | |||
| libroarsndio | |||
| rmidi:0 | |||
| Server Name, RoarAudio Server Adresse oder sndio Device Name für MIDI Daten | |||
|- | |||
| ROAR_OSS_KEEP_SESSION | |||
| libroaross | |||
| (keine oder beliebiger Inhalt) | |||
| Hält die Verbindung zum RoarAudio Server offen auch wenn alle Audio Devices geschlossen sind. Kann bei einigen (verbugten) Applikation die Performance stark verbessern. | |||
|- | |||
| ROAR_OSS_CLIENT_NAME | |||
| libroaross | |||
| MyPlayer | |||
| Name der für den Client verwendet werden soll. | |||
|- | |||
| RSD_SERVER | |||
| libroarrsound | |||
| some-server | |||
| Server Name, RoarAudio Server Adresse. | |||
|- | |||
|} | |||
<!-- | |||
./libroaross/libroaross.c: ROAR_OSS_KEEP_SESSION | |||
--> | |||
=== Server Adresse === | |||
Die Adresse des Server muss in bestimmter Form vorliegen je nach Protokoll. Die Tabelle listet Alle Formate auf. | |||
{| class="wikitable" | |||
! Protokoll | |||
! Format | |||
! Beispiel | |||
! Standard Werte | |||
! Beschreibung | |||
|- | |||
| [[UNIX]] | |||
| /pfad | |||
| /home/phi/.roar | |||
| ~/.roar, /tmp/roar | |||
| Pfad zum UNIX Socket. | |||
|- | |||
| [[IPv4]] | |||
| host[:port] | |||
| myserver.local:16002 | |||
| localhost:16002 | |||
| Hostname und gegebenenfalls Port des Servers. | |||
|- | |||
| [[DECnet]] | |||
| [node]::[object] | |||
| remnod:: | |||
| localnode::roar | |||
| Node Name und gegebenenfalls Objekt Name des Servers. | |||
|- | |||
| Spezial | |||
| +fork | |||
| +fork | |||
| ''(keiner)'' | |||
| [[Fork]]et für den Prozess eine eigenen Instanz des Sound Daemons. | |||
|- | |||
| Spezial | |||
| +slp | |||
| +slp | |||
| +slp | |||
| Sucht nach dem Sound Daemon explizit mittels [[OpenSLP]]. Dies ist dann nötig wenn sich unter den Standard Adressen ein laufender roard befindet und OpenSLP explizit benutzt werden soll. | |||
|- | |||
| Spezial/[[UNIX]] | |||
| +abstract | |||
| +abstract | |||
| +abstract | |||
| Verwendet einen UNIX Domain Socket im Abstrakten Namensraum. Dieser ist von allen Prozessen des Systems aus gleichermaßen erreichbar. Dies gilt auch für Prozesse innerhalb einer [[chroot|chroot(2)]] Umgebung. | |||
|- | |||
|} | |||
== Tips und Tricks == | == Tips und Tricks == | ||
=== Server ohne Optionen des Players auswählen === | |||
Einige Player haben keine Möglichkeit einen Server einzustellen oder man möchte eine globale Einstellung treffen. Hierzu gibt es zwei Möglichkeiten: | |||
Zum einen lässt sich global ein Server einstellen in dem man ein [[symlink]] mit dem Namen ''/etc/roarserver'' erstellt der auf den Server zeigt. Hier ein paar Beispiele: | |||
$ ln -s /tmp/roarsock /etc/roarserver | |||
$ ln -s remote.host.name /etc/roarserver | |||
$ ln -s mynode:: /etc/roarserver | |||
Die andere Möglichkeit ist es die [[Umgebungsvariable]] ROAR_SERVER zu setzen: | |||
$ ROAR_SERVER=remote.host.name myplayer ... | |||
$ export ROAR_SERVER=remote.host.name # bash | |||
% setenv ROAR_SERVER remote.host.name # csh | |||
$ myplayer ... | |||
== Siehe auch == | == Siehe auch == | ||
Zeile 64: | Zeile 709: | ||
== Weblinks == | == Weblinks == | ||
* | * [http://roaraudio.keep-cool.org/ RoarAudio Homepage] | ||
[[Kategorie:RoarAudio]] | |||
[[Kategorie:Software]] | [[Kategorie:Software]] | ||
[[Kategorie:Sound]] | [[Kategorie:Sound]] | ||
{{Stub}} | {{Stub}} |
Aktuelle Version vom 31. März 2012, 01:00 Uhr
RoarAudio ist ein mächtiger Multi Plattform Soundserver. Im folgenden Artikel sollen Installations- und Konfigurations-Hinweise gegeben werden. Für eine Beschreibung der Software siehe Artikel RoarAudio.
Weitere Informationen finden sich auf der Homepage unter Documentation and Wikis. Hier Gibt es auch ein englisch sprachiges Handbuch.
Installation[Bearbeiten]
Installation aus den Sourcen heraus[Bearbeiten]
Als erstes sollte man auf die Homepage gehen und sich die aktuellen Sources herunterladen. Von dort kann man sich zum Beispiel mittels wget die Sourcen herunterladen:
$ wget http://roaraudio.keep-cool.org/dl/roaraudio-0.4beta0.tar.gz
Danach muss das Archiv mittels tar entpackt werden:
$ tar -xzvf roaraudio-0.4beta0.tar.gz
Dann wechselt man in das neue RoarAudio Verzeichnis und führt 'configure' aus:
$ ./configure
Die Übersetzung kann nun erfolgen:
$ make
Im nächsten Schritt wird das frisch gebackene Binary nun im System installiert.
$ su # make install
beziehungsweise vereinfacht mittels sudo:
$ sudo make install
Aufräumen ...
$ make clean
archlinux[Bearbeiten]
...
OpenBSD[Bearbeiten]
...
Debian[Bearbeiten]
Unter Debian stehen Pakete zur Verfügung. Diese können einfach wie folgt installiert werden:
# apt-get install roaraudio roaraudio-extra libroar-compat0
Entwickler sollten weiterhin die Entwiklungspakete installieren:
# apt-get install libroar-dev roaraudio-dbg
Konfigurieren[Bearbeiten]
Allgemein[Bearbeiten]
Allgemein gesprochen gibt es keine Konfigurationsdateien oder Ähnliches für RoarAudio. Der Daemon wird mittels seiner Kommandozeilen Parameter konfiguriert. Die Clients mittels deren Konfigurations Dialogen und den Umgebungsvariablen (siehe Unten) sowie deren Kommandozeilen Parametern.
Globaler Standard Server Definieren[Bearbeiten]
Die Einzige Ausnahme ist die Datei /etc/roarserver. Bei ihr handelt es sich um einen Symlink welcher auf den Globalen Standard Server verweist.
Beispiele:
# ln -s /tmp/.otherroar /etc/roarserver # ln -s remote.address.example.com /etc/roarserver
OpenSLP (ZeroConf)[Bearbeiten]
Damit RoarAudio Clients ihren Server im Netzwerk automatisch finden können muss bei diesem OpenSLP aktiviert sein. Dazu reicht es in der Regel schon aus --slp dem roard mit zu übergeben. Es muss allerdings darauf geachtet werden das für die öffentlichen Listen Sockets mittels --bind eine echte Adresse angegeben ist. Diese kann natürlich auch ein Hostname sein.
Im weiteren kann es Sinn ergeben einen slpd zu installieren.
Server seitige EsounD Emulation[Bearbeiten]
Server seitige EsounD Emulation kann aktiviert werden durch das erzeugen eines zusätzlichen Listen Sockets mit der korrekten Protokoll Kennung. Dies gescheit mittels --new-sock und --proto. Es muss eine andere Adresse und/oder Port für diesen verwendet werden. Dies gescheit mittels der Standard Optionen --port, --bind und --sock.
Beispiele:
# roard [...] --new-sock --proto esd --sock /tmp/.esd/socket # roard [...] --new-sock --proto esd --bind 0.0.0.0 --port 16001
archlinux[Bearbeiten]
...
Debian und Debian basierende Systeme[Bearbeiten]
Auf Debian Basierenden Systemen gibt es eine Datei namens /etc/default/roaraudio. Sie Beinhaltet alle gängig Einstellmöglichkeiten und ist gut kommentiert.
OpenSLP (ZeroConf)[Bearbeiten]
Zum einschalten von OpenSLP muss unter Debian und Debian basierenden Systmen nur folgender Eintrag in der Konfigurationsdatei gemacht werden:
ROARD_SLP='YES'
Weiterhin muss wie oben beschreiben ein echter Hostname gesetzt werden, Dies gescheit mittels:
ROARD_HOST='myserver.name'
Server seitige EsounD Emulation[Bearbeiten]
Zur Verwendung der Server seitigen EsounD Emulation muss unter Debian nur der Parameter ROARD_EMUL_ESD_AF gesetzt werden.
Beispiele:
ROARD_EMUL_ESD_AF='TCP' ROARD_EMUL_ESD_AF='UNIX' ROARD_EMUL_ESD_AF='DECnet'
Benutzen[Bearbeiten]
Plugins[Bearbeiten]
libao[Bearbeiten]
Nach der erfolgreichen Installation sollte das libao Plugin 'roar' zur Verfuegung stehen. Um es als Standard Ausgabe zu benutzen muss folgendes in die Datei /etc/libao.conf geschrieben werden:
default_driver=roar
XMMS[Bearbeiten]
Ist das XMMS Plugin installiert so lässt es sich unter XMMS einfach in den Plugin Einstellungen auswählen: Man drückt Strg+P und kann es dann unter Output Plugin finden. Nach dem Klicken auf OK einfach den laufenden Titel neu starten und das Plugin sollte verwendet werden.
Findet XMMS das Plugin nicht sollte überprüft werden ob roard läuft und XMMS muß gegebenfalls nach dem Starten von roard neu gestartet werden da XMMS dazu neigt, Plugins für nicht beim Start laufende Ausgaben zu verstecken.
Da das Plugin noch keinen Optionen Dialog hat muss der Server gegeben falls wie in Abschnitt Server ohne Optionen des Players auswählen gezeigt eingestellt werden.
Audacious[Bearbeiten]
Zum einrichten des Audacious kann die Anleitung für das XMMS Plugin hergenommen werden. Die aus zu führenden schritte sind die selben.
Programme ohne Plugins[Bearbeiten]
Audacity[Bearbeiten]
Audacity kann mittels roarify verwendet werden:
$ roarify audacity
GNOME Mixer[Bearbeiten]
Der GNOME Mixer sollte von sich aus wunderbar funktionieren sofern das gstreamer Plugin installiert ist. Anderenfalls kann er auch mittels roarify gestartet werden:
$ roarify gnome-volume-control
Amarok[Bearbeiten]
Amarok funktioniert mittels beider EsounD emulationen (Server seitig oder Client seitig) unter Benutzung der XINE Engine. Diese Muss dazu ausgewählt werden im Konfigurations Dialog. Danach auf den Treiber 'esd' umstellen.
Bei Verwendung der gstreamer Engine kann entweder das RoarAUdio Plugin verwendet werden oder das EsounD Plugin.
GNOME[Bearbeiten]
GNOME bassirt heute auf gstreamer. Für dieses gibt es ein Plugin das empfohlen wird.
KDE[Bearbeiten]
Je nach KDE Version kann aRtsd dazu konfiguriert werden EsounD als backend zu benutzen oder in neueren KDE versionen kann ein passendes Phonon Backend eingestellt werden.
MPD[Bearbeiten]
MPD lässt sich mittels roarify starten wenn der OSS Treiber geladen ist. Der libao Treiber scheint eine macke zu haben und mpd lässt sich gar nicht starten.
MPD lässt sich durch den RoarAudio PlayList Daemon ersetzen. Dieser ist von hause aus voll mit RoarAudio integriert.
MPlayer[Bearbeiten]
MPlayer funktioniert wunderbar mittels EsounD Emulation (Client + Server). Ansonsten gibt es ein experimentelles Plugin für MPlayer.
Wine[Bearbeiten]
Wine kann die Server Seitige EsounD emulation benutzen. Dazu muss ein weiteres Plugin installiert werden. Dies kann dann mittels winecfg aktiviert werden.
Basis Tools[Bearbeiten]
RoarAudio kommt mit diversen Basis Tools welche dazu genutzt werden können Dateien abzuspielen, Webradio zu hören und die gemischten Audio Daten wieder weiter zu verwenden.
Musik abspielen[Bearbeiten]
Audio Dateien (nicht nur RIFF/WAVE) lassen sich am einfachsten mittels roarcatplay abspielen:
$ roarcatplay foo.wav
Für Ogg/Vorbis Dateien gibt es ein weiteres Programm namens roarvorbis welches auch Meta Informationen anzeigt:
$ roarvorbis bar.ogg
Zum Abspielen von Musik im Hintergrund ohne einen Player im Vordergrund zu benötigen benutzt man roarradio:
$ roarradio http://www.mein-webradio.org/blubb.ogg
Musik speichern und streamen[Bearbeiten]
RoarAudio kann Musik nicht nur an Soundcards schicken sondern auch in Dateien oder zu einem icecast oder ähnlichen Streaming-Server.
Zum Speichern und Auslesen von Musik kann das Programm roarmon eingesetzt werden:
$ roarmon --codec vorbis output.ogg
roarmon kann auch in Pipes eingesetzt werden:
$ roarmon | myenc -o bla.ext -
Zum Streamen mittels libshout kann roarshout eingesetzt werden.
$ roarshout myserver.de 8000 hackme /roar.ogg
Die Parameter sind mit denen von oggfwd kompatibel und lassen sich mittels --help nachschlagen.
Auch ist es möglich das roard selbst einen Streaming-Server mittels libshout ansprechen kann:
$ roard -oN -o shout -O http://source:hackme@myserver.de:8000/roar.ogg
Hier erzeugt das -oN ein neues Output (output New) mit dem Treiber shout. Die URL gibt die Adresse des Servers an. Der Eintrag ist gleichbedeutend mit dem aus dem Beispiel von roarshout. Das Wort source ist hier der Benutzername, er wird bei roarshout nicht angeben da er der Standard Wert ist muss hier aber angegeben werden Grunds der syntaktischen Korrektheit.
Steuerung mittels roarctl[Bearbeiten]
Server Status[Bearbeiten]
Der Server lässt sich mittels folgendem Befehlen beenden:
$ roarctl exit # Sofort beenden $ roarctl terminate # Beenden sobald alle Clients disconnected sind (Bei vielen Playern: Nach dem aktuellen Titel)
Auserdem kann der Server in den Standby Mode versetzt werden:
$ roarctl standby # oder.. $ roarctl off # In den Standby gehen $ roarctl resume # oder ... $ roarctl on # In den normal Modus gehen
Abgefragt werden kann der aktuelle Status mittels des Befehls standbymode:
$ roarctl standbymode
Client und Stream Informationen Auslesen[Bearbeiten]
Mit dem Befehl allinfo lassen sich nahe zu alle Informationen über Clients und Streams ausgeben:
$ roarctl allinfo
Es gibt auch spezialisiertere Befehle:
$ roarctl serveroinfo # Informationen über des Servers Mischer $ roarctl listclients # Informationen über die Clients (Player) $ roarctl liststreams # Informationen über die Streams
Die Befehle lassen sich mit dem Parameter -v (verbose - Erweiterte Anzeige) kombinieren.
Clients und Streams Manipulieren[Bearbeiten]
Es gibt mehrere Manipulation die zur Laufzeit erfolgen können. Eine der wichtigsten ist es einen Client oder Stream zu kicken:
$ roarctl kick client 123 $ roarctl kick stream 123
Weitere Optionen können für Streams verändert werden. Eine weitere wichtige ist die Lautstärke. Sie lässt sich mittels volume verstellen:
$ roarctl volume 123 mono 50%
Dieser Befehl setzt die Lautstärke auf 50% für den Stream 123. Zu beachten ist hier das mono. Es gibt an das man die Lautstärke für einen Kanal setzen will. Wenn der Stream mehr Kanäle hat, meist 2 für Stereo, so versucht roarctl sinnvoll fortzusetzen: in diesem Falle wird die Lautstärke für alle Kanäle gesetzt.
Möchte man den Pegel für den rechten und linken Kanal getrennt steuern so kann man das Schlüsselwort stereo verwenden:
$ roarctl volume 123 stereo 80% 30%
Dies setzt die Lautstärke auf 80% Links und 30% Rechts. Hat man mehr als 2 Kanäle kann man auch die Anzahl der Kanäle explizit angeben. In diesem Falle muss die Anzahl der weiteren Parametern exakt der Kanalanzahl entsprechen, zum Beispiel:
$ roarctl volume 123 4 20% 40% 60% 80%
Anstatt prozentualer Angaben können auch absolute gemacht werden. Die Skala reicht von 0 bis 65535 (inklusive):
$ roarctl volume 123 mono 8192
Weiterhin ist es mit Neueren Versionen auch möglich angaben in dB zu benutzen sofern Unterstützung für die Standard Mathematik Bibliothek mit einkompiliert wurde:
$ roarctl volume 123 mono -12dB
Zwei Soundserver miteinander verbinden[Bearbeiten]
RoarAudio kann zwei Soundserver mit einander in verschiedensten weisen Koppeln. Hierzu dient das Tool roarinterconnect.
Um dies zu tun muss man die Adressen der Server angeben und Informationen über den Type der Verbindung. Sollten keine Server angegeben werden wird als lokaler Server der default Server benutzt und der entfernte Server wird versucht via OpenSLP auf zu lösen.
Typen[Bearbeiten]
Die Typenangabe ist in zwei teile aufgeteilt: der Server Type (Protokoll) und der Verbindungs Type (Stream Type). Die Folgenden Server Typen gibt es im Moment:
- roar für RoarAudio Server
- esd für EsounD Server
- simple für PulseAudio simple Protokoll
- oss für OSS Geräte Dateien
Die Verbindungs Typen sind die folgenden:
- bidir für eine bidirektionale Verbindung (nur RoarAudio, default)
- filter um einen Soundserver als Filter für den Anderen zu verwenden
- transmit um lediglich die Lokale Ausgabe auf den entfernten Server zu spiegeln
- receive um die Ausgabe des entfernten Servers auf den lokalen zu spiegeln
Beispiele[Bearbeiten]
$ roarinterconnect --type transmit --remote stereoanlage.local
Einschränkungen[Bearbeiten]
Der als lokaler Server angegebene Server muss die Fähigkeit haben Background Streams zu verwenden und es muss ich um einen RoarAudio Server handeln. Andere Protokolle sind hier nicht unterstützt.
Kompatibilitäts Layer[Bearbeiten]
ab RoarAudio Version 0.2beta3
Mittels des Tools roarify können Kompatibilitäts Bibliotheken geladen sowie Kompatibilitäts Binarys ausgeführt werden. Dazu wird roarify einfach der Name des Programms über geben welches mit den Kompatibilitäts Bibliotheken geladen werden soll, beziehungsweise das Programm welches emuliert werden soll:
$ roarify myplayer $ roarify mplayer -ao esd bla.ogg $ roarify aucat ... $ roarify esd $ roarify artsplay ...
Liste der Kompatibilitäts Biblotheken[Bearbeiten]
Name | Kompatibel zu | Ab Version | Beschreibung |
---|---|---|---|
libroaresd | Enlightened Sound Daemon | 0.1 | Client seitige Binär kompatible EsounD Emulation. Nahezu alle Applikationen funktionieren mit dieser einwandfrei. |
libroarpulse-simple | PulseAudio Simple API |
0.1 | Client seitige Binär kompatible PulseAudio Emulation. Hierbei handelt es sich um eine Emulation der Simple API. Nicht alle Clients laufen damit. (Name bei Version 0.3beta5 geändert.) |
libroarpulse | PulseAudio Asynchrone API |
0.3beta5 | Client seitige Binär kompatible PulseAudio Emulation. Hierbei handelt es sich um die Haupt API. Diese wird zum teil unterstützt. Einige Programme laufen damit. |
libroararts | aRts - KDE Sound System | 0.1 | Eine Cleint seitige binär kompatible aRtsc Emulation. Die meisten Programme laufen mit ihr. Die meisten die nicht mit ihr laufen haben höchst fragwürdige aRtsc Plugins weswegen viele Distributoren die besagten Plugins aus den Paketen entfernt haben. |
libroaryiff | YIFF Sound System | 0.1beta2 | Eine binär kompatible Emulation der YIFF Sound System API. Die Emulation umfasst alle dokumentierten teile der API inklusive der Teile welche durch die original Bibliothek nicht implementiert sind. Einige Veränderungen wurden durchgeführt um eklatante Sicherheitslöcher zu schließen. Diese Änderungen sollten die meisten Applikationen nicht beeinträchtigen. Genaue Tests liegen aber nicht vor aufgrund des mangels an Applikationen welche das YIFF Sound System benutzen. |
libroarsndio | OpenBSD sndio | 0.2beta3 | Eine Emulation des aktuellen OpenBSD Sound Interfaces (sndio). Sie ist auch auf nicht OpenBSD Systemen funktionsfähig und kann als Portierungshilfe verwendet werden. Sie ist nahezu vollständig und wir unter stetiger Kommunikation mit dem OpenBSD sndio Team entwickelt. |
libroaross | Open Sound System (OSS) | 0.3beta3 | Hierbei handelt es sich um eine preload Bibliothek welche das Open Sound System emuliert. Die meiste Software läuft mit dieser Emulation einwandfrei. Es handelt sich um eine der besten OSS Emulationen gemessen an der menge der Software welche damit läuft. |
libroaross | DMX4Linux | 0.3beta4 | DMX4Linux Emulation. Derzeit nur schreib Support. Lese Support kann mittels dmx Treiber emulirt werden. |
libroarrsound | RSound | 0.3beta5 | Eine binär kompatible Emulation des der librsound des RSound Sound Systems. Da das RSound Sound System noch extrem jung ist herrscht hier noch eine gewissen Instabilität. |
Liste der Kompatibilitäts Binarys[Bearbeiten]
ab RoarAudio Version 0.3beta2
Sound Systen Name | Ab Version | Beinhaltete Tools |
---|---|---|
EsounD | 0.3beta2 | esd esdcat esdfilt esdmon esdplay (ab 0.3beta5:) esddsp |
aRts | 0.3beta3 | artsd artscat artsplay (ab 0.3beta5:) artsdsp |
NAS | 0.3beta3 | auplay (ab 0.3beta5:) audial audiooss* |
YIFF Sound System | 0.3beta3 | yiff yplay yshutdown |
PulseAudio | 0.3beta3 | pacat paplay (ab 0.3beta5:) padsp |
dtmfdial | 0.3beta5 | dtmfdial |
RSound | 0.3beta6 | ross rsd |
- = audiooss ist ein externes Paket und gehört nicht zu NAS direkt dazu. Es wird aber von offizieller Seite auf audiooss verwiesen.
Liste der unterstützten Protokolle[Bearbeiten]
Protokoll Name | Ab Version | Beschreibung/Kommentare |
---|---|---|
RoarAudio (nativ) | 0.1 | Das native RoarAudio Protokoll. |
EsounD | 0.3beta0 | Eine nahe zu komplette EsounD Emulation auf Server Seite. Nahe zu alle Applikationen funktioniren mit dieser Emulation unter Verwendung der original Client Bibliothek. |
Simple | 0.3beta4 | Das PulseAudio Simple Protokoll. Alle nötigen Parameter können mittels der --proto-* Optionen gesetzt werden. Der Standardwert liegt auf Playback-Stream und den nativen Audio Parametern des roards. |
RSound | 0.3beta5 | Das Protokoll der RSound Netzwerk-Sound Abstraktionsebene (schlanker Sound Server). |
RPlay | 0.3beta7 | Emulation eines Subsets des Protokolls des RPlay sound servers |
Umgebungsvariablen[Bearbeiten]
Übersicht[Bearbeiten]
Diese Übersicht zeigt die wichtigsten Umgebungsvariablen auf. Weitere werden durch die Kompatibilitäts Layer verwendet.
Variable | Beispiel | Beschreibung |
---|---|---|
HOME | /home/phi | Heimatverzeichnis des Benutzers |
USER | phi | Aktueller Benutzername |
TERM | xterm | Aktueller Terminal Type |
DISPLAY | :0 | Adresse des benutzen X11 Servers |
ROAR_SERVER | remote.example.com | Adresse des Daemons |
ROAR_OPTIONS | workaround:use-execed | Optionen für libroar |
CDDA_DEVICE | /dev/cdrom | Device Name für CDDA (Audio CDs) Zugriff |
ROAR_PROXY | ssh | Zu verwendeter Proxy Type |
http_proxy | http://localhost:8118/ | Adresse des HTTP Proxys |
socks_proxy | localhost:1080 | Adresse des SOCKS Proxys |
ssh_proxy | myserver.remote.network | Adresse des SSH Servers der als Proxy dienen soll |
ROAR_OPTIONS[Bearbeiten]
Die Umgebungsvariable $ROAR_OPTIONS besteht aus durch Leerzeichen getrennten Options Zeichenketten.
Parameter | Unter-Parameter | Beispiel | Beschreibung |
---|---|---|---|
#/Leer-Option | (keine) | #Ein_Kommentar | Leere Optionen und Optionen welche mit einem # beginnen werden ignoriert. |
workaround | (mehrere) | workaround:use-execed | Steuert die Verwendung von Workarounds. |
workaround | use-execed | workaround:use-execed | Setzt das benutzen des use-execed-Workarounds. Dieser kann helfen wenn sich ein NAT-Gateway zwischen Server und Client befindet. |
workaround | no-slp | workaround:no-slp | Schaltet die Verwendung von OpenSLP aus. |
warning/warn | (mehrere) | warn:sysio | Steuert die Verwendung von Warnungen. |
warning/warn | sysio | warn:sysio | Schaltet Warnungen ein die auf sysio verwendenden Code hinweisen. Dies kann Entwicklern bei schreiben Portabler Software helfen. |
warning/warn | obsolete | warn:obsolete | Warnt bei Aufruf von Funktionen die als veraltet makeirt sind. Dies soll Entwicklern helfen ihre Software auf einem aktuellen stand zu halten und Faild to build from source-Fehlern vor zu beugen. |
warning/warn | all | warn:all | Schaltet alle Warnungen ein. |
force-rate | (keine) | force-rate:44100 | Erzwingt die eine bestimmte Abtastrate bei allen Streams. |
force-bits | (keine) | force-bits:16 | Erzwingt die eine bestimmte Anzahl von Bits pro Abtastwert bei allen Streams. |
force-channels | (keine) | force-channels:2 | Erzwingt die eine bestimmte Anzahl von Kanälen bei allen Streams. |
force-codec | (keine) | force-codec:pcm_s_be | Erzwingt die einen bestimmten Codec bei allen Streams. |
codec | (mehrere) | codec:vorbis:q:1 | Setzt Optionen für Codecs. |
codec | quality/q | codec:vorbis:q:1 | Setzt den Qualitätswert für einen Codec. |
codec | complexity | codec:roar_speex:complexity:8 | Setzt die Komplexität mit welcher der Codec arbeiten soll. |
codec | dtx | codec:roar_speex:dtx:true | Setzt das DTX Flag eines Codecs. |
codec | cc-max | codec:roar_celt:cc-max:80 | Setzt die Größe des CC-Puffers eines Codecs. |
codec | vbr | codec:vorbis:vbr:true | Setzt das VBR Flag eines Codecs. |
codec | mode | codec:roar_speex:mode:wb | Setzt den den Modus für einen Codec. (Werte für Speex: nb, wb, uwb) |
set-server | (keine) | set-server:/tmp/otherserver | Setzt den libroar/Applications Standard Server. Dies sollte nur unter seltenen Umständen getan werden. $ROAR_SERVER sollte in den allermeisten fällen Verwendung finden. |
set-authfile | (keine) | set-authfile:/home/phi/.roarauth | Setzt die Datei mit den Authentifikations-Cookies. |
x11-display | (keine) | x11-display::4 | Setzt das X11 Display, überschreibt $DISPLAY. |
trap-policy | (keine) | trap-policy:warn | Setzt die default Aktion die bei einem Trap ausgeführt werden soll. Mögliche Parameter sind: ignore, warn, abort, kill, stop und die. Nicht alle Parameter sind auf allen Plattformen verfügbar. |
daemonimage | (keine) | daemonimage:/home/phi/bin/roard | Setzt das Standard Image (Programmdatei) des Servers für die Verwendung von Adressen im +fork-Namensraum. |
serverflags | (mehrere) | serverflags:nonblock | Setzt Flags für den Verbindungsaufbau. |
serverflags | nonblock | serverflags:nonblock | Verbietet das Verwenden von Langsamen Verbindungsverfahren (Nicht alle Server werden gefunden wenn diese Option gesetzt ist). |
serverflags | hardnonblock | serverflags:hardnonblock | Verbietet das Verwenden von Langsamen Verbindungsverfahren und ist strenger als nonblock (Nicht alle Server werden gefunden wenn diese Option gesetzt ist). |
serverflags | localonly | serverflags:localonly | Verbietet das Verbinden mit nicht lokalen Servern. Da nicht immer erkannt werden kann ob ein Server Lokal ist kann bei Verwendung dieser Option weder garantiert werden das nur Lokale Server angesprochen werden noch das alle lokalen Server gefunden werden. |
protocolversion | (keine) | protocolversion:2 | Setzt die Standard Protokoll Version. Sollte nur in Ausnahmefällen verwendet werden. |
Liste der Umgebungsvariablen der Kompatibilitäts Layer[Bearbeiten]
Diese Übersicht zeigt die Umgebungsvariablen der Kompatibilitäts Layer auf.
Variable | Layer | Beispiel | Beschreibung |
---|---|---|---|
ESPEAKER | libroaresd | some.remote.server | Server Name des RoarAudio Servers auf den verbunden werden soll. |
PULSE_SERVER | libroarpulse | some.remote.server | Server Name des RoarAudio Servers auf den verbunden werden soll. |
AUDIODEVICE | libroarsndio | aucat:0 | Server Name, RoarAudio Server Adresse oder sndio Device Name für Waveform (PCM) Daten |
MIDIDEVICE | libroarsndio | rmidi:0 | Server Name, RoarAudio Server Adresse oder sndio Device Name für MIDI Daten |
ROAR_OSS_KEEP_SESSION | libroaross | (keine oder beliebiger Inhalt) | Hält die Verbindung zum RoarAudio Server offen auch wenn alle Audio Devices geschlossen sind. Kann bei einigen (verbugten) Applikation die Performance stark verbessern. |
ROAR_OSS_CLIENT_NAME | libroaross | MyPlayer | Name der für den Client verwendet werden soll. |
RSD_SERVER | libroarrsound | some-server | Server Name, RoarAudio Server Adresse. |
Server Adresse[Bearbeiten]
Die Adresse des Server muss in bestimmter Form vorliegen je nach Protokoll. Die Tabelle listet Alle Formate auf.
Protokoll | Format | Beispiel | Standard Werte | Beschreibung |
---|---|---|---|---|
UNIX | /pfad | /home/phi/.roar | ~/.roar, /tmp/roar | Pfad zum UNIX Socket. |
IPv4 | host[:port] | myserver.local:16002 | localhost:16002 | Hostname und gegebenenfalls Port des Servers. |
DECnet | [node]::[object] | remnod:: | localnode::roar | Node Name und gegebenenfalls Objekt Name des Servers. |
Spezial | +fork | +fork | (keiner) | Forket für den Prozess eine eigenen Instanz des Sound Daemons. |
Spezial | +slp | +slp | +slp | Sucht nach dem Sound Daemon explizit mittels OpenSLP. Dies ist dann nötig wenn sich unter den Standard Adressen ein laufender roard befindet und OpenSLP explizit benutzt werden soll. |
Spezial/UNIX | +abstract | +abstract | +abstract | Verwendet einen UNIX Domain Socket im Abstrakten Namensraum. Dieser ist von allen Prozessen des Systems aus gleichermaßen erreichbar. Dies gilt auch für Prozesse innerhalb einer chroot(2) Umgebung. |
Tips und Tricks[Bearbeiten]
Server ohne Optionen des Players auswählen[Bearbeiten]
Einige Player haben keine Möglichkeit einen Server einzustellen oder man möchte eine globale Einstellung treffen. Hierzu gibt es zwei Möglichkeiten:
Zum einen lässt sich global ein Server einstellen in dem man ein symlink mit dem Namen /etc/roarserver erstellt der auf den Server zeigt. Hier ein paar Beispiele:
$ ln -s /tmp/roarsock /etc/roarserver $ ln -s remote.host.name /etc/roarserver $ ln -s mynode:: /etc/roarserver
Die andere Möglichkeit ist es die Umgebungsvariable ROAR_SERVER zu setzen:
$ ROAR_SERVER=remote.host.name myplayer ... $ export ROAR_SERVER=remote.host.name # bash % setenv ROAR_SERVER remote.host.name # csh $ myplayer ...
Siehe auch[Bearbeiten]
Weblinks[Bearbeiten]
Dieser Artikel ist leider sehr kurz. Also: Sei mutig und mache aus ihm bitte einen guten Artikel, wenn du mehr zum Thema „RoarAudio/Installation und Einrichtung” weißt.