Name=TPScaler
Maker=Rory Walsh
UniqueID=2099
Copyright=None
ControlPort= wet/dry|depth
Range=0|1
-d
sr = 44100
ksmps = 64
nchnls = 1
FLcolor 200,10,40, 140,60,60
FLpanel "TPScaler",220,435,200,200
FLcolor 140,10,40, 140,60,60
iv1 FLvalue "time ratio", 80, 20, 20, 240
iv2 FLvalue "pitch ratio", 80, 20, 110, 240
FLcolor 140,60,60, 200,10,40
gk1,gk2, ih1, ih2 FLjoy "timescale x pitchscale",-2,2,-2,2,0,0,iv1,iv2, 200,200,10,10
FLcolor 200,10,40, 140,60,60
gk3, ih3 FLslider "grain size (0.01-0.5 secs)", 0.01, 0.5,0,5,-1,200,20,10,295
gk4, ih4 FLslider "overlapped grains (1 - 50)", 1,50,0,5,-1,200,20,10,340
gk5, ih5 FLslider "amplitude", 0.1,1,-1,5,-1,200,20,10,385
FLsetVal_i 1, ih1
FLsetVal_i 1, ih2
FLsetVal_i 0.04, ih3
FLsetVal_i 2, ih4
FLsetVal_i 0.7, ih5
FLpanelEnd
FLrun
instr 1
kwd chnget "depth"
iomax = 100 /* just to be in the safe side */
kol = int(gk4) /* number of overlapped grains */
kgr = gk3 /* grain size in secs */
kfr = kol/kgr /* freq or density in gr/sec */
kps = 1/kol /* pointer rate scaling */
/* gk1 controls timescale, gk2 controls pitchscale */
ain in
awp phasor sr/ftlen(1)
awin tablei awp, 2, 1
tablew ain*awin, awp, 1, 1
asig syncgrain gk5, kfr, gk2, kgr, kps*gk1,1, 3, iomax
out asig*kwd+ain*(1-kwd)
endin
f2 0 131072 7 0 36 1 131000 1 36 0
f3 0 16384 9 0.5 1 0
f1 0 131072 7 0 131072 0
i1 0 3600