|  |  | @@ -1,5 +1,7 @@ | 
		
	
		
			
			|  |  |  | <CsoundSynthesizer> | 
		
	
		
			
			|  |  |  | <CsOptions> -iadc -odac -dm0 </CsOptions> | 
		
	
		
			
			|  |  |  | <CsOptions> | 
		
	
		
			
			|  |  |  | -iadc -odac -dm0 | 
		
	
		
			
			|  |  |  | </CsOptions> | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | <CsInstruments> | 
		
	
		
			
			|  |  |  | ; CSound parameters | 
		
	
	
		
			
				|  |  | @@ -9,19 +11,44 @@ nchnls = 2 ; Number of channels (2=stereo) | 
		
	
		
			
			|  |  |  | 0dbfs = 1  ; Maximum amplitude | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | ; Delay parameters | 
		
	
		
			
			|  |  |  | gkporttime = 0.3 ; Portamento time | 
		
	
		
			
			|  |  |  | gkdlt = 5        ; Max delay | 
		
	
		
			
			|  |  |  | gkmix = .5       ; Dry/wet | 
		
	
		
			
			|  |  |  | gkfeedamt = .95  ; Feedback ratio | 
		
	
		
			
			|  |  |  | gkamp = .7       ; Output amplitude rescaling | 
		
	
		
			
			|  |  |  | gkingain = .5    ; Input gain | 
		
	
		
			
			|  |  |  | gkporttime init 0.3 ; Portamento time | 
		
	
		
			
			|  |  |  | ;gkdlt init 5        ; Max delay | 
		
	
		
			
			|  |  |  | ;gkmix init .5       ; Dry/wet | 
		
	
		
			
			|  |  |  | ;gkfeedamt init .95  ; Feedback ratio | 
		
	
		
			
			|  |  |  | ;gkamp init .7       ; Output amplitude rescaling | 
		
	
		
			
			|  |  |  | ;gkingain init .5    ; Input gain | 
		
	
		
			
			|  |  |  | ;gkOnOff init 1      ; Input on off | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | ;FLTK GUI interface | 
		
	
		
			
			|  |  |  | FLcolor 200, 200, 255, 0, 0, 0 | 
		
	
		
			
			|  |  |  | FLpanel "M I L C H L O D E", 500, 300, 0, 0, 0, 1 | 
		
	
		
			
			|  |  |  | gkOnOff,ihOnOff FLbutton "Input On/Off", 1, 0, 22, 180, 25, 5, 5, 0, 1, 0, -1 | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | ; Sliders | 
		
	
		
			
			|  |  |  | gkdlt,ihdlt FLslider "Delay Time (sec)", .001, 5, 0, 23, -1, 490, 25, 5, 50 | 
		
	
		
			
			|  |  |  | gkmix,ihmix FLslider "Dry/Wet Mix", 0, 1, 0, 23, -1, 490, 25, 5, 100 | 
		
	
		
			
			|  |  |  | gkfeedamt,ihfeedamt FLslider "Feedback Ratio", -1, 1, 0, 23, -1, 490, 25, 5, 150 | 
		
	
		
			
			|  |  |  | gkamp,ihamp FLslider "Output Amplitude Rescaling", 0, 1, 0, 23, -1, 490, 25, 5, 200 | 
		
	
		
			
			|  |  |  | gkingain,ihingain FLslider "Input Gain", 0, 1, 0, 23, -1, 140, 20, 350, 5 | 
		
	
		
			
			|  |  |  | ih FLbox "Keys: ", 1, 5, 14, 490, 20, 0, 250 | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | ;Set defaults | 
		
	
		
			
			|  |  |  | FLsetVal_i 1, ihOnOff | 
		
	
		
			
			|  |  |  | FLsetVal_i .5, ihingain | 
		
	
		
			
			|  |  |  | FLsetVal_i 4, ihdlt | 
		
	
		
			
			|  |  |  | FLsetVal_i 0.5, ihmix | 
		
	
		
			
			|  |  |  | FLsetVal_i 0.95, ihfeedamt | 
		
	
		
			
			|  |  |  | FLsetVal_i .7, ihamp | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | FLpanel_end ;End of GUI | 
		
	
		
			
			|  |  |  | FLrun ;Run the FLTK thread | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | ; Instr 1 is the source | 
		
	
		
			
			|  |  |  | instr 1 | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | ; Turn off with the switch | 
		
	
		
			
			|  |  |  | if gkOnOff=0 then | 
		
	
		
			
			|  |  |  | turnoff | 
		
	
		
			
			|  |  |  | turnoff | 
		
	
		
			
			|  |  |  | endif | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | ; Get input from mic/line | 
		
	
	
		
			
				|  |  | @@ -33,15 +60,6 @@ endin | 
		
	
		
			
			|  |  |  | ; Instr 2 is the delay line | 
		
	
		
			
			|  |  |  | instr 2 | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | ; Sense keyboard | 
		
	
		
			
			|  |  |  | kKey FLkeyIn | 
		
	
		
			
			|  |  |  | kChanged changed kKey | 
		
	
		
			
			|  |  |  | printk2	kKey | 
		
	
		
			
			|  |  |  | ;if kKey=112&&kChanged=1 then | 
		
	
		
			
			|  |  |  | ;printf_i "awd" | 
		
	
		
			
			|  |  |  | ;FLsetVal_i 0.0, gkfeedamt | 
		
	
		
			
			|  |  |  | ;endif | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | kporttime linseg 0, .001, 1, 1, 1  ; A short envelope | 
		
	
		
			
			|  |  |  | kporttime = kporttime * gkporttime ; TODO: remove this | 
		
	
		
			
			|  |  |  | kdlt portk gkdlt, kporttime        ; Apply portamento | 
		
	
	
		
			
				|  |  | @@ -60,8 +78,8 @@ delayw gasigR + (adelsigR * gkfeedamt) ;Feedback | 
		
	
		
			
			|  |  |  | aL ntrpol gasigL, adelsigL, gkmix | 
		
	
		
			
			|  |  |  | aR ntrpol gasigR, adelsigR, gkmix | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | outs aL * gkamp, aR * gkamp ;Mix wet/dry | 
		
	
		
			
			|  |  |  | clear gasigL, gasigR ;Clear global audio sends | 
		
	
		
			
			|  |  |  | outs aL * gkamp, aR * gkamp ; Mix wet/dry | 
		
	
		
			
			|  |  |  | clear gasigL, gasigR        ; Clear global audio sends | 
		
	
		
			
			|  |  |  | endin | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | </CsInstruments> | 
		
	
	
		
			
				|  |  | @@ -71,4 +89,5 @@ endin | 
		
	
		
			
			|  |  |  | i 2 0 -1 ;Instrument 2 plays a held note | 
		
	
		
			
			|  |  |  | f 0 3600 ;Keep performance going | 
		
	
		
			
			|  |  |  | </CsScore> | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | </CsoundSynthesizer> |