; ************************************************************************ ; 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