; Select audio/midi flags here according to platform
-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o gen03.wav -W ;;; for file output any platform
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1
;example by Russell Pinkston - Univ. of Texas (but slightly modified)
gisine ftgen 1, 0, 16384, 10, 1 ;sine wave
instr 1
ihertz = cpspch(p4)
ipkamp = p5
iwsfn = p6 ;waveshaping function
inmfn = p7 ;normalization function
aenv linen 1, .01, p3, .1 ;overall amp envelope
actrl linen 1, 2, p3, 2 ;waveshaping index control
aindex poscil actrl/2, ihertz, gisine ;sine wave to be distorted
asignal tablei .5+aindex, iwsfn, 1 ;waveshaping
anormal tablei actrl, inmfn,1 ;amplitude normalization
asig = asignal*anormal*ipkamp*aenv
asig dcblock2 asig ;get rid of possible DC
outs asig, asig
endin
; first four notes are specific Chebyshev polynomials using gen03. The values were obtained from Dodge page 147
f4 0 513 3 -1 1 0 1 ; First-order Chebyshev: x
f5 0 257 4 4 1 ; Normalizing function for fn4
f6 0 513 3 -1 1 -1 0 2 ; Second-order Chebyshev: 2x2 - 1
f7 0 257 4 6 1 ; Normalizing function for fn6
f8 0 513 3 -1 1 0 -3 0 4 ; Third-order Chebyshev: 4x3 - 3x
f9 0 257 4 8 1 ; Normalizing function for fn8
f10 0 513 3 -1 10 0 -7 0 56 0 -112 0 64 ; Seventh-order Chebyshev: 64x7 - 112x5 + 56x3 - 7x
f11 0 257 4 10 1 ; Normalizing function for fn10
f12 0 513 3 -1 1 5 4 3 2 2 1 ; a 4th order polynomial function over the x-interval -1 to 1
f13 0 257 4 12 1 ; Normalizing function for fn12
; five notes with same fundamental, different waveshape & normalizing functions
; pch amp wsfn nmfn
i1 0 3 8.00 .7 4 5
i1 + . . . 6 7
i1 + . . . 8 9
i1 + . . . 10 11
i1 + . . . 12 13
e