Here is a script I enjoyed. You'll need to set the notedata file location. It starts off by recording for 2 seconds, if you'd rather use prerecorded audio switch sysutils_recsf( 2 ) with f[ i ]. You can make numOuts larger to run it multiple times in parallel (it will record linearly for 2*numOuts seconds at the start).
notedata = "PATH HERE/notedata.txt"
numOuts = 1
getmetatable('').__index = function( str, i ) return housekeep_chans( 1, i, str ) end
getmetatable('').__call = function( str, l ) return modify_loudness( 4, "-l" .. ( l or 1 ), str ) end
function makestereo( ... )
local arg = {...}
local stereos = {}
for i = 1, #arg/2 do stereos[i] = multichannel_interlx( arg[2*i-1], arg[2*i] ) end
return unpack( stereos )
end
recordings = {}
outputs = {}
for i = 1,numOuts do recordings[i] = sysutils_recsf( 2 ) end
for i=1,numOuts do
outputs[i] = texture_postornate( 1, notedata, 30, .5, --notedata outdur skiptime
1,1, 36,64, 3,3, --sndfirst sndlast mingain maxgain mindur maxdur
0, 2, 1, 0, 3, --phgrid grpspace gpsprange amprise contour
0.15,0.4, --multlo, multhi
housekeep_chans( 4, recordings[i] )(.5) )(.8)
end
return modify_loudness( 4, "-l0.8",
makestereo(
pvoc_synth(
blur_selfism( 4,
blur_drunk( 4, 2, 12, "-z",
pvoc_anal( 1,
housekeep_chans( 2,
unpack( outputs ) )))))))
Using this notedata:
60
#8
0.0 1 60 0 0
0.5 1 67 0 0
1.0 1 72 0 0
1.5 1 67 0 0
2.0 1 62 0 0
2.5 1 69 0 0
3.0 1 74 0 0
3.5 1 69 0 0
#5
0.0 1 60 0 0
0.0 1 62 0 0
0.0 1 64 0 0
0.0 1 67 0 0
0.0 1 69 0 0
#8
0 1 60 30 20
1 1 62 30 20
2 1 64 30 20
3 1 67 30 20
4 1 69 30 20
5 1 72 30 20
6 1 69 30 20
7 1 67 30 20