# &artscontrol;

Mit &arts; werden einige Hilfs- und Steuerprogramme ausgeliefert. Sie müssen sich mit diesen Programmen vertraut machen, wenn Sie &arts; effektiv nutzen wollen. Dieser Abschnitt beschreibt jedes dieser Programme und ihre Aufrufparameter.

## &kcontrol;

Wenn Sie &arts; unter &kde; einsetzen, stellt &kcc; einige Einstellmöglichkeiten in dem Abschnitt Klänge bereit. Einige dieser Einstellungen werden von &arts; verwendet. Weiterhin können Sie Klänge mit verschiedenen Systemnachrichten des Fenstermanagers oder von &kde; im Abschnitt Erscheinungsbild Systemnachrichten verknüpfen. Das Handbuch zu &kcontrol; gibt genauere Informationen über diese Einstellungen.

## &artsd;

Der Zugriff auf die Klangressourcen wird durch &artsd;, den &arts;-Dämon kontrolliert. Das ermöglicht es verschiedenen Anwendungen, gleichzeitig Anfragen an den Soundserver zu senden, der sie dann mixt und zusammen wiedergibt. Ohne einen zentralen Soundserver kann immer nur eine Anwendung zur Zeit die Klangressourcen verwenden.

Zur Verwendung von &arts; darf nur eine Instanz von &artsd; aktiv sein. Sie wird normalerweise beim Start von &kde; gestartet, wenn der zugehörige Eintrag in &kcontrol; im Abschnitt Soundserver aktiviert ist.

Das Programm akzeptiert die folgenden Aufrufparameter:

    artsd  -n -p -N -W n   -a audiomethod -r sampling rate -b bits -d -D devicename -F fragments -S size -s seconds -m appName   -h -A -v -l level

`-r `Sampling-Rate``

- Setzt die zu verwendende Sampling-Rate.

`-h`

- Verwendungshinweise anzeigen.

`-n`

- Netzwerk-Transparenz aktivieren.

`-p `Port``

- Legt den zu verwendenden TCP-Port fest (setzt `-n` voraus).

`-u`

- Öffentlich, keine Authentifizierung (unsicher).

`-d`

- Volle Duplex-Fähigkeit aktivieren.

`-D `Gerätename``

- Audiogerät festlegen (normalerweise `/dev/dsp`).

`-F `Fragmente``

- Anzahl der Fragmente festlegen.

`-S `Größe``

- Legt die Fragmentgröße in Byte fest.

`-s `Sekunden``

- Legt die Zeit bis zum automatischen Aussetzen in Sekunden fest. Der Wert Null deaktiviert das automatische Aussetzen.

`-m `appName``

- Gibt den Namen der Anwendung an, die für die Ausgabe von Fehler- , Warn- und Informationsmeldungen verwendet wird. Wenn Sie KDE verwenden, können Sie das Hilfsprogramm artsmessage verwenden.

`-N`

- Erhöht die Größe der Netzwerkpuffer auf einen Wert, der für ein 10 mbps LAN erforderlich ist. Diese Einstellung ist äquivalent zur Option -w 5 (weiter unten).

`-w `n``

- Wenn Sie &artsd; über eine Netzwerkverbindung zu einem anderen Rechner betreiben, sollten Sie die Puffer vergrößern, um Aussetzer zu vermeiden. &arts; stellt Anwendungen eine Standardpuffergröße bereit. Ohne diese Option basiert die Größe auf Abschnittgröße * Abschnittanzahl. Durch diese Option können Sie diese Größe vom Standardwert um einen Faktor von `n` erhöhen.

`-l `Ebene``

- Legt die Informationsebene fest - 3 (keine), 2 (Warnungen), 2 (Informationen), 0 (Debug).

`-v`

- Versionsnummer anzeigen.

In den meisten Fällen reicht das Kommando &artsd; zum Start.

## &artswrapper;

Für ein gutes Echtzeit-Antwortverhalten, sollte &artsd; normalerweise als Echtzeit-Prozess (auf Systemen, die solche Prozesse unterstützen) gestartet werden. Das erfordert root-Rechte, daher kann &artsd; aus Sicherheitsgründen durch ein kleines Startprogramm namens artswrapper gestartet werden, das Echtzeitpriorität setzt (es arbeitet als `root`) und dann `artsd` als Nicht-root startet.

Falls man artswrapper als SUID `root` ausführt, wird die Qualität der Wiedergabe aufgrund weniger Unterbrechungen der Musik erhöht. Allerdings erhöht sich dadurch auch das Risiko einer Beschädigung des Rechners durch einen Fehler oder einen böswilligen Benutzer. Außerdem kann die Wiedergabe einer hochwertigen Musikaufnahme in einem Mehr-Benutzersystem negative Auswirkungen auf die Geschwindigkeit anderer Prozesse und Benutzer haben, die produktiv arbeiten wollen.

## &artsshell;

Der Befehl &artsshell; ist ein Hilfsprogramm, das verschiedene Funktionen im Zusammenhang mit dem Soundserver ausführt. Das Programm wird in der Zukunft vermutlich mit weiteren Funktionen ausgestattet (einen Überblick geben die Kommentare im Quelltext).

Die Befehlszeile zum Start hat das folgende Format:

    artsshell  suspendstatus terminate autosuspend secs networkbuffers n volume [volume] stereoeffect options   -h -q

artsshell [options] `Befehl` [`Befehlsoptionen`]

Folgende Optionen werden unterstützt:

`-q`

- Ausgabe unterdrücken.

`-h`

- Verwendungshinweise anzeigen.

Folgende Befehle werden unterstützt:

`suspend`

- Der Soundserver schaltet sich aus.

`status`

- Statusinformationen des Soundservers anzeigen.

`terminate`

- Den Soundserver beenden. Das kann Programme, die den Soundserver verwenden, zum Absturz bringen.

`autosuspend` `Sekunden`

- Setzt die Zeit bis zum Aussetzen auf die angegebene Anzahl von Sekunden. Der Soundserver setzt automatisch aus, wenn er die angegebene Zeit unbeschäftigt ist. Der Wert Null deaktiviert das automatische Aussetzen.

`networkbuffers` `n`

- Setzt die Größe der Netzwerkpuffer auf das `n`-fache der Standardgröße.

`volume` [`Lautstärke`]

- Legt die Lautstärkeskalierung für die Soundserver Audioausgabe fest. Das Argument `Lautstärke` ist eine Kommazahl. Bei Aufruf ohne Argument wird der aktuelle Wert angezeigt.

`Liste der Stereoeffekte`

- Liste aller verfügbaren Stereoeffektmodule

`stereoeffect insert [top|bottom]` `Name`

- Fügt einen Stereoeffekt in einen Stereoeffektstapel ein. Gibt einen Namen zurück, der für ein späteres Löschen erforderlich ist. Der Effekt kann oben oder unten (Standardeinstellung) hinzugefügt werden.

`stereoeffect remove` `Id`

- Löscht den Stereoeffekt mit dem Namen `Id` vom Effektstapel.

## artsplay

Der Befehl artsplay ist ein einfaches Hilfsprogramm zum Abspielen einer Klangdatei. Der Befehl hat ein einziges Argument, nämlich den Namen der an den Soundserver zu schickenden Datei. Die Klangdatei kann zu jedem der üblichen Typen gehören, also `wav` oder `au`. Mit diesem Befehl kann man testen, ob der Soundserver funktioniert. Indem man zwei Befehl parallel oder in schneller Folge gibt, kann man demonstrieren, wie der Soundserver mehrere Ausgaben mixen kann.

## artsdsp

Der Soundserver unterstützt nur Anwendungen, die &arts;-aktiviert sind. Viele herkömmliche Anwendungen wollen auf die Klanggeräte direkt zugreifen. Das Programm &artsdsp; ist eine Übergangslösung, die es vielen dieser Anwendungen erlaubt, ohne Änderung zu funktionieren.

Wenn ein Programm unter &artsdsp; ausgeführt wird, werden alle Zugriffe auf das Audiogerät `/dev/dsp` abgefangen und in &arts; API-Aufrufe umgewandelt. Diese Emulation ist nicht perfekt, aber die meisten Anwendungen funktionieren auf diese Weise mit einer kleinen Einbuße an Geschwindigkeit und Antwortverhalten.

Der Befehl &artsdsp; hat das folgende Format:

artsdsp [`Optionen`] `Anwendung Parameter`

Folgende Optionen werden erkannt:

`-h`, `--help`

- Zeigt eine kurze Hilfe.

`-n` `--name` = `Name`

- Verwendet `Name` um den Spieler gegenüber `artsd`.zu identifizieren.

`-m` `--mmap`

- Speicher-Mapping emulieren (&zb; für Quake).

`-v` `--verbose`

- Zeigt Parameter an.

Ein typischer Aufruf ist:

``artsdsp` `-v` `-m` `realplay `Lied.mp3```

Einige Anwendungen funktionieren mit der Einstellung `--mmap` besser. Es werden nicht alle Funktionen des Klanggerätes voll emuliert, aber die meisten Anwendungen sollten funktionieren. Falls eine nicht funktionieren sollte, senden Sie eine detailierte Benachrichtigung ein. So können die Entwickler möglicherweise eine Lösung finden. Bedenken Sie, dass es sich um eine Übergangslösung handelt. Die beste Lösung ist sicherlich, Unterstützung für &arts; zu der Anwendung hinzuzufügen. Wenn Ihre Lieblingsanwendung &arts; nicht unterstützt, bitten Sie die Entwickler diese Unterstützung nachzurüsten.

## artscat

Dieses kleine Hilfsprogramm kann Audion-Rohdaten zum Soundserver schicken. Sie müssen das Datenformat (Samplingrate, Samplegröße und Anzahl der Kanäle) angeben. Es ist ein Programm, das Sie vermutlich nicht oft benötigen, das aber für Testzwecke recht praktisch ist. Die Aufrufsyntax ist:

artscat [ `Optionen` ] [ `Dateiname` ]

Wenn Sie keinen Dateinamen angeben, wird von der Standardeingabe gelesen. Folgende Optionen werden unterstützt:

`-v` `--verbose`

- Setzt die zu verwendende Sampling-Rate.

`-b` `Bits`

- Setzt die Sample-Größe fest (8 oder 16).

`-c` `Kanäle`

- Setzt die Anzahl der Kanäle fest (1 oder 2).

`-h`

- Nur Verwendungshinweise anzeigen.

## &artscontrol;

Dies ist ein graphisches Programm für die Durchführung einer Anzahl Aufgaben im Zusammenhang mit dem Soundserver. Das Hauptfenster hat zwei Lautstärkeanzeigen und einen Schieberegler für die Gesamtausgabelautstärke. Aus dem Menü Ansicht können Sie weitere Funktionen auswählen:

FFT-Anzeige

- Öffnet ein Fenster mit einer Echtzeit-Spektrumanalysator-Anzeige.

Audio-Manager

- Zeigt die aktiven Klangquellen an und erlaubt die Zuordnung zu einem der verfügbaren Busse.

aRts-Statusanzeige

- Zeigt an, ob der Soundserver läuft und Echtzeitpriorität besitzt. Außerdem wird angezeigt, wann der Soundserver automatisch aussetzt. Durch einen Knopf kann er auch sofort ausgeschaltet werden.

Midi-Manager

- Zeigt aktive &MIDI;-Ein- und Ausgabegeräte an und erlaubt die Herstellung von Verknüpfungen [TODO: Funktioniert vermutlich noch nicht! Mehr Details benötigt].

FreeVerb

- Verbindet einen FreeVerb-Echoeffekt mit dem Stapel von &arts; Ausgabeeffekten und erlaubt eine graphische Kontrolle der Effektparameter.

Lautstärkeanzeige im LED-Stil

- Ändert die Lautstärkeanzeige des Hauptfensters auf eine farbige LED-Anzeige anstatt Fortschrittsbalken.

## artsc-config

Dieses Hilfsprogramm unterstützt Entwickler bei der Verwendung des &arts; C-API. Es gibt die geeignete Compiler- und Linker-Optionen aus, die zur Kompilierung und zum Linken von Programmen mit &arts; benötigt werden. Es ist gedacht zur Verwendung innerhalb von make-Dateien zur Unterstützung von Portabilität. Das Programm kennt drei Optionen:

`--cflags`

- Zeigt die Kompiler-Flags an, die zur Kompilierung mit dem &arts; C-API benötigt werden.

`--libs`

- Zeigt die Linker-Flags an, die zum Linken mit dem &arts; C-API benötigt werden.

--version

- Zeigt die Versionsnummer des `artsc-config` Befehles an.

Eine typische Ausgabe dieses Befehls sieht folgendermaßen aus:

    % artsc-config --cflags
    -I/usr/local/kde2/include/artsc
    % artsc-config --libs
    -L/usr/local/kde2/lib -ldl -lartsc -DPIC -fPIC -lpthread
    % artsc-config --version
    0.9.5

Sie können dieses Programm in einer Make-Datei z.B. in einer solchen Regel verwenden:

    artsc: artsc.c
            gcc `artsc-config --cflags` -o artsc artsc.c `artsc-config --libs`

## &mcopidl;

Der Befehl &mcopidl; ist der IDL-Datei Kompiler für &MCOP;, das Multimedia Communication Protokol, das von &arts; verwendet wird. Interfaces sind in &arts; in &IDL;, einer sprachunabhängigen Interface Definition Language, geschrieben. Das Programm &mcopidl; akzeptiert ein &IDL;-Datei als Eingabe und generiert C++-Header und Quelldateien für eine Klasse, die das Interface implementiert. Der Befehl hat die folgende Syntax:

mcopidl [ `Optionen` ] `Dateiname`

Folgende Optionen sind möglich:

`-I` `Verzeichnis`

- Suche in `Verzeichnis` nach Include-Dateien.

`-e` `Name`

- Schließe die Struktur, das Interface oder den Aufzählungstyp `Name` von der Erzeugung aus.

`-t`

- Erzeuge zusätzlich die Dateien `.mcoptype`/ `.mcopclass`, die Informationen für die &IDL;-Datei enthalten.

Weitere Informationen über &MCOP; und &IDL; finden Sie im Abschnitt Interfaces und &IDL;.