;use this for real-time output
-odac -g
;use this for audio output to disk
;-W -ofm1.wav -g
;---------------------------;
; Pinkston: FM Instrument 1 ;
;---------------------------;
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
instr 1 ;simple FM instrument
isine = 1 ;f01 has sine table
iamp = p4 ;peak amp of carrier
icarhz = p5 ;carrier frequency
imodhz = p6 ;modulator frequency
index = p7 ;max index of modulation
index1 = p8 ;minimum index
irise = p9 ;rise time
idecay = p10 ;decay time
isteady = p3-irise-idecay ;steady state time
imaxdev = index*imodhz ;D = I * M
imindev = index1*imodhz ;minimum deviation
ivardev = imaxdev-imindev ;variable deviation
kenv expseg .001,irise,1,isteady,1,idecay,.001
kmodamp = imindev+ivardev*kenv ;amplitude of modulator
amodsig oscili kmodamp,imodhz,isine ;gated modulator
acarsig oscili iamp*kenv,icarhz+amodsig,isine ;simple FM
out acarsig
endin
;--------------------------------------------;
; Pinkston: Sample Score for FM Instrument 1 ;
;--------------------------------------------;
f01 0 2048 10 1 ;simple sine wave
; st dur amp carhz modhz ndx ndx1 rise decay
;Chowning brass
i01 0 .6 20000 440 440 5 0 .1 .2
;Chowning woodwind
i01 1 .6 20000 900 300 2 0
;Chowning bassoon
i01 2 .6 20000 500 100 1.5 0
;Chowning clarinet
i01 3 .6 20000 900 600 4 2
;Chowning bell
i01 4 15 20000 200 280 10 0 .001 14.99
e