I wrapped a GrainBuf based synthdef to make it usable inside an ofxSuperCollider driven application.
Everything works flawlessly, but i can’t figure out how to make a user-selectable predesigned Env.
I thought Select would make it, but it looks it doesn’t…
Can you help me finding a correct approach?
Here’s my code so far. Everything works good, but the envelope selection (it will just play the default hanning window):
(///// GranularSampler
SynthDef(\grainsampler,
{
arg out=0;
var t, signal, spd, buf,bucle, start, gain,dur,envtyp,selenv;
t=\trigger.kr(0!78);
gain=VarLag.kr(\levels.kr(1!78),1/30);
buf=\bufnum.kr(0!78);
spd=\speed.kr(1!78);
start=\startpos.kr(0!78);
dur=\grainsize.kr(0.1!78);
envtyp=[ //can be envs selected like this?
Env([0, 1,0], [0.5, 0.5], \sine),
Env([0,1,1,0], [0.01,1, 0.01], [0,0,0])
];
selenv=Select.ar(\envtype.kr(0!78),envtyp);
//using z as an envelope for grainbuf
z = Buffer.sendCollection(s, selenv, 1);
signal=GrainBuf.ar(1, t, dur, buf, spd, start,2,0,z,512)*gain;
Out.ar(out, signal);
}).writeDefFile(d);
)