;---------------------------;
; 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


Download fm1.csd