<info>
Filtre non-lineaire
Attention: le filtre tombe aisement dans l'oscillation...
Gain post-balance

Jean Piche
Sun Oct 05 13:58:14 EDT 1997
</info>
<tk_interface>
cfilein 			name
cslider			coefa  	-label "Coefficient a" 	-unit  		a 		-or v  -res .01 		-min -1 	 -max 	1 -init 	0.45
cslider			coefb  	-label "Coefficient b" 			-unit  	b		-or v  -res .01 		-min -1 	 -max 	1 -init 	0.11
cslider			coefd  	-label "Coefficient d" 			-unit  	d 		-or v   -res .01 		-min 0 	 -max 	1 	-init 	.323
cslider			coefc  	-label "Coefficient C" 			-unit  	C  		-or v   -res .01 	-min 	0 	 -max 	2 	-init 	.37
cslider			coefl   	-label "Coefficient L" 		-unit 	L 		-or v    -res  	.01 		-min 1 	 -max 	1000 	-init 	64
cslider			gain 	   -label "CGain"  	-or v  		-res .01	-min .01 -max 	4 	-init 1

cgraph			goefa  	 -label "Coefficient a" 		-min 	-1 	-max 1 	-init 0.0	
cgraph			goefb  	 -label "Coefficient b" 		-min 	 	-1 		-max 1 		-init 0.0	
cgraph			goefd  	 -label "Coefficient d" 		-min 	 	0 		-max 1 		-init 0.0	
cgraph			goefc  	 -label "Coefficient C" 			-min 	 	0 		-max 2 		-init 0.0	
cgraph			goefl   	 -label "Coefficient L" 		-unit L -min	0 	-max 1000 	-func "0 0 0.5 500.0 1 0"

cgraph 			amp 		-label "Amplitude" 	-unit  db -rel lo -min 30 -max 90 -init 65 
ctoggle 			balance  		-label "Restore Power" 	-init 0
ctoggle 			loop 		-label "Loop Input File" 	-init 1
cslider   			pitch  		-label "Transpose Input File" 	  -res .01 -min 0 -max 4 -init 1

cslider total_time -label "Total Duration" -min 1 -max 200 -init 30
</tk_interface>
<mono>
			instr 1 
iloop = i(gkloop)
kcoa		=	gkcoefa+gkgoefa
kcob		=	gkcoefb+gkgoefb
kcod		=	gkcoefd+gkgoefd
kcoc		=	gkcoefc+gkgoefc
kcol		=	gkcoefl+gkgoefl  

kibal	= gkbalance


kdu = 0
kfac	=	[sinfo name sr] / sr * gkpitch 
asig 	diskin  	"[name]", kfac, [offname], iloop

a1   nlfilt    asig, kcoa, kcob, kcod, kcoc, kcol

a11	atone		a1, 15


bal:
    if 	(kibal == 0 ) goto nobal
	a11	balance	a11, asig

nobal:
out	a11*gkgain
					endin
</mono>
<stereo>
			instr 1 
iloop	=	i(gkloop)
kcoa	=	gkcoefa+gkgoefa
kcob	=	gkcoefb+gkgoefb
kcod	=	gkcoefd+gkgoefd
kcoc	=	gkcoefc+gkgoefc
kcol	=	gkcoefl+gkgoefl  
kibal	=	gkbalance



kdu = 0
kfac	=	[sinfo name sr] / sr * gkpitch 
asig, asid 	diskin  	"[name]", kfac, [offname], iloop

a1	nlfilt	asig, kcoa, kcob, kcod, kcoc, kcol
a2	nlfilt	asid, kcoa, kcob, kcod, kcoc, kcol 

a11	atone		a1, 15
a22	atone		a2, 15


bal:
    if 	(kibal == 0 ) goto nobal
	a11	balance	a11, asig
	a22	balance	a22, asid

nobal:
outs	a11*gkgain, a22*gkgain
					endin
</stereo>
<quad>

</quad>
<score>
#min
</score>
