CEM3340 VCO (Voltage Controlled Oscillator) designs

To celebrate the 2016 return of the CEM3340 chip, I thought I’d do another page in my series looking at how various synths implemented classic synth chips (the others being CEM3320 Filter designs and SSM2044 LP Filter designs). This is especially useful right now, since many people have bought a few CEM3340s or V3340s or AS3340s for their own use and are looking around for circuits to use them in. If that’s your purpose, note that these are all synth voicecard circuits, so they’re used in a known situation. If you want a VCO for a modular synth, you’ll need much more protection on inputs and outputs than most of these circuits offer.

First, the datasheet design.

Datasheet CEM3340 VCO

The datasheet design uses pretty much all the features of the chip, and shows one or two of its quirks too. The CEM3340 is extremely unusual in that it offers both Hard and Soft Sync inputs (pin 6 and pin 9), and neither of them work the way you might expect. As we’ll see, this lead to them being widely ignored. However, the datasheet does offer alternative circuits for synchronization which can give you the classic sync effect, and manufacturers seem mostly to have gone with variations on this instead. The datasheet’s claim that their inputs “provide a wider variety of synchronized sounds than available through conventionally synchronized oscillators” seems to have fallen on deaf ears. Sometimes people just want what they know and love.

One of the quirks of the CEM3340 is the waveform outputs. For a start, these are all different levels. The Ramp is 2/3rds of the positive supply. The Triangle is 1/3rd of the positive supply. The Pulse/Square is the positive supply level minus 1.3V. For a typical +15V supply, this gives levels of 0→10V, 0→5V, and 0→13.7V respectively. Another quirk is that the Pulse is an open emitter output, so it needs a pull down resistor to set the lower level. Usually this would just be grounded, but it could be taken to the negative supply. Most synths compensate for the differing levels in the following waveform mixer stage. This is easily done by changing the input resistors in an inverting op-amp mixer.

Another quirk is the supply voltage. Typical supplies for synth circuits would be +/-15V or +/-12V, but the CEM3340 can’t stand more than 24V between its supply pins, so even +/-12V is right at the limit. Curtis dealt with this by adding a zener diode to limit the negative supply connected to pin 3 to -6.5V, so this gives 21.5V across the chip with +15V positive supply. The zener diode needs to be protected from over-current, so you typically see a current limiting resistor hanging off pin 3 (820R with -15V in the datasheet circuit). Alternatively, you can run the chip from +15/-5V supplies, in which case pin 3 can be directly connected.

The circuit breaks up into various functional units quite neatly. Let’s have a look at some of them.

Starting numerically at Pins 1 and 2, this is the temperature compensation circuit. This works by generating a temperature-dependent voltage which is then multiplied on-chip by the incoming CV. Since the VCO and the temperature-compensation circuit are all on the same die, they’re all the same temperature, and this gives a highly accurate result. There are still some minor errors from the multiplication process (hey, this is analog, after all) but the datasheet gives details of how to trim those out too if you can be bothered.

Pin 3 we’ve looked at. Pins 4, 5, and 6 are inputs and outputs all labelled above, so no need to discuss those.

Pin 7 is more interesting. It’s the High Frequency Tracking. This pin produces a current which can be used to compensate for the way that the time taken for the internal comparator to switch becomes significant at higher frequencies (>5KHz or so). The lower half of the preset resistor serves as a resistor to ground which converts this current to a voltage, and the upper half and the series resistor (1M) feed a small portion back into the Frequency CV input at Pin 15.

Pin 11 is the next important one. It’s the VCO’s timing capacitor. Use a good quality capacitor here, with low leakage and low tempco. Polystyrene film used to be the best regarded, and is specified in many of the manufacturer’s schematics, but Mica is mentioned in the datasheet and there are other options now (C0G, for example). Note that the datasheet circuit describes the capacitor as “1000pF” rather than “1nF” and virtually all manufacturer’s schematics I’ve seen have followed both the datasheet value (logical, since they all want the same audio range) and the naming convention. I’ve saved space by breaking the convention and calling it “1nF” instead.

Pin 13 is the Linear FM input, with an associated bias network. I haven’t seen a schematic that uses it, so mostly you only see the bias network (1M5, 470R, 10n) connected to this pin.

Pin 15 is the Frequency CV input. This is a virtual ground summing node, and you usually see a bias network as shown (360K, 470R, 10n), although often with the values tweaked, followed by the summing resistors coming from the various CV sources.

Roland MKS-80

Roland MKS-80 CEM3340 VCO

Ok, so here’s one of Roland’s several implementations. This seems to be virtually identical to the Jupiter 6, bar one or two minor value changes. It’s a bit hard to tell, because the Jupiter 6 schematic doesn’t tell you what values are inside the special resistor arrays Roland used in both synths. The layouts are the same for sure, so I’m guessing the arrays are too.

Roland SH-101

SH101 CEM3340 VCO

The SH-101 is a strange beast, in that it uses four different positive power rails; +5V, +9V, +14V and +15V. In addition there are Ground and -5V power connections.

So, what’s different in this one? There’s a common emitter amplifier on the Pin 4 Pulse output, and the Pulse Width control on Pin 5 is handled quite differently to other designs. They’ve added a trimmer to get an exact value on Pin 14. The recommended value is 1.8K, and the combination of 1.69K plus a 300 Ohm trimmer gives that value. Other synths have simply specified a 1% resistor in this location, so the trimmer seems a little like overkill. There are also trimmers for the “Range Width” (that is to say “1V/Oct”) coming in from the DAC, and a VCO Tune trimmer to set the basic pitch. Again, there’s no linear FM.

Sequential Prophet 5 Rev.3

Sequential Prophet5 Rev.3 CEM3340 VCO

As everyone knows by now, the early Prophets used SSM chips, while the later Rev.3 moved to CEMs, which Sequential then stuck with for all future products. You can argue about the relative merits of one versus the other, but the fact is that they were having tuning problems, and using the CEM3340 helped them solve them.

Interestingly, the High Frequency tuning trim on Pin 7 isn’t used. Presumably the P5’s internal autotune routine was able to compensate for the notes tending towards flat at the high end, so there was no need.

Notice the sync circuit. This is the “Figure 5” sync circuit from page 6 of the datasheet, and produces the standard Hard Sync waveforms.

Also note that this is Oscillator A, the Sync Slave. Oscillator B is the same, except it uses the Triangle output and doesn’t have the Sync circuit.

Sequential Prophet T8

Prophet T8 CEM3340 VCO

Another Sequential design, this time their flagship Prophet T8, five years after the Prophet 5. There are several differences to note from the Prophet 5 design. The Triangle output is used, and the Sync circuit has been altered, no longer using the Soft Sync input, but still using a transistor to reset the triangle core.

The Pulse Width mixer has also gained a few extra components. There’s a resistor connected to -5V which gives a +5.5V offset on the output, and the diode acts as a half-wave rectifier which prevents the output from going negative, since the input range for Pin 5 is 0→5V. Presumably this situation couldn’t arise in the Prophet 5, making such protection measures unnecessary.

With the other inputs at 0V, the +5.5V offset will set the pulse wave to beyond 100% – e.g. it will turn it off. Whereas the Prophet 5 uses three 4016 CMOS switches to turn each waveform on or off, the Prophet T8 only uses two, saving a CMOS switch by using this alternate method of turning off the Pulse output. It’s a clever little trick to save hardware.

Moog Memorymoog

MemoryMoog CEM3340 VCO

When Moog tried building a polyphonic synth (still the only “proper” voice-based polysynth they’ve built, even in 2016 – Come on, Moog!) they couldn’t fight the tide and used CEM3340s for the oscillators. Imagine trying to tune six Minimoogs all piled up together!

The Memorymoog’s reputation has been somewhat spoiled by its poor reliability, probably a result of it being rushed out of the door in an attempt to save the company from bankruptcy. It’s a shame they didn’t have a little longer to spend on it, because in many ways it’s a great synth, perhaps even a masterpiece. Imagine! A three oscillator polysynth with Moog filters! That’s got to be good, if it works.

The CEM3340 implementation is pretty standard, apart from the 1M resistor linking the PW input and Pulse output which I suspect is to cancel the DC offset you get with pulse waves is to add a little hysteresis to the pulse comparator (Thanks Bob! – see comments), and the non-inverting op-amp buffer on the Triangle output. This amp has x2 gain, so it boosts the triangle to 0-10V, the same range as the Ramp wave.

One thing to notice is that the Moog design uses three trimmers, whereas the Sequential designs manage with only one.  I imagine that the Sequential autotune routine provides high frequency tracking and range trimming and so forth, whereas it’s not exactly clear what Moog’s autotune manages to do, since everything gets a trimmer anyway. Probably it compensates for the synth warming up (the Memorymoog had a fan to keep it cool!) and that’s about it. It’s not a great design, since three trimmers per osc for each of three oscillators is nine trims per voice, 54 trimmers total – and that’s just for the oscillators! What a pain in the backside!

Update 11th February 2017

Heinz Weierhorst spotted that I’d drawn the connections to the high frequency trimmer incorrectly (below in the comments). This affected the Datasheet, MKS-80, and MemoryMoog schematics. This is now corrected.

Update October 2018

Moog finally have built a polysynth! No-one can afford it, but at least they’ve done it!

Building these designs

The CEM3340 VCO chip has been re-released as the Rev.G. It has also been cloned by CoolAudio as the V3340 and by Alfa as the AS3340. Any of these chips will work correctly in the designs above. We have all three chips available in the shop.

53 thoughts on “CEM3340 VCO (Voltage Controlled Oscillator) designs

  1. Hi Tom.

    There is an error in the schematics.
    Pin 7 which is the output of a current mirror, whose current is 1/4 of the timing cap
    charging current, should lead to the Hi-End pot beginning, pot end to ground.
    The wiper is connected to a resistor whose other end is tied to the summing node, pin 15.
    The CEM 3340 is the work of a genius i.e. Doug Curtis.


    1. Hi Heinz,

      Thanks for spotting that! I just checked the datasheet circuit, and you’re quite right – the trimmer pot is the other way around as you describe. I’ll modify the images and get some updated diagrams in place.

      And I totally agree about Doug Curtis – the CEM chips are amazing work.

      Thanks again,

  2. The 1M resistor from pulse out to pulse in on the Memory Moog adds hysteresis (a small amount of positive feedback from the output to the input of the internal comparator). This raises the threshold when the input is increasing and decreases the threshold when the input is decreasing, to prevent the comparator from oscillating right as the saw crosses the pwm control voltage level. It’s mentioned in the 3340 data sheet.

  3. Thanks for this! I’m quite new to analog synth design (I’m a new electronics hobbyist). It took me hours to build a very basic schmitt trigger oscillator circuit that has 5 buttons that play different tones. It uses a CD40106 and a CD4040BE. I bookmarked this article and I will have to look into trying to make one of these circuits, I’m sure it will be a nice challenge for me if I try it ;P thanks again, this is very informative.

  4. Sorry for the stupid question but I wondering how the CV is generated for SH-101. All I see in the D/A section is multiplexer and dual op-amp?! I’m new to electronics. Made the subosc from the other article and now I want to try to build the SH-101 oscillator with 3340. If someone can point me on what to read to understand how they made the D/A on the SH-101 that will be great.
    Great article – thank you.

    1. If you’re looking at the service manual schematic for the SH101, the D/A convertor is at the bottom just below the CPU. It’s an interesting design because it’s not a single chip. Instead, they use the output from the CPU with weighted resistor values feeding op-amp 9a. It literally builds the required output using a weighted mixer. For the lower resistor values, the CPU outputs are buffered by multiple parallel stages of a 4050. Only after the “DAC” does a multiplexer appear, a 4052 which switches the DAC output between the VCO CV and the “LFO” Random waveform (scare quotes because that waveform isn’t really generated by the LFO at all).

      1. Tom, thank you so much for taking the time to answer me. I don’t understand it but it gives me a direction. I have a lot to learn. This site is awesome. Cheers!

  5. Hello
    I have a bit strange issue with AS3340 – applying voltage to pw input detunes oscillator. Why? 🙂

    1. I don’t know. That’s not something I’ve seen. On some of the waveform outputs, loading the pin with too low a resistance can affect the frequency. Could it be similar on the PW input?
      Alternatively, could it be the voltage level? The PW input is only supposed to range from 0V to +5V.

      1. Well, I have pot attached to 0V and +15V, so only 1/3 range of pot is usable. After some thinking I think that it’s because lack of decoupling in my design at this moment. From pulse output I have of course 10k resistor, maybe I should add bigger one too.
        After all I realising that different PW means different power coming out from this pin, so maybe decoupling IC with 100nF capacitors will help. Am I right?

      2. Well, problem with detuning PWM solved!
        In my case setting PWM on 50% caused oscillator to go ~30 cents higher. I’m powering 3340 from symmetrical 12V supply. In datasheet we have a circuit for 15V, and there is REE resistor from pin 3 to – supply. For 15V it have 820 ohms, but for lower voltage REE must be smaller, for +/-12V it must be 680 ohms.
        Hope it can be useful for somebody 🙂

        1. I have the same problem. I have a 680 Ohm resistor like you said, but i still get the detuning. I have tried to change the pull-down resistor from the Pulse output aswell and it doesn’t help. Did you just use a potentiometer to control the PWM or did you make a control circuit?

          1. I controlled PWM with potentiometer, and exactly 50% caused detune. This problem exists in early batch of AS3340, it was resolved later by Alfa. Simplest solution is to use 50k pulldown resistor, You can also try bigger. Maybe also powering IC with -5V without resistor directly to the negative voltage input may help. I have to try it out yet, especially because also AS3327E is powered from -5V. The best part is no part, and having only one negative voltage would be nice to have 🙂

  6. Hi Tom, excuse me for my ignorance, but I’m looking at the Roland MKS-80 circuit above and am not sure what that part that looks like a resistor with the T going through it represents. It’s labelled “10K PW”. Can you shed some light on that for me? Thanks

    1. Hi Jonah,
      Sure, the thing with the T through it is a trimmer (AKA preset) resistor. Hence “10K” for 10KOhms, and “PW” since it’s an adjustment for the pulse width CV.

  7. According to the data sheet, the pulse output is an open emitter (it wouldn’t make sense to have a pull-down resistor in an NPN collector).

  8. In the introduction, you mention the need for additional protection on inputs and outputs for a modular design. How would you design such protections? Thanks

    1. A typical modular synth module would probably use op-amp mixers to allow CV control alongside the control pots. The output from the op-amps is then a known quantity (say +/-13.5V on a +/-15V system using typical op-amps like the TL07x series, since they can’t go quite to the rails) and the voltage can be limited to something the 3340 can survive either by a potential divider (for voltage inputs) or a series resistance (for current inputs).


  9. What’s the purpose of 1M5 resistor between pin 2 and – 15V in the Prophet 5 ? Any opinion ?

    1. Hi Massimo,
      It seems to be a mistake. I checked the original schematic, and it’s not there, so it looks like it’s my error.
      Well spotted, and thanks for pointing it out!


  10. Hi everyone. I’m a total noob when it comes to all this, but I am keen to learn. Would I be able to run 12V from my modular power supply through a 2K pot to the PWM pin of the chip to allow know fiddling for the PWM?

    1. The PWM CV input expects 0 to 5V, so 12V is too high. However, if you put a 2K7 resistor from 12V to the top of the pot, that will reduce the maximum voltage on the pot ( 2K / 2K+2K7 = 0.425, and 0.425 x 12V = 5.1V).

      1. Thank you so much! Sorry if my question is dumb – as I said I’m a total noob. Could you please explain the equation if you have a moment? Many thanks in advance.

        1. It’s a “voltage divider” or “potential divider”. There’s a nice explanation here: https://learn.sparkfun.com/tutorials/voltage-dividers/all.

          The short explanation is that the the voltage is multiplied by the ratio of the bottom resistor to the total resistance. In our example, we need 5V maximum output for a 12V input, and we know that the bottom resistor (the pot) is 2K. Our ratio therefore needs to be 5/12 = 0.416, and, flipping that upside down, our total resistance needs to be 12/5 x 2K = 4K8. That means the top resistor is ideally 4K8-2K = 2K8. 2K7 is the nearest realistic value. Hope that makes sense once you’ve had a chance to work it through! Good luck and happy learning!

  11. Hey guys,
    thanks for the great chips!
    I’m having a hard time mixing the Ramp, Pulse and Triangle
    waves together..
    What would you recommend as a small mixer for the three
    outputs of this 3340?
    Thanks again!

    1. It depends a bit what you’ve got following the VCO.

      If you want a general mixing solution, then an inverting op-amp mixer is the way to go. Keep the resistor values pretty high to avoid loading the VCO – 100K, 200K, or so. The input resistors need to balance the perceived levels. A triangle wave of 10Vpp sounds quieter than a square of the same amplitude because it has many less harmonics.

      An op-amp mixer is not the only way though. In many synth voice designs, you’ll see the filter input used to mix the signals. This is essentially the same thing since many filter chips were design with “virtual ground node” inputs which allows this kind of mixing. Again, the inputs will be weighted to balance audio levels.

  12. Hello Tom, thank you for the article, I’m new and I want to build a basic monosynth with this chip and have two or three of them, so I can mix the outputs. What other solutions apart from the op-amp and filter can I use. Thank you

    1. Honestly, an op-amp mixer for the oscillators is by far the best solution. You could use a passive mixer of just resistors feeding your filter, but you won’t have any control over the level of each oscillator, so it’s not ideal.
      Do a couple of searches for “op-amp audio mixer” or check a few synth schematics (Sequential Pro-One schematics come to mind) to see how they’ve done it.

  13. Thank you for your apt reply. I did figure out the mixer function, now I have to find out how to do a sub-oscillator. There is so much to learn argh. Also, do you still have those wavetable chips from a while ago? Thank you

  14. There’s an error in your description of the SH-101. “There’s an emitter follower buffer on the Pin 4 Pulse output.” That’s not an emitter follower, it’s a common-emitter amplifier or inverter. I have to say it’s not super clear to me what the point of that stage is, unless there’s a reason they wanted to change the phase of the pulse wave vs. the others (or maybe it just pulls the pulse up closer to being rail-to-rail?) Whatever it was, it must’ve been more important than having a low output impedance!

    1. The reason is to change the phase. Prophet 5 does the same by putting the pulse wave into the inverting input of the 3280. Otherwise when sawtooth and pulse are mixed together at equal levels, the pulse doesn’t sound at all – sawtooth is just shifted up a few volts. Try it in a circuit simulator!

  15. I’m curious about the decoupling on the -5V line in the Moog implementation. Rather than 10uF to ground as one might expect, this is decoupled between the -5V and -15V lines. Any thoughts?

    1. Well, I don’t know why Moog did it like that, but I suspect it doesn’t make a lot of difference. After all, DC can’t pass through the cap, so what the voltage is on the other end of it isn’t that significant. Perhaps they thought the -15V line would be quieter, or they wanted to avoid dumping any noise to the shared ground wire where it might get into other parts of the circuit? Dunno – it’s speculation.

  16. I was wondering if the big cap on the -5V line would have any impact on the PWM tuning problem. My first build had this issue. It was resolved by either: adding a big decoupling cap on -5V, or having more current available on the negative rail. Or both.

  17. First off, I have a great appreciation for your efforts. It’s a fantastic resource and I can’t thank you enough for your work.
    For the Prophet 5 rev 3 circuit, omit the 1M5 to -15V on pin 2. It’s in the T8 but not the 5 rev 3.

  18. Hello Tom

    I was looking at your sync circuit for the Sequential T8 3340 VCO, and I realised it won’t work as drawn. For sync to work, the transistor has to short the triangle to 0v, but the 0v connection is via a capacitor, so the whole circuit will drift up to 5v and stop working.

    Going back to the T8 service manual I noticed a line marked Sync CV, and eventually traced it to a 4174 flip-flop output. I also noted that the sync is always connected to the other VCO. So, the 4174 is the sync on/off control – when it’s output is 0v, the sync circuit operates, and when it’s at 5v, sync is switched off.


    1. Hi Steve,
      Thanks for spotting that. It’s only a partial circuit as drawn, and yes, you’re right, it needs that Sync CV connection to be pulled down to ground to turn the sync on and work correctly.

  19. What does the Circle CM mean in the schematic for the as(cem)3340 datasheet.
    I dont understand what it does in the circuit diagram any light shed on this will be helpful.

    1. The “CM” stands for “current mirror” which is a standard circuit block. Besides not having much space, I suppose they don’t want to reveal the exact implementation they’ve used (there are various designs of current mirror).

  20. I don’t know if this is the right place to post this, but it might be of interest to fellow 3340-users! I’ve been wrecking my head trying to solve why, on my prototype polysynth voicecard, my two AS3340s, when very closely detuned, would lock together in pitch, producing what sounded like a single sawtooth an octave higher, when the two sawtooth outputs were mixed equally. A discusion on modwiggler (now vanished) suggested a bad power supply, but mine seems clean. On a breadboard I tried separate supply lines and ground to the two chips, but this made no difference. But when I moved the chips physically further apart, the problem vanished. I connected a wire to sawtooth out on one chip, and when hovering it near the other, the problem comes back. Is it some sort of EMI or capactive coupling? Anyway, out of interest, I splashed out on two CEM3340 rev. Gs, stuck them in my original prototype PCB and they don’t lock at all…

  21. Hello everyone

    With all due respect i would like to ask you a question about some AS3340 VCO circuit i was working at.
    The thing is that i am working a CV-Frec relation of 1V/oct. I have 5V CV voltage coming from Doepfer A190-2 MIDI to CV interface.

    I can get from 5V is as follows:

    0V = 32.7 Hz
    41mV = 33.43 Hz(C-2)
    0.97mV= 68.6 Hz(C-1)
    1.89mV= 142 Hz(C0)
    2.8 V = 290 Hz(C1)
    3.7 V = 600Hz(C2)
    4.68 V = 1.24 kHz(C3)

    I used the 4 trimmer tunning method. How can i make this VCO to get from 20Hz to 20kHz?. I have seen commercial designs to get 20-20kHz with 0 to 5V control voltage using 1V/oct R. Moog standard.

    Any help will be greatly appreciated.

    1. It’s impossible to get from 20Hz to 20KHz with only 5V control voltage if you stick to 1V/Oct. That’s 10 octaves, so it take 10 volts!

      However, you don’t *have* to stick to 1V/oct for every CV input. The circuit is usually set up so that 100K input gives 1V/Oct. Making that resistor smaller will give a more sensitive input that will give you something closer to your 20-20K range for 0-5V. Try 47K, or put a 100K preset in place and then you can adjust the sensitivity to give you the range you need. All this can remain independent of a 1V/Oct CV on another input, if required.

Leave a Reply

Your email address will not be published.