<para>Wenn Sie &arts-builder; verwenden wollen, sollten Sie zuerste den Klangserver (&artsd;) starten. Normalerweise ist er bereits gestartet, wenn Sie &kde; 2.1 oder höher verwenden. Ansonsten können Sie ihn in &kcontrol; unter <menuchoice><guilabel>Sound & Multimedia</guilabel><guilabel>Sound-System</guilabel></menuchoice> zum automatischen Start einrichten. </para>
<para>Wenn Sie &arts; verwenden, startet es kleine Module. &arts-builder; ist ein Werkzeug zur Erstellung neuer Strukturen von kleinen verbundenen Modulen. Sie können die Module einfach innerhalb des Gitters anordnen. Wählen Sie dazu aus dem Menü <guimenu>Module</guimenu> aus und klicken Sie dann irgendwo im grün-grauen Bereich. </para>
<para>Module habe üblicherweise Kanäle (durch die Audiosignale hinein und hinaus gelangen). Um zwei Kanäle zu verbinden, klicken Sie auf den Ersten (dadurch wird er orange) und dann auf den Zweiten. Sie können einen Eingabekanal (auf der oberen Modulseite) nur mit einem Ausgabekanal (auf der unteren Modulseite) verbinden. Wenn Sie einem Kanal einen festen Werte geben wollen (oder einen Kanal trennen wollen) so doppelklicken Sie auf diesen. </para>
<para>Um die Ausgabe zu hören, benötigen Sie ein Synth_AMAN_PLAY-Modul. Sie erstellen ein solches Modul, indem Sie <menuchoice> <guimenu>Module</guimenu> <guisubmenu>Synthese</guisubmenu> <guisubmenu>SoundIO</guisubmenu> <guisubmenu>Synth_AMAN_PLAY</guisubmenu> </menuchoice> auswählen und auf einen freien Platz im Modulbereich klicken. Platzieren Sie das Modul unterhalb der fünften Linie, da wir noch einige Module oberhalb einfügen werden. </para>
<para>Das Modul hat die Parameter <parameter>title</parameter> und <parameter>autoRestoreID</parameter> (in der Nähe des linken Kanals) zur Identifikation. Um diese auszufüllen, doppelklicken Sie auf diese Kanäle, wählen Sie konstanter Wert und tippen Sie <userinput>tutorial</userinput> in das Eingabefeld. Klicken Sie auf <guibutton>OK</guibutton> zur Bestätigung. </para>
<para>Klicken Sie auf <menuchoice><guimenu>Datei</guimenu><guimenuitem>Struktur ausführen</guimenuitem> </menuchoice>. Sie hören bisher nichts. Das Abspielmodul benötigt irgendetwas als Eingabe. Wenn Sie der Stille eine Weile gelauscht haben, klicken Sie auf <guibutton>OK</guibutton> und gehen Sie zu Schritt 2 </para>
<para>Erstellen Sie ein Synth_WAVE_SIN-Modul (im Menü unter <menuchoice> <guimenu>Module</guimenu> <guimenuitem>Synthese</guimenuitem> <guimenuitem>Wellenformen</guimenuitem> </menuchoice>) und fügen Sie dieses Modul oberhalb von Synth_AMAN_PLAY ein (lassen Sie eine Zeile Platz dazwischen). </para>
<para>Wie Sie sehen, produziert dieses Modul eine Ausgabe, erfordert aber eine Position <guilabel>pos</guilabel> als Eingabe. Verbinden Sie zuerst die Ausgabe mit den Lautsprechern. Klicken Sie auf den Kanal <guilabel>out</guilabel> des Synth_WAVE_SIN-Modules und dann auf den Kanal <guilabel>left</guilabel> des Synth_AMAN_PLAY-Modules. Damit sind diese zwei Module verbunden. </para>
<para>Keiner der Oszillatoren in &arts; benötigt eine Frequenz als Eingabe, sondern nur eine Position innerhalb der Welle. Die Position muss zwischen 0 und 1 liegen. Das wird für ein Standard-Synth_WAVE_SIN-Modul auf den Bereich 0 bis 2*Pi umgerechnet. Um eine bestimmte Frequenz zu erzeugen, benötigen Sie ein Synth_FREQUENCY-Modul. </para>
<para>Erstellen Sie ein Synth_FREQUENCY-Modul (unter <menuchoice> <guimenu>Module</guimenu> <guimenu>Synthese</guimenu> <guimenu>Oszillation & Modulation</guimenu> </menuchoice>) und verbinden Sie den <quote>pos</quote>-Ausgang mit dem <quote>pos</quote>-Eingang des Synth_WAVE_SIN-Modules. Legen Sie den Frequenzeingang des Frequenzgenerators auf den konstanten Wert 440. </para>
<para>Wählen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Struktur ausführen</guimenuitem></menuchoice>. Sie sollten einen Sinuston von 440 Hz in einem von Ihren Lautsprechern hören. Wenn Sie genug zugehört haben, klicken Sie auf <guibutton>OK</guibutton> und gehen Sie zu Schritt 3. </para>
<para>Es würde sich besser anhören, wenn der Sinuston aus beiden Lautsprechern zu hören wäre. Verbinden Sie den rechten Eingang von Synth_PLAY auch mit dem Ausgang von Synth_WAVE_SIN. </para>
<para>Erstellen Sie ein Synth_SEQUENCE-Objekt (durch <menuchoice> <guimenu>Module</guimenu> <guisubmenu>Synthese</guisubmenu> <guisubmenu>Midi & Sequencing</guisubmenu> </menuchoice>). Es sollte am oberen Rand platziert werden. Wenn Sie mehr Platz benötigen, können Sie die anderen Module verschieben, indem Sie sie auswählen (um mehrere auszuwählen, verwenden Sie &Shift;) und mit der Maus bewegen. </para>
<para>Nun verbinden Sie den Frequenzausgaben von Synth_SEQUENCE mit dem Frequenzeingang des Synth_FREQUENCY-Moduls. Stellen Sie die Geschwindigkeit der Sequenz auf den konstanten Wert 0.13 (der Geschwindigkeitseingang ist der linke). </para>
<para>Geben Sie nun für den rechten Eingang (Sequenz) von Synth_SEQUENCE als konstanten Wert <userinput>A-3;C-4;E-4;C-4</userinput> ein. Das legt eine Sequenz fest. Mehr dazu finden Sie im Abschnitt Modulreferenz. </para>
<para>Synth_SEQUENCE benötigt <emphasis>unbedingt</emphasis> eine Sequenz und eine Geschwindigkeit. Ohne diese Angaben wird das Programm vermutlich abstürzen. </para>
<para>Wählen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Struktur ausführen</guimenuitem> </menuchoice>. Sie sollten nun eine nette Sequenz hören. Klicken Sie auf <guibutton>OK</guibutton> und gehen Sie zu Schritt 4. </para>
<para>Erstellen Sie ein Synth_PSCALE-Modul (durch <menuchoice> <guimenu>Module</guimenu> <guisubmenu>Synthese</guisubmenu> <guisubmenu>Hüllkurven</guisubmenu> </menuchoice>). Trennen Sie den Ausgang der SIN-Welle durch doppelklicken und auswählen von <guilabel>nicht verbunden</guilabel>. Verbinden Sie </para>
<para>Das funktioniert folgendermaßen: Das Modul Synth_SEQUENCE gibt zusätzliche Informationen über die Position der gerade erklingenden Note, wobei 0 gerade gestartet und 1 beendet bedeutet. Das Modul Synth_PSCALE skaliert die Lautstärke des Audiostroms von 0 (Ruhe) über 1 (Originallautstärke) zurück zu 0 (Ruhe) abhängig von der Position. Die Position, an der die Maximallautstärke erklingen soll, kann als Positionswert (pos) angegeben werden. 0.1 bedeutet, das nach 10% der Note die Lautstärke ihren Maximalwert erreicht und danach der Ausklingvorgang startet. </para>
<para>Wählen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Struktur ausführen</guimenuitem> </menuchoice>. Sie sollten nun eine nette Sequenz hören. Klicken Sie auf <guibutton>OK</guibutton> und gehen Sie zu Schritt 4. </para>
<para>Erstellen Sie ein Synth_AMAN_PLAY-Modul und benennen Sie es sinnvoll. Erstellen Sie ein Synth_BUS_DOWNLINK-Modul und:</para>
<para>benennen Sie den Synth_BUS_DOWNLINK-Bus mit dem Namen Audio (das ist nur ein Name, man könnte auch jeden anderen Name verwenden) </para>
<para>Wenn Sie die Struktur jetzt ausführen, hören Sie noch nichts. </para>
<para>Gehen Sie zurück zur ersten Struktur in der ersten Instanz von &arts-builder; mit dem Synth_WAVE_SIN-Modul und ersetzen Sie das Modul Synth_AMAN_PLAY durch ein Synth_BUS_UPLINK,-Modul und benennen Sie es Audio (oder den Namen, den Sie für die entsprechende Komponente in der zweiten Instanz von &arts-builder; verwendet haben). Um ein Modul zu löschen, wählen Sie es aus und wählen Sie <menuchoice><guimenu>Bearbeiten</guimenu><guimenuitem>Löschen</guimenuitem></menuchoice> aus dem Menü ( oder drücken Sie die <keycap>Entfernen</keycap>-Taste). </para>
<para>Wählen Sie <menuchoice><guimenu>Datei</guimenu> <guilabel>Struktur ausführen</guilabel></menuchoice>. Sie hören die Notensequenz wiedergegeben über die Bus-Verbindung. </para>
<para>Wenn Sie herausfinden wollen, wozu eine solche Funktion nützlich ist, klicken Sie auf <guibutton>OK</guibutton> ( in der Instanz, die das Synth_SEQUENCE-Modul enthält, die andere Struktur wird nicht verändert) und gehen Sie zu Schritt 6. </para>
<title>Schritt 6 Übertragung für Fortgeschrittene</title>
<para>Wählen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Struktur umbenennen</guimenuitem></menuchoice> in der Instanz, die das Synth_SEQUENCE-Modul enthält und benennen Sie die Struktur Anleitung. Bestätigen Sie mit <guibutton>OK</guibutton>. </para>
<para>Wählen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Speichern</guimenuitem> </menuchoice> </para>
<para>Starten Sie eine weitere Instanz von &arts-builder; und wählen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Öffnen</guimenuitem></menuchoice> und laden Sie die Struktur Anleitung. </para>
<para>Nun wählen Sie im Menü <menuchoice><guimenu>Datei</guimenu><guimenuitem>Struktur ausführen</guimenuitem></menuchoice> in beiden Instanzen. Sie hören nun die gleiche Struktur zweimal. Abhängig von der Zeitverschiebung wird es mehr oder weniger glücklich klingen. </para>
<para>An dieser Stelle können Sie noch folgendes tun: Starten Sie &noatun; und spielen Sie einige <literal role="extension">mp3</literal>-Dateien ab. Starten Sie &artscontrol; und wählen Sie <menuchoice><guimenu>Ansicht</guimenu><guimenuitem>Audiomanager anzeigen</guimenuitem></menuchoice>. Es wird &noatun; und ihre Struktur <quote>Anleitung</quote> angezeigt. Klicken Sie doppelt auf &noatun;. Daraufhin wird eine Liste der Ausgabegeräte angezeigt. Auch die Struktur wird mit aufgeführt. Sie können die Ausgabe von &noatun; über den Audio-Bus durch ihre Wiedergabestruktur leiten. </para>
<para>Jetzt wollen wir den Sinusgenerator in ein wirkliches Musikinstrument verwandeln. Dazu benötigen Sie ein Gerät, das &MIDI;-Ereignisse an &arts; senden kann. Sie können ein externes Keyboard (wie im folgenden beschrieben wird) aber auch einen Sequenzer, der den Midi-bus unterstützt, wie &brahms; verwenden. </para>
<para>Beenden Sie zuerst alle überflüssigen Instanzen von &arts-builder;. Sie benötigen lediglich die Instanz mit dem Sinusgenerator. Wählen Sie dreimal <menuchoice><guimenu>Kanäle</guimenu> <guisubmenu>Audio-Eingangssignal erstellen</guisubmenu></menuchoice> und dreimal <menuchoice><guimenu>Kanäle</guimenu> <guisubmenu>Audio-Ausgangssignal erstellen</guisubmenu></menuchoice> und platzieren Sie die Module geeignet. </para>
<para>Wählen Sie <menuchoice><guimenu>Kanäle</guimenu> <guilabel>Positionen/Namen ändern</guilabel></menuchoice> und benennen Sie die Kanäle um in frequency(Frequenz), velocity(Lautstärke), pressed(gedrückt), left(links), right(rechts) und done(stopp) um. </para>
<para>Sie können nun das Modul Synth_SEQUENCE löschen und stattdessen den Frequenzeingangskanal mit dem Modul Synth_FREQUENCY-Eingang verbinden. Was soll nun mit dem pos-Eingang passieren?</para> <para>Dieser Eingang bleibt unbesetzt, da es keinen Algorithmus der Welt gibt, der vorausberechnen kann, wann ein Spieler die Taste des Keyboards, die er gerade gedrückt hat, wieder loslassen wird. Daher haben wir nur einen Parameter gedrückt stattdessen, der anzeigt, ob der Spieler die Taste noch gedrückt hält (gedrückt=1: Taste immer noch heruntergehalten; gedrückt=0: Taste losgelassen) </para>
<para>Das Synth_PSCALE-Objekt muss nun auch ersetzt werden. Ersetzen Sie es durch ein Synth_ENVELOPE_ADSR-Modul (durch <menuchoice><guimenu>Module</guimenu><guisubmenu>Synthese</guisubmenu> <guisubmenu>Hüllkurven</guisubmenu></menuchoice>). Verbinden Sie: </para>
<para>Setzen Sie die Parameter attack auf 0.1, decay auf 0.2, sustain auf 0.7 und release auf 0.1. </para>
<para>Weiterhin müssen wir daran denken, das die Instrumentenstruktur wissen muss, wenn der Spieler mit spielen fertig ist, da sonst der letzte Klang nicht beendet wird, auch wenn die letzte Taste losgelassen worden ist. Glücklicherweise weiß die ADSR-Hüllkurve (envelope), wann nichs mehr zu hören ist, da das Signal nach dem Loslassen der letzten Taste irgendwann auf Null reduziert wird. </para>
<para>Das wird erreicht, indem der Ausgang done auf 1 gesetzt wird. Verbinden Sie diesen Ausgang mit dem Ausgangskanal stopp. Damit wird die Struktur beendet, sobald dieser Ausgang auf 1 wechselt. </para>
<para>Benennen Sie die Struktur in Instrument_Anleitung um (durch <menuchoice><guimenu> Datei</guimenu> <guimenuitem>Struktur umbenennen</guimenuitem></menuchoice>). Speichern Sie die Struktur nun (der vorgegebene Name sollte jetzt Instrument_Anleitung sein).</para><para>Starten Sie nun artscontrol, wählen Sie <menuchoice><guimenu>Ansicht</guimenu><guimenuitem>Midi-Manager</guimenuitem></menuchoice> und wählen Sie<menuchoice><guimenu>Hinzufügen</guimenu><guimenuitem>aRts-Synthese Midi-Ausgabe</guimenuitem></menuchoice>. Hier sollten Sie in der Lage sein, ihr Instrument (Anleitung) auszuwählen. </para>
<para>Wenn Sie jetzt ein Terminal öffnen und <userinput><command>midisend</command></userinput> eintippen, sollte <command>midisend</command> und das Instrument im &arts; &MIDI;-Manager angezeigt werden. Wählen Sie beides aus und klicken Sie auf <guibutton>Verbinden</guibutton>. Damit sind die Vorbereitungen abgeschlossen. Nehmen Sie nun ihr Keyboard und beginnen Sie zu spielen (selbstverständlich nachdem Sie es mit dem Computer verbunden haben). </para>
<para>Versuchen Sie andere Module anstelle von SIN. Wenn Sie eine TRI-Wellenform verwenden, werden Sie vermutlich feststellen, das diese Wellenform nicht besonders hübsch klingt. Hängen Sie einen SHELVE_CUTOFF-Filter an das TRI-Modul, um alle Frequenzen oberhalb einer bestimmten Grenzfrequenz (versuchen Sie etwa 1000 Hz oder besser noch die doppelte Eingabefrequenz +200 Hz oder einen ähnlichen Wert). </para>
<para>Verwenden Sie mehrere Oszillatoren zusammen. Synth_XFADE kann zum kreuzweisen mixen (cross fade) von zwei Signalen verwendet werden, Synth_ADD zum Addieren von zwei Signalen. </para>
<para>Verarbeiten Sie das Signal, das aus dem Downlink-Bus kommt, weiter. Sie können für einen Echo-Effekt das ursprüngliche Signal etwas verzögert dazumischen. </para>
<para>Verwenden Sie die Lautstärkeeinstellung (die Stärke, mit der die Taste gedrückt worden ist). Ein besonderer Effekt entsteht, wenn der Lautstärkewert nicht nur die Ausgabelautstärke sondern auch den Klang des Instrumentes verändert (zum Beispiel die Grenzfrequenz). </para>
<para>Wenn Sie eine besondere Struktur konstruiert haben, schicken Sie sie an die &arts;-Internetseite. Sie kann dann der nächsten Version beigelegt werden. </para>
<para>Die Beispiele, mit denen &arts-builder; verteilt wird, können Sie unter <menuchoice><guimenu>Datei</guimenu><guimenuitem>Beispiel öffnen ...</guimenuitem> </menuchoice> finden. Einige befinden sich im angezeigten Verzeichnis, einige (die in der aktuellen Version aus irgendwelchen Gründen nicht funktionieren) befinden sich im todo-Verzeichnis. </para>
<para>Die Beispiele können in mehrere Kategorien eingeteilt werden: </para>
<para>Modulbeispiele demonstrieren jeweils eines der in arts enthaltenen Modules (<filename>example_*.arts</filename> benannt). Sie senden üblicherweise irgendwelche Ausgaben an die Soundkarte. </para>
<para>Instrumente (mit Namen <filename>instrument_*.arts</filename>) sind aus den grundlegenden arts-Modulen zusammengesetzt. Sie haben standardisierte Ein- und Ausgabekanäle, so dass sie mit dem &MIDI;-Manager aus &artscontrol; verwendet werden können. </para>
<para>Mixer-Elemente (mit Namen <filename>mixer_element_*.arts</filename>) können zur Erstellung von Mixern mit graphischen Kontrollelementen verwendet werden [momentan alle im todo-Verzeichnis ] </para>
<para>Sendet einen 440Hz-Sinuston an den linken und einen 880Hz-Sinuston an den rechten Kanal der Soundkarte. Dieses Modul wird in der &arts;-Dokumentation erwähnt. </para>
<para>Erzeugt einen Doppelton aus einer 697Hz- und 1209Hz-Sinusschwingung, die mit 0.5 skaliert und addiert werden. Es entsteht der DTMF-Ton für die Ziffer "1" einer Telefontastatur. </para>
<para>Verwendet ein Autopan-Modul, um einen 400Hz-Sinuston mit einer Frequenz von 2 Hz zwischen dem linken und rechten Lautsprecher hin- und herzubewegen. </para>
<para>Verbindet von einem Bus namens <quote>Delay</quote> zum rechten Ausgangskanal mit einer Verzögerung von 0.5 Sekunden (cdelay), während der linke Kanal unverändert bleibt. Mit &artscontrol; können Sie diesen Effekt mit einem Abspieler verbinden. Das Resultat ist hörenswert. </para>
<para>Das gleiche Beispiel wie <filename>example_cdelay.arts</filename>, mit dem Unterschied, dass der delay-Effekt anstelle von cdelay verwendet wird. </para>
<para>Mit dem Modul Synth_CAPTURE_WAV wird ein 400Hz-Sinuston als wav-Datei gespeichert. Lassen Sie das Modul für 2 Sekunden laufen und untersuchen Sie die in <filename class="directory">/tmp</filename> erzeugte Datei. Sie können Sie mit einem Spieler wie <application>kaiman</application> abspielen. </para>
<para>Mit einem Data-Modul wird ein konstanter Strom mit dem Wert <quote>3</quote> erzeugt und für die periodische Anzeige an ein Debug-Modul gesendet. Das Beispiel enthält weiterhin ein Nil-Modul, das demonstriert, wie man eine Struktur erzeugt, die gar nichts tut. </para>
<para>Demonstriert, wie man mit dem Envelope-Adsr-Modul einen einfachen Instrumentenklang erzeugt, der durch eine Rechteckschwingung geschaltet wird. </para>
<para>Verbindet den Freeverb-Effekt von einem Bus downlink zu einem Bus outlink. Sie können mit artscontrol diesen Effekt mit einem Spieler verbinden und sich das Resultat anhören. </para>
<para>Diese Struktur kombiniert zwei Kanäle von einem Bus, schickt das Signal durch einen Moog-VCF-Filter und das Ergebnis auf den out_soundcard-Bus. </para>
<para>Diese Struktur schickt den linken Kanal von Soundkartendaten durch einen Höhenverschiebungseffekt (pitch shift). Mit dem Speed-Parameter kann der Effekt modifiziert werden. </para>
<para>Diese Struktur sendet weißen Lärm durch einen RC-Filter und dann an die Soundkarte. Betrachten Sie das Ergebnis in der FFT-Anzeige von artscontrol, um den Unterschied zu ungefiltertem Lärm zu sehen. </para>
<para>Diese Struktur schickt weißen Lärm durch einen Shelve-Cutoff-Filter und dann an die Soundkarte. Das Ergebnis können Sie in der FFT-Anzeige von artscontrol betrachten. </para>
<para>Dieses Beispiel mixt einen 440Hz- und einen 880Hz-Sinuston mit einem "cross fader". Verändern Sie die Prozentanzeige von -1 bis 1, um die Mischung der zwei Signale zu beeinflussen. </para>
<para>Illustriert das Play_Wave-Modul. Sie müssen den kompletten Pfad zur <literal role="extension">wav</literal>-Datei als Parameter filename angeben. </para>
<para>Zeigt, wie das Multi_Add-Modul eine beliebige Anzahl Eingangssignale aufsummiert. Drei Eingänge mit den Werten 1,2 und 3 erzeugen den Ausgangswert 6. </para>