<info>
Mask filter - with upper and lower cut-offs
gain is post-balance

Alexandre Burton, 1996
</info>
<tk_interface>
cfilein source
ctoggle balance -label "Restore Power" -init 1
cgraph freqsup -uni Hz -label "Upper\nFrequency" -rel log -min 20 -max 20000 -init 5000
cgraph freqinf -label  "Lower\nFrequency" -uni Hz -rel log -min 20 -max 20000 -init 1000
csepar
cgraph gain -label Gain -uni x -rel log -min 0.1 -max 10 -init 1
cslider num -label Slope -rat i -res 1 -min 1 -max 20 -init 5
</tk_interface>
<mono>
instr 1

kibal	= gkbalance	
 kfac	=	[sinfo source sr]/sr

aing diskin "[source]", kfac, [offsource]

	afiltg1	tonex	aing, gkfreqsup,ginum
	
	afiltg2	atonex	afiltg1, gkfreqinf,ginum

	goto bal
bal:
    if 	(kibal == 0 ) goto nobal
	afiltg2	balance afiltg2, aing
nobal:
	out  	afiltg2*gkgain,
	
		endin
</mono>
<stereo>
instr 1

kibal	= gkbalance	
kfac	=	[sinfo source sr]/sr

aing, aind diskin "[source]", kfac, [offsource]

	afiltg1	tonex	aing, gkfreqsup,ginum
	afiltd1	tonex	aind, gkfreqsup,ginum
	
	afiltg2	atonex	afiltg1, gkfreqinf,ginum
	afiltd2	 atonex	afiltd1, gkfreqinf,ginum

	goto bal 
bal:
    if 	(kibal == 0 ) goto nobal
	afiltg2	balance afiltg2, aing
	afiltd2	balance afiltd2, aind

nobal:
	outs	afiltg2*gkgain, afiltd2*gkgain
	
		endin
</stereo>
<quad>

</quad>
<score>
#minimum
</score>
