Orch:
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
;
; This is fm-gong written by Paul Weineke and distributed with
; CLM (Common Lisp Music). The CLM original is in the file
; fmex.ins.
;
instr 1
isinetbl = 1
idur = p3
iamp = p4
ifreq = p5
imod1fq = ifreq * 1.16
imod2fq = ifreq * 3.14
imod3fq = ifreq * 1.005
indx1a = .01 * imod1fq
indx1b = .30 * imod1fq
indx1scaler = indx1b - indx1a
indx2a = .01 * imod2fq
indx2b = .38 * imod2fq
indx2scaler = indx2b - indx2a
indx3a = .01 * imod3fq
indx3b = .50 * imod3fq
indx3scaler = indx3b - indx3a
; mod1 envelope (CLM fmup)
kmod1env linseg 0, idur*0.75, 1, idur*.23, 1, idur*.02, 0
; mod2 envelope (CLM fmdwn)
kmod2env linseg 0, idur*.02, 1, idur*.98, 0
; mod3 envelope (CLM rise)
kmod3env linseg 0, idur*.15, 0.3, idur*.15, 1, idur*.45, 0.5, idur*.25, 0
; amp envelope
kampenv expseg .01, .002, 1, idur-.002, .01
; modulator1
amod1phs phasor imod1fq
amod1sig tablei amod1phs, isinetbl, 1, 0, 1
amod1sig = (indx1a + indx1scaler * kmod1env) * amod1sig
; modulator2
amod2phs phasor imod2fq
amod2sig tablei amod2phs, isinetbl, 1, 0, 1
amod2sig = (indx2a + indx2scaler * kmod2env) * amod2sig
; modulator3
amod3phs phasor imod3fq
amod3sig tablei amod3phs, isinetbl, 1, 0, 1
amod3sig = (indx3b + indx3scaler * kmod3env) * amod3sig
; carrier
acarrphs phasor ifreq + amod1sig + amod2sig + amod3sig
acarrsig tablei acarrphs, isinetbl, 1, 0, 1
out iamp * kampenv * acarrsig
endin
Score:
; Table #1: sinewave f 1 0 1024 10 1 ; # st drn amp freq i 1 0 3.0 20000 261.61
It was a lot easier to make this one than the fm-drum.