to the interpolation of delay time between sample granularity
is it done per default? did you do it, alex? I think it is very delicate coding; I have no practical experience in DSP programming.
with linear interpolation, we would get ugly HF modulation above 11k, so at least 3 samples should be used with some 2nd or 3rd order splines, or in other words - upsampling technologies.
in my circuit, we could just use a soft low-pass above 12k or so.
Some new plugins to test...
- KVRian
- 1305 posts since 26 May, 2003 from im müscha...
please me on more
...nice plugs
...thx
tro
tro
-
- KVRist
- Topic Starter
- 59 posts since 22 Feb, 2005 from Italy
Hey autloc, you're a forge...
I think I'll take a week to understand well all your posts
Yes, ch-1 implements fractional sample granulation, this is what the all-pass interpolation is for...
and that's ch-1's heart.
It's not so difficult in the end: you only have to calculate good coefficients for it (depending on the frac part), then it works with two additions and a subtraction (three samples in total).
About the sin lfo... it comes from an interpolated lut: this time linear interpolation suffices. The triangle is a "pure triangle" instead!
I think I'll put an exp curve as well.
To be continued...
Yes, ch-1 implements fractional sample granulation, this is what the all-pass interpolation is for...
and that's ch-1's heart.
It's not so difficult in the end: you only have to calculate good coefficients for it (depending on the frac part), then it works with two additions and a subtraction (three samples in total).
About the sin lfo... it comes from an interpolated lut: this time linear interpolation suffices. The triangle is a "pure triangle" instead!
I think I'll put an exp curve as well.
To be continued...
Free VST Plugins at http://ag-works.net/
-
- KVRer
- 8 posts since 1 Oct, 2005
>I think I'll take a week to understand well all your posts
ok but then you can code it in 2 hours, almost everything is there already
>I think I'll put an exp curve as well.
well, but it is not part of the basic idea. it was a workaround because of the 1/x function in analog delay clock VCO vs delay time.
if the linear appoach sounds too synthetic, you can try to introduce the kind of error that was inherent in the analog design, this would be to search a linear combination of exp(x) and -1/(x-1) that is closest to zero, just to add a little curve, but any other function might be as good, I just explained what was inside. a tiny amount of a sine wave (synced to the triangle) should be the best. but this is second order stuff.
the basic idea is 2 identical delays, but one is controlled from the inverted triangular LFO. one shifts pitch up a small amount, the other down the same amount. when control signal direction changes, they change roles. no "howling". the change must be softened. (tune parameter: duration of the transition width - I think the edges of the triangle must be replaced with parabolic functions, think of an integral of the desired pitch function)
ok but then you can code it in 2 hours, almost everything is there already
>I think I'll put an exp curve as well.
well, but it is not part of the basic idea. it was a workaround because of the 1/x function in analog delay clock VCO vs delay time.
if the linear appoach sounds too synthetic, you can try to introduce the kind of error that was inherent in the analog design, this would be to search a linear combination of exp(x) and -1/(x-1) that is closest to zero, just to add a little curve, but any other function might be as good, I just explained what was inside. a tiny amount of a sine wave (synced to the triangle) should be the best. but this is second order stuff.
the basic idea is 2 identical delays, but one is controlled from the inverted triangular LFO. one shifts pitch up a small amount, the other down the same amount. when control signal direction changes, they change roles. no "howling". the change must be softened. (tune parameter: duration of the transition width - I think the edges of the triangle must be replaced with parabolic functions, think of an integral of the desired pitch function)
-
- KVRist
- 190 posts since 28 Nov, 2003
you could generate your rounded-triangle for your lut by taking the root of a sine function (eg, sign(sin(x))*fabs(sin(x))^(0.4) ) and then integregating the square-like curve that results. it won't be linear at any point (so pitch will be constantly changing), but it should give a reasonable curve (?). you can play with the exponent to find a good compromise between speed of switching and smoothness.
