However, documentation is a bit scanty at present. This is from the source code:
/* LPCPLAY - voice resynthesis instrument p0 = output start time p1 = duration p2 = amplitude multiplier p3 = pitch factor p4 = starting LPC frame p5 = ending LPC frame // Optional p6 = warp [0 == none] p7 = reson cf [0 == none] p8 = reson bw */And there are some additional commands (optional and otherwise), again from the source code:
dataset(p1=dataset name, p2=npoles) lpcstuff(p0=thresh, p1=random amp, p2=unvoiced rate p3= rise, p4= dec, p5=thresh cutoff) set_hnfactor(it is a mystery what the param here is...) freset(and this p-field is also shrouded in the mists of time) setdev(something about a pitch deviation) setdevfactor(and oddly enough, this sets a pitch-deviation factor) set_thresh(go figure...) use_autocorrect(and this obviously turns on the "autocorrect", eh?)Now, this might be more useful -- an example scorefile:
/************ LPCPLAY example score *****************/
rtsetparams(44100, 1, 256);
load("LPCPLAY");
bus_config("LPCPLAY", "in 0", "out 0");
/* LPCPLAY arguments: */
/* p0=start,p1=dur,amp,p2=amp,p3=8ve.pch,p4=frame1,p5=frame2,p6=warp,p7=cf,p8=bw, p9/10 --> additional pitch specifications */
float thresh,randamp,fps,frame1,frame2,warp,cf,bw,dur,amp,start,amp
float buzthresh, noisethresh;
/* open the LPC file to be used for the resynthesis */
dataset("/mnt/D/Sounds/lpcfiles/tori02.lpc",0)
/* lpcstuff arguments: */
/* p0=threshold,p1=randamp,p2=unvoiced_at_norm_rate,p3=risetime,p4=decaytime,p5=gain_threshold */
lpcstuff(thresh = .09, randamp = .1, 0, 0,0,0)
set_thresh(buzthresh = 0.09, noisethresh = 0.1);
fps = 44100/250
frame1=0
frame2=600
warp=0
bw=0
cf=0
amp=10
/* this calculation is just a trick to make 'dur' exactly equal to the */
/* time elapsed between frame1 and frame2 of the lpc data */
dur=(frame2-frame1)/fps
/* straightforward synthesis */
LPCPLAY(start=0,dur,amp,transp = .00001,frame1,frame2,warp,cf,bw)
setdev(1) /* very slight deviation about base pitch, flat result */
LPCPLAY(start=start+dur+1,dur,amp,transp = 8,frame1,frame2,warp,cf,bw)
setdev(0) /* back to normal deviation, slower, higher, raise formants */
LPCPLAY(start=start+dur+1,dur*1.5,amp,transp = .08,frame1,frame2,warp=.2,cf,bw)
/* lower, slower, lower formants --sex change operation */
LPCPLAY(start=start+dur*1.5+1,dur*1.5,amp,transp= -.12,frame1,frame2,warp=-.25,cf,bw)
/* even more */
LPCPLAY(start=start+dur*1.5+1,dur*1.5,amp,transp= 6.00,frame1,frame2,warp=-.25,cf,bw)
/* distorted curve, some formant shift, speeding up slightly */
setdev(30)
LPCPLAY(start=start+dur*1.5+1,dur*.9,amp,transp=.02,frame1,frame2,warp=-.1,cf,bw)
/* modify pitch curves */
setdev(0)
LPCPLAY(start=start+dur+1,dur*.9,amp,transp=8,frame1,frame2,warp=0,cf,bw,frame1+50,8,frame1+100,7,frame1+150,7.05,frame2,9)
/* some whispered speech */
lpcstuff(thresh = -.01, randamp = .1, 0,0,0,0)
set_thresh(0.9, 1);
LPCPLAY(start=start+dur+1,dur,amp,transp=8,frame1,frame2,warp=0,cf,bw)
/* highpass whispered speech */
LPCPLAY(start=start+dur+1,dur,amp,transp=8,frame1,frame2,warp=0,cf=5,bw=.1)
/* highpass whispered speech, shift formants */
LPCPLAY(start=start+dur+1,dur,amp,transp=8,frame1,frame2,warp=-.3,cf=7,bw=.05)
/* andrews sisters */
lpcstuff(thresh = .09, randamp = .1, 0, 0,0,0)
set_thresh(buzthresh, noisethresh);
setdev(15)
amp = 3
LPCPLAY(start=start+dur+1,dur,amp,transp=.01,frame1,frame2,warp=0,cf=0,bw=0)
LPCPLAY(start ,dur,amp,transp=.05,frame1,frame2,warp=0,cf=0,bw=0)
LPCPLAY(start ,dur,amp,transp=.08,frame1,frame2,warp=0,cf=0,bw=0)