<info>
Cross-Synthesis
with FFT
Jean Piche, 1998
</info>
<tk_interface>
cfilein	in1 	-label "Exciter File"
cfilein	in2 	-label "Modulator File"
cslider	size 	-label "FFT size" -rate i -rel log -res .2 -min 64 -max 2048 -init 512
cslider	overlap 	-label Overlaps -rate i -res 1 -min 1 -max 10 -init 2
ctoggle	loop 	-label "Loop Input Files" -init 1
cslider	total_time	-label "Total Duration" -unit s -ori h -min 1 -res .01 -max 300 -init 30
cslider	gain 	-label "Output Gain" -res .1 -min 0 -max 8 -init 1.0

cgraph	bias 	-label Amount -rel log  -min 0.25  -max 4 -init 1
csepar
cgraph	pit1 	-label "Exciter File\nPitch" -rel log  -min 0.2 -max 4 -init 1
cgraph	pit2 	-label "Modulator File\nPitch" -rel log  -min 0.2 -max 4 -init 1
cpopup balance -label " Balance Output"  -value "none exciter carrier" -init 0
</tk_interface>
<mono>
; mono template

										instr 1 
iloop = i(gkloop)

kpp1 =  ([sinfo in1 chn] == 2?gkpit1*[sinfo in1  sr]/sr:gkpit1*[sinfo in1  sr]/sr*0.5)
kpp2 =  ([sinfo in2 chn] == 2?gkpit2*[sinfo in2  sr]/sr:gkpit2*[sinfo in2  sr]/sr*0.5)

a1,a2	diskin	"[in1]", kpp1, [offin1],  iloop
a3,a4	diskin	"[in2]", kpp2, [offin2],  iloop

ar	cross2	a1, a3, gisize, gioverlap, 1, gkbias 

art	balance	ar, a1
arf	balance	ar, a3

kbal	=	(gkbalance)


if kbal == 0 goto nobal
if kbal == 1 goto balex
if kbal == 2 goto balcar

balex:
aro = art
goto outer

balcar:
aro = arf
goto outer

nobal:
aro = ar

outer:
	out	aro
										endin
</mono>
<stereo>
	instr 1  

iloop = i(gkloop)
;kpi	oscil	.1, 33, 1

a1, a2	diskin	"[in1]", gkpit1, [offin1],  iloop
a3, a4	diskin	"[in2]", gkpit2, [offin2],  iloop

ar	cross2	a1, a3, gisize, gioverlap, 1, gkbias 
ag	cross2	a2, a4, gisize, gioverlap, 1, gkbias

kbal = gkbalance


art	balance	ar, a1
arf	balance	ar, a3
art2	balance	ag, a2
arf2	balance	ag, a4

if kbal == 0 goto nobal
if kbal == 1 goto balex
if kbal == 2 goto balcar

balex:
aro = art
ago = art2
goto outer

balcar:
aro = arf
ago = arf2
goto outer

nobal:
aro = ar
ago = ag

outer:
	outs 	aro*gkgain, ago*gkgain
																																	endin
</stereo>
<quad>
; quad template

																																	instr 1
	

	outq 	a1, a2, a3, a4
																																	endin
</quad>
<score>
f1 0 8192 20 2
i1 0 [total_time]
e
</score>
