Linear to Exponential Voltage Conversion
Overview
Conversion from a linearly varying control voltage to an exponential current is a key building block for VCOs, VCFs, etc.: we perceive differences in audio signals in relative ratios (e.g. an octave is a doubling in f_0). There are a few references that this design is based on, and those are a good starting point to understand the circuit (see the References section below):
- Hal Chamberlain's Musical Applications of Microprocessors. The section on the VCO includes this block, but if you can't find that book, ...
- Rene Schmitz's "tutorial on exponential converters and temperature compensation", which goes into more detail on temperature compensation,
- and finally, in an excellent lecture-style presentation, Aaron Lanterman's "Exponential Voltage-to-Current Conversion & Tempco Resistors" video.
In this note, I'm documenting the design steps for the core circuit, but will also collect other variations as I find them. The main thing I've added in these notes are derivations for including a normal resistor in parallel with the PTC thermistor in the feedback of the input gain stage, which can help approximate the desired thermal response when the classic 3300ppm/C thermistors are nowhere to be found.
Design
Differential Pair
The design starts with an NPN BJT differential pair.

Using the relationship between v_{be} and i_c for an NPN BJT (i_c = I_S \exp\left(v_{be}/V_T\right)) and assuming that the transistors are matched (I_{S1} = I_{S2}), the collector current in Q2 (i_{c2}) is related to the difference in the voltages at the bases when the emitters are at the same voltage v_e:
Grounding the base of Q2 sets v_{b2} = 0 and with i_{c1} = I_{ref}
Note
The choice of setting vb1 or vb2 to ground will change the sign on the input voltage, so inverting and non-inverting inputs can be constructed. The inverting input is useful when preceded by an inverting opamp buffer/sum.
When the NPN transistors are replaced with PNPs, the sign on v_{be} is inverted: i_c = I_S \exp\left(-v_{be}/V_T\right) (current flowing out of the collector). Taking the ratio of i_{c2}/i_{c1},

To obtain the same inverting behaviour as in the NPN case, ground the base of Q2 for the PNP differential pair
Returning to the NPN differential pair, the voltage difference across R_{ref} sets the reference current I_{ref} = i_{c1}. The voltage on the high side is set by the supply and on the low side by the op-amp, which replicates the reference voltage V_n = 0 at the non-inverting input to the collector of Q1. The circuit (described in [1]) is shown below:

Input Stage Gain for V/Oct
To establish the desired gain of an input stage, let v_{b1} = A v_{in}. When the input increases by 1V, the output current i_p = i_{c2} should double:
The value of i_{p} will be equal to I_{ref} when v_{in} is at its minimum. This will set the smallest current.
An op-amp in an inverting gain configuration with a voltage divider supplies v_{b1}.
where R_{2x} is adjusted such that the voltage divider gives a gain of 0.9. The choice of R_f = 2\mathrm{k}\Omega comes from a "common" (50 years ago) value of positive-temperature coefficient (PTC) resistors (details in the next section). Multiple inputs can be summed via 100\mathrm{k}\Omega input resistors. The voltage divider typically consists of a fixed 390\Omega resistor and a 100\Omega trim pot, enabling tuning to get V/Oct behaviour.

Temperature Compensation
Continuing with Lanterman's derivation, replace R_f with a PTC resistor, R_f = R_0[1+\alpha(T-T_0)] where \alpha is the thermal coefficient (note: use A' in place of \tilde{\mathfrak{s}}). The "P" in PTC is important: the resistance must increase with increasing temperature.
Note that the temperature coefficient is positive. It\'s hard to find 3300ppm tempco resistors in 2025, so here\'s an alternative derivation where R_f = R_{f1}\parallel R_{f2} where R_{f1} is a tempco resistor and R_{f2} is a regular resistor (assumed constant in temperature).
Assuming \alpha'(T-T_0) \ll 1 (prefer R_{f2} > R_0)
such that
Given an available PTC resistor with resistance R_0 and temperature coefficient \alpha_0 > \alpha = 0.0034, the parallel resistance R_{f2} can be found as
There is a calculator for R_{f2} and R_0 in this notebook.
The following table collects a few currently manufactured parts available on Digikey (as of 2025):
| Mfg. | Part # | Package | R_0\ (\mathrm{k}\Omega) | \alpha (\mathrm{ppm/K}) |
|---|---|---|---|---|
| KOA Speer | LT732ATTD202J3900 | 0805 | 2 | 3900 |
| KOA Speer | LT732ATTD102J3600 | 0805 | 1 | 3600 |
| Vishay Dale | TFPT1206L1002FM | 1206 | 10 | 4110 |
| Vishay Dale | TFPTL15L5001FL2B | THT 2.5mm | 5 | 4110 |
| Texas Instruments | TMP6131LPGM | TO90-2 | 10 | 6400 |
As an example, the TMP6121LPGM (10k, 6400ppm/C TCR with 1% tolerance) in parallel with a 15k resistor approximates a 6k resistor with a 3400ppm/C temperature with a maximum error of less than 2% over the range from 0-70C.

A second example is the LT732ATTD202J3900 (2k, 3900ppm/C TCR with 10% tolerance) in parallel with a 15k resistor. This configuration approximates a 1.765k resistor with a 3400ppm/C TCR to less than 0.3% over the range from 0-70C.

With R_{f}\parallel R_{fx} = 1.765\mathrm{k}\Omega (2k PTC thermistor in parallel with a 15k resistor), R_1 = 82\mathrm{k}\Omega gives an approximate gain in the inverting amplifier of 0.0215 per the design requirement (the remaining fraction can be tuned in a 100\Omega trim pot in series with a 220\Omega resistor in the voltage divider -- note that this is different than the classic 100+390 pair).
A schematic of the complete block is shown below.

References
- Hal Chamberlain, Musical Applications of Microprocessors, 2nd Ed., Hayden Books, 1985
- Rene Schmitz, "A tutorial on exponential converters and temperature compensation", [schmitzbits.de]
- Aaron Lanterman, "ECE4450 L18: Exponential Voltage-to-Current Conversion & Tempco Resistors", [youtube]
- Paul Horowitz and Winfield Hill, The Art of Electronics, 3rd Ed., Cambridge University Press, 2015