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 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
|
<info>
Additive synthesizer
16 harmonics with envelopes
Mathieu Bezkorowagny, 1996
</info>
<tk_interface>
cslider total_time -max 300 -min .1 -init 30
cslider gain -rel lin -res .01 -min 0 -max 4 -init 1
cslider fund -rel log -uni Hz -res .001 -min 0.0005 -max 1000 -init .03
cgraph waveshape -rel line -min -1 -max 1 -init 0 -gen 31
cslider freqshift -rel lin -unit Hz -res .01 -min -4000 -max 4000 -init 100.0
csepar
cgraph harm1 -min 30 -max 90 -init 70.0 -gen 11
cgraph harm2 -min 30 -max 90 -init 70.0 -gen 12
cgraph harm3 -min 30 -max 90 -init 70.0 -gen 13
cgraph harm4 -min 30 -max 90 -init 70.0 -gen 14
cgraph harm5 -min 30 -max 90 -init 70.0 -gen 15
cgraph harm6 -min 30 -max 90 -init 70.0 -gen 16
cgraph harm7 -min 30 -max 90 -init 70.0 -gen 17
cgraph harm8 -min 30 -max 90 -init 70.0 -gen 18
cgraph harm9 -min 30 -max 90 -init 70.0 -gen 19
cgraph harm10 -min 30 -max 90 -init 70.0 -gen 20
cgraph harm11 -min 30 -max 90 -init 70.0 -gen 21
cgraph harm12 -min 30 -max 90 -init 70.0 -gen 22
cgraph harm13 -min 30 -max 90 -init 70.0 -gen 23
cgraph harm14 -min 30 -max 90 -init 70.0 -gen 24
cgraph harm15 -min 30 -max 90 -init 70.0 -gen 25
cgraph harm16 -min 30 -max 90 -init 70.0 -gen 26
csepar
cgraph envelope -rel li -min 0 -max 1 -func "0 0 .01 .8 .99 .8 1 0" -gen 29
ctoggle sinus -init 1
ctoggle balance -init 0
</tk_interface>
<mono>
gkbanjo init 76
instr 1
anorma oscil 10000, 1000, 1
knorm= gkgain
kfund= gkfund
isina=i(gksinus)
if isina = 1 goto sinp
iform = 31
goto gof
sinp:
iform = 1
gof:
kamp1 = gkharm1
kamp2 = gkharm2
kamp3 = gkharm3
kamp4 = gkharm4
kamp5 = gkharm5
kamp6 = gkharm6
kamp7 = gkharm7
kamp8 = gkharm8
kamp9 = gkharm9
kamp10 = gkharm10
kamp11 = gkharm11
kamp12 = gkharm12
kamp13 = gkharm13
kamp14 = gkharm14
kamp15 = gkharm15
kamp16 = gkharm16
kshift = gkfreqshift
ah1 oscili kamp1, kfund*1+kshift, iform
ah2 oscili kamp2, kfund*2+kshift, iform
ah3 oscili kamp3, kfund*3+kshift, iform
ah4 oscili kamp4, kfund*4+kshift, iform
ah5 oscili kamp5, kfund*5+kshift, iform
ah6 oscili kamp6, kfund*6+kshift, iform
ah7 oscili kamp7, kfund*7+kshift, iform
ah8 oscili kamp8, kfund*8+kshift, iform
ah9 oscili kamp9, kfund*9+kshift, iform
ah10 oscili kamp10, kfund*10+kshift, iform
ah11 oscili kamp11, kfund*11+kshift, iform
ah12 oscili kamp12, kfund*12+kshift, iform
ah13 oscili kamp13, kfund*13+kshift, iform
ah14 oscili kamp14, kfund*14+kshift, iform
ah15 oscili kamp15, kfund*15+kshift, iform
ah16 oscili kamp16, kfund*16+kshift, iform
asomme= (ah1+ah2+ah3+ah4+ah5+ah6+ah7+ah8+ah9+ah10+ah11+ah12+ah13+ah14+ah15+ah16)
if gkbalance == 0 goto outer
asomme balance asomme, anorma
outer:
out asomme* knorm*gkenvelope
endin
</mono>
<stereo>
gkbanjo init 76
instr 1
anorma oscil 10000, 1000, 1
knorm= gkgain
kfund= gkfund
isina=i(gksinus)
if isina = 1 goto sinp
iform = 31
goto gof
sinp:
iform = 1
gof:
kamp1 = ampdb(gkharm1)
kamp2 = ampdb(gkharm2)
kamp3 = ampdb(gkharm3)
kamp4 = ampdb(gkharm4)
kamp5 = ampdb(gkharm5)
kamp6 = ampdb(gkharm6)
kamp7 = ampdb(gkharm7)
kamp8 = ampdb(gkharm8)
kamp9 = ampdb(gkharm9)
kamp10 = ampdb(gkharm10)
kamp11 = ampdb(gkharm11)
kamp12 = ampdb(gkharm12)
kamp13 = ampdb(gkharm13)
kamp14 = ampdb(gkharm14)
kamp15 = ampdb(gkharm15)
kamp16 = ampdb(gkharm16)
kshift = gkfreqshift
ah1 oscili kamp1, kfund*1+kshift, iform
ah2 oscili kamp2, kfund*2+kshift, iform
ah3 oscili kamp3, kfund*3+kshift, iform
ah4 oscili kamp4, kfund*4+kshift, iform
ah5 oscili kamp5, kfund*5+kshift, iform
ah6 oscili kamp6, kfund*6+kshift, iform
ah7 oscili kamp7, kfund*7+kshift, iform
ah8 oscili kamp8, kfund*8+kshift, iform
ah9 oscili kamp9, kfund*9+kshift, iform
ah10 oscili kamp10, kfund*10+kshift, iform
ah11 oscili kamp11, kfund*11+kshift, iform
ah12 oscili kamp12, kfund*12+kshift, iform
ah13 oscili kamp13, kfund*13+kshift, iform
ah14 oscili kamp14, kfund*14+kshift, iform
ah15 oscili kamp15, kfund*15+kshift, iform
ah16 oscili kamp16, kfund*16+kshift, iform
asommed= (ah1+ah3+ah5+ah7+ah9+ah11+ah13+ah15)
asommeg= (ah2+ah4+ah6+ah8+ah10+ah12+ah14+ah16)
if gkbalance == 0 goto outer
asommed balance asommed, anorma
asommeg balance asommeg, anorma
outer:
outs asommed* knorm*gkenvelope, asommeg* knorm*gkenvelope
endin
</stereo>
<quad>
</quad>
<score>
f1 0 8192 10 1 0 .2 0 .1 0 0 .2 .1 .5 2
i1 0.001 [total_time]
</score>
|