SynthMaker Circuits Manual Open SynthMaker (opens in a new tab)
Chapter 6 · Oscillators

One volt per octave: how an exponential converter works

An exponential converter turns a control voltage into a current using a transistor, whose current doubles for every 17.9 mV at its base. A 100 kΩ and 1.82 kΩ divider scales each volt down to 17.9 mV, so every volt doubles the current: one octave per volt.

ExpoFilter · the parts list
circuit ExpoFilter  setting input: 6 V  setting output: 20 V  setting cv: 50%  V2 gnd vee 15V  V3 top gnd 2.5V  V4 gnd bot 2.5V  P1 top w bot 10k cv  U5 w vcv vcv opamp  Rcv vcv b 100k  Rcg b gnd 1.82k  Rref nref vee 150k  Q1 nref b e 2N3906 simple  U4 gnd nref e opamp rails 15V  Q2 abc1 gnd e 2N3906 simple  Q3 abc2 gnd e 2N3906 simple  R1 in p1 100k  R2 p1 gnd 220  A1 p1 m1 c1 abc1 vee CA3080  Rlp out m1 100k  Rq bp m1 300k  R4 m1 gnd 220  Ca c1 gnd 1n  U3 c1 bp bp opamp  R5 bp p2 100k  R6 p2 gnd 220  A2 p2 gnd c2 abc2 vee CA3080  Cb c2 gnd 1n  U6 c2 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

Pitch is exponential, so its control has to be. Each octave doubles the frequency: 110 Hz, 220 Hz, 440 Hz, 880 Hz. Equal steps up the keyboard are equal ratios, not equal numbers of hertz. Synths agree on one volt per octave: add 1 V and the frequency doubles, whatever it was. But many circuits are linear in a current: the OTA filter's cutoff is 6.75 Hz per µA. To make a volt an octave, something has to turn each added volt into a doubling of the current. That's the exponential converter.

A transistor is exponential already. Its collector current is Ic = Is × e^(Vbe/Vt), where Vbe is the voltage from its base to its emitter and Vt is 25.9 mV at room temperature. Add Vt × ln 2 = 17.9 mV to Vbe and the current doubles; add 59.6 mV and it grows ten times. The catch is Is, a tiny current that differs from one transistor to the next and changes a lot with temperature. So one transistor on its own can't be trusted to give a particular current.

A reference transistor and an op-amp take Is out. Q1 is the reference. U4 holds Q1's collector at 0 V, so exactly 15 V / 150 kΩ = 100 µA must flow through it, and U4 moves the shared emitters, about 0.65 V above Q1's base, until it does. Q2 and Q3 share those emitters, with their bases at ground. When Q1's base is at 0 V too, all three have the same Vbe, so they carry the same current, whatever Is is. Only the difference between the bases counts: lift Q1's base by ΔV, and the emitters rise with it, so Q2 and Q3 get ΔV more and carry 100 µA × e^(ΔV/Vt). These are PNP transistors, which push current out of their collectors, because an OTA's bias pin takes current in.

A divider turns a volt into 17.9 mV. cv reaches Q1's base through 100 kΩ, with 1.82 kΩ to ground: 1.82 / 101.82 of each volt, 17.87 mV. That makes each volt about ×1.995, 4 to 6 cents short of an octave (measured on the filter's cutoff: ×1.993), because 1.82 kΩ is the nearest standard value to the 1.83 kΩ that would be exact. Q1's own base current, 0.55 µA, also flows through the divider and lifts its base by 1 mV. That makes every current 3.9% higher, but only tunes the filter up, by 66 cents everywhere, because Q1's current never changes. In the transistor ladder filter, the divider feeds the copying transistor instead. Its base current doubles with every octave, so the octaves shrink as they go up.

cvknobcurrentcutoff
−2.5 V0%18.5 µA125 Hz
−2 V10%26.1 µA176 Hz
−1 V30%52.1 µA352 Hz
0 V50%104 µA702 Hz
+1 V70%207 µA1.40 kHz
+2 V90%414 µA2.79 kHz
+2.5 V100%585 µA3.95 kHz

Into the filter, every volt is an octave of cutoff. Q2 and Q3 feed the two OTAs' bias pins, so the filter's resonant peak moves from 125 Hz to 3.95 kHz across the knob, five octaves, a volt each. The divider has to be right. With 2 kΩ in place of 1.82 kΩ, a volt becomes 19.6 mV and multiplies the current by 2.13: each octave is about 110 cents too wide, and at +2 V the cutoff is about 220 cents sharp, 3.21 kHz instead of 2.79 kHz. That's why real converters usually have a trimmer for it, often marked scale or V/oct.

Temperature: the catch the model leaves out. Vt is proportional to absolute temperature, so it rises about 0.33% per degree at room temperature. SynthMaker's circuit has no temperature: it's always at 27 °C. A real one 10 °C warmer would have Vt at 26.7 mV, and each volt would give ×1.95: 42 cents flat per octave, more than two semitones over five octaves. Is changes far more with heat, but Q1 shares that change with Q2 and Q3 if they're a matched pair at the same temperature, so it cancels. To fix Vt, designs put a resistor whose value rises about 0.33% per degree in the divider's small leg, or keep the pair at a fixed warm temperature with a tiny heater. The transistors here are also the simple model, as in the ladder. With the full model, the copies' much higher collector voltage would make every current about 1.8 times bigger: that shifts the tuning but keeps the octaves within about 10 cents.

Try this

  • Turn cv from 0% to 100%. The filter's peak climbs from 125 Hz to 3.95 kHz, evenly, an octave every fifth of the turn.
  • Press "cv +1 V: an octave up", then "cv +2 V: two octaves up". The peak jumps an octave each time: 702 Hz, 1.40 kHz, 2.79 kHz.
  • Press "Divider 2 kΩ, cv +2 V: too wide", then "cv +2 V: two octaves up". The same 2 V, but the peak lands more than two semitones higher.
  • Open it in SynthMaker to change the parts. Wire an LFO into cv: a wire turns a knob up to half its travel either way, so at full depth it sweeps all five octaves. Or make Rcg 1.8k: 16.5 cents short per octave.

The parts list

ExpoFilter · the parts list
circuit ExpoFilter  setting input: 6 V  setting output: 20 V  setting cv: 50%  V2 gnd vee 15V  V3 top gnd 2.5V  V4 gnd bot 2.5V  P1 top w bot 10k cv  U5 w vcv vcv opamp  Rcv vcv b 100k  Rcg b gnd 1.82k  Rref nref vee 150k  Q1 nref b e 2N3906 simple  U4 gnd nref e opamp rails 15V  Q2 abc1 gnd e 2N3906 simple  Q3 abc2 gnd e 2N3906 simple  R1 in p1 100k  R2 p1 gnd 220  A1 p1 m1 c1 abc1 vee CA3080  Rlp out m1 100k  Rq bp m1 300k  R4 m1 gnd 220  Ca c1 gnd 1n  U3 c1 bp bp opamp  R5 bp p2 100k  R6 p2 gnd 220  A2 p2 gnd c2 abc2 vee CA3080  Cb c2 gnd 1n  U6 c2 out out opampend

P1 is the cv knob, a pot from +2.5 V to −2.5 V, and U5 buffers it so the divider sees a clean voltage. Transistors are written collector, base, emitter. vee before CA3080 puts each OTA's V− at −15 V, so its bias pin sits low enough for the converter to push current into it.

How we checked it

Checked against ngspice, a standard circuit simulator: the whole circuit, converter and filter, at cv 0 V and +2 V, driven by a 500 Hz sine, is within 0.01% of ngspice across the audible band at the 2× rate it runs at. Measured in SynthMaker, the cutoff goes ×1.993 per volt, from 125 Hz at −2.5 V to 3.92 kHz at +2.5 V. The same idea in Circuits 7's ladder measured ×1.990 and ×1.983 per volt.

Build it step by step

Next and previous

  • Previous: How a VCO works: a sawtooth core (planned)
  • Next: How to turn a triangle into a sine (planned)

Further reading