<!-- <?xml version="1.0" ?>
<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd">
To validate or process this file as a standalone document, uncomment
this prolog. Be sure to comment it out again when you are done -->

<chapter id="arts-modules">
<title
>&arts; moduler</title>

  <sect1 id="modules-introduction">
<title
>Inledning</title>

<para
> Det här kapitlet beskriver alla standardmodulerna i &arts;. En av de mest kraftfulla funktionerna i &arts; är att moduler kan kopplas ihop till strukturer som implementerar nya funktioner som ljudeffekter och instrument. </para>

<para
> Moduler delas upp i två kategorier. Syntesmoduler används för att implementera <quote
>rörmokeriet</quote
> som manipulerar multimediadataflöden för att skapa nya effekter, instrument, mixrar och program. Visuella moduler låter dig skapa ett grafiskt gränssnitt för att styra ljudstrukturer som byggs upp med syntesmodulerna. </para>

</sect1>

<sect1 id="synth-modules-reference">
<title
>Referens till syntesmoduler</title>
<para
> </para>

<sect2 id="mcat-synth-arithmetic-mixing">
<title
>Aritmetik + mixning</title>

<para
> </para>

<sect3 id="mref-synth-add-sect">
<title
>Synth&lowbar;ADD</title>
<anchor id="mref-synth-add" />

<mediaobject
> <imageobject
> <imagedata fileref="images/Synth_ADD.png" format="PNG"/></imageobject
> <textobject
><phrase
>Synth&lowbar;ADD</phrase
></textobject
> </mediaobject>

<para
> Den här adderar två signaler. </para>

</sect3>

<sect3 id="mref-synth-mul-sect">
<title
>Synth&lowbar;MUL</title>
<anchor id="mref-synth-mul"/>

<mediaobject
> <imageobject
> <imagedata fileref="images/Synth_MUL.png" format="PNG"/></imageobject
> <textobject
><phrase
>Synth&lowbar;MUL</phrase
></textobject
> </mediaobject>

<para
> Den här multiplicerar signalen med en faktor. Du kan använda det här för att skala ner (0 &lt; faktor &lt; 1) eller upp (faktor &gt; 1) signaler eller invertera signaler (faktor &lt; 0). Observera att faktorn kan vara en signal och behöver inte vara konstant (t.ex. envelopper eller flyttalssignaler). </para>

</sect3>

<sect3 id="mref-synth-multi-add-sect">
<title
>Synth&lowbar;MULTI&lowbar;ADD</title>
<anchor id="mref-synth-multi-add" />

<mediaobject
> <imageobject
> <imagedata fileref="images/Synth_MULTI_ADD.png" format="PNG"/></imageobject
> <textobject
><phrase
>Synth&lowbar;MULTI&lowbar;ADD</phrase
></textobject
> </mediaobject>

<para
> Den här adderar ett godtyckligt antal signaler. Om du behöver summera vågformer som skapas av fyra olika oscillatorer, kan du till exempel ansluta alla deras utgångar till en Synth&lowbar;MULTI&lowbar;ADD-modul. Det här är effektivare än att använda tre Synth&lowbar;ADD-moduler. </para>

</sect3>

<sect3 id="mref-synth-xfade-sect">
<title
>Synth&lowbar;XFADE</title>
<anchor id="mref-synth-xfade" />

<mediaobject
> <imageobject
><imagedata fileref="images/Synth_XFADE.png" format="PNG"/> </imageobject
> <textobject
><phrase
>Synth&lowbar;XFADE</phrase
></textobject
> </mediaobject>

<para
> Den här övertonar två signaler. Om procentingången är -1, hörs bara vänstra signalen, om den är 1, hörs bara den högra. Om den är 0, hörs båda signalerna med samma volym. </para>

<para
> Den här gör att du kan försäkra dig om att signalen stannar inom ett väldefinierat område. Om du har två signaler som är mellan -1 och 1 innan övertoningen, kommer de att vara i samma område efteråt. </para>
</sect3>

<sect3 id="mref-synth-autopanner-sect">
<title
>Synth&lowbar;AUTOPANNER</title>
<anchor id="mref-synth-autopanner" />

<para
> Motsatsen till övertoning. Den här tar en monosignal och delar den till en stereosignal. Den används för att automatiskt panorera insignalen mellan vänster och höger utgång. Det här gör mixningen mer levande. En standardtillämpning kan vara en gitarr- eller sololjud. </para>

<para
> Anslut en <acronym
>LFO</acronym
>, till exempel en sinus eller sågtandsvåg till inlfo, och välj en frekvens mellan 0,1 och 5 Hz för att få en traditionell effekt eller ännu mer för specialeffekter (<acronym
>FX</acronym
>). </para>

</sect3>

</sect2>

<sect2 id="mcat-synth-busses">
<title
>Bussar</title>

<para
> </para>

<sect3 id="mref-synth-bus-uplink-sect">
<title
>Synth&lowbar;BUS&lowbar;UPLINK</title>
<anchor id="mref-synth-bus-uplink" />

<mediaobject
> <imageobject
><imagedata fileref="images/Synth_BUS_UPLINK.png" format="PNG"/> </imageobject
> <textobject
><phrase
>Synth&lowbar;BUS&lowbar;UPLINK</phrase
></textobject
> </mediaobject>

<para
> En upplänk till en buss. Ange signaler till vänster och höger, och namnet på bussen som data ska skickas till på <quote
>buss</quote
> porten. Den kombinerade signalen från alla upplänkar med det här namnet hamnar på varje nerlänk på den <quote
>bussen</quote
>. </para>
</sect3>

<sect3 id="mref-synth-bus-downlink-sect">
<title
>Synth&lowbar;BUS&lowbar;DOWNLINK</title>
<anchor id="mref-synth-bus-downlink" />

<mediaobject
> <imageobject
> <imagedata fileref="images/Synth_BUS_DOWNLINK.png" format="PNG"/></imageobject
> <textobject
><phrase
>Synth&lowbar;BUS&lowbar;DOWNLINK</phrase
></textobject
> </mediaobject>

<para
> Hämtar (summan av) all data som skickas på en viss buss (med namnet du anger på <quote
>buss</quote
> porten). </para>
</sect3>

</sect2>

<!-- TODO AFTER KDE2.1: move freeverb into delays, and rename category to
     Delays !amp-internal! reverbs -->

<sect2 id="mcat-synth-delays">
<title
>Fördröjningar</title>

<para
> </para>

<sect3 id="mref-synth-delay-sect">
<title
>Synth&lowbar;DELAY</title>
<anchor id="mref-synth-delay" />

<mediaobject>
<imageobject
><imagedata fileref="images/Synth_DELAY.png"
               format="PNG"/></imageobject
></mediaobject>

<para
> Den här fördröjer insignalen en viss tid. Tidsangivelsen måste vara mellan 0 och maxdelay för en fördröjning mellan 0 och maxdelay sekunder. </para>

<para
> Den här sortens fördröjning <emphasis
>kan inte användas</emphasis
> i återmatningsstrukturer. Det här beror på att det är en varierbar fördröjning. Det går att ändra längden medan den kör, och även sätta den till noll. Men eftersom den egna utgången behövs för att beräkna nästa sampling i en återmatningsstruktur, kan en fördröjning med ett värde som kan gå ner till noll under syntes leda till en låsningssituation. </para>

<para
> Använd CDELAY:er i sådana situationer, eller kombinera en kort konstant fördröjning (av 0,001 sekunder) med en variabel fördröjning. </para>

<para
> Man kan också kombinera en CDELAY och en DELAY för att åstadkomma en fördröjning med variabel längd i en återkoppling. Försäkra dig bara om att du har med en CDELAY. </para>

</sect3>

<sect3 id="mref-synth-cdelay-sect">
<title
>Synth&lowbar;CDELAY</title>
<anchor id="mref-synth-cdelay" />

<mediaobject
> <imageobject
><imagedata fileref="images/Synth_CDELAY.png" format="PNG"/></imageobject
> <textobject
><phrase
>Synth&lowbar;CDELAY</phrase
></textobject
> </mediaobject>

<para
> Den här fördröjer insignalen en viss tid. Tidsangivelsen måste vara större än 0 för en fördröjning av 0 sekunder eller mer. Fördröjningen är konstant under beräkningen, vilket betyder att den inte kan ändras. </para>

<para
> Det här sparar beräkningstid eftersom ingen interpolation görs, och är användbart för rekursiva strukturer. Se beskrivningen ovan (Synth&lowbar;DELAY). </para>

</sect3>

</sect2>

<sect2 id="mcat-synth-envelopes">
<title
>Envelopper</title>

<para
> </para>

<sect3 id="mref-synth-envelope-adsr-sect">
<title
>Synth&lowbar;ENVELOPE&lowbar;ADSR</title>
<anchor id="mref-synth-envelope-adsr" />

<mediaobject
> <imageobject
><imagedata fileref="images/Synth_ENVELOPE_ADSR.png" format="PNG"/></imageobject
> <textobject
><phrase
>Synth&lowbar;ENVELOPE&lowbar;ADSR</phrase
></textobject
> </mediaobject>

<para
> Den här är ett klassiskt <acronym
>ADSR</acronym
>-envelopp, som betyder att du anger: </para>

<variablelist
> <varlistentry
> <term
>active</term
> <listitem
> <para
> Om användaren håller nere tangenten just nu. </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>invalue</term
> <listitem
> <para
> Insignalen. </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>attack</term
> <listitem
> <para
> Tiden som ska förflyta mellan användaren trycker på tangenten och signalen når sin maximala amplitud (i sekunder). </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>decay</term
> <listitem
> <para
> Tiden som ska förflyta mellan signalen nått sin maximala amplitud och signalen går tillbaka till någon konstant nivå (i sekunder). </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>sustain</term
> <listitem
> <para
> Den konstanta nivån som hålls för signalen efteråt, till användaren släpper tangenten. </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>release</term
> <listitem
> <para
> Tiden som ska förflyta efter användaren har släppt tangenten till signalen går ner till noll (i sekunder). </para
> </listitem
> </varlistentry
> </variablelist>

<para
> Du får den behandlade signalen som utvärde. När <acronym
>ASDR</acronym
>-enveloppen är klar, sätter den done till 1. Du kan använda det här för att tillhandahålla utgången <quote
>done</quote
> för ett instrument (som gör att instrumentstrukturen tas bort av &MIDI;-reläobjektet när ljudet väl har upphört). </para>

</sect3>

<sect3 id="mref-synth-pscale-sect">
<title
>Synth&lowbar;PSCALE</title>
<anchor id="mref-synth-pscale" />

<mediaobject
> <imageobject
><imagedata fileref="images/Synth_PSCALE.png" format="PNG"/></imageobject
> <textobject
><phrase
>Synth&lowbar;PSCALE</phrase
></textobject
> </mediaobject>

<para
> Modulen Synth&lowbar;PSCALE anpassar ljudflödet som skickas genom den från volymen 0 (tyst) till 1 (ursprunglig volym) tillbaka till 0 (tyst), enligt positionen (hämta positionen från en Synth&lowbar;SEQUENCE). Positionen där toppen ska vara kan anges som top. </para>

<para
> Att till exempel sätta top till 0,1 betyder att efter 10 &percnt; av tonen har spelats, har volymen nått maximalt värde, och börjar sedan avta. </para>
</sect3>

</sect2>

<sect2 id="mcat-synth-effects">
<title
>Effekter</title>

<sect3 id="mref-synth-freeverb-sect">
<title
>Synth&lowbar;FREEVERB</title>
<anchor id="mref-synth-freeverb" />

<mediaobject
> <imageobject
><imagedata fileref="images/Synth_FREEVERB.png" format="PNG"/></imageobject
> <textobject
><phrase
>Synth&lowbar;FREEVERB</phrase
></textobject
> </mediaobject>

<para
> Det här är en efterklangseffekt. I den nuvarande implementeringen är det tänkt att skicka en stereosignal genom modulen, och den lägger till efterklangseffekten i signalen. </para>

<note
> <para
> Det här betyder att den också kan användas inne i en StereoEffectStack. </para
> </note>

<para
> Insignalen ska anslutas till (inleft, inright), och utsignalen blir (outleft, outright). </para>

<para
> Parametrarna som du kan ställa in är: </para>

<variablelist
> <varlistentry
> <term
>roomsize</term
> <listitem
> <para
> Storleken på rummet som efterklangseffekten simulerar (område: 0 .. 1, där 1 är det största möjliga rummet). </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>damp</term
> <listitem
> <para
> Det här anger ett filter som gör att det simulerade rummet absorberar höga frekvenser (område 0 .. 1, där 1 betyder absorbera höga frekvenser i stor utsträckning). </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>wet</term
> <listitem
> <para
> Storleken på efterklangsignalen (dvs. den del av signalen som ska ändras av filtret, och orsaka ett <quote
>vått</quote
> ljud, dvs. ett <quote
>efterklangsljud</quote
>). </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>dry</term
> <listitem
> <para
> Storleken på ren signal som skickas igenom, som orsakar ett eko (eller kombinerad fördröjning) istället för en efterklangseffekt (område: 0 .. 1). </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>width</term
> <listitem
> <para
> Storleken på utökad stereoeffekt som efterklangsalgoritmen lägger till i efterklangseffekten, för att göra efterklangsljudet bredare i stereoljudbilden (område 0 .. 1). </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>mode</term
> <listitem
> <para
> [ATT GÖRA: Jag tror att om mode är 1, behåller efterklangen den nuvarande ljudbilden för ljudet, medan 0 är normal behandling] </para
> </listitem
> </varlistentry
> </variablelist>

</sect3>

<sect3 id="mref-synth-tremolo-sect">
<title
>Synth&lowbar;TREMOLO</title>
<anchor id="mref-synth-tremolo" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_TREMOLO.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;TREMOLO</phrase
></textobject
> </mediaobject>

<para
> Tremolomodulen modulerar amplituden enligt en <acronym
>LFO</acronym
>-vågform. Traditionellt använder man en sinusvåg, men varför begränsa sig? Vad man får är en mycket intensiv effekt som skär igenom de flesta arrangemang på grund av sitt stora dynamiska omfång. Tremoloeffekten är fortfarande en favoriteffekt bland gitarrister, även om den inte är så populär som på 1960-talet. </para>

<para
> [ATT GÖRA: för närvarande implementeras detta som invalue + abs(inlfo) - kanske skulle det vara vettigare att implementera det som invalue * (1+inlfo*depth), där depth skulle vara en parameter mellan 0 .. 1 - det här bestäms efter &kde;2.1. Om du har en kommentar, skicka e-post till &arts; e-postlista ;). ] </para>

</sect3>
<sect3 id="mref-synth-fx-cflanger-sect">
<title
>Synth&lowbar;FX&lowbar;CFLANGER</title>
<anchor id="mref-synth-fx-cflanger" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_FX_CFLANGER.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;FX&lowbar;CFLANGER</phrase
></textobject
> </mediaobject>

<para
> En fläns är en tidsvariabel fördröjningseffekt. För att göra utveckling av komplexa flänseffekter enklare, tillhandahålls den här modulen som innehåller kärnan av en enkanals flänsenhet. </para>

<para
>Den har följande portar:</para>

<variablelist
> <varlistentry
> <term
>invalue</term
> <listitem
> <para
> Signalen som du vill behandla. </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>lfo</term
> <listitem
> <para
> Helst en sinusvåg som modulerar fördröjningstiden inne i flänsen (-1 .. 1). </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>mintime</term
> <listitem
> <para
> Minimala värdet för tiden inne i flänsen i millisekunder. Föreslagna värden: försök med något nära 1 ms. Använd helst värden &lt; 1000 ms. </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>maxtime</term
> <listitem
> <para
> Maximala värdet för tiden inne i flänsen i millisekunder. Föreslagna värden: försök med något nära 5 ms. Använd helst värden &lt; 1000 ms. </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>outvalue</term
> <listitem
> <para
> Utsignalen. Det är viktigt att du blandar den här med originalsignalen (innan flänsen) för att få den önskade effekten. </para
> </listitem
> </varlistentry
> </variablelist>

<tip
> <para
> Du kan använda den här som en grund för köreffekter. </para
> </tip>

</sect3>

</sect2>

<sect2 id="mcat-synth-filters">
<title
>Filter</title>

<sect3 id="mref-synth-pitch-shift-sect">
<title
>Synth&lowbar;PITCH&lowbar;SHIFT</title>
<anchor id="mref-synth-pitch-shift" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_PITCH_SHIFT.png" format="PNG"/></imageobject
> <textobject
><phrase
>Synth&lowbar;PITCH&lowbar;SHIFT</phrase
></textobject
> </mediaobject>

<para
> Den här tonhöjdsförändrande effekten ändrar frekvensen på insignalen utan att påverka hastigheten. En tillämpning av detta är att till exempel ändra tonhöjden på din röst medan du spelar in (och spelar upp) den i realtid. </para>

<para
> Parametern <emphasis
>speed</emphasis
> är den relativa hastigheten som signalen spelas upp med. Så att med hastigheten två blir ljudet dubbelt så högt (dvs. en infrekvens på 440 Hz ger en utfrekvens på 880 Hz). </para>

<para
> Parametern <emphasis
>frequency</emphasis
> används internt för att ändra mellan olika kornighet i signalen. Den är anpassningsbar, och beroende på valet kommer tonhöjdsförändringen låta mer eller mindre realistisk vid en viss användning. Ett bra värde att börja med är någonting i stil med 5 eller 10. </para>

</sect3>

<sect3 id="mref-synth-shelve-cutoff-sect">
<title
>Synth&lowbar;SHELVE&lowbar;CUTOFF</title>
<anchor id="mref-synth-shelve-cutoff" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_SHELVE_CUTOFF.png" format="PNG"/></imageobject
> <textobject
><phrase
>Synth&lowbar;SHELVE&lowbar;CUTOFF</phrase
></textobject
> </mediaobject>

<para
> Filtrerar bort alla frekvenser över klippningsfrekvensen. </para>

</sect3>

<sect3 id="mref-synth-brickwall-limiter-sect">
<title
>Synth&lowbar;BRICKWALL&lowbar;LIMITER</title>
<anchor id="mref-synth-brickwall-limiter" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_BRICKWALL_LIMITER.png" format="PNG"/></imageobject
> <textobject
><phrase
>Synth&lowbar;BRICKWALL&lowbar;LIMITER</phrase
></textobject
> </mediaobject>

<para
> Den här modulen klipper en signal så att den passar i området [-1;1]. Den gör ingenting för att begränsa distorsionen som uppstår när en stark signal klipps av. Man kan använda det här som en ljudeffekt (till exempel för att skapa en något avklippt sinusvåg). Det är dock oftast en god idé att låta signalen gå genom ett lågpassfilter efteråt om du gör detta, för att få ljudet att låta mindre skärande. </para>
</sect3>

<sect3 id="mref-synth-std-equalizer-sect">
<title
>Synth&lowbar;STD&lowbar;EQUALIZER</title>
<anchor id="mref-synth-std-equalizer" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_STD_EQUALIZER.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;STD&lowbar;EQUALIZER</phrase
></textobject
> </mediaobject>

<para
> Den här är ett trevligt byggblock för en parametriserbar tonkontroll. Dess parametrar är: </para>

<variablelist
> <varlistentry
> <term
>Invärde, utvärde</term
> <listitem
> <para
> Signalen som filtreras av tonkontrollen. </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>low</term
> <listitem
> <para
> Hur låga frekvenser ska ändras. Värdet anges i dB, medan 0 betyder att låga frekvenser inte ska ändras, skulle -6 betyda att de dämpas med 6 dB, och +6 betyder öka dem med 6 dB. </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>mid</term
> <listitem
> <para
> Hur mittfrekvenser ska ändras av tonkontrollen i dB (se low). </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>high</term
> <listitem
> <para
> Hur höga frekvenser ska ändras av tonkontrollen i dB (se low). </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>frekvens</term
> <listitem
> <para
> Det här är mittfrekvensen för tonkontrollen i Hz, mittfrekvensen befinner sig omkring detta spektrum, med de låga och höga frekvenserna nedanför och ovanför. Observera att frekvensen inte kan vara högre än halva samplingsfrekvensen, oftast är den 22050 Hz, och inte lägre än 1 Hz. </para
> </listitem
> </varlistentry
> <varlistentry
> <term
>q</term
> <listitem
> <para
> Det här påverkar hur brett mittspektrat är. Det måste vara ett positivt tal &gt; 0. Värdet ett är rimligt, högre värden på q betyder ett smalare spektrum av mittfrekvenser. Lägre värden än ett betyder ett bredare spektrum. </para
> </listitem
> </varlistentry
> </variablelist>

</sect3>

<sect3 id="mref-synth-rc-sect">
<title
>Synth&lowbar;RC</title>
<anchor id="mref-synth-rc" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_RC.png" format="PNG"/></imageobject
> <textobject
><phrase
>Synth&lowbar;RC</phrase
></textobject
> </mediaobject>

<para
> Ett dämpat resonansfilter som filtrerar alla frekvenser omkring något högsta värde. Det finns inget användbart sätt att ange en mittfrekvens (som inte skulle klippas), eftersom indata är två underliga konstanter f och b. Koden är mycket gammal, från synthesizerns tidigaste dagar, och kommer troligen att bytas ut mot ett nytt filter som har en frekvens och ett resonansvärde som parametrar. </para>

<para
> Försök med något som liknar b=5, f=5 or b=10, f=10 or b=15, f=15 i alla fall. </para>

</sect3>

<sect3 id="mref-synth-moog-vcf-sect">
<title
>Synth&lowbar;MOOG&lowbar;VCF</title>
<anchor id="mref-synth-moog-vcf" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_MOOG_VCF.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;MOOG&lowbar;VCF</phrase
></textobject
> </mediaobject>

<para
> Filtrerar bort alla frekvenser ovanför klippningsfrekvensen (det är ett 24 dB fyrpoligt filter, som filtrerar 24 dB per oktav ovanför klippningsfrekvensen), men tillhandahåller en ytterligare parameter för att anpassa filtrets resonans, där 0 betyder ingen resonans och 4 betyder självsvängning. </para>

</sect3>

</sect2>

<sect2 id="mcat-synth-midi-sequencing">
<title
>Midi + sekvensiering</title>

<para
> </para>

<sect3 id="mref-synth-midi-test-sect">
<title
>Synth&lowbar;MIDI&lowbar;TEST</title>
<anchor id="mref-synth-midi-test" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_MIDI_TEST.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;MIDI&lowbar;TEST</phrase
></textobject
> </mediaobject>

<para
> Den här modulen laddar en instrumentstruktur från en fil, och registrerar sig som en midi-utgång med &arts; &MIDI;-hanterare. Toner som skickas till den här utgången gör att instrumentröster skapas. </para>

<note
> <para
> Du kan ställa in något sådant här på ett bekvämare sätt i &artscontrol; istället för manuellt i aRts-byggaren. </para
> </note>

</sect3>

<sect3 id="mref-synth-sequence-sect">
<title
>Synth&lowbar;SEQUENCE</title>
<anchor id="mref-synth-sequence" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_SEQUENCE.png"
format="PNG" /></imageobject
></mediaobject>

<para
> Spelar en sekvens av toner om och om igen. Tonerna anges i spårnotation, och separeras av semikolon. Ett exempel är <literal
>A-3;C-4;E-4;C-4;</literal
>. Hastigheten anges som sekunder per ton, så om du vill ange 120 slag per minut, anger du troligen 0,5 sekunder/ton, som 60 sekunder/0,5 sekunder per ton = 120 slag per minut. </para>

<para
> Du kan ge varje ton en längd i förhållande till hastigheten genom att använda ett kolon efter tonen följt av längden. <literal
>A-3:2;C-4:0.5;D-4:0.5;E-4;</literal
> visar detta. Som du kan se, tenderar midi-tonsättningsprogram att ge mer bekvämlighet ;) </para>

<para
> Synth&lowbar;SEQUENCE ger ytterligare information om positionen för tonen som spelas just nu, där 0 betyder precis påbörjad och 1 betyder avslutad. Den här informationen kan man använda med Synth&lowbar;PSCALE (se nedan). </para>
</sect3>

</sect2>

<sect2 id="mcat-synth-samples">
<title
>Samplingar</title>

<sect3 id="mref-synth-play-wav-sect">
<title
>Synth&lowbar;PLAY&lowbar;WAV</title>
<anchor id="mref-synth-play-wav" />

<mediaobject
> <imageobject
><imagedata fileref="images/Synth_PLAY_WAV.png" format="PNG"/></imageobject
> <textobject
><phrase
>Synth&lowbar;PLAY&lowbar;WAV</phrase
></textobject
> </mediaobject>

<para
> Den här spelar en <literal role="extension"
>wav</literal
>-fil. Den är bara tillgänglig om du har libaudiofile på datorn. Vågformsfilen spelas så fort modulen skapas. </para>

<para
> Den stannar så fort den är klar, och done sätts till 1. Hastighetsparametern kan användas för att spela upp filen snabbare eller långsammare, där 1.0 är den normala (inspelade) hastigheten. </para>
<!-- TODO: KDE2.2: check that this really works together in instruments with
the done parameter things ;) -->
</sect3>

</sect2>

<sect2 id="mcat-synth-soundio">
<title
>Ljud-I/O</title>

<sect3 id="mref-synth-play-sect">
<title
>Synth&lowbar;PLAY</title>
<anchor id="mref-synth-play" />

<mediaobject
> <imageobject
><imagedata fileref="images/Synth_PLAY.png" format="PNG"/></imageobject
> <textobject
><phrase
>Synth&lowbar;PLAY</phrase
></textobject
> </mediaobject>

<important
> <para
> Normalt behöver man inte den här modulen, om man inte skriver självständiga program. Inne i &artsd;, finns det redan en Synth&lowbar;PLAY modul, och att skapa en till fungerar inte. </para
> </important>

<para
> Modulen Synth&lowbar;PLAY-matar ut ljudsignalen till ljudkortet. Vänster och höger kanal ska innehålla <emphasis
>normaliserad</emphasis
> indata för kanalerna. Om indata inte är mellan -1 och 1, får man klippning. </para>

<para
> Som redan har nämnts, får det bara finnas en Synth&lowbar;PLAY modul, eftersom den direkt kommer åt ljudkortet. Använd bussar för att blanda ihop mer än ett ljudflöde innan uppspelning. Använd modulen Synth&lowbar;AMAN&lowbar;PLAY för att få något som liknar en utmatning inne i &artsd;. </para>

<para
> Observera att Synth&lowbar;PLAY också kontrollerar tidbasen för hela strukturen. Det här betyder: ingen Synth&lowbar;PLAY = ingen källa för tidbas = inget ljud. Så det behövs (exakt) ett Synth&lowbar;PLAY objekt. </para>

</sect3>

<sect3 id="mref-synth-record-sect">
<title
>Synth&lowbar;RECORD</title>
<anchor id="mref-synth-record" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_RECORD.png" format="PNG"/></imageobject
> <textobject
><phrase
>Synth&lowbar;RECORD</phrase
></textobject
> </mediaobject>

<important
> <para
>Normalt behöver man inte den här modulen, om man inte skriver självständiga program. Inne i artsd, finns det redan en Synth&lowbar;RECORD modul, och att skapa en till fungerar inte. </para
> </important>

<para
> Modulen Synth&lowbar;RECORD spelar in en signal från ljudkortet. Vänster och höger kanal innehåller indata för kanalerna (mellan -1 och 1). </para>

<para
> Som redan har nämnts, får det bara finnas en Synth&lowbar;RECORD modul, eftersom den direkt kommer åt ljudkortet. Använd bussar för att använda det inspelade ljudflödet på mer än ett ställe. Använd modulen Synth&lowbar;AMAN&lowbar;RECORD för att få något som liknar en ingång inne i artsd. För att det här ska fungera måste &artsd; köra <emphasis
>med full duplex aktiverad</emphasis
>. </para>
</sect3>

<sect3 id="mref-synth-aman-play-sect">
<title
>Synth&lowbar;AMAN&lowbar;PLAY</title>
<anchor id="mref-synth-aman-play" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_AMAN_PLAY.png" format="PNG"/></imageobject
> <textobject
><phrase
>Synth&lowbar;AMAN&lowbar;PLAY</phrase
></textobject
> </mediaobject>

<para
> Modulen Synth&lowbar;AMAN&lowbar;PLAY-matar ut ljudsignalen. Det är bra (men inte nödvändigt) att utdata är en normaliserad signal (mellan -1 och 1). </para>

<para
> Den här modulen använder ljudhanteraren för att ange var signalen spelas upp. Ljudhanteraren kan styras genom &artscontrol;. För att göra det mer intuitivt att använda, är det bra att namnge signalen som spelas upp. Det kan åstadkommas genom att ange <emphasis
>title</emphasis
>. En annan funktion i ljudhanteraren är att kunna komma ihåg var en signal spelades upp sist. För att kunna göra det här måste den kunna skilja på signaler. Därför ska man ange något unikt värde för <emphasis
>autoRestoreID</emphasis
> också. </para>
</sect3>

<sect3 id="mref-synth-aman-record-sect">
<title
>Synth&lowbar;AMAN&lowbar;RECORD</title>
<anchor id="mref-synth-aman-record" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_AMAN_RECORD.png" format="PNG"/></imageobject
> <textobject
><phrase
>Synth&lowbar;AMAN&lowbar;RECORD</phrase
></textobject
> </mediaobject>

<para
> Modulen Synth&lowbar;AMAN&lowbar;RECORD-spelar in en ljudsignal från en extern källa (dvs linje in/mikrofon) inne i &artsd;. Utdata kommer att vara en normaliserad signal (mellan -1 och 1). </para>

<para
> Den här modulen använder ljudhanteraren för att ange var signalen spelas upp. Ljudhanteraren kan styras genom artscontrol. För att göra det mer intuitivt att använda, är det bra att namnge signalen som spelas upp. Det kan åstadkommas genom att ange <emphasis
>title</emphasis
>. En annan funktion i ljudhanteraren är att kunna komma ihåg var en signal spelades in sist. För att kunna göra det här måste den kunna skilja på signaler. Därför ska man ange något unikt värde för <emphasis
>autoRestoreID</emphasis
> också. </para>
</sect3>

<sect3 id="mref-synth-capture-sect">
<title
>Synth&lowbar;CAPTURE</title>
<anchor id="mref-synth-capture" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_CAPTURE.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;CAPTURE</phrase
></textobject
> </mediaobject>

<para
> Modulen Synth&lowbar;CAPTURE skriver en ljudsignal till en vågformsfil på hårddisken. Filen heter alltid <filename
>/tmp/mcop-<replaceable
>användarnamn</replaceable
>/capture.wav</filename
> </para>
</sect3>

</sect2>

<sect2 id="mcat-synth-tests">
<title
>Tester</title>

<sect3 id="mref-synth-nil-sect">
<title
>Synth&lowbar;NIL</title>
<anchor id="mref-synth-nil" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_NIL.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;NIL</phrase
></textobject
> </mediaobject>

<para
> Den här gör ingenting. Den är mycket användbar i testsituationer. </para>

</sect3>

<sect3 id="mref-synth-debug-sect">
<title
>Synth&lowbar;DEBUG</title>
<anchor id="mref-synth-debug" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_DEBUG.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;DEBUG</phrase
></textobject
> </mediaobject>

<para
> Man kan använda den här för avlusning. Den skriver ut värdet för signalen invalue med regelbundna intervall (cirka 1 sekund), tillsammans med kommentaren som angivits. På det här sättet kan man ta reda på om vissa signaler förblir inom vissa områden, eller om de finns överhuvudtaget. </para>
</sect3>

<sect3 id="mref-synth-midi-debug-sect">
<title
>Synth&lowbar;MIDI&lowbar;DEBUG</title>
<anchor id="mref-synth-midi-debug" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_MIDI_DEBUG.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;MIDI&lowbar;DEBUG</phrase
></textobject
> </mediaobject>

<para
> Man kan använda den här för att avlusa hur &MIDI;-händelser verkligen kommer in i &arts;. </para>

<para
> När en MIDI&lowbar;DEBUG kör, skriver &artsserver; ut rader som: </para>

<screen
><computeroutput
>201 100753.837585 on 0 42 127</computeroutput
></screen>

<screen
><computeroutput
>202 101323.128355 off 0 42</computeroutput
></screen>

<para
> Den första raden talar om att 100753 ms (dvs. 100 sekunder) efter MIDI&lowbar;DEBUG startade, kom en &MIDI;-händelse "on" på kanal 0. Den här midi-händelsen hade anslagsstyrkan (volymen) 127, den högsta möjliga. Nästa rad visar midi-händelsen när tangenten släpps. [ATT GÖRA: det här fungerar inte för närvarande, få det att fungera, och gör det via &MIDI;-hanteraren]. </para>
</sect3>

<sect3 id="mref-synth-data-sect">
<title
>Synth&lowbar;DATA</title>
<anchor id="mref-synth-data" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_DATA.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;DATA</phrase
></textobject
> </mediaobject>

<para
> Det här skapar en signal med ett konstant värde. </para>
<!-- TODO: this doesn't really belong in test, does it? -->
</sect3>
</sect2>

<sect2 id="mcat-synth-osc-mod">
<title
>Oscillation &amp; Modulation</title>

<sect3 id="mref-synth-frequency-sect">
<title
>Synth&lowbar;FREQUENCY</title>
<anchor id="mref-synth-frequency" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_FREQUENCY.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;FREQUENCY</phrase
></textobject
> </mediaobject>

<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&lowbar;WAVE&lowbar;SIN översätts till området 0 .. 2*Pi. För att skapa oscillerande värden från en frekvens, används en Synth&lowbar;FREQUENCY modul. </para>
</sect3>

<sect3 id="mref-synth-fm-source-sect">
<title
>Synth&lowbar;FM&lowbar;SOURCE</title>
<anchor id="mref-synth-fm-source" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_FM_SOURCE.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;FM&lowbar;SOURCE</phrase
></textobject
> </mediaobject>

<para
> Den här används för frekvensmodulering. Ange frekvensen med ingången frequency och anslut en annan signal till moduleringsingången. Ställ därefter in modlevel till någonting, säg 0,3. Frekvensen moduleras sedan med moduleringen. Prova det. Fungerar bra om man lägger till en återkoppling, vilket betyder att man tar en kombination av den fördröjda utsignalen från Synth&lowbar;FM&lowbar;SOURCE (man måste skicka det till en oscillator eftersom den bara fungerar som Synth&lowbar;FREQUENCY) och någon annan signal för att få bra resultat. </para>

<para
> Fungerar bra tillsammans med Synth&lowbar;WAVE&lowbar;SIN oscillatorer. </para>
</sect3>

</sect2>

<sect2 id="mcat-synth-waveforms">
<title
>Vågformer</title>

<sect3 id="mref-synth-wave-sin-sect">
<title
>Synth&lowbar;WAVE&lowbar;SIN</title>
<anchor id="mref-synth-wave-sin" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_WAVE_SIN.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;WAVE&lowbar;SIN</phrase
></textobject
> </mediaobject>

<para
> Sinusoscillator. Ange en pos signal från Synth&lowbar;FREQUENCY eller Synth&lowbar;FM&lowbar;SOURCE som insignal, och få en sinusvåg som utsignal. Signalen pos anger positionen i vågformen, området 0 .. 1 omvandlas till 0 .. 2*Pi internt. </para>

</sect3>

<sect3 id="mref-synth-wave-tri-sect">
<title
>Synth&lowbar;WAVE&lowbar;TRI</title>
<anchor id="mref-synth-wave-tri" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_WAVE_TRI.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;WAVE&lowbar;TRI</phrase
></textobject
> </mediaobject>

<para
> Triangelvågsoscillator. Ange en pos signal från Synth&lowbar;FREQUENCY eller Synth&lowbar;FM&lowbar;SOURCE som insignal, och få en triangelvåg som utsignal. Signalen pos anger positionen i vågformen, området 0 .. 1 omvandlas till 0 .. 2*Pi internt. Var försiktig. Insignalen <emphasis
>måste</emphasis
> vara i området 0 .. 1 för att utsignalen ska ge bra resultat. </para>
</sect3>

<sect3 id="mref-synth-noise-sect">
<title
>Synth&lowbar;NOISE</title>
<anchor id="mref-synth-noise" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_NOISE.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;NOISE</phrase
></textobject
> </mediaobject>

<para
> Brusgenerator. Den här skapar en slumpmässig signal mellan -1 och 1. </para>

</sect3>

<sect3 id="mref-synth-wave-square-sect">
<title
>Synth&lowbar;WAVE&lowbar;SQUARE</title>
<anchor id="mref-synth-wave-square" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_WAVE_SQUARE.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;WAVE&lowbar;SQUARE</phrase
></textobject
> </mediaobject>

<para
> Fyrkantvågsoscillator. Ange en pos signal från Synth&lowbar;FREQUENCY eller Synth&lowbar;FM&lowbar;SOURCE som insignal, och få en fyrkantvåg som utsignal. Signalen pos anger positionen i vågformen, området 0 .. 1 omvandlas till 0 .. 2*Pi internt. Var försiktig. Insignalen <emphasis
>måste</emphasis
> vara i området 0 .. 1 för att utsignalen ska ge bra resultat. </para>
</sect3>

<sect3 id="mref-synth-wave-softsaw-sect">
<title
>Synth&lowbar;WAVE&lowbar;SOFTSAW</title>
<anchor id="mref-synth-wave-softsaw" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_WAVE_SOFTSAW.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;WAVE&lowbar;SOFTSAW</phrase
></textobject
> </mediaobject>

<para
> Mjuk sågtandsvåg, som liknar Synth&lowbar;WAVE&lowbar;TRI oscillatorn till utseende. Ange en pos signal från Synth&lowbar;FREQUENCY eller Synth&lowbar;FM&lowbar;SOURCE som insignal, och få en mjuk sågtandsvåg som utsignal. Signalen pos anger positionen i vågformen, området 0 .. 1 omvandlas till 0 .. 2*Pi internt. Var försiktig. Insignalen <emphasis
>måste</emphasis
> vara i området 0 .. 1 för att utsignalen ska ge bra resultat. </para>
</sect3>

<sect3 id="mref-synth-wave-pulse-sect">
<title
>Synth&lowbar;WAVE&lowbar;PULSE</title>
<anchor id="mref-synth-wave-pulse" />

<mediaobject
><imageobject
><imagedata fileref="images/Synth_WAVE_PULSE.png" format="PNG" /></imageobject
> <textobject
><phrase
>Synth&lowbar;WAVE&lowbar;PULSE</phrase
></textobject
> </mediaobject>

<para
> Pulsoscillator. Andemeningen med den här modulens liknar den rektangulära oscillatorn (Synth_WAVE_RECT), men den tillhandahåller ett anpassningsbart upp/ner-förhållande, genom parametern <emphasis
>dutycycle</emphasis
>. Ange en pos signal från Synth&lowbar;FREQUENCY eller Synth&lowbar;FM&lowbar;SOURCE som insignal, och få en pulsvåg som utsignal. Signalen pos anger positionen i vågformen, området 0 .. 1 omvandlas till 0 .. 2*Pi internt. Var försiktig. Insignalen <emphasis
>måste</emphasis
> vara i området 0 .. 1 för att utsignalen ska ge bra resultat. </para>
</sect3>
</sect2>
<sect2 id="mcat-synth-misc">
<title
>Diverse</title>

<para
> </para>

<sect3 id="mref-synth-compressor-sect">
<title
>Synth&lowbar;COMPRESSOR</title>
<anchor id="mref-synth-compressor" />

<mediaobject>
<imageobject
><imagedata fileref="images/Synth_COMPRESSOR.png"
               format="PNG"/></imageobject
></mediaobject>

<para
> Den här modulen reducerar det dynamiska omfånget hos en signal. Reduktion är till exempel användbart för att kompensera för de stora variationer i ljudstyrka när någon pratar i en mikrofon. </para>

<para
> Så fort indatanivån överstiger en viss nivå (tröskeln) så reduceras signalen. Den multiplicerar helt enkelt allt ovanför tröskeln med ratio, som ska vara ett värde mellan 0 och 1. Till sist multipliceras hela signalen med utdatafaktorn. </para>

<para
> Argumenten attack och release fördröjer starten och slutet på reduktionen. Använd det här om du till exempel fortfarande vill höra den starka början av en bastrumma. Argumenten anges i millisekunder, och en attack eller release på 0 ms är möjlig, men kan resultera i ett visst brus. </para>

</sect3>
</sect2>
</sect1>

<sect1 id="visual-modules-reference">
<title
>Referens till visuella moduler</title>

<para
> ATT GÖRA när visuella moduler är "färdigare". </para>
</sect1>

</chapter>

