@inproceedings{pines2025,
address = {Ancona, Italy},
author = {C.~V. Pines},
booktitle = {Proc. 28th Intl. Conf. Digital Audio Effects (DAFx25)},
month = {Sept. 2-5,},
title = {Real-Time Virtual Analog Modelling of Diode-Based {VCAs}},
year = {2025}
}
Abstract
Some early analog voltage-controlled amplifiers (VCAs) utilized semiconductor diodes as a variable-gain element.
Diode-based VCAs exhibit a unique sound quality, with distortion dependent both on signal level and gain control.
In this work, we examine the behavior of a simplified circuit for a diode-based VCA and propose a nonlinear, explicit, stateless digital model.
This approach avoids traditional iterative algorithms, which can be computationally intensive.
The resulting digital model retains the sonic characteristics of the analog model and is suitable for real-time simulation.
We present an analysis of the gain characteristics and harmonic distortion produced by this model, as well as practical guidance for implementation.
We apply this approach to a set of alternative analog topologies and introduce a family of digital VCA models based on fixed nonlinearities with variable operating points.
Supplementary Material
Analog Circuit Prototype
Figure A1: Small-signal gain frequency response of the circuit shown in Fig. 1 for various values of Vctrl,
with R=1kΩ and a 1N4148 diode.
The diode's internal capacitance increases the gain of high-frequency components when the overall gain is low.
DSP Model
Figure A2: Top: Input signal sweep for (5).
Dashed line indicates the linear function with equivalent gain, Ax.
Bottom: Time domain waveform y(cos(2πt)) for (5).
Dashed line shows Acos(2πt).
For both plots, A is animated over time between 0 and 1.
Figure A3: Plot of the gain control parameter (6), β(A)=ω−1(1−AA), semi-log scale.
The dashed line shows lnA.
Harmonic Analysis
Figure A4: Magnitude of harmonics introduced by (5) when applied to x=cos(2πft),
relative to the input signal. α is animated over time from 0.05 to 15.
Odd harmonics are purple and even harmonics are orange.
Grey grid lines show 20dB per decade slopes.
Figure A5: Total harmonic distortion introduced by (5) when applied to
x=cos(2πft)
for different values of A and α.
Total harmonic distortion is defined here as THDF{y(x)}=h1∑n=2∞hn2.
Aliasing
In addition to the ADAA method described in the paper, matched filters may also be used to reduce aliasing with
minimal changes to a system's overall frequency response.
A two-way crossover filter can be used to split the input signal into low- and high-frequency regions; the low-frequency
components can be modulated and distorted by a diode VCA model and the high-frequency components by a simple multiplier.
In informal listening tests, we found that this technique was highly effective at reducing audible aliasing distortion
even in systems with minimal or no oversampling.
A high-cut filter may also be applied to the input signal followed by a matching high-boost filter after the VCA's output;
this configuration lowers the effective α value for frequency components above the cutoff frequency,
mitigating the creation of high-frequency harmonics.
Figure A6.1: Spectrogram of linear sine sweep from 0 to 24kHz with
α = 5 and A = -40 dB. The amplitude scale is -100 dBFS to -60 dBFS. No antialiasing was applied.
Figure A6.2: A sweep sampled at 4× the previous sample rate. No antialiasing was applied.
Figure A6.3: A sweep where antiderivative antialiasing was applied using a rectangular kernel.
Figure A6.4: A sweep where antiderivative antialiasing was applied using a linear kernel.
Figure A6.5: A sweep where the low- and high-frequency components were first separated using a
Linkwitz–Riley crossover filter; the low-frequency components were modulated by the diode VCA model and the high-frequency
components by a simple multiplier.
Figure A6.6: A sweep where a 4th order high-cut filter was applied to the input signal before
the VCA model, followed by a matched high-boost filter applied to the output signal.
Variation: Quasi-Logarithmic Converter
Figure A7:
Plot of the gain control parameter (15c), β(A)=ω−1(A1−A), log-log scale.
The dashed line shows A−1. Note that β takes on a much larger
range of values compared to (6), which may introduce additional rounding errors.
Figure A8: Top: Input signal sweep for (12a).
Dashed line indicates the linear function with equivalent gain, Ax.
Bottom: Time domain waveform y(cos(2πt)) for (12a).
Dashed line shows Acos(2πt).
For both plots, A is animated over time between 0 and 1.
Figure A9: Magnitude of harmonics introduced by (12a) when applied to x=cos(2πft),
relative to the input signal. α is animated over time from 0.05 to 20.
Odd harmonics are purple and even harmonics are orange.
Grey grid lines show 20dB per decade slopes.
Figure A10: Total harmonic distortion introduced by (12a) when applied to
x=cos(2πft)
for different values of A and α.
Variation: Current-Controlled Bridge
Figure A11: Top: Input signal sweep for (16).
Dashed line indicates the linear function with equivalent gain, Ax.
Bottom: Time domain waveform y(cos(2πt)) for (16).
Dashed line shows Acos(2πt).
For both plots, A is animated over time between 0 and 1.
Figure A12: Magnitude of harmonics introduced by (16) when applied to x=cos(2πft),
relative to the input signal. α is animated over time from 1 to 50.
Odd harmonics are purple and even harmonics are orange.
Grey grid lines show 20dB per decade slopes.
Figure A13: Total harmonic distortion introduced by (16) when applied to
x=cos(2πft)
for different values of A and α.