VCO

This VCO is based on a design by Ian Fritz, and in turn is a modification of the design by Terry Mikiluc used in the ASM-1.

Exponential converter

A MAT-04 was used for the exponential transistors. This has 4 highly matched npn transistors with excellent logarithmic qualities; it is also a bit pricey. I bought mine from Jim Patchell for $4. I built a dual VCO PCB, using 1/2 of the MAT-04 for each VCO.

The collector of Q1 is maintained at a constant reference current Iref = Vref/R7 = 5v/300K = 16.66uA by the servo opamp U1:A. A 5v temperature stable 5v reference voltage (see Power Supply) was used to set up the reference current. U1:B acts as a summing amplifier for all the control voltages.

The collector current of a biploar transistor is given by Eq. 1) . The thermal voltage kT/q is approximately 26mV at room temperature, and the reverse saturation current Is is dependendent on the geometry and size of the transistor, but is in the neighborhood of 10^-15 amps.

The equation for Vbe is also useful, Eq. 2) . The Vbe of Q1 running at 16.6uA is therefore approximately .026*ln(16.66uA/10^-15A) = 0.612v

To double a collector current (one octave), you would need a change of Vbe of .026*ln(2) = 18mV. The voltage divider made of R13 and RTC1 divides a 1v change of control voltage to a 18mV change at the base of Q1. The trimpot labeled V/OCT enables you to scale this exactly. RTC1 is a tempco resistor which has a temperature coefficient of +3300ppm/deg C. This cancels out the negative temperature coefficient from the kT/q term in Eq. 1. RTC1 should be in thermal contact with Q1 and Q2.

If we lower the base of Q1 by 18mV (which happens when we apply a +1v control voltage), the emitter of Q1 will also lower by 18mV, but Ic1 stays at 16.6uA; therefore Vbe1 stays constant at .612v. Since Q2's base is at ground, this means that Vbe2 will increase by 18mV (base stays at 0v, emitter goes 18mV more negative). This will result in a doubling of Ic2. So for each increase of 1v of control voltage Ic2 is doubled, and for each decrease of 1v in control voltage Ic2 is halved - our standard one volt per octave exponential response.

Why all this bother with two matched transistors and the U1:A servo amp? Why not just drive the Vbe of Q1 directly and use its collector current? It turns out that Is also is temperature dependent, and doubles approximately every 10 deg C. Using the matched transistor pairs in this fashion causes the Is temperature dependencies to cancel out.

Sawtooth Relaxation Oscillator

U2 and U3:A form a sawtooth oscillator. Assume for a moment that the JFET switch Q3 is off, and that R12 is negligible. Pin 2 of U2 is a virtual ground, and we are pulling a current out of it. The output of Q2 will go where it needs to to maintain pin 2 at virtual ground. A constant current through a capacitor produces a linear voltage ramp; therefore the output of U2 will be a positive linear voltage ramp of rate dV/dT = Ic2/C2.

U3:A is an LM319, half of a dual comparator similar to the LM311 but faster. With pin 3 tied to V-, its output will switch between V- and ground (because the top of the pullup resistor made of R19 and R18 is tied to ground. The - input (pin 5) is tied to +VREF which is +5v. Let's assume that U2 output is at 0v, just beginning the ramp. This means pin 4 is at 0v, so the output of U3:A is low, or at V- (because the + input of U3:A is at a more negative voltage than the - input).

Q3's source is tied to the virtual ground, and its gate is at -12v. This will turn it off, so it acts like an open switch. With Q3 open, the output of U2 is allowed to ramp up.

Now when U2's output reaches +5v, all of a sudden the output of U3:A switches high to 0v. With Vgs = 0v, Q3 turns on hard, and shorts out the capacitor C2. Normally U3:A would switch low again as soon as U2's output dropped below 5v, but there is circuitry made of R15, D1, C4 and R18 that delay that.

Right after U3:A switches and Q3 turns on, U2's output will be falling rapidly towards 0v, but U3:4 will still be at +5v. It's path of discharge C4 and R15, which will only allow it to change with a time constant of 15K*43pF = .645uSec. This is enough to delay the dropping of the voltage at pin U3:4 long enough to completely discharge C2 to 0v. Then U3:A switches low, Q3 turns off, and U2's output starts ramping up again. Result: a 0v to +5v sawtooth.

D1 is there so that when the voltage is ramping up there is a nice low impedence to charge C4, but when discharging C4 the current must go through R15.

What's R12 for? The finite delay to discharge C1 causes the frequency to go flat at higher frequencies (where the sawtooth reset time becomes an appreciable percentage of the sawtooth period). At low frequncies (low Ic2) the voltage drop across R12 is negligible. But at higher frequencies with higher charging currents, the additional voltage drop across R12 causes the ramp to reach +5v a little quicker, which balances out the delay time during the reset - therefore the total sawtooth period remains "in tune".

Sync

D11 and C5 form a hard sync circuit. If a waveform with a negative going edge is applied, D11 and C5 pass a negative spike which temporarily pulls U3:5 below +5v. This will cause the sawtooth to reset early.

Frequency Modulation

C1 and R8 capacitively couple a voltage applied to the FM input to modulate the reference current of Q1. This in turn will cause Ic2 to modulate linearly, and therefore resulting in linear frquency modulation of the sawtooth.

Waveshapers

Sawtooth

Referring to the WaveShaper schematic, the 0 to +5v sawtooth is fed into summing amp U4:C which has a gain of two. This would result in an inverted sawtooth that goes from 0v to -10v. However, an offset is summed to this through R22 so we have a -5v to +5v inverted sawtooth at the output of U4:C.

Triangle

The circuitry around U4:D and U4:A is a full wave rectifier, which turns the -5v to +5v sawtooth into a triangle wave running from 0v to +5v. The TRI SYM trimpot allows you to adjust the triangle to a nice point (you need a scope to see it). U4:B inverts the triangle and amplifies it by 2 (giving a 0v to -10v triangle), but the -5v summed with it shifts it up so you have a +/- 5v triangle at U4:B's output.

Pulse

U3:B is the other half of the LM319 comparator. It receives the +/-5v inverted sawtooth on one input, and a voltage which is the sum of the Width pot and the PWM input on the other. Say we had the Width pot was set at midpoint; then the switchpoint of the comparator would be at 0v so the output would be symmetrical (squarewave). If you offset the comparison voltage from 0v, you will get a variable width pulse at U3:B output - feed it an LFO waveform and you've got Pulse Width Modulation.

The circuits built around the zener diodes D9 and D10 and transistors Q10 and Q11 make up local +5v and -5v references so the output pulse will be +/-5v.

Sine

If you overdrive a differntial pair outside of its linear range, it will warp the input. I purposely overdrive a CA3080 OTA U6 with the tringle wave so it warps into a sine. The SINE AMP and SINE SYM trimpots are used to adjust the waveform to the nicest looking sine (if you have a scope), or the "mellowest" sounding waveform if you're doing it by ear. U11:B cobverts the OTA's output current to a voltage.