@@ -1,16 +1,46 @@ -sr=44100 -ksmps=20 -nchnls=1 - -instr 1 - asound oscili p4, cpspch(p5), p6 - out asound -endin -instr 2 - asound pluck p4, cpspch(p5), cpspch(p6), p7, p8 p9 p10 - out asound -endin -instr 3 - asound pluck p4, cpspch(p5), cpspch(p6), p7, p8 p9 p10 - out asound -endin +; ************************************************************************ +; ACCCI: 40_03_1.ORC +; synthesis: Waveshaping(40) +; Waveshaper Using Ring Modulation(03) +; source: Dodge (p.145, 1985) +; coded: jpg 8/93 + +sr = 44100 +kr = 441 +ksmps= 100 +nchnls =2 + + +instr 1; ***************************************************************** +idur = p3 +iamp = p4 +ifq = cpspch(p5) + + a1 oscili iamp, 1/idur, 1 ; envelope + a2 oscili a1, ifq, 1 ; sinus of ring modulation + + a3 linseg 1, .04, 0, idur-.04, 0 ; very short envelope + a4 oscili a3, ifq*.7071, 1 ; sinus for waveshaper + + ; inline code for transfer function: + ; f(x) = 1 + .841x - .707x**2 - .595x**3 + .5x**4 + .42x**5 - + ; .354x**6 - .279x**7 + .25x**8 + .21x**9 + + a5 = a4*a4 + a6 = a5*a4 + a7 = a5*a5 + a8 = a7*a4 + a9 = a6*a6 + a10 = a9*a4 + a11 = a10*a4 + a12 = a11*a4 + + ; This is the polynomial representation of the transfer function + + +a13=1+.841*a4-.707*a5-.595*a6+.5*a7+.42*a8-.354*a9-.297*a10+.25*a11+.21*a12 + + a14 = a13*a2 ; ring modulation + outs a14,a14 + +endin