Howdy!
Is it possible to read from a collection of six wavetables using Saw.ar (or LFSaw.ar) to drive the buffer index?
In my mind, this would go from [0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0 …]
When I try this, I get an undesirable click at the end of the loop … presumably when the Saw reaches the end of its period. My synth looks like
(
{
var sig;
sig = VOsc.ar(LFSaw.ar(0.5).range(0, 5), 120, 0.0, 0.3);
[sig, sig]
}.play;
)
I’ve designed the wavetables so that they begin and end at 0 but perhaps VOsc simply can’t interpolate from 5 to 0? I’ve also tried adding a 7th wavetable that’s a duplicate of the first, but that didn’t work either. Here’s how I’m filling them (based on a tutorial by Eli Fieldsteel):
~buf = Buffer.allocConsecutive(6, s, 8192);
(
6.do({
arg i;
~env = Env(
[0] ++ Array.rand( 6, -1.0, 1.0).normalize(-1.0, 1.0)++ [0],
Array.rand(8, 0.1, 0.25),
(Array.rand(8, 4, 12) * Array.fill(8, { [-1, 1].choose }))
);
//~env.plot;
~env = ~env.discretize(4096);
~wt = ~env.asWavetable;
~buf[i].sendCollection(~wt);
})
)
Thanks++ for any tips/advice! I’ll just stick with using LFTri.ar for the time being.