[sdiy] VCPO Variable-Phase Oscillator

Tim Parkhurst tim.parkhurst at gmail.com
Thu May 23 04:04:00 CEST 2024


Hey Other Tim,

No, I'm not producing these. I actually haven't done any hardware stuff in
years. If anybody wants to sell these, just pay me $1 (or donate $1 to a
local pet shelter) for each one you move. ;)

I've breadboarded the circuit as shown with two cores (second core output
is phase shifted). I have a sound clip with the VCPO being used as an LFO
to modulate two VCOs if anyone wants to hear it. In theory, it would be
possible to add more pulse-position circuits and VCO cores, although
driving several cores while getting them to track reasonably well might be
a challenge. I'm proud that I came up with this approach on my own, but in
conversations with Ian Fritz and others here, it sounds like an E-N style
sawtooth phase shifter is an easier way to achieve the same effect. There
are some other tricks that can be used with the saw phase mod to get phase
shifted triangles and squares too. Maybe someone with more breadboard space
and free time than I could run a comparison and see if there are audio
differences between the two approaches. My approach might be better for an
LFO, as tracking might not be such an issue, and the native triangle core
output would avoid the possible discontinuity at the peaks of a saw
converted to a triangle.

Tim (timey-wimey phasey-shifty) Servo
---
"Imagination is more important than knowledge." - Albert Einstein





On Wed, May 22, 2024 at 11:34 AM Brother Theo <brothertheo2014 at gmail.com>
wrote:

> Hi, this looks like a lot of fun. Are you producing them? Have you thought
> of adding one or two more phased stages?
> --Tim Ressel
>
> On Sun, May 19, 2024 at 7:12 PM Tim Parkhurst via Synth-diy <
> synth-diy at synth-diy.org> wrote:
>
>> Hi All,
>> Here's a weird little something I came up with several years ago that I
>> think might be fun. It uses two VCO cores and a special synchronization
>> circuit that allows voltage control of the phase between the two cores
>> while they track at the same frequency. It's something I haven't seen
>> before, so I'm thinking it's a super-special invention I came up with. In
>> any case, that's my story, and I'm sticking to it. The theory below is a
>> bit of a read, but I've got a little more documentation to go with it if
>> anyone is really interested.
>> ============================
>> The VCPO features two triangle core oscillators in a setup that allows
>> one core to drive the second. The output from the second core is variable
>> in phase relative to the first. Let's see if I can give it a decent
>> explanation...
>> ===
>> The circuit uses two triangle core VCOs. It derives a signal from the
>> first core (call it A) and uses that to drive the second core (B). In the
>> schemo here, I'm using two VERY simple 2164 VCOs, but the same sync / drive
>> scheme could be applied to other triangle cores. This particular setup
>> doesn't quite track 1 v/oct, but that is just because I used the simplest
>> setup I could come up with for this first shot. With some adjustments and
>> component tuning, I think it could be made to track just fine. As an LFO
>> though, it works nicely. You could probably build one of these that tracked
>> pretty well with a 13700-based core, or a slightly more elaborate 2164
>> circuit.
>>
>> Core A is based around U5, U6, and U7. U1 and U2 form the CV summer. The
>> CV drives U6 (Core A) and U6 (Core B). Core A is just a basic, plain
>> vanilla tri core, with U5 acting as the comparator, and U7 acting as the
>> integrator.
>>
>> Core B is based around U8, U6, and U9. Core B is also fairly standard,
>> BUT NOTE that there is no hysterisis feedback around the comparator, U8
>> (Core A uses R10). This is important, because the comparator gets an input
>> signal that is a combination of the Core B integrator (through R21) and the
>> Core A integrator (through R20). This is a big part of what keeps the two
>> cores locked to the same frequency.
>>
>> Now here's the "secret sauce:" U4 and Q1 change the polarity of the
>> reference voltage going to the comparator of Core B. Normally, if you have
>> a triangle going to a comparator input and you vary the reference voltage,
>> you'll get pulse-width modulation. However, what we do here is use Q1 and
>> U4 as a sign flipper, so that the reference voltage to the comparator
>> SWITCHES POLARITY depending on whether the triangle at the comparator input
>> is on the up slope or the down slope. The result is that we get a variable
>> PHASE square wave coming out of the comparator.
>>
>> Basically, we take the triangle from Core A, and compare it in U4 to a
>> reference voltage that changes polarity with the slope of the triangle.
>> This gives us a variable phase square, and we use THAT to drive the Core B
>> integrator. R21 provides a 'weak feedback' that helps keep the Core B
>> triangle levels correct. The sign flipper (Q1, U4) is driven by the square
>> wave from the Core A comparator (U5).
>>
>> In the Phase CV Summer / Sign Flipper (U3, U4, Q1), I use R37 to
>> compensate for a slight offset that was introduced into the Core B outputs
>> (B1=Square, B2=Tri). A better method  might be to use R33 instead. I have
>> not tested the R33 method, but you would adjust this until the Phase CV
>> coming out of U4 was equal in magnitude when it flipped sign. Again, if you
>> use R33, you might not need R37. D3 and D4 are also untested, but are meant
>> to avoid having the Phase CV from U4 exceed the +/-5V limits of the
>> triangle outputs. If this CV goes above +5 or below -5, a DC offset will be
>> introduced into the Core B outputs.
>>
>> So basically, that's it. Two triangle cores, remove the hysterisis
>> feedback from the B comparator, and use the sign flipper to derive a
>> variable phase square wave from Triangle A to drive Comparator B. Again, my
>> guess is that the U3, Q1, U4 circuitry could be applied to sync just about
>> any two triangle core designs. Ideally, you want the two tri cores to track
>> together fairly well to avoid introducing more level differences between
>> the A and B outputs. This might work well with the two gain cells available
>> in an LM13700. Also, the output current from the CV Summer would need to be
>> doubled from that of a typical application, since it will be driving two
>> VCO cores.
>>
>> I've tested this circuit on a breadboard and it's a lot of fun. The sign
>> flipper scheme allows you to vary the phase of the Wave B outputs, but it
>> avoids the waveform discontinuities you'd get with a traditional capacitor
>> reset "sync" circuit.
>>
>> One limitation of this circuit is that it 'only' allows the B output to
>> vary up to 180 degrees from the A output. This means that you can't quite
>> get 'through zero' phase cancellation between the two outputs. To overcome
>> this, I've thought of using the output of Core B to drive a third VCO core
>> (C) utilizing another Phase CV Summer / Flipper. In theory, this would
>> allow the C outputs to vary by up to 360 degrees from the A outputs.
>> =============================
>> Okay, there it is. Whaddaya think?
>>
>> Tim (going through a phase) Servo
>> ---
>> "Imagination is more important than knowledge." - Albert Einstein
>> ________________________________________________________
>> This is the Synth-diy mailing list
>> Submit email to: Synth-diy at synth-diy.org
>> View archive at: https://synth-diy.org/pipermail/synth-diy/
>> Check your settings at: https://synth-diy.org/mailman/listinfo/synth-diy
>> Selling or trading? Use marketplace at synth-diy.org
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20240522/01239fb9/attachment.htm>


More information about the Synth-diy mailing list