[sdiy] VCPO Variable-Phase Oscillator

Oren Leavitt obl64 at ix.netcom.com
Wed May 22 18:41:10 CEST 2024


Those look like fun!

I recall an Electronotes article about a simple circuit that takes in a 
+- 5V sawtooth and outputs a voltage controllable (-180 to +180 I think) 
degree phase shifted sawtooth.

I had breadboarded it one time. It uses a comparator/level shifter/mixer 
combo to split the original signal and recombine it as a phase shifted 
version. Works well for its simplicity. The only limitations are a small 
glitch in the output, and that the input has to be a sawtooth at a set 
amplitude.

It does also become an interesting "timbre modulator" with other signals 
fed into it.

- Oren

On 5/22/24 8:58 AM, jslee via Synth-diy wrote:
> Devin Weston has been been selling his “PA0” VCO for a few years now. 
> they are quite fun.
>
> https://www.westonaudio.com/pa0.html
>
> My pair of these were the first “serious” VCOs in my modular, and are 
> still my favourites. Wish they’d appeared several years earlier!
>
> John
>
>
> On Mon, 20 May 2024, at 09:09, Tim Parkhurst via Synth-diy 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
>>
>>
>> *Attachments:*
>>
>>   * VCPO Schem_TParkhurst_2024-05-16A1.PNG
>>
>
>
> ________________________________________________________
> 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? Usemarketplace at synth-diy.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20240522/8d4bcc7b/attachment.htm>


More information about the Synth-diy mailing list