<info>
i is exapp2-2
ECMC Csound Tutorial example exapp2-2
</info>
<tk_interface>
</tk_interface>
<mono>
;  #############################################################
;  soundfile exapp2-2 : F.M. instrument with 2 or 3 modulators
;  #############################################################
; Functions needed: 50 51 52 100
;  p6 = attack time (.001-.01) ;	p7 = % tremolo (.2 - .33)
;  p8 = 1st tremolo (2. - 5.);		p9 = 2nd tremolo rate      
;  p10 = c:m1             		p11 = c:m2                
;  p12 = c:m3                   	p13 = modulation indx 
;  p14 = function to vary tremolo rate (usually 50; also 52,51)
;  p15 = attack hardness        ; p16 atss for mod. indx


instr 66       
i1 = (p4<15? cpspch(p4): p4)    ; pch or cps input
i2 = octcps(i1)
i3 = (18-i2)*.1                 ; scalar
; AMPLITUDE ENVELOPE
a4 linseg 0,p6,1.,.05/p15-p6,(p15+i3+1)/3*.56,.1*p3,.3,.15*p3,.12,.25*p3,.06,.5*p3-(.05/p15),0
p5 = i3*((p15+1)/2)*p5
a4 = a4*p5
; TREMOLO
k1 randi p15*.07,2.2/p15
k2 oscil p9-p8,1/p3,p14		;varies rate of tremolo
k2 oscili p7+k1*p7,p8+k2,100   	;tremolo
; Random Amplitude Deviation
k1 expseg p15*.2,p15*p6,p15*.05,p3,p15*.04
k1 randi k1,50/p15
a4=a4+((k2+k1)*a4)    		;TOTAL AMPLITUDE      

; Random frequency deviation
k1 expseg p15*.9*i3,p6,p15*.003,p3,.002
i4 = 800/(i3>1?i3:(1/i3))
i4 = (i4<(4000-1)?i4:4000-1)
k2 expseg 750/(i3>1?i3:1/i3),p6,45/i3,p3,60/i3
k1 randi k1*.5*i1,k2
k1 = i1+k1                      ; FREQUENCY
; Freq. Modulation - 3 oscillators
k2 expseg p15,p15*i3*.055,p15*.6,.1*p3,.3,.15*p3,.12,.25*p3,.06,.5*p3-.055,.01
k2 = k2*p13*i3  		; MODULATION INDEX

; modulating oscillator 1
k3 = p10*k1					
a1 oscili k2*k3,k3,100
; Freq. Modulation oscillator 2
k4 = p11*k1
a2 oscili k2*k4,k4,100
if p12=0 goto doit
; Freq. Modulation oscillator 3
k4 = p12 * k1
a3 oscili k2*k4,k4,100
a2 = a2+a3

doit:
k2 expon p15,p3,i3*p16*p13      ; modulation depth
a1 oscili a4,k1+(k2*(a1+a2)),100  ; carrier

out a1       
endin
</mono>
<stereo>
</stereo>
<score>

                  SCORE-11, Version 1.4
Copyright (C) 1982, 1990, 1992, 1995 by Alexander R. Brinkman
     Eastman School of Music, University of Rochester

f50 0 65 7 0 64 1.
f52 0 65 7 0 32 1. 32 0
f100 0 256 10 1.
  i66 0.000 5.500 7.05 6000 0.005 0.200 5.500 4.000 2.700 8.100 11.300 0.400 50 1.200 0.100
  i66 4.500 5.500 7.06 6000 0.017 0.110 4.000 2.500 3.050 4.080 9.150 0.110 52 0.900 0.200
  i66 9.000 5.500 12.02 6000 0.008 0.350 7.000 3.300 1.050 1.400 0.650 0.300 50 1.100 0.300
e
</score>
