i'm trying to play random samples from a samplefolder on my computer, and adjust the playback rate, duration etcetera via Pbind.
But my code doesn't seem to work properly, i'm getting samples with same settings after a while, so no changes/randomness whatsoever...
(
{
y = "~/Desktop/samplefolder/*.wav".pathMatch.collect({ |path|
var buf;
buf = Buffer.read(s, path);
s.sync;
buf;
});
"done".postln;
}.fork;
)
y.postln;
(
SynthDef(\playsample, { |bufnum=0, rate=1, amp=1, pan=0;|
var sig, env;
sig = PlayBuf.ar(1, bufnum * rate * BufRateScale.kr(bufnum), loop:0, doneAction:2);
env = EnvGen.kr(Env([1, 0], [BufDur.kr(bufnum) * rate]));
sig = sig * env;
sig = Pan2.ar(sig, pan, amp);
Out.ar(0, sig);
}).store;
)
(
Pbind(\instrument, \playsample,
\bufnum, Pxrand(y, inf),
\amp, Pxrand( [0.1, 0.5, 1.0], inf),
\rate, Pxrand( [0.5, 1.0, 2.0], inf),
\pan, Pxrand( [-1, -0.5, 0, 0.5, 1], inf)
).play;
)