<info>
This is a harmonizer...
</info>
<tk_interface>
cfilein  input 			-label FileName
cgraph   pitch 			-label Pitch -min .1 -max 10 -rel log -init 1
cgraph   mix 			-label Mix -min 0 -max 1 -init .5
cslider  ingain 			-label Gain -rat k -min 0 -ma 6 -init  1
cslider  windowsize 			-label "Window Size"      -rat i -unit samples  -res 10 -rel lin -min 200 -c skyblue4 -max 20000  -i 3500
csepar
cslider  windowdev  			-label "Window Deviation" -rat i -unit samples  -res 10 -rel lin -min 0 -c skyblue4 -max 5000  -i 300
</tk_interface>
<mono>
	instr 1 
kdumper	init	0

kfac	=	[sinfo input sr] / sr

aline	line	0, p3, 1
as	diskin	"[input]", kfac
ar	sndwarp			gkingain, aline*[sinfo input dur]*kfac, gkpitch*kfac, 2, 0, giwindowsize, giwindowdev, 5, 3 , 1  
out	(ar*gkmix)+as*(1-gkmix)
					endin
</mono>
<stereo>
	instr 1 



kdumper	init	0

kfac	=	[sinfo input sr] / sr

aline	line	0, p3, 1
as, at	diskin	"[input]", kfac

ar		sndwarp		gkingain, aline*[sinfo input dur]*kfac, gkpitch*kfac, 2, 0, giwindowsize, giwindowdev, 5, 3 , 1  
ag		sndwarp		gkingain, aline*[sinfo input dur]*kfac, gkpitch*kfac, 4, 0, giwindowsize, giwindowdev, 5, 3 , 1  
outs	(ar*gkmix)+as*(1-gkmix), (ag*gkmix)+at*(1-gkmix)
					endin
</stereo>
<quad>

</quad>
<score>
#tcl
proc makeScore {} {
	global  value realArr
set size [expr [sinfo input sr] * ([sinfo input dur] )]
	set size [findgenSize $size]
	set thescore "f1 0 8192 10 1\n"
	append thescore "f2 0 $size -1 \"$value(input)\" 0 4 1\n"
	append thescore "f3 0 16384 9 .5 1 0 \n"
	if {[sinfo input chn] != "1"} {
	append thescore "f4 0 $size -1 \"$value(input)\" 0 4 2\n"
	}
	append thescore "i1 0 [expr [sinfo input dur]]\n"
	return $thescore
}

makeScore
</score>
