Another take on the BBD based harmonizer.

Started by 75c, November 24, 2005, 12:45:48 PM

Previous topic - Next topic

75c

Hi, first let me say that I have no particular skills in building stompboxes, designing circuits, or mathematics in general really, so I’m sorry that I can’t be more specific or technical.

My point in brief: has anyone made an analog pitch shifter using two vibrato circuits in series, with one lfo controlling the first, and the same lfo, only inverted and offsetted, controlling the other?

It occurred to me that this might be a way to pitch shift that I hadn’t heard of before.
My reasoning:
If the audio signal from the first vibrato circuit (vib1) is patched into another vibrato circuit (vib2) with the lfo controlling vib2 (lfo2) being an inverted version of that which controls vib1 (lfo1), the result will be a signal of the same pitch as that inputted into vib1. At any point, vib1 will pitch shift the signal up or down an amount, while vib2 pitch shift the signal the same amount, but in the opposite direction, and they will cancel each others effect out.

Now, what if we offset lfo2? (I’m assuming this is as easy to do with BBD circuits as other cv controlled devises, but correct me if I’m wrong.)
If we offsetted lfo2 upwards by one semi-tone, the result would be a stable pitch one semi-tone above the pre-vib1 pitch.

Some additional points have to be made regarding this idea:
- First, I am aware of several ways of creating vibrato: BBDs, phase-shifting, and tubes. I’m not sure which would be the most suited for this task, but the vibrato circuits have to wobble the pitch quite drastically to create the largest amount of total pitch shift. It may be that one has to have several of these pitch shifters in serial to shift whole octaves.

- Secondly, a very small remark regarding lfo waveshape. I’m not sure what type of wave is most suitable, but perhaps a sine wave creates the smoothest result.

If any one would care to comment this idea I would greatly appreciate it. If anyone want to test it out, even better. And if it works, perhaps someone could make me one…  :icon_biggrin:

Dirk_Hendrik

 I had a quick read as dinner appears to be ready.

First inpression is that the result will be a vibrato with a double control and therefore this pitches generated will be the multiply of the 2.
Say the first vibrates from 0.5 to 2 (octave down to one up) and the second from 2 to 0.5 with an offset of say 2 (not a semitone but easy for )calcuculation making that 4 to 1. This results in a pitch ranging from 2 to 2......

yikes! (while typing this)
you've got a point or are we wrong in something?

Dinner's definitely ready...

More stuff, less fear, less  hassle and less censoring? How 'bout it??. To discuss what YOU want to discuss instead of what others decide for you. It's possible...

But not at diystompboxes.com...... regrettably

75c

Hmm… not sure I understand.

Let’s take two examples, the first being not offsetted, while the second is. I don’t have any graphs, so it will have to do with these numbers.  For simplicities sake, let’s say that in both cases the lfos takes one second to complete their cycle, and they have a triangular waveshape. The amount of pitchshift is purely for demonstration.

Ex1:
At 0 seconds vib1 has 0 pitchshift, vib2 has 0 pitchshift, sum: 0 pitchshift.
At 125ms: vib1 +2 pitchshift, vib2 -2 pitchshift, sum: 0
At 250ms: vib1 +4 pitchshift, vib2 -4 pitchshift, sum: 0
At 375ms: vib1 +2 pitchshift, vib2 -2 pitchshift, sum: 0
At 500ms: vib1 0 pitchshift, vib2 0 pitchshift, sum: 0
At 625ms: vib1 -2 pitchshift, vib2 +2 pitchshift, sum: 0
At 750ms: vib1 -4 pitchshift, vib2 +4 pitchshift, sum: 0
At 875ms: vib1 -2 pitchshift, vib2 +2 pitchshift, sum: 0
At 1s: vib1 0 pitchshift, vib2 0 pitchshift, sum: 0

Ex2: vib2 offsetted by +2
At 0 seconds vib1 has 0 pitchshift, vib2 +2 pitchshift, sum: +2 pitchshift.
At 125ms: vib1 +2 pitchshift, vib2 0 pitchshift, sum: +2
At 250ms: vib1 +4 pitchshift, vib2 -2 pitchshift, sum: +2
At 375ms: vib1 +2 pitchshift, vib2 0 pitchshift, sum: +2
At 500ms: vib1 0 pitchshift, vib2 +2 pitchshift, sum: +2
At 625ms: vib1 -2 pitchshift, vib2 +4 pitchshift, sum: +2
At 750ms: vib1 -4 pitchshift, vib2 +6 pitchshift, sum: +2
At 875ms: vib1 -2 pitchshift, vib2 +4 pitchshift, sum: +2
At 1s: vib1 0 pitchshift, vib2 +2 pitchshift, sum: +2

A.S.P.

a): "vibrato" going an octave up and down? (that`s not vibrato - that`s pitch shift!)
b): BBD or phase-shift vibrato are 2 different "beasts";
c): "tube" is just another 4-letter-word...
:icon_razz:
Analogue Signal Processing

Dirk_Hendrik

bump!

This idea is worth not going down this fast!
More stuff, less fear, less  hassle and less censoring? How 'bout it??. To discuss what YOU want to discuss instead of what others decide for you. It's possible...

But not at diystompboxes.com...... regrettably

A.S.P.

Quote(that`s not vibrato - that`s pitch shift!)
that`s to be read as "wobbling" pitch-shift, of course,
because of the large amount of frequency-change,
as opposed to the rather low f-variation of a vibrato.

the other question is:
isn`t "Vibrato" the addition/sutraction of a couple of Hertz (e.g. 10Hz)
(continuously varying, i.e. increasing/decreasing, of course),
to/from a steady tone of a certain fix frequency (e.g. 1kHz +/- 10Hz)
like adding/subtracting a large amount would mean Bode`s (Moog`s)
"Klangumwandler" (Frequency-Shifter) (e.g. 1kHz +/- 1000Hz),

whereas a "Harmonizer" (Pitch-Shifter) does a multiplication
(e.g. by factor 2 for an octave) (e.g. 1kHz x 2) ?

for the 1kHz example, a sine through the latter 2 boxes would offer a 2kHz
perfect octave at the output...
for 500Hz input, the frequency shifter would construct 1500Hz output,
while the pitch-shifter would make 1000Hz...
for other frequencies, the math sounds weirder & disharmonic for the f-shifter,
while staying in an octave-relation for the p-shifter...

Analogue Signal Processing

R.G.

It's only a specific musical interval at one musical note, as the difference in the two delays is a fixed time difference. A fixed time difference does not result in a fixed interval shift, but is different for every note.

You also run into line length problems. The BBD running at the higher sampling speed has to have more stages than the one that runs at low speed, I think, and it has to be the decreasing slope LFO unit, because it's stretching the speeded up version back down.
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

75c

Quoteisn`t "Vibrato" the addition/sutraction of a couple of Hertz (e.g. 10Hz)
(continuously varying, i.e. increasing/decreasing, of course),
to/from a steady tone of a certain fix frequency (e.g. 1kHz +/- 10Hz)
like adding/subtracting a large amount would mean Bode`s (Moog`s)
"Klangumwandler" (Frequency-Shifter) (e.g. 1kHz +/- 1000Hz),

whereas a "Harmonizer" (Pitch-Shifter) does a multiplication
(e.g. by factor 2 for an octave) (e.g. 1kHz x 2) ?

for the 1kHz example, a sine through the latter 2 boxes would offer a 2kHz
perfect octave at the output...
for 500Hz input, the frequency shifter would construct 1500Hz output,
while the pitch-shifter would make 1000Hz...
for other frequencies, the math sounds weirder & disharmonic for the f-shifter,
while staying in an octave-relation for the p-shifter...

I thought a bode type frequency shifter was more like a ring modulator with one sideband supressed? It seems quite more complex than this thing.

QuoteIt's only a specific musical interval at one musical note, as the difference in the two delays is a fixed time difference. A fixed time difference does not result in a fixed interval shift, but is different for every note.

Do you mean it won't be an intelligent pitchshifter, or that it will pitchshift frequencies differenty. I know it won't be intelligent, but if it doesn't pitchshift all frequencies the same (say two semitones), it might get tricky.

QuoteYou also run into line length problems. The BBD running at the higher sampling speed has to have more stages than the one that runs at low speed, I think, and it has to be the decreasing slope LFO unit, because it's stretching the speeded up version back down.

So a certain lfo shape might fix this problem?

Mark Hammer

Admittedly, the ways of analog harmonizers are a bit like surfing to me: I *think* I'm on board and can stay on, but three seconds later I'm drowning.

I case this illuminates, give a listen to the sound samples of the Frequency Shifter MIke Irwin designed for Modcan: http://www.modcan.com/sound_main.html  (scroll down a bit)

This device moves all frequencies over by an added constant, rather than shifting everything by the same proportion.  As a result, it does not sound like a harmonizer, because the relationship between individual components of the input signal does not remain true.  It's the damndest thing.  Not quite ring modulator, not quite harmonizer.

notchboy

The MXR Pitch-Shift Doubler (not the Pitch Transposer, which is digital) is a BBD-based pitch shifter.  I remember reading somewhere that it has a specially tweaked sawtooth modulation waveform stored in ROM, which is D/A converted and used to control the BBD clocks.  Supposedly the peak of the sawtooth is slightly rounded off, to reduce the glitch caused by the sudden change in delay time when the sawtooth resets.  Anyway, it was intended for small pitch shifts for chorus / detune / double fx, not harmonizing in the Eventide sense of the word.

75c

QuoteThe MXR Pitch-Shift Doubler (not the Pitch Transposer, which is digital) is a BBD-based pitch shifter.  I remember reading somewhere that it has a specially tweaked sawtooth modulation waveform stored in ROM, which is D/A converted and used to control the BBD clocks.  Supposedly the peak of the sawtooth is slightly rounded off, to reduce the glitch caused by the sudden change in delay time when the sawtooth resets.  Anyway, it was intended for small pitch shifts for chorus / detune / double fx, not harmonizing in the Eventide sense of the word.

Yeah, I'm aware of the MXR Pitch-Shift Doubler, though it's based on different principles then what I'm proposing. The Pitch-Shift Doubler unit takes advantage of the quasi-stable pitchshift that occures when you modulete the BBD clocks with a linear sawtooth waveform. The Marshall Time Modulator could also, to a limited degree, do something like this. The only theories I've heard that attempts to improve this type of BBD based pitchshifting is using "Shepard principles", ie. several of these units working in parallel and "covering each other up" by starting at different phase degrees and having the beginning and end of the lfo cycle come in and out of volume. But I've never heard of a device using these improvments.

Like the PWM approach utilized by the ADA Harmony synthesizer and disscused earlier on this forum, these work in parallel and needs to be somehow stitched together, while the dual vibrato works in serial, and at least doesen't have this problem.

SeanCostello

Quote from: 75c on November 24, 2005, 12:45:48 PM

My point in brief: has anyone made an analog pitch shifter using two vibrato circuits in series, with one lfo controlling the first, and the same lfo, only inverted and offsetted, controlling the other?

...

Now, what if we offset lfo2? (I’m assuming this is as easy to do with BBD circuits as other cv controlled devises, but correct me if I’m wrong.)
If we offsetted lfo2 upwards by one semi-tone, the result would be a stable pitch one semi-tone above the pre-vib1 pitch.


The problem with this is that an offset to an LFO in delay modulation will not cause a pitch shift, but rather a shift in delay time. The pitch modulation will be the same, just with a longer or shorter delay.

Pitch shifting is a tough issue to resolve. For monophonic signals, there are good solutions to produce almost perfect pitch shifting (PSOLA), but once you have a polyphonic signal things become much more difficult. The work of Jean Laroche at Emu/Creative Labs produces good results for polyphonic signals, and I have heard other techniques that work in similar ways without infringing that patent, but the technique is in the frequency domain, and requires the horsepower to do FFT/IFFT plus tracking and interpolating the peaks of the spectrum.

As far as analog pitch shifting, the basic overlap/add with the windowed output of delay lines is your best choice. Using the "Shepard" principles to incorporate more than 2 delay lines helps with some issues, but introduces very strong comb filltering products that need to be dealt with - this is left as an exercise for the reader ;).

Sean Costello