Exploring Analogue Synth Techniques by Jacob Joaquin email jacobjoaquin@gmail.com web www.thumbuki.com/csound/articles/east/ (C)2007 Jacob Joaquin sr = 44100 kr = 4410 ksmps = 10 nchnls = 2 instr 1 idur = p3 iamp = p4 iwave = p5 ifpch = p6 ifenv = p7 ifacc = p8 ifpan = p9 ifpwm = p10 ilength = ftlen(ifpch) ilenv = ftlen(ifenv) ilpwm = ftlen(ifpwm) aclock phasor 1/idur kclock downsamp aclock ktpch table kclock * ilength, ifpch, 0, 0, 1 atenv table aclock * ilenv * ilength , ifenv, 0, 0, 1 atacc table aclock * ilength, ifacc, 0, 0, 1 atpan table aclock * ilength, ifpan, 0, 0, 1 ktpwm table kclock * ilpwm * ilength, ifpwm, 0, 0, 1 kpch = cpspch(ktpch) avco1 vco 1, kpch, iwave, ktpwm, 1, 1/(cpspch(7.00)) avco2 vco 1, kpch*.994, iwave, ktpwm, 1, 1/(cpspch(7.00)) avco = (avco1 + avco2) * .5 * iamp * atenv * atacc agate linseg 0, .015625, 1, idur - .03125, 1, .015625, 0 outs avco * (sqrt(1-atpan)) * agate, avco * sqrt(atpan) * agate endin f1 0 8192 10 1 f100 0 8 -2 7.00 7.03 7.02 7.06 7.05 7.09 7.08 7.12 f101 0 4 -2 6.04 6.08 6.11 7.04 f200 0 8192 -7 0 4096 1 4096 0 f201 0 256 -5 .001 64 1 192 .001 f300 0 8 -2 2 1 2 1 1 2 0 1 f301 0 4 -2 2 1 1 1 f302 0 8 -2 2 0 1 0 1 0 2 0 f400 0 8 -2 1 0 1 .25 .75 0 .5 .25 f500 0 8192 -7 1 8192 0 f501 0 8192 -7 1 4096 0 4096 1 t 0 90 i1 0 4 10000 2 101 200 301 400 501 i1 + 2 10000 . 100 200 300 . 500 i1 + 4 10000 . 101 201 301 . . i1 + 2 10000 . 100 201 300 . 501 i1 + 2 10000 . 100 201 302 . . e