next up previous contents
Nächste Seite: Aufgaben Aufwärts: Standard Generatoren Vorherige Seite: a-rate,k-rate,i-rate   Inhalt

Wie man das CSound Manual lesen sollte

Bestimmte Generatoren von CSound können nicht alle Signalklassen erzeugen oder können nicht alle Signalklassen verarbeiten. Dies wird im Manual durch den ersten Buchstaben des angegebenen Parameters oder Ausgangssignals dargestellt, der sich im Wesentlichen an das o.g. Schema hält. Ausnahmen sind: k-rate Eingänge können immer auch i-rate Eingänge sein, ist der erste Buchstabe ein x, so können alle Signalklassen verwendet werden. Außerdem können bestimmte Eingänge ,,offen`` Bleiben. Diese werden dann in eckige Klammern eingeschlossen.

Beispiele:

krmsr,krmso,kerr,kcps lpread ktimpnt,ifilcod$[$,inpoles$][$,ifrmrate$]$
ar lpreson asig
kr linen kamp,irise,idur,idec
ar linen xamp,irise,idur,idec

D.h.: der Generator lpread erzeugt 4 k-rate Signale, benötigt ein k-rate und ein i-rate signal, 2 weitere i-rate signale sind optional und mit sinnvollen Werten vorbelegt. Der Generator lpreson erzeigt ein a-rate Signal und benötigt ein a-rate Signal. Der Generator linen kann k-rate oder a-rate signale erzeugen. Erzeugt er ein k-rate Signal, muß am Eingang amp ebenfalls ein k-rate Signal (oder i-rate Signal) anliegen. Erzeugt er ein a-rate Signal, kann Jedes Signal an diesem Eingang anliegen. Außerdem benötigt er noch 3 i-rate Signale.

Nun aber die Beispiele: Grundsätzlich werden wir ab jetzt unsere Klänge mit einer Hüllkurve versehen. Dazu probieren wir zunächst einige Hüllkurven aus, indem wir einen einfachen ADSR-Generator bauen, den wir von der Partitur aus mit verschiedenen Werten versehen:


; huellk.orc Demonstration von einfachen Huellkurven (linseg)

sr     = 44100 ; samplerate 44.1 kHz
kr     = 441   ; Kontrollrate, 441 Hz
ksmps  = 100   ; Anzahl Audiosamples pro Kontrollsample
nchnls = 1     ; Mono

instr 1

iamp     =      p4
ifreq    =      p5
iattack  =      p6
idecay   =      p7
isustain =      p8
irelease =      p9


kamp linseg 0,iattack,iamp,idecay,isustain,p3-(iattack+idecay+irelease),
            isustain,irelease,0

asig oscil kamp,ifreq,1
     out    asig
endin

instr 2

iamp     =      p4
ifreq    =      p5
iattack  =      p6
idecay   =      p7
isustain =      p8
irelease =      p9


kamp expseg 0.0001,iattack,iamp,idecay,isustain,p3-(iattack+idecay+irelease),
            isustain,irelease,0.0001

asig oscil kamp,ifreq,1
     out    asig
endin


; huellk.sco Demonstration von einfachen Huellkurven (linseg)

f 1 0 4097 10 5 0 3 0 1 ; mal was anderes als immer nur Sinus

; instr start dauer ampl  freq  attack decay sustain, release

i 1     0     5     20000 200    0.01  0.1   5000     0.5
i 1     6     5     20000 200    3     0.1   20000    1.8
i 1     12     5     5000  200    1     1.5   20000    0.3

; i2 hat exponentielle Huellkurven!

i 2     18     5     20000 200    0.01  0.1   5000     0.5
i 2     24     5     20000 200    3     0.1   20000    1.8
i 2     30     5     5000  200    1     1.5   20000    0.3
e

Als nächstes eine Frequenzmodulation mit foscil. Die Frequenz des modulierenden Generators soll sich dabei exponentiell ändern. Die Grenzwerte kommen aus der Partitur:


; fm2.orc Variable Modulationsfrequenz

sr     = 44100 ; samplerate 44.1 kHz
kr     = 441   ; Kontrollrate, 441 Hz
ksmps  = 100   ; Anzahl Audiosamples pro Kontrollsample
nchnls = 1     ; Mono

instr 1

iamp     =      p4
ifreq    =      p5
imfreqs  =      p6
imfreqe  =      p7

kamp     linseg 0,0.3,iamp,p3-0.8,iamp,0.5,0
kmodfreq expon  imfreqs,p3,imfreqe

asig foscil kamp,ifreq,1,kmodfreq,3,1
     out    asig
endin

; fm2.sco Variable Modulationsfrequenz

f 1 0 4097 10  1 ;  Sinus

; instr start dauer ampl  freq  mfreqs mfreqe
i 1       0   10    20000  200  0.001  3.0
i 1       12  2     20000  300  1.5    0.002
i 1       15  20     20000  300  1.5    0.002
e

Nun wollen wir zusätzlich den Modulationsindex verändern. Auch hier sollen die Grenzwerte aus der Partitur kommen


; fm3.orc Variable Modulationsfrequenz und index

sr     = 44100 ; samplerate 44.1 kHz
kr     = 441   ; Kontrollrate, 441 Hz
ksmps  = 100   ; Anzahl Audiosamples pro Kontrollsample
nchnls = 1     ; Mono

instr 1

iamp     =      p4
ifreq    =      p5
imfreqs  =      p6
imfreqe  =      p7
imindxs  =      p8
imindxe  =      p9

kamp     linseg 0,0.3,iamp,p3-0.8,iamp,0.5,0
kmodfreq expon  imfreqs,p3,imfreqe
kmodindx line   imindxs,p3,imindxee

asig foscil kamp,ifreq,1,kmodfreq,kmodindx,1
     out    asig
endin

; fm2.sco Variable Modulationsfrequenz

f 1 0 4097 10  1 ;  Sinus

; instr start dauer ampl  freq  mfreqs mfreqe  mindxs mindxe
; zunaechst konstante Modfreq
i 1       0   10    20000  100  1.2    1.2     1       5
i 1       12  2     20000  120  1.5    1.5     5       1
i 1       15  10    20000  130  1.3    1.3     5       1

; nun alles Variabel
i 1       27  5    20000  120  3.1    1.2     1       5
i 1       34  2     20000  100  1.5    0.05    5       1
i 1       38  10    20000  130  0.05   1.5     5       1
i 1       50  10    20000  140  1.5    0.05    5       1
e


next up previous contents
Nächste Seite: Aufgaben Aufwärts: Standard Generatoren Vorherige Seite: a-rate,k-rate,i-rate   Inhalt
Thomas Neuhaus
2001-01-14