<para>Först av allt, när du försöker köra aRts-byggaren, ska du också köra ljudservern (&artsd;). Oftast, om du använder &kde; 2.1, ska detta redan vara fallet. Om inte, så kan du ställa in automatisk start av ljudservern i inställningscentralen, med <menuchoice><guilabel>Ljud</guilabel><guilabel>Ljudserver</guilabel></menuchoice>. </para>
<para>När du kör &arts;, körs alltid små moduler. aRts-byggaren är ett verktyg för att skapa nya strukturer av små ihopkopplade moduler. Du klickar helt enkelt i rutnätet för att lägga till en modul. För att göra detta, välj dem från menyn <guimenu>Moduler</guimenu>, och klicka någonstans på den gröngrå ytan. </para>
<para>Moduler har ofta portar (där ljudsignaler vanligtvis leds in eller ut). För att koppla ihop två portar, klicka på den första, som gör att den blir orange, och klicka sedan på den andra. Du kan bara förbinda en inport (på översidan av en modul) med en utport (på undersidan av en modul). Om du vill ange ett konstant värde för en port (eller koppla ifrån den), gör det genom att dubbelklicka på porten. </para>
<para>Du behöver en Synth_AMAN_PLAY-modul för att höra utdata som du skapar. Så skapa en Synth_AMAN_PLAY-modul genom att välja <menuchoice><guimenu>Moduler</guimenu> <guisubmenu>Syntes</guisubmenu> <guisubmenu>Ljud-IO</guisubmenu> <guisubmenu>Synth_AMAN_PLAY</guisubmenu></menuchoice> och klicka på den tomma modulytan. Placera den nedanför den femte raden ungefär, eftersom vi kommer att lägga till en del grejor ovanför. </para>
<para>Modulen kommer att ha en parameter <parameter>title</parameter> (porten längst till vänster), och <parameter>autoRestoreID</parameter> (intill porten längst till vänster) för att den ska kunna hittas. För att fylla i de här, dubbelklicka på portarna, välj konstant värde och skriv <userinput>handledning</userinput> i textrutan. Klicka <guibutton>OK</guibutton> för att verkställa. </para>
<para>Välj <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Kör struktur</guimenuitem> </menuchoice>. Du hör absolut ingenting. Uppspelningsmodulen behöver också någon indata... ;) Om du har lyssnat på tystnaden ett tag, klicka <guibutton>Avsluta</guibutton> och gå till steg 2. </para>
<para>Skapa en Synth_WAVE_SIN-modul (från <menuchoice> <guimenu>Moduler</guimenu> <guimenuitem>Syntes</guimenuitem> <guimenuitem>Vågformer</guimenuitem></menuchoice>) och placera den ovanför Synth_AMAN_PLAY-modulen (lämna en rads mellanrum mellan dem). </para>
<para>Som du ser, så producerar den någon utdata, men kräver <guilabel>pos</guilabel> som indata. Låt oss först ansluta utporten till högtalarna. Klicka på porten <guilabel>out</guilabel> på Synth_WAVE_SIN och sedan på porten <guilabel>left</guilabel> på Synth_AMAN_PLAY. Voila, du har kopplat ihop två moduler. </para>
<para>Oscillatorer i &arts; kräver inte en frekvens som indata, utan istället en position i vågformen. Positionen ska vara mellan 0 och 1, som i ett standardobjekt Synth_WAVE_SIN översätts till området 0 .. 2*Pi. För att skapa oscillerande värden från en frekvens, används en Synth_FREQUENCY modul. </para>
<para>Skapa en Synth_FREQUENCY-modul (från <menuchoice> <guimenu>Moduler</guimenu> <guimenuitem>Syntes</guimenuitem> <guimenuitem>Oscillation & modulation</guimenuitem></menuchoice>) och anslut dess <quote>pos</quote> utgång till <quote>pos</quote> ingången på Synth_WAVE_SIN. Sätt frekvensporten för frekvensgeneratorn till det konstanta värdet 440. </para>
<para>Välj <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Kör struktur</guimenuitem> </menuchoice>. Du kommer att höra en sinusvåg på 440 Hz i en av dina högtalare. Om du har lyssnat på den ett tag, klicka <guibutton>Avsluta</guibutton> och gå till steg 3. </para>
<para>OK, det vore trevligare om du kunde höra sinusvågen i båda högtalarna. Anslut den högra porten på Synth_PLAY till utgången från Synth_WAVE_SIN också. </para>
<para>Skapa ett Synth_SEQUENCE-objekt (från <menuchoice><guimenu>Moduler</guimenu> <guisubmenu>Syntes</guisubmenu><guisubmenu>Midi & sekvensiering</guisubmenu></menuchoice>). Det ska placeras överst på skärmen. Om du behöver mer utrymme kan du flytta de andra modulerna genom att markera dem (för att markera flera moduler håll nere skifttangenten), och dra omkring dem. </para>
<para>Anslut nu frekvensutgången på Synth_SEQUENCE till frekvensingången på Synth_FREQUENCY-modulen. Ange sedan sekvensens hastighet som konstant värde 0.13 (hastigheten är porten längs till vänster). </para>
<para>Gå nu till porten längs till höger (seq) på Synth_SEQUENCE och skriv in <userinput>A-3;C-4;E-4;C-4;</userinput> som konstant värde. Det här anger en sekvens. Mer om detta i modulreferensen. </para>
<para>Välj <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Kör struktur</guimenuitem> </menuchoice>. Du kommer att höra en trevlig sekvens spelas upp. Om du har njutit av känslan, klicka <guibutton>Avsluta</guibutton> och gå till steg 4. </para>
<para>Skapa en Synth_PSCALE-modul (från <menuchoice><guimenu>Moduler</guimenu> <guisubmenu>Syntes</guisubmenu> <guisubmenu>Envelopper</guisubmenu> </menuchoice>). Koppla bort utgången från sinusvågen genom att dubbelklicka på den och välja <guilabel>inte ansluten</guilabel>. Anslut </para>
<para>Hur fungerar detta nu: Synth_SEQUENCE ger ytterligare information om positionen för tonen den spelar just nu, där 0 betyder precis påbörjad och 1 betyder avslutad. Modulen Synth_PSCALE skalar ljudflödet som skickas genom den från volymen 0 (tyst) till 1 (ursprunglig ljudstyrka) tillbaka till 0 (tyst) enligt positionen. Positionen där toppen ska ske kan anges som top. 0.1 betyder att efter 10 % av tonen har spelats har volymen nått sitt maximala värde, och börjar sedan avta. </para>
<para>Välj <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Kör struktur</guimenuitem> </menuchoice>. Du kommer att höra en trevlig sekvens spelas upp. Om du har njutit av känslan, klicka <guibutton>Avsluta</guibutton> och gå till steg 5. </para>
<para>Placera en Synth_AMAN_PLAY i den, och ställ in den till ett vettigt namn. Placera en Synth_BUS_DOWNLINK i den och:</para>
<para>Börja köra strukturen. Som väntat hör du ingenting, ... inte än. </para>
<para>Gå tillbaka till strukturen med Synth_WAVE_SIN grejorna och byt ut Synth_AMAN_PLAY-modulen mot en Synth_BUS_UPLINK, och ställ in namnet till ljud (eller Fred om du vill). Att ta bort moduler görs genom att markera dem och välja <menuchoice><guimenu>Redigera</guimenu> <guimenuitem>Ta bort</guimenuitem></menuchoice> från menyn (eller trycka på tangenten <keycap>Del</keycap>). </para>
<para>Välj <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Kör struktur</guimenuitem> </menuchoice>. Du kommer att höra sekvensen med skalade toner, transporterad över bussen. </para>
<para>Om du vill ta reda på varför något sådant här kan vara användbart, klicka <guibutton>Avsluta</guibutton> (i aRts-byggaren som kör Synth_SEQUENCE grejorna, du kan låta den andra fortsätta köra) och gå till steg 6. </para>
<title>Steg 6: Skicka data för avancerade användare</title>
<para>Välj <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Byt namn på struktur</guimenuitem></menuchoice> från menyn i den aRts-byggare som innehåller Synth_SEQUENCE grejorna, och kalla den handledning. Tryck <guibutton>OK</guibutton>. </para>
<para>Starta ytterligare en aRts-byggare och välj <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Öppna</guimenuitem> </menuchoice>, och ladda handledningen igen. </para>
<para>Nu kan du välja <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Kör struktur</guimenuitem> </menuchoice> i båda aRts-byggarna som har strukturen. Nu hör du samma sak två gånger. Beroende på när du startar dem kommer det att låta mer eller mindre bra. </para>
<para>En annan sak som kan vara bra att göra vid det här tillfället är att starta &noatun;, och spela en <literal role="extension">mp3</literal>-fil. Starta sedan &artscontrol;. Gå till <menuchoice><guimenu>Visa</guimenu><guimenuitem>Visa ljudhanterare</guimenuitem></menuchoice>. Vad du ser är &noatun; och din struktur <quote>handledning</quote> spela upp någonting. Det trevliga som du kan göra är: dubbelklicka på &noatun;. Du får nu en lista på tillgängliga bussar. Och ser du? Du kan låta &noatun; skicka sin utmatning via ljudbussen till uppspelningsstrukturen som din handledning tillhandahåller. </para>
<para>Till slut, nu ska du kunna göra om din sinusvåg till ett riktigt instrument. Det här är bara meningsfullt om du har något lämpligt som kan skicka &MIDI;-händelser till &arts;. Här beskriver jag hur du kan använda ett externt keyboard, men en sequencer, som &brahms;, som känner till midibussen fungerar också. </para>
<para>Först av allt, rensa på ditt skrivbord till du bara har en aRts-byggare med sinusvågstrukturen igång (men låt den inte köra). Gå därefter tre gånger till <menuchoice><guimenu>Portar</guimenu> <guisubmenu>Skapa IN-ljudsignal</guisubmenu></menuchoice>, och tre gånger till <menuchoice><guimenu>Portar</guimenu> <guisubmenu>Skapa UT-ljudsignal</guisubmenu></menuchoice>. Placera portarna någonstans. </para>
<para>Gå till <menuchoice><guimenu>Portar</guimenu> <guilabel>Ändra positioner/namn</guilabel></menuchoice> och döp portarna till frequency, velocity, pressed, left, right, done. </para>
<para>Till sist kan du ta bort modulen Synth_SEQUENCE, och istället ansluta inporten frequency för strukturen till frekvensporten på Synth_FREQUENCY. Hmm. Men vad ska man göra med pos?</para> <para>Den här är inte tillgänglig, eftersom det inte finns någon algoritm i värden som kan förutse när användaren ska släppa tangenten han just tryckte ner på sitt midi-keyboard. Vi har istället parametern pressed, som bara anger om användaren fortfarande håller nere tangenten. (pressed = 1: tangenten fortfarande nertryckt, pressed = 0: tangenten släppt) </para>
<para>Det här betyder också att Synth_PSCALE-objektet måste bytas ut nu. Koppla in en Synth_ENVELOPE_ADSR istället (från <menuchoice><guimenu>Moduler</guimenu> <guisubmenu>Syntes</guisubmenu> <guisubmenu>Envelopper</guisubmenu> </menuchoice>). Anslut: </para>
<para>Ställ in parametrarna attack till 0.1, decay till 0.2, sustain till 0.7, release till 0.1. </para>
<para>En sak till som vi måste tänka på är att instrumentstrukturen måste på något sätt veta när den har spelat färdigt och då kunna rensas bort, eftersom den annars aldrig skulle stanna även om tangenten har släppts. Som tur är, vet ADSR enveloppen när det inte finns mer att höra, eftersom den ändå skalar ner signalen till noll vid någon tidpunkt efter tangenten har släppts. </para>
<para>Det här anges genom att sätta utgången done till 1. Så anslut den här till strukturens utgång. Strukturen tas bort så fort done blir 1. </para>
<para>Döp om din struktur till instrument_handledning (från <menuchoice><guimenu> Arkiv</guimenu> <guimenuitem>Byt namn på struktur</guimenuitem></menuchoice>. Spara den sedan med Spara som (det förvalda namnet som nu anges ska vara instrument_handledning).</para><para>Starta aRts control, och gå till <menuchoice><guimenu>Visa</guimenu><guimenuitem>Visa midihanterare</guimenuitem></menuchoice>, och välj <menuchoice><guimenu>Lägg till</guimenu><guimenuitem>aRts synthes midi utmatning</guimenuitem></menuchoice>. Till sist ska du kunna välja ditt instrument (handledning) här. </para>
<para>Öppna en terminal och skriv <userinput><command>midisend</command></userinput>. Du kommer att se att <command>midisend</command> och instrumentet nu listas i &arts; &MIDI;hanterare. Efter att ha valt båda två och tryckt på <guibutton>Anslut</guibutton>, är vi till sist klara. Ta ditt keyboard och börja spela (det måste förstås vara anslutet till din dator). </para>
<para>Försök att använda något annat än en sinusvåg. Om du kopplar in en triangelvåg, TRI, tycker du troligen inte att ljudet är särskilt trevligt, Men försök att lägga till ett SHELVE_CUTOFF-filter direkt efter triangelvågen för att klippa frekvenserna ovanför en viss frekvens (försök med något i stil med 1000 Hz, eller ännu bättre två gånger indatafrekvensen eller indatafrekvensen + 2000 Hz eller något sådant). </para>
<para>Försök använda mer än en oscillator. Synth_XFADE kan användas för att övertona (blanda) två signaler, Synth_ADD för att addera dem. </para>
<para>Försök efterbehandla signalen när den kommer ut från bussens nerlänk. Du skulle till exempel kunna blanda en fördröjd version av signalen med originalet för att få en ekoeffekt. </para>
<para>Försök att använda anslagsstyrkan, velocity (det här är styrkan som tangenten har tryckts ner med, man kan också kalla det volymen). Specialeffekter uppstår alltid om det här inte bara ändrar volymen på signalen som skapas, utan också instrumentets ljud (till exempel klippningsfrekvensen). </para>
<para>aRts-byggaren levereras med flera exempel, som kan öppnas med <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Öppna exempel...</guimenuitem> </menuchoice>. Några av dem är i katalogen, medan några (som av någon anledning inte fungerar med den nuvarande utgåvan) har lämnats i todo-katalogen. </para>
<para>Exemplen kan delas in i flera kategorier: </para>
<para>Självständiga exempel som illustrerar hur var och en av de inbyggda aRts-modulerna används (som heter <filename>example_*.arts</filename>). De här skickar typiskt någon utmatning till ett ljudkort. </para>
<para>Instrument som byggs från aRts-moduler på lägre nivå (som heter <filename>instrument_*.arts</filename>). De här följer en standardkonvention för in- och utportar så att de kan användas av &MIDI;-hanteraren i &artscontrol;. </para>
<para>Mixerelement som används för att skapa mixrar, inklusive grafiska styrmoduler (som heter <filename>mixer_element_*.arts</filename>). [ alla att göra ] </para>
<para>Skapar en 440 Hz sinusvåg i vänster kanal och en 880 Hz sinusvåg i höger kanal, och skickar dem till ljudkortet. Den här hänvisas till i &arts; dokumentation. </para>
<para>Skapar en dubbelton genom att producera sinusvågor med 697 och 1209 Hz, skala dem till 0,5 och addera dem. Det här är DTMF-tonen för siffran "1" på en knapptelefon. </para>
<para>Länkar ner från en buss som heter <quote>Bus</quote> och länkar upp till bussen <quote>out_soundcard</quote> med vänster och höger kanal utbytta. </para>
<para>Länkar ner från en buss som heter <quote>Delay</quote> och länkar upp höger kanal genom en 0,5 sekunders fördröjning, och vänster kanal oförändrad. Du kan använda &artscontrol; för att ansluta effekten till ljuduppspelning och observera resultatet. </para>
<para>Det här använder Synth_CAPTURE_WAV för att spara en 400 Hz sinusvåg som en wav-fil. Kör modulen i några sekunder, och titta sedan på filen som skapats i <filename class="directory">/tmp</filename>. Du kan spela upp filen med en mediaspelare som <application>kaiman</application>. </para>
<para>Det här använder Data-modulen för att skapa en konstant ström av värdet <quote>3</quote> och skickar det till en Debug-modul för att visa det periodiskt. Det innehåller också en Nil-modul, och visar hur den kan användas för att göra ingenting alls. </para>
<para>Det här förbinder Freeverb-effekten från en bussnerlänk till en bussupplänk. Du kan använda artscontrol för att ansluta effekten till ljuduppspelning och observera resultatet. </para>
<para>Den här strukturen kombinerar de två kanalerna från en buss till en, skickar den genom ett Moog VCF filer, och skickar det sedan till bussen out_soundcard. </para>
<para>Den här strukturen skickar vänsterkanalens ljuddata genom en tonhöjdsändringseffekt. Justera hastighetsparametern för att variera effekten. </para>
<para>Den här strukturen skickar vitt brus genom ett RC-filer och ut till ljudkortet. Genom att titta på FFT mätaren i artscontrol kan du se hur det här skiljer sig från en ofiltrerad brusvågform. </para>
<para>Den här strukturen skickar vitt brus genom ett hyllklippningsfilter och ut till ljudkortet. Genom att titta på FFT mätaren i artscontrol kan du se hur det här skiljer sig från en ofiltrerad brusvågform. </para>
<para>Det här exemplet blandar 440 och 880 Hz sinusvågor med en övertoning. Justera värdet på övertoningens procentingång från -1 till 1 för att kontrollera blandningen av de två signalerna. </para>
<para>Det här illustrerar modulen Play Wave. Du måste ange hela sökvägen till en <literal role="extension">.wav</literal>-fil som filnamnsparameter. </para>
<para>Det här visar modulen Multi Add, som accepterar vilket antal ingångar som helst. Det summerar tre Data-moduler som producerar indata 1, 2 och 3, och visar resultatet 6. </para>