The VCO Maximus
A CEM3340 Based VCO
Preface: It's always a great honor to publish Thomas' work on this site, and this project is no exception. What adds particular zest to this project is that it is a CEM3340 based VCO module. It's a thrill to work with this part, because, to be honest, I never thought I'd see the day when I could work with this part.
Another great aspect of working with Thomas is that it is always a learning experience - one not only gains practical design knowledge, but one also gains an appreciation of the philosophy behind a good design. One of the rules that Thomas taught me long ago was "Just because you can, doesn't mean you should." That is advice that, many times, I would have followed in the past.
Finally, it is a great pleasure working with the team that Thomas assembled: Tim Heffield and Matthias Hermmann of Fonitronik. Tim has always amazed me with not only his techical knowledge, but with his skill at prototyping. And Matthias is the multi-talented entity behind the Fonitronik juggernaught. In fact, there are plans in the works to have a VCO Maximus PCB available from Fonitronik in the near future.
Back to the subject at hand. The design is a wonderful, versatile, and musical creation made possible by a combination of the genius of Thomas Henry and Doug Curtis' CEM3340. Thomas' write-up, which we will get to shortly, will guide you through the design complete with images of the waveforms the VCO Maximus produces. I also have a page dedicated to the CEM3340 and its backstory with the VCO-Maximus, which features a video of the VCO Maximus in action, pictures of Tim Heffield's VCO Maximus protype build, and some small discussion of the features of the VCO Maximus. I have also provided a resources page, where you will find the schematic, parts list and various useful links. The sidebar above allows the reader to go directly to any section of the VCO Maximus description found on this page as he/she builds the project. The figures are linked to open in separate tabs of your browser - it's interesting to open a series of waveforms and click through the tabs to watch the gyrations of the VCO Maximus. Before we get started,I suggest to the reader to print out a copy of the schematic and follow along with Thomas' excellent description of the VCO Maximus. So, let's get to it!
By Thomas Henry
The heart of the VCO Maximus is the CEM3340. While it has a few quirks, the real beauty of it is that all temperature compensated exponential conversion is handled internally; there is no need for a matched transistor pair or thermistor. Moreover, the tuning is exceedingly precise with ten to twelve octaves being possible. Let’s check out the tuning trimmers first.
R28 establishes a scaling of 1V/octave. Since oscillators can go flat as the frequency increases (due to a finite reversal time of the triangle core), trimmer R29 lets you compensate for this. The usual way to tune the VCO is to begin with R29 slammed shut, then adjust R28 for an octave increase for every volt increase, say in the middle of the audio band. Now move the operating frequency up to about 15kHz or so and trim out any flatedness which occurs with R29.
J3 is the 1V/octave input that normally connects to your music keyboard or sequencer. The basic range and tuning of the VCO are set by the Coarse and Fine controls, R48 and R49, respectively. J2 permits exponential FM, which can be tamed by attenuator R47. The remaining components surrounding these inputs concern setting the basic control current range and compensating the exponential converter. In particular, R55 takes care of the former, while R2 and C8 deal with the latter. Note that pin 15 is a virtual ground, so you can sum additional control voltages if desired. Easy with the CEM3340!
Moving on to the linear frequency modulation feature, an external control signal may be injected via J1. This is capacitively coupled by C21 (we want a linear deviation above and below the current VCO frequency), and attenuated by control R46. Like the exponential input, stabilization is required and that is the purpose of R3 and C7.
C4 is the timing capacitor and should be a good quality unit with a decent temperature coefficient. A poly cap works well, but there are fancier ones out there should you be of an obsessive disposition.
The VCO Maximus may be synced to other VCOs, in two distinct ways. Look to jack J9 which expects a 10Vpp pulse or square sync signal. If switch SW1 is in the Weak position, then the capacitively coupled pulse (thanks to C5) is passed on to the so-called “soft” sync input, pin 9. R38 sets the sync level at about 10%. The purpose of Weak sync is to keep the VCO Maximus more or less locked in harmony to whatever VCO is driving it, without distorting the waveform. For example, you might want to fix the VCOs at an interval of a fourth, as just one possibility. As long as the two are reasonably close to each other, that’s what you’ll get and without any changes in timbre.
On the other hand, the purpose of Strong sync (the alternate position of switch SW1) is to indeed transform the resulting waveform into something bursting with new harmonics. In this case, the master signal is routed to pin 6 of the CEM3340, by way of the diode/resistor network D1/R20. The latter ensures that only negative going pulses cause a reversal of the triangle core. As I found out the hard way years ago, it’s easy to overdrive pin 6, and R17 is a simple fix for that.
The data sheet indicates that three types of “hard” sync are possible: negative, positive and bipolar. However, for several arcane reasons, it’s tricky to make these switch-selectable and get reliable performance in all three at once. Furthermore, the difference in sounds is negligible, even though the scope pictures are very distinct. So again, letting ears be the final arbiter, I jettisoned the polarity feature, which also keeps the chip count under control.
A note about the definition of sync is in order. The data sheet refers to these as soft and hard sync, but a quick Google search of the terms ought to convince you there are several types of sync possible with VCOs. Rather than get into some pointless semantics, I’ve elected to use the rather neutral terms Weak and Strong sync to distinguish them. The point is, Weak does in fact sound like soft, as Strong does like hard, so I’m not going to waste time on squabbling. I design for ears, not laser art shows.
According to the Curtis data sheet, both pin 6 and 9 are sensitive to noise and garbage. Hence C14. Notice that when SW1 is in the Strong position, the soft sync input is completely bypassed by this cap. And if the switch is in the Weak position, then R20 acts as a tiedown for the other sync. Therefore, if you’re using no sync at all, I recommend leaving the Sync Type switch in the Strong position.
With that, we may now move on to the various outputs. Since this is a triangle core VCO, let’s begin with that wave. A 0 to +5V triangle is available at pin 10. This is buffered and level-shifted by IC4B. Notice that I deliberately kept the amplification high, so the signal can then be attenuated again by output voltage divider R5/R13. Thus, you can adjust these resistors to tweak for a desired output amplitude. (This might be useful if you’re employing a non-standard power supply rather than the typical +/-15V.) For that matter, you could even replace the divider with a 5k trim pot and set the amplitude quite precisely. (That would give an output impedance of 1.25k; see below).
If adjusting these resistors, make sure to choose them so their parallel resistance is as close to 1K as you can get. This gives an output Z of 1k, which is another typical standard. So again, for the values shown here, the triangle has a nominal amplitude of 10Vpp and an output impedance of 1k. Figure 1 shows what you can expect.
The sawtooth or positive going ramp wave emanates from pin 8 of the CEM3340. With a standard power supply, its amplitude is 0 to +10V. This is buffered, amplified and level-shifted by IC5A and associated resistors. Again, we run this a little high, so that voltage divider R6/R14 can bring it precisely down to 10Vpp with an output impedance of 1k.
The sawtooth generated by the CEM3340 is a little troublesome, showing a slight undershoot on the falling edge. After much experimentation it was found that shunting the signal as it enters IC5A with a 33pF capacitor brings it reasonably under control with very little rounding up to the high end frequency of the audio range. You can see the result in Figure 2.
The sinewave is created by overdriving the differential pair Q1/Q2 with the triangle wave (cool mathematics there!). Trimmer R41 sets the symmetry, while R40 deals with the roundedness. The best way to tweak these is by ear: while listening, adjust them for minimal harmonics. It is often the case that what you think might be the best setting by eyeball on a scope in fact falls short of what the ears can detect. In any event, you can expect a very satisfactory sinewave from this proven topology.
As usual, the amplification is kept high so that it may be chopped down to a desired level by divider R9/R10. The resulting amplitude is 10Vpp with an output impedance of 1k, of course. See Figure 3.
Finally we come to the pulse output which contains quite a bit of magic. Indeed, I’m not certain any other VCO offers such versatility. Let’s check it out. The pulse output is at pin 4 of the CEM3340. Notice R58 bridging pins 4 and 5; this gives positive feedback on the internal comparator yielding a bit of hysteresis to snap up the pulse a bit. Just as important is capacitor C6 which prevents undamped jitter at very low frequencies. Both R58 and C6 should be mounted close to IC1.
Pin 5 is the pulse width modulation input, expecting something between 0 and +5V (corresponding to what the triangle is up to). To make this more useful, IC6 is employed to sum a fixed offset with a variable amount of modulation, and bring the resultant down within the useable range. In particular, R50 sets the initial pulse width, while a variable amount (say from an LFO or ADSR) can be injected by way of J4 and tamed by potentiometer R51.
At this point I need to say a few things about the controls. In the past I’ve had a few DIY-ers complain that the various pots of my designs have “dead” spans. This is a feature, not a bug! In particular, all of the inputs of the VCO Maximus, like everything else I’ve ever created, are set to properly accommodate control levels of 0V to +5V (like from an ADSR), -5V to +5V (like from a VCO or LFO), 0V to +10V (like from a keyboard or sequencer), or in fact just about any voltage from –10V to +10V. This even includes no control signal at all! To wit, PWM INIT control R50 covers the entire range all by itself (0% to 100%) even if no additional control voltage is present at J4. And the same consideration applies to the 1V/octave input. All inputs in the VCO Maximus are eager and ready to accept anything you throw at them; naturally, this implies you might need to change the initial or attenuating potentiometers somewhat when the patch chords dance. But isn’t that the reason for playing an analog synth?
So, PWM is accounted for, and it’s indeed a cool sound. But here’s where things get downright psychedelic. The pulse signal is routed to an XOR/flip-flop arrangement which generates an additional musical fifth or suboctave tone added in. You can think of this in terms of harmonics, or if you wish, as a definite harmony playing in tandem, e.g., a C note with a G note mixed in.
The pulse output from the CEM3340 (pin 4) is sent to IC2A, which is configured as a Schmitt trigger to sharpen up the signal a bit. (R35 is the input, while R59 is the positive feedback path for hysteresis). The firmed up pulse then goes to switch SW2 which lets you choose between the addition of a fifth or an octave derived pitch. If numbers are your bag, then think of these as divide-by-1.5 and divide-by-2, respectively. The choice all depends upon how the input is sent to the cross coupled flip-flops in IC3. On the far end, switch SW3 can further halve things to divide-by-3 and divide-by-6, i.e., a fifth and an octave one octave lower yet.
While division by two with a flip-flop is well known, few people recall how division by three is accomplished. I first read of it in Bernie Hutchins’ Electronotes Application Note Number 148, September 25, 1979, but Bernie cited David A. Scott, “Divide-by-N Circuit Has 50/50 Duty Cycle,” EDN, Volume 18, Number 13, July 5, 1973, p. 95 as a prior source. So, there’s really nothing very new under the sun here, other than the inclusion of switches to permit you to choose the desired divisor. Note that the dual flip-flop topology remains the same for both the Fifth and Octave sounds; it’s only what drives it (by way of SW2) which changes things.
But wait, that’s not all! Polarity switch SW4 lets you add or subtract the subdivided signal from the original pulse, effectively doubling the number of waveforms possible. IC2D acts as a selectable inverter/noninverter.
The output of the flip-flops is sent to one side of R52, while the other side of this Blend pot is fed by an isolated version of the original pulse. In other words, IC2C provides a degree of separation between the original pulse and what goes to the final audio output which appears at the wiper of R52.
Here’s another of those practical notes which is so important. Early on in the extensive testing that the Maximus team put this through, we ran into some unexplained foul behavior. Eventually we determined that C3 shunting the input of IC2A fixed the disorder. It took a fair amount of thought to explain why the problem ever arose and why the cap took care of it. For those of you with inquiring minds, here’s the scoop.
As mentioned, this divide-by-three arrangement is an old one, over forty years long in tooth. The division is carried out as a ring counter, not synchronously. (You’ll find an example of the latter in The Art of Electronics should you be curious). In other words, the output of one flip-flop feeds the input to the next, and the output of that one circles around to XOR gate IC2B. Get the idea? Output to input, output to input equals time.
Now take a look at Figure 4. The yellow trace shows the incoming clock signal, and the light blue trace the signal on the output of IC2B. Examine that one carefully and you’ll see (besides the incoming lengthy pulse) a very brief pulse, not too many microseconds wide. This spike is a consequence of the propagation delay through the two flip-flops and the XOR gate. And it’s essential to the operation of the circuit if we’re going to do things by threes. In other words, ideal components would fail miserably here; we actually need the realworld characteristics of finite transfer and propagation times within physical components! Hence capacitor C3; this insures that the incoming signal doesn’t outpace what the flip-flops are up to.
In the figure, the pink trace shows the divide-by-1.5 and the dark blue the divide-by-3 outputs. Stare at the four signals and see if you can deduce the pattern of how it all works. You’ll note that the latter is symmetrical while the former isn’t. Good! Different harmonics, more sounds!
It was a tricky business that tripped us for a while (but not all at the same time, and in different combinations of researchers, variously!) But it all ended pleasantly with the addition of a single capacitor. Incidentally, exploiting the inherent (or augmented) propagation delay in a circuit is just dandy for this, an audio module, but I sure as heck wouldn’t trust it for anything in the megahertz range.
One final thing. You might wonder why we didn’t just go with a synchronous divider and avoid all of this hair-pulling. The reason is simply that this early approach has the advantage of yielding four divisors with a minimum of additional components.
The blended Pulse/Sub output at the wiper of R52 is buffered and level shifted by IC5B. As usual, a terminating voltage divider permits adjustment of the final signal. With the values shown, this gives a nominal 10Vpp and output impedance of 1.125k, close enough for State work.
The following scope shots give just the briefest idea of what’s possible. In these first four pics, the Blend is set all the way to the subdivided waveform. In Figure 5, the blue trace is the incoming pulse, the yellow trace is a fifth below that note. Figure 6 shows that the yellow trace is now a fifth-plus-an-octave below the incoming blue trace.
In Figure 7, the yellow trace is now tracking the blue by one octave below. Figure 8 shows this one octave lower yet.
The next sequence of screen shots illustrate the wide diversity of waveforms possible by dialing up the Blend control midrange. Recall that we get a choice of interval, octave and polarity. Here we go!
You will no doubt notice that Figures 9 and 10 are identical, though they come from different switch settings. That’s just a consequence of the mathematics of those arrangements. But don’t despair; some real variations come next.
Now keep this mind: in all of these pictures, I haven’t even touched the pulse width yet. A wealth of rectilinear waveforms await you!
Last of all, I should probably say something about the power connections. Pin 16 of the CEM3340 is the positive input, fed by +15V and decoupled by C9. On the other hand, the negative supply is –15V which feeds pin 3 (a Zener diode input) by way of current limiting resistor R4. C10 is its decoupling cap. All of the other ICs require decoupling caps as well.
The current consumption of the VCO Maximus is:
+15V @ 25.2 mA
-15V @ 22.6 mA