1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
<info>
Stereo delay with modulation
Feedback phase and modulation waveshape control
Jean Piche, 1996
</info>
<tk_interface>
cfilein source
csepar Delays
csepar
cgraph delinitl -label "Delay Left" -unit s -rel log -min .0001 -max 15 -init 0.025 -gen 1
cgraph delinitr -label "Delay Right" -unit s -rel log -min .0001 -max 15 -init .028 -gen 2
cgraph delayfdbk -label "Feedback" -init % -min 0 -max 1 -init .5
csepar
csepar Mix
csepar
cgraph mixoriz -label "Mix original" -rel log -min .01 -max 1 -init .5
cgraph mixdel1 -label "Mix Delay" -rel log -min .01 -max 1 -init .5
csepar
csepar Modulation
csepar
cgraph modepthl -label "Modulation\nDepth Left" -rel lo -min 0.001 -max 1 -init .032
cgraph modepthr -label "Modulation\nDepth Right" -rel lo -min 0.001 -max 1 -init .032
cgraph modhzl -label "Modulation\nFreq Left" -rel log -min 0.001 -max 200 -init 5
cgraph modhzr -label "Modulation\nFreq Right" -rel log -min 0.001 -max 200 -init 5.3
cslider gain -label Gain -res .01 -min 0 -max 2 -init 1
cslider duree_totale -label Time -ra i -uni sec. -res .01 -min 1 -max 200 -init 30
ctoggle phdell -label "180 Phase Left"
ctoggle phdelr -label "180 Phase Right"
ctoggle loop -label "Loop"
ctoggle nodc -label "Remove dc offset" -init 0
cpopup modtype -label "Modulation Waveform" -value "sine square saw rand" -init sine
</tk_interface>
<mono>
</mono>
<stereo>
instr 1
ar init 0
ad init 0
iloop = i(gkloop)
itype init [sinfo source chn]
kfac = ( itype == 2 ?1:0.5) * [sinfo source sr] / sr
asig, asid diskin "[source]", kfac, [offsource], iloop
asid = (itype == 2?asid:asig)
if i(gknodc) == 0 goto nodc
asid dcblock asid
asig dcblock asig
nodc:
ktype = gkmodtype
kphs1 = gkphdell
kphs2 = gkphdelr
amod11 oscil gkmodepthl/100, gkmodhzl, 100
amod12 oscil gkmodepthr/100, gkmodhzr, 100
amod21 oscil gkmodepthl/100, gkmodhzl, 13
amod22 oscil gkmodepthr/100, gkmodhzr, 13
amod31 oscil gkmodepthl/100, gkmodhzl, 14
amod32 oscil gkmodepthr/100, gkmodhzr, 14
amod41 randi gkmodepthl/100, gkmodhzl, .1
amod42 randi gkmodepthr/100, gkmodhzr, .71
if ktype = 1 goto square
if ktype = 2 goto saw
if ktype = 3 goto randip
amodd = amod11+(gkmodepthl/100)
amodg = amod12+(gkmodepthr/100)
goto outer
square:
amodd = amod21+(gkmodepthl/100)
amodg = amod22+(gkmodepthr/100)
goto outer
saw:
amodd = amod31+(gkmodepthl/100)
amodg = amod32+(gkmodepthr/100)
goto outer
randip:
amodd = amod41+(gkmodepthl/100)
amodg = amod42+(gkmodepthr/100)
outer:
adump delayr 16
ar deltapi gkdelinitl+amodd+(1/kr)
if kphs1 = 1 goto phased180
adelsendd = asig+(ar*gkdelayfdbk)
goto oupt
phased180:
adelsendd = asig-(ar*gkdelayfdbk)
oupt:
delayw adelsendd
adum1p delayr 16
ad deltapi gkdelinitr+amodg+(1/kr)
if kphs2 = 1 goto phaseg180
adelsendg = asid+(ad*gkdelayfdbk)
goto oust
phaseg180:
adelsendg = asid-(ad*gkdelayfdbk)
oust:
delayw adelsendg
a1 = ((ar*gkmixdel1)+(asig*gkmixoriz))*gkgain
a2 = ((ad*gkmixdel1)+(asid*gkmixoriz))*gkgain
outs a1, a2
endin
</stereo>
<quad>
</quad>
<score>
f100 0 8192 10 1
f13 0 8192 7 -1 4075 -1 20 1 4075 1 20 -1
f14 0 8192 7 -1 8192 1
i1 0 [duree_totale]
</score>
|