;
;Distortion
; read in wave file
; p3
; # sta dur gain
i 1 0 4 .75
; DISTORTION
; p4 p5 p6 p7 p8 p9
; # sta dur pregain postgain dutyoffset slopeshift inch outch
i 2 0 4 1 1 1 1 1 2
; SINE WAVE
; p4 p5
; # time size gen partial
f 1 0 8192 10 1
; TRIANGLE WAVE
; p4 p5 p6 p7 p8 p9
; # time size gen ord len ord len ord
f 2 0 8192 7 -1 4096 1 4096 -1
; SQUARE WAVE
; p4 p5 p6 p7 p8 p9 p10 p11
; # time size gen ord len ord len ord len ord
f 3 0 8192 7 1 4096 1 0 -1 4096 -1
; TRIANGLE WAVE
; p4 p5 p6 p7 p8 p9
; # time size gen ord len ord len ord
f 4 0 8192 7 0 4096 1 4096 0
; TUBE DISTORTION
; p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19
; # time size gen ord len ord len ord len ord len ord len ord len ord len ord
f 5 0 8192 7 -.8 934 -.79 934 -.77 934 -.64 1034 -.48 520 .47 2300 .48 1536 .48
f 6 0 8192 8 -.8 336 -.78 800 -.7 5920 .7 800 .78 336 .8
f 7 0 8192 7 -.9 336 -.6 800 -.7 5920 .7 800 .9 336 .6
sr = 48000
kr = 4800
ksmps = 10
nchnls = 2
zakinit 30, 30
;read in stereo wave file to two separate audio signals
instr 1
ar1, ar2 soundin "clip04_4s.wav"
zaw ar1*p4, 1
endin
instr 2
igaini = p4
igainf = p5
iduty = p6
islope = p7
izin = p8
izout = p9
asign init 0
kamp linseg 0, .002, 1, p3-.004, 1, .002, 0
asig zar izin
aold = asign
asign = igaini*asig/60000
aclip tablei asign, 5, 1, .5
aclip = igainf*aclip*15000
atemp delayr .1
aout deltapi (2-iduty*asign)/1500 + islope*(asign-aold)/300
delayw aclip
zaw aout, izout
outs aout, aout
endin