SynthMaker Circuits Manual Open SynthMaker (opens in a new tab)
Chapter 7 · Voltage control

How a VCA works: an OTA turns the volume with a current

An OTA's output current is its input voltage times a gain set by the current into its bias pin, 19 × Iabc. Here 0.2 mA gives a gain of 181 into 47 kΩ and 10 µA only 9, so a control voltage or an envelope turns the volume.

OtaVca · the parts list
circuit OtaVca  setting input: 4 V, from 0.4 V to 40 V  setting output: 2 V, from 0.2 V to 20 V  setting control: 10 V, from 0.5 V to 10 V  V1 cv gnd control  R1 in p 100k  R2 p gnd 220  R3 m gnd 220  Rb cv abc 47k  A1 p m o abc CA3080  RL o gnd 47k  U1 o out out opampend
Scope · out

Press Play to see the wave after the circuit, at out.

A short riff through the circuit, round and round. Turn the knobs while it plays. Open in SynthMaker ↗ (opens in a new tab)

What you're hearing

An OTA turns a voltage into a current, and its bias current sets how much. OTA stands for operational transconductance amplifier. Its output is a current, Iabc × tanh((v+ − v−) / 2Vt), where Iabc is the current flowing into its bias pin and Vt is 25.9 mV at room temperature. For small inputs, tanh x is just x, so the output current is the input voltage times gm = Iabc / 2Vt. That's 19.3 × Iabc per volt. Turn it back into a voltage with a resistor, RL here, and the gain is gm × RL. With no current into the bias pin, gm is zero and nothing comes out at all.

The control voltage sets the current, so it sets the volume. The control reaches the bias pin through 47 kΩ. The pin is a transistor junction to ground, which holds it about 0.61 V up, so at 10 V of control the current is (10 V − 0.61 V) / 47 kΩ = 0.2 mA. Then gm = 0.2 mA / (2 × 25.9 mV) = 3.86 mS, and the gain from the OTA's input to the output is 3.86 mS × 47 kΩ ≈ 181, or 45 dB. At 1 V of control, only 9.9 µA flows: a gain of 9, 26 dB quieter. Above about 2 V the gain follows the control almost in a straight line.

controlcurrent into the bias pingmgain into 47 kΩagainst 10 V
10 V200 µA3.86 mS1810 dB
5 V94 µA1.81 mS85−6.6 dB
2 V31 µA0.59 mS28−16 dB
1 V9.9 µA0.19 mS9.0−26 dB
0.6 V2.2 µA0.042 mS2.0−39 dB
0.5 V0.7 µA0.014 mS0.63−49 dB

An envelope into the bias pin shapes each note. In a synth, the control is an envelope: it rises when a key goes down and falls when it's released, so the note swells and dies with it. Sent through the same 47 kΩ, an envelope from 0 to 10 V takes the gain from nothing to 181. Under about 0.6 V, the junction lets very little through: at 0.6 V the current is 2.2 µA where a straight line from 10 V would give 12 µA. So the end of each note fades a little faster than the envelope does.

The input must stay small: tens of millivolts, or tanh bends it. tanh is only a straight line close to zero. That's why the sound comes in through 100 kΩ and 220 Ω, a voltage divider that divides by 456: 4 V at the input becomes 8.8 mV at the OTA. There the peaks are 1% short of a straight line, and the 3rd harmonic is 52 dB under the note: clean. At 30 mV the peaks fall 10% short. The "Input 40 V" button puts 88 mV in, and tanh rounds the peaks to 55% of where they'd be: the 3rd harmonic rises to 17 dB under the note, and the 5th to 32 dB under. That's the growl. Both halves bend alike, so only odd harmonics appear. This is the same curve as the transistor ladder's, because inside the OTA there's the same pair of transistors sharing one current.

What the model covers, and what it leaves out. SynthMaker's OTA is the core's law: the tanh, the bias pin's junction, and its current setting the gain. It has no input bias current, no limit on how far its output can swing, and no temperature. With no current it's perfectly silent: a real VCA can let a little sound through, which players call bleed. An LM13700 has two junctions at its bias pin, about 1.2 V, and SynthMaker models that too. It also has linearising diodes at its inputs, which pre-bend the signal the other way so larger inputs stay clean. SynthMaker leaves those out.

Try this

  • Press "An envelope shapes each note". Now the control voltage jumps to 10 V as each note starts and falls back to 0.5 V over a second, so every note starts at full volume and fades away, the way a synth's VCA works. Because the gain follows the current's knee, the end of each note fades faster than the envelope itself.
  • Turn control from 10 V down to 0.5 V. The note gets quieter, smoothly at first, then drops away below about 0.6 V: from a gain of 181 to 0.63, 49 dB down.
  • Press "Input 40 V: it growls", then turn input back down to 4 V. The peaks go from rounded to clean. Output is set higher on that button so the peaks match: it's the shape that changes, not the level.
  • Open the example sound "OTA VCA". An Envelope drives the bias pin, from 0 to 10 V, so each note rises in 2 ms and decays over about a second. To change the parts yourself, open it in SynthMaker.

The parts list

OtaVca · the parts list
circuit OtaVca  setting input: 4 V, from 0.4 V to 40 V  setting output: 2 V, from 0.2 V to 20 V  setting control: 10 V, from 0.5 V to 10 V  V1 cv gnd control  R1 in p 100k  R2 p gnd 220  R3 m gnd 220  Rb cv abc 47k  A1 p m o abc CA3080  RL o gnd 47k  U1 o out out opampend

R3 gives the minus input the same 220 Ω to ground as the plus input. U1 is a buffer, so nothing after it loads RL.

How we checked it

Checked against ngspice, a standard circuit simulator: the whole circuit, at full and low control and driven into its growl, is within 0.01% of ngspice across the audible band at the 2× rate it runs at. Measured in SynthMaker at full control, a 4 V input leaves the 3rd harmonic 52.5 dB below the note; at 40 V in it's 17 dB below, with the 5th at 32 dB and the 7th at 46 dB.

Build it step by step

Next and previous

  • Next: How an OTA filter works (planned)

Further reading