AW: VC delay module ideas?
Harvey Devoe Thornburg
harv23 at leland.Stanford.EDU
Fri Oct 30 19:49:30 CET 1998
>
> It's easy to build a VC clock for BBD lines. Use a 4046 as
> VCO, and a 4013 to get complementary clock pulses.
> You might even use one of the 4046's internal PD's to
> simply invert the output signal. If you want to drive long lines,
> add buffer stages (4050). If you need expo tracking, build
> an expo VCO and a 4013.
>
> Now my question.
> The main reason why I want to build a tracking (i.e.
> V/Octave) delay is the use as sound source (Karplus /
> Strong - sp? - and "poor man's physical modelling" stuff.).
> The main reason why I have not yet built a tracking delay
> is the analogue filter problem. Any analogue filter included
> in the feedback loop would detune the whole thing.
> Ok, put the anti-aliasing filters out of the loop, but you
> still *want* to control the frequency response of the feedback.
> So here you have one case where digital filters are
> superior !
> Is there a way to add a few "discreet" buckets at the end of
> BBD line, and building a simple z-plane filter by weighting
> these different tabs with different resistors?
> I mean no doubt that it works in theory, but is there a simple
> practical way to do this ? How would these discreet buckets
> look like ? How many of them do I need for a reasonable
> FIR filter ? Is this special BBD chip with separate outputs
> any good here (I guess not) ?
> Any ideas ?
>
> JH.
The z-plane filter idea sounds cool. In theory, you can get a
linear phase morphing lowpass->highpass with just 3 taps,
so that output y[n] = (tap 0)*x[n] + (tap 1)*x[n-1] +
(tap 2)*x[n-2]. For linear phase tap0 = tap2, so we can set this
to a common value (A), which is the voltage control. Let A vary
from -0.5 to 0.5 and set tap 1 = 1 - 2*abs(A). For A<0, the magnitude
frequency response is [2Acos(w) + (1 + 2A)]. This is a pure highpass
for A = -0.5, which morphs into an allpass (pure delay) when A = 0.
For A>0 the magnitude response is [2Acos(w) + (1 - 2A)]. This is
allpass when A = 0 and pure lowpass when A = 0.5.
For the highpass filter, the magnitude response at Nyquist (w=pi)
is 1 and smaller other frequencies. For the lowpass
the response at DC is 1 and smaller at other frequencies.
Therefore, this filter can never make a stable delay-feedback system
unstable, because it doesn't amplify any frequencies!!!
For -1 <= A < -0.5 or 0.5 < A <= 1 you get a tunable notch filter,
again with the stability properties. But part of the phase becomes
inverted.
I guess the only problem is that the best high-pass/lowpass is still
a half-band filter, which means the best "cutoff" is at w = pi/2, or
1/4 the clock rate. The response is forced to be antisymmetric about
this point (give or take an offset). Well, to get more frequency
localization you always need more taps, unless you have an IIR
design, where you cannot get exactly linear phase. Try convolving
the tap vector with itself to get better responses.
Such as for 5 taps:
tap 0 = A^2
tap 1 = 2A(1-2|A|)
tap 2 = 2A^2+(1 - 2|A|)^2
tap 3 = tap 1
tap 4 = tap 0
etc.
Good luck in building this!
--Harvey
More information about the Synth-diy
mailing list