# Adding "Reverse Direction" Sync to Triangle Core Oscillator

**URL:** <https://lookmumnocomputer.discourse.group/t/adding-reverse-direction-sync-to-triangle-core-oscillator/3662>\
**Category:** DIY STUFF\
**Created:** [June 19, 2021, 12:43pm UTC](https://lookmumnocomputer.discourse.group/t/adding-reverse-direction-sync-to-triangle-core-oscillator/3662 "2021-06-19T12:43:54Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![porl](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/porl/32/14907_2.png) [@porl](https://lookmumnocomputer.discourse.group/u/porl)\
**Post date:** [June 19, 2021, 12:43pm UTC](https://lookmumnocomputer.discourse.group/t/adding-reverse-direction-sync-to-triangle-core-oscillator/3662/1 "2021-06-19T12:43:54Z")

</div>

Hi All!

I am currently in the process of designing my own triangle core VCO. I’m using bits and pieces of info from many sources, but the core of the synth is as shown below:

 ![Screenshot from 2021-06-19 22-28-34](https://global.discourse-cdn.com/free1/uploads/lookmumnocomputer/original/2X/3/3ad38772da8d1b6d36540bc3d311cf845cff6373.png)

So far (at least in simulation) I have working Triangle, Saw, Sine, Pulse wave outputs, as well as an exponential converter.

What I haven’t worked out is how to give this triangle core a form of sync. If I “short out” the cap in the integrator I get a basic reset-to-zero, but the triangle continues in the same direction as it was going.

Does anyone know how I could get the more common “reverse direction” style sync to work on this circuit? Basically like the CEM3340’s “hard sync” effect on the triangle in the image on page 4 of the CEM3340 datasheet (sorry, as I’m still a new user I can’t embed a second image): [CEM3340 Oscillator Datasheet pdf - Controlled Oscillator. Equivalent, Catalog](https://datasheetspdf.com/pdf/641498/CES/CEM3340/1) (ignore the pulse and saw lines, just referring to the triangle line as it behaves from input like the sync line)

Hopefully I can get this all working and post up some proper schematics!

---

<div class="post-metadata">

**Author:** ![analogoutput](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/analogoutput/32/29663_2.png) [@analogoutput](https://lookmumnocomputer.discourse.group/u/analogoutput)\
**Post date:** [June 19, 2021, 1:05pm UTC](https://lookmumnocomputer.discourse.group/t/adding-reverse-direction-sync-to-triangle-core-oscillator/3662/2 "2021-06-19T13:05:16Z")

</div>

Good question! I’ve added sync to a triangle core LFO

> [@Adding sync to an LFO](https://lookmumnocomputer.discourse.group/t/adding-sync-to-an-lfo/2436):
>
> So I started off with the David Hillant LFO design: I have it working on my breadboard. Now I would like to add this: Apparently I cant just plug this setup in to the existing circuit (I tried). I imagine because the resistors are the wrong value. Any ideas on how I might get this to work?

but of the sort that resets the waveform to its maximum or minimum peak. If the voltage source is adjusted to give an intermediate value (such as 0) then the wave continues in whichever direction it was going before the sync.

---

<div class="post-metadata">

**Author:** ![analogoutput](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/analogoutput/32/29663_2.png) [@analogoutput](https://lookmumnocomputer.discourse.group/u/analogoutput)\
**Post date:** [June 19, 2021, 3:03pm UTC](https://lookmumnocomputer.discourse.group/t/adding-reverse-direction-sync-to-triangle-core-oscillator/3662/3 "2021-06-19T15:03:10Z")

</div>

I guess the oscillator direction depends on the MOSFET output which in turn depends on the output of the comparator on the right… do I have that right? In which case can you use a JFET to switch between that output and the same put through an inverting stage? But you’d need to switch it back once the comparator switches… I dunno.

---

<div class="post-metadata">

**Author:** ![porl](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/porl/32/14907_2.png) [@porl](https://lookmumnocomputer.discourse.group/u/porl)\
**Post date:** [June 20, 2021, 2:15am UTC](https://lookmumnocomputer.discourse.group/t/adding-reverse-direction-sync-to-triangle-core-oscillator/3662/4 "2021-06-20T02:15:34Z")

</div>

Yes, this is where I got to in understanding it. I tried adding an inverter to switch in, but as you said I couldn’t get it to “stick”.

Hmmm… thinking out loud, maybe if I have the sync pulse act as a “flip flop” style switch in some manner to switch between those signals. Kind of like a two way multiplexer that switches inputs on each pulse.

---

<div class="post-metadata">

**Author:** ![porl](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/porl/32/14907_2.png) [@porl](https://lookmumnocomputer.discourse.group/u/porl)\
**Post date:** [June 20, 2021, 2:30am UTC](https://lookmumnocomputer.discourse.group/t/adding-reverse-direction-sync-to-triangle-core-oscillator/3662/5 "2021-06-20T02:30:43Z")

</div>

I played around a bit more with this but any time there is an extra inverter in the line the oscillation stops once the voltage reaches the threshold. Not sure how I can have this change of direction “reset” the oscillator to think it is now at that point of the waveform so that the oscillation remains stable.

---

<div class="post-metadata">

**Author:** ![jaradical](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/jaradical/32/12069_2.png) [@jaradical](https://lookmumnocomputer.discourse.group/u/jaradical)\
**Post date:** [June 20, 2021, 1:06pm UTC](https://lookmumnocomputer.discourse.group/t/adding-reverse-direction-sync-to-triangle-core-oscillator/3662/6 "2021-06-20T13:06:24Z")

</div>

North Coast Synthesis have a tri-core VCO with sync. The circuit description of the sync part on page 51 may be of some use:

> **[msk-013.pdf](https://files.northcoastsynthesis.com/msk-013.pdf)**
>
> 19.24 MB

---

<div class="post-metadata">

**Author:** ![porl](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/porl/32/14907_2.png) [@porl](https://lookmumnocomputer.discourse.group/u/porl)\
**Post date:** [June 21, 2021, 1:21am UTC](https://lookmumnocomputer.discourse.group/t/adding-reverse-direction-sync-to-triangle-core-oscillator/3662/7 "2021-06-21T01:21:02Z")

</div>

Looks like a lot of info here, thanks! I’ll take a read and see if I can work something out from what they do.

---

<div class="post-metadata">

**Author:** ![porl](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/porl/32/14907_2.png) [@porl](https://lookmumnocomputer.discourse.group/u/porl)\
**Post date:** [June 21, 2021, 1:23am UTC](https://lookmumnocomputer.discourse.group/t/adding-reverse-direction-sync-to-triangle-core-oscillator/3662/8 "2021-06-21T01:23:23Z")

</div>

Hmm from their description I think this is still not the “reverse direction” sync style. Could be interesting though!

---

<div class="post-metadata">

**Author:** ![porl](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/porl/32/14907_2.png) [@porl](https://lookmumnocomputer.discourse.group/u/porl)\
**Post date:** [June 21, 2021, 6:56am UTC](https://lookmumnocomputer.discourse.group/t/adding-reverse-direction-sync-to-triangle-core-oscillator/3662/9 "2021-06-21T06:56:02Z")

</div>

Sort of progress:

If I inject the inverted signal into the comparitor’s input, I can get the oscillator to switch directions _if_ it has not yet hit the peak voltage (at either polarity) since it has crossed the zero line. In other words, it works in the first and fourth quarters of the wave, but not in the second and third.

I suspect it is losing the ability to “drive” the inverter in these two sections but I’m not knowledgeable enough to understand how to work around that.

---

<div class="post-metadata">

**Author:** ![porl](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/porl/32/14907_2.png) [@porl](https://lookmumnocomputer.discourse.group/u/porl)\
**Post date:** [June 21, 2021, 11:21am UTC](https://lookmumnocomputer.discourse.group/t/adding-reverse-direction-sync-to-triangle-core-oscillator/3662/10 "2021-06-21T11:21:04Z")

</div>

Further progress!

Got it (kind of) working… From the sync input a positive pulse will set the triangle to rise and a negative pulse will set it to drop. Took more parts than I was hoping (three op-amps and two mosfets) but at least it is looking like a possible path.

See below image for details. Square wave is to generate example pulses.

 ![Screenshot from 2021-06-21 21-13-41](https://global.discourse-cdn.com/free1/uploads/lookmumnocomputer/original/2X/1/1445f5a9be69de8f8349965d1d4d775100b0ca5e.png)

Not sure if this is the “final” solution, or if I should have something more tied to the current triangle’s phase. That is, should a positive pulse always toggle the direction? If so I’ll probably have to add some kind of flip-flop to toggle between each side’s pulses.

Any thoughts?

---

<div class="post-metadata">

**Author:** ![porl](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/porl/32/14907_2.png) [@porl](https://lookmumnocomputer.discourse.group/u/porl)\
**Post date:** [June 22, 2021, 11:30am UTC](https://lookmumnocomputer.discourse.group/t/adding-reverse-direction-sync-to-triangle-core-oscillator/3662/11 "2021-06-22T11:30:45Z")

</div>

Another update (and possibly the last unless someone has some interesting idea):

Realised I could combine the bottom two op-amps into one, so decided to use the freed-up one to take any input signal and output a square wave at the input. This way I can sync to any input wave and have the triangle act at the zero crossings. So when you have an input wave crossing the zero point in a positive direction the triangle with switch to increasing (if it isn’t already travelling that way) and vice-versa.

Hopefully this will be a more musical sounding sync than just changing on specific pulse inputs.

See below for “final” version (minus any input conditioning and switching etc.):

 ![Screenshot from 2021-06-22 21-21-44](https://global.discourse-cdn.com/free1/uploads/lookmumnocomputer/original/2X/0/075eb657e9593185ef55854f5c07e24cb38fc7c1.png)
