[sdiy] Frequency shifted from BBD?

brianw brianw at audiobanshee.com
Mon Oct 7 06:50:11 CEST 2024


I have long pondered what makes a BBD fundamentally different from digital sampling.

The amplitude dimension is continuous in a BBD. There is plenty of noise, because the analog signal is copied hundreds or thousands of times, but the key is that analog noise (Gaussian) is perceived differently than digital (quantization) noise - although proper dither can deal with that. One might be tempted to compare the two based purely on signal-to-noise ratios, and assume that digital is "better" but the quality of the noise can be different enough that perhaps the higher noise is preferred.

The time dimension is discrete, but it seems that there might be room for variation in the sampling rate between continuous changes in frequency versus discrete changes. So, even though BBD time must be discrete, there is the option for changes in sample rate to be continuous or discrete. This could easily affect the sound being recorded into and played out of the BBD.

For 24-bit digital codecs, the sample rate is always locked to multiples of 44.1 kHz or 48 kHz. Attempts to vary the sample rate would likely fail with those designs. Other digital audio codecs, 20-bit and below, support arbitrary sample rates - although the appropriate low-pass filter is recommended to avoid aliasing, and be adjusted for the changing sample rate.

When varying the sample rate, a digitally generated clock will have discrete steps in frequency, while an analog oscillator (used as a clock) could have continuous variation of frequency. I would lean towards an analog square wave oscillator, perhaps with digital CMOS gates to process the output to generate the complicated clock signals required by the BBD. This could be as simple as a 555 Timer-based oscillator, but that might be *too* simple.

When you mention voltage control of the clock, that could include an analog oscillator with continuously variable frequency, although computer generation of the CV might force the frequency to have discrete steps. I would be very interested in a BBD circuit design with an analog clock controlled by CV, although I might be tempted to skip digital uP control of that particular CV.


As for the way BBDs shift the pitch, it should be identical to the way that tape shifts pitch. One advantage of a BBD is that the clock rate can be instantaneously changed from one cycle to the next. With a tape delay, the mechanical aspects will have some momentum due to mass, limiting how quickly the tape speed can be changed from one moment to the next, but the BBD simply responds to the clock including an instantaneous change in the period (frequency).


Besides the unavoidable differences between BBD and digital audio delay, we should not forget the other audio processing that occurs. To reduce the amount of noise, companding is often used, and that can impart a significant amount of color to the sound that is separate from the BBD, even if the shortcoming of BBD are what necessitate companding.

Brian

p.s. It certainly would not hurt to have a uP controlling many aspects, but as explained above I would prefer some of those elements to be analog. I do agree that synchronizing two ramp waves and one trapezoid CV would be quite easy with a uP.


On Oct 6, 2024, at 3:16 PM, Tom Wiltshire <tom at electricdruid.net> wrote:
> I'm not claiming that digital control solves any of the inherent problems, but I think it moves solving them to a much more manageable domain! If we have the BBDs clock rate and volume under voltage control, and we move the CV generation to a uP, then we have full liberty to do whatever we like *within the limitations we have*. It doesn't remove any of the limitations, but it makes them a whole lot easier to deal with. If that's just making it "smaller and cheaper" I'll take that as a win, since this theoretical pitch-shifting unit is highly likely to be large and expensive anyway!
> 
> But as I said, I think this needs more thinking about. The complex way BBDs shift the pitch of signals passing through them is often underestimated, and in this instance, the details totally matter, so I think Brian and I are really on the same wavelength here.
> 
> Tom
> 
> On 6 Oct 2024, at 22:32, brianw <brianw at audiobanshee.com> wrote:
>> Digital control of a BBD does not solve any of the major problems inherent in using a BBD. The BBD is not a CV-controlled technology, and digital generation of CV signals would not solve anything that's directly related to the BBD. Thus, a modern implementation of a BBD pitch shifter would have precisely the same major limitations as the decades old solutions.
>> 
>> The BBD itself is partly analog. Although it is a discrete time sampling technology, the sample values themselves are continuous.
>> 
>> The number one challenge with a BBD is that all samples move through the buckets based on a single clock. Technically, there are two clock inputs, but they have a precise relationship and might as well be thought of as one, since they cannot vary in period. Thus, adding a new sample requires all prior samples to be moved to the next bucket, and the oldest sample is lost as soon as it appears on the output.
>> 
>> By the time a modern solution is built around a BBD, with VCA and EG units, it really doesn't matter whether the clocks and CVs are generated from analog or digital sources. It's actually fairly easy to synthesize a ramp wave that is phase locked with another ramp wave that's offset 50% of the period, and generate the trapezoidal envelopes - perhaps simply by clipping a triangle wave. Granted, these analog synthesis signals can be generated easily digitally, but that is a very minor challenge. Basically, digital control would merely make the circuit smaller and cheaper. The tough problems remain tough.
>> 
>> No doubt, most BBD designs from back in the day used digital logic chips to generate the required clocks (which cannot overlap without shorting all of the buckets together and destroying the stored voltages).
>> 
>> Brian
>> 
>> On Oct 6, 2024, at 11:44 AM, Tom Wiltshire <tom at electricdruid.net> wrote:
>>> At the time that this was a tough problem, people were trying to solve "the pitchshifting problem" using entirely analogue means. The problem didn't really get solved until Eventide did it digitally with the Harmonizer.
>>> 
>>> But we don't have the same limitations today. It seems to me that a BBD-based pitch shifter would be possible if you had a uP to produce the required control voltages. Of course, such a thing is still *ludicrous* by most measures, but it would be *possible*. You need at least two and possibly several BBD delay lines with voltage-controlled clocks and VCAs on their outputs. Each delay line then has a CV for the clock rate, and a CV for the volume. A decent uP+DAC and a decent programmer can then generate a pile of control voltages to give you up/downshifted delayed signals, and all the necessary crossfading to avoid the glitches when the ramps jump back to zero.
>>> 
>>> I'll have to think harder about this to work out for how long a given delay line length can give you a specific pitch shift. That'll help determine how many delaylines would be required. More shift is steeper ramps (e.g. higher modulation frequency) and probably more BBDs required?
>> 
> 
> 




More information about the Synth-diy mailing list