<info>
Simple band-pass filter.
Gain is post-balance.

Alexandre Burton , 1996
(rev.2/12/97 for 1.8)
</info>
<tk_interface>
cfilein source    -label "Input Soundfile"

ctoggle balance   -label "balance output with input (pre-gain)"
ctoggle butterwrt -label "use Butterworth filters" -init 1

cgraph center -label "frequence\ncentrale" -unit Hz  -relation log  \
		       -min 20 -max 15000 -init 1000
csepar 

cgraph width -label "largeur\nde bande" -unit Oct -spline 1 \
			  -min .01 -init .33  -max 2 -func "0 .33 .5 .66 1 .33"

csepar 

cgraph gain -label "output\ngain" -unit x -rel log -min .1 -max 10 -init 1
</tk_interface>
<mono>
; mono passband filter

				     instr 1
	 
gkcenter init 400
gkwidth  init .3

kfac	=	[sinfo source sr]/sr
aing diskin "[source]", kfac, [offsource]

kband    = cpsoct(octcps(gkcenter)+gkwidth/2) - cpsoct(octcps(gkcenter)-gkwidth/2)

         if	(gkbutterwrt == 1) igoto butter 

afiltg	  reson	aing,   gkcenter, kband, 1
afiltg	  reson	afiltg, gkcenter, kband, 1
         goto bal

butter:
afiltg	  butterbp	aing, gkcenter, kband
afiltg	  butterbp	afiltg, gkcenter, kband

bal:
         if 	(gkbalance == 0 ) goto nobal
afiltg	  balance afiltg, aing

nobal:
	     out	afiltg*gkgain
	
				     endin
</mono>
<stereo>
; stereo passband filter

				     instr 1
	 
gkcenter init 400
gkwidth  init .3

kfac	=	[sinfo source sr]/sr
aing,aind diskin "[source]", kfac, [offsource]

kband    = cpsoct(octcps(gkcenter)+gkwidth/2) - cpsoct(octcps(gkcenter)-gkwidth/2)

         if	(gkbutterwrt == 1) igoto butter 

afiltg	  reson	aing, gkcenter, kband, 1
afiltd	  reson	aind, gkcenter, kband, 1
afiltg	  reson	afiltg, gkcenter, kband, 1
afiltd	  reson	afiltd, gkcenter, kband, 1
         goto bal

butter:
afiltg	  butterbp	aing, gkcenter, kband
afiltd	  butterbp	aind, gkcenter, kband
afiltg	  butterbp	afiltg, gkcenter, kband
afiltd	  butterbp	afiltd, gkcenter, kband

bal:
         if 	(gkbalance == 0 ) goto nobal
afiltg	  balance afiltg, aing
afiltd	  balance afiltd, aind

nobal:
	     outs	afiltg*gkgain, afiltd*gkgain
	
				     endin
</stereo>
<quad>

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