[chuck-users] delay times of STK delays seem to be 1 sample off?
volker böhm
vboehm at gmx.ch
Sun Mar 2 11:43:10 EST 2008
On 02 Mar 2008, at 01:54, Kassen wrote:
>
> So, if I get this right, you made sure the delay now works at it's
> set length for both feedback and straight output?
yes, that's right. the feedback path is provided in the ugen itself.
one drawback is that it's not possible anymore to have a delay of 0
samples (which for a feedback delay makes no sense anyway).
>
> That would be quite a valuable addition if you'd submit it (not
> sure if there's a official process for this). At any rate this
> phenomenon could stand some attention in the manual because any
> system using feedback will run into this. Often the Z-1 function
> inherent in the feedback is actually beneficial and useful but we
> should probably document that it's there, where it is exactly and
> how it will affect things.
>
> Glad to have been of help. I hope you'll share your fix, sounds
> like a solution that would be good for everyone.
i don't know about submitting. the delay ugens are part of the STK
which also exists as a library independent from chuck.
so changing something in there is not so easy. also i think e.g.
DelayA is used by other STK ugens as well.
might be better to have dedicated (interpolating) delay ugens with
integrated feedback path - maybe there is already something like
that. coulnd't find any in the ugen list, though.
but of course i am happy to share what i have done, it's simple
enough...
this is from ugen_stk.cpp:
MY_FLOAT DelayA :: tick(MY_FLOAT sample)
{
MY_FLOAT next = nextOut(); // READ from delay line (compute
output sample)
inputs[inPoint++] = sample + next * fb; // WRITE input to delay
line (last output value added with feedback gain)
// Increment input pointer modulo length.
if (inPoint == length)
inPoint -= length;
outputs[0] = next;
doNextOut = true;
// Save the allpass input and increment modulo length.
apInput = inputs[outPoint++];
if (outPoint == length)
outPoint -= length;
return outputs[0];
}
and then there is the whole CK_DLL glibber to add the "fb" parameter
and method.
best,
volker.
More information about the chuck-users
mailing list