A DIGITAL MODEL OF THE BUCHLA LOWPASS-GATE
Vactrolを使ったLow Pass Gateの Buchla 292 に関する論文 A Digital Model of the Buchla Lowpass-Gate - Aalto University を掲載する。
この論文は、Buchlaのローパスゲートのデジタルモデルについて詳しく説明している。特に、オーディオ部分と制御部分の回路を検討し、フォトレジスティブオプトアイソレータ(「バクトロール」)のモデルも提案している。アナログシステムの特性を保持しつつ、標準的なコンピュータ音楽セットアップで使用できるように計算コストを抑えたデジタルモデルを構築している。
本文
Proc. of the 16th Int. Conference on Digital Audio Effects (DAFx-13), Maynooth, Ireland, September 2-6, 2013
A DIGITAL MODEL OF THE BUCHLA LOWPASS-GATE
Julian Parker and Stefano D’Angelo
Dept. of Signal Processing & Acoustics,
Aalto University, Espoo, Finland
firstname.lastname@aalto.fi
ABSTRACT
In recent years there has been an increasing amount of interest in the style of synthesis implemented by Don Buchla in his instrument designs from the early 1960s until the present. A key part of the Buchla synthesizer and its characteristic quality is the ’lowpass gate’ filter and the acoustic-like plucked sounds that it provides. In this work we examine the circuit of the low-pass gate, both its audio and control portions. We propose a number of digital models of these circuits, as well as a model of the photoresistive optoisolator or ’vactrol’ used within them. In the case of the audio path of the device, we pay particular attention to maintaining desirable behavior under time-variation of its parameters. The resulting digital model retains much of the interesting character of the analog system, and is computationally cheap enough to use within a standard computer-music setup.
1. INTRODUCTION
????In parallel to Bob Moog’s early work on the analog synthesiser [1], work towards a modular analog synthesis system was also proceeding on the other side of the USA in California. Driven by the composers like Morton Subotnick and the San Francisco Tape Music Centre, Don Buchla was developing the ’Buchla Music Box’ [2], a modular analog synthesiser with a very different focus than Moog’s system. Whereas synthesis in the Moog paradigm was based primarily on the shaping of harmonically rich but static waveforms with a resonant low-pass filter ? so-called ’subtractive’ synthesis, the synthesis used in Buchla’s instruments had a contrasting approach. In the Buchla system, the primary focus was on varying timbre at the oscillator level via nonlinear wave-shaping or frequency modulation techniques. These waveforms would then be processed through the ’low-pass gate’ (LPG), a special kind of filter invented by Buchla that used photoresistive opto-isolators or ’vactrols’ as its voltage controlled resistance element.
????The LPG was a very different tool to the Moog-style filter. Firstly, it exhibited a fairly gentle roll-off of high frequencies. Secondly, when turned to low cutoff values it began to attenuate the sound as well as filter it. Lastly, the vactrol used for control exhibited a very lazy response to modulation ? it would track increasing values very quickly, but decreasing values much more slowly. This resulted in a very musical behaviour. The filter’s control input could be hit with an impulse or short envelope, and the filter would open very quickly before decaying slowly away to silence. The sound produced was very much like that of a struck physical object. This property was used extensively in, for example, the works of Morton Subotnick. This work was supported by GETA.
????The recent explosion of interest in analog modular synthesis, and particularly the work of ’west coast’ designers such as Don Buchla and Serge Tcherepnin, has lead to a great resurgence in interest in the lowpass gate. Contemporary manufacturers such as Make Noise Music and Doepfer manufacture their own takes on the circuit, and many designs are available in the public domain for those inclined to build themselves. Hence, it is desirable to attempt to create a ’virtual analog’ (VA) version of the filter for use in computer-music situations. VA research has been a popular topic in recent years, and has examined many of the tools of analog synthesis ? particularly filters [3, 4, 5, 6, 7, 8, 9, 10] and effects processing [11, 12, 13].
????In this paper we examine a simplified version of the Buchla low-pass gate, constructed from Buchla’s own Model 292 designs and derivative public domain versions of the circuit. This version of the circuit is meant to be a ’canonical’ version ? one that contains all the important behaviours and features of the system, but without the many tweaks and alterations that were added for specific applications or to compensate for certain misbehaving components.
????In Sec. 2 we describe the audio path circuitry of the filter, and develop two discretizations of it. The first is a simple approach based on the discretisation of the transfer function. The second takes a more complex approach, which preserves the topology of the system and behaves significantly better under time-varying conditions. We also propose a method for extending this model to the non-linear case. In Sec. 3 we describe the control circuitry of the device and how it can be modeled digitally, including the behaviour of the vactrol. In Sec. 4 we briefly describe an implementation of the complete model. In Sec. 5, we conclude.
2. AUDIO PATH
????Fig. 1 shows a schematic of the simplified version of the Buchla 292 audio path. The filter centre frequency is controlled by variation of $R_f$, which is the resistive part of a photoresistive optoisolator or ’vactrol’. The specific vactrol used in this circuit is generally the Perkin Elmer VTL5C3 or VTL5C3/2 [14]. The original implementations of the circuit contain a 3-pole switch. For simplicity, this is represented here as two one-pole switches. This switch was used to switch between the three modes of the device ? ’Both’, ’VCA’ and ’Lowpass’.
????In ’Both’ mode, the circuit consists of a passive two-pole filter network. This corresponds to the circuit shown in Fig. 1 with both switches disengaged. In this mode the system acts as a two-pole lowpass filter, with the cutoff frequency controlled by $R_f$. The poles of the filter are not-coincident, and so the slope of the filter is closer to -6dB/oct than -12dB/oct. When $R_f$ gets close to the value of $R_\alpha$, a potential divider is formed and the overall gain of the system begins to drop.
????In ’VCA’ mode, an additional low-value resistor is added in parallel to $R_\alpha$. This is equivalent to only the ’VCA’ switch in our schematic being engaged. This is clearly equivalent to simply lowering the value of $R_\alpha$ (and it will be modeled this way during the rest of this work). The effect of this change in resistance is that the poles of the filter are shifted to a higher frequency and the potential-divider effect of the combination of $R_f$ and $R_\alpha$ begins at lower values of $R_f$. The result is that variation of $R_f$ now provides reasonably clean attenuation of the input signal, hence the name ’VCA’ mode. In the real circuits, the ’VCA’ switch also changes the input op-amp configuration (not shown) so that it has a gain of 4-5dB instead of unity, presumably to normalize loudness between the modes.
????In ’Lowpass’ mode, an extra feedback path containing a capacitor $C_3$ is switched into the circuit. This changes the topology of the circuit to closely resemble a Sallen-Key [15] filter. Compared to a standard S-K filter, this circuit contains an extra capacitor $C_2$ and a shorting resistor $R_\alpha$. The resulting frequency response is steeper than that of ’Both’ mode, with a small resonant bump at the cutoff frequency. We have also added a feedback amplifier to this path in order to provide control over the level of this resonant peak. This is not present in the original Buchla versions of the circuit, but it is present in more recent derivative circuits. This mode can be simulated in a model by setting the value of capacitor $C_3$. Using a value of $C_3 = 0$ disengages the feedback path.
Figure 2: Magnitude response of modes of LPG circuit, for values of Rf between 1k and 1M
.
????The component values used to model the circuit in the three different modes are given in Table 1. The magnitude responses of the circuit in each mode, as $R_f$ is varied, are given in Fig. 2.
Table 1: Values of fixed components in different modes of circuit from Fig. 1.
Component | Both | VCA | Lowpass |
---|---|---|---|
$C_1$ | 1nF | 1nF | 1nF |
$C_2$ | 220pF | 220pF | 220pF |
$C_3$ | 0 | 0 | 4.7nF |
$R_a$ | 5MΩ | 5kΩ | 5MΩ |
2.1. Continuous Model
We can construct the differential equations governing the circuit given in Fig. 1 by applying Kirchoff’s Current Law (KCL) at the nodes. Firstly, assuming ideal op-amp behavior, we can write the equations at nodes $V_{out}$ and $V_{fb}$ as:
$$ \begin{align*} V_{out} & = V_+ \tag{1} \\ V_{fb} & = a\cdot V_{out} \tag{2} \end{align*} $$
where $a$ is a gain coefficient dependent on the configuration of the resistors in the feedback amplifier. We then write down the KCL equations at nodes $V_x$ and $V_+$ respectively: $$ \begin{align*} \dfrac{V_{in} - V_x}{ R_f}+\dfrac{V_+ - V_x}{ R_f} - C_2 \dfrac{dV_x} {dt} + C_3 \dfrac{d}{ dt}(V_{fb} - V_x) & = 0 \tag{3} \\ \dfrac{V_x - V_+}{R_f} - \dfrac{V_+} {R_\alpha} - C_1 \dfrac{dV_+} {dt} & = 0 \tag{4} \end{align*} $$
By substituting in the expressions for $V_{out}$ and $V_{fb}$, we obtain the governing differential equations of the system, in terms of $V_x$ and $V_{out}$:
$$ \begin{align*} \dfrac{dV_x}{dt} & = b_1V_{in} + b_2V_x + b_3V_{out} + b_4 \dfrac{d} {dt}(d_1V_{out} + d_2V_x) \tag{5} \\ \dfrac{dV_{out}} {dt} & = a_1V_x + a_2V_{out} \tag{6} \end{align*} $$
where $$ \begin{align*} a_1 & = \frac{1} {C_1R_f},\ a_2 = -\frac{1}{ C_1} \left( \frac{1} {R_f} + \frac{1} {R_\alpha} \right),\ d_1 = a,\ d_2 = -1, \\ b_1 & = \frac{1} {C_2R_f},\ b_2 = -\frac{2} {C_2R_f},\ b_3 = \frac{1} {C_2R_f},\ b_4 = \frac{C_3} {C_2}. \end{align*} $$
2.1.1. Transfer function
By substituting Eq. (6) into (5) and transforming to the Laplace domain, we can construct the transfer function of the filter:
$$ \begin{align*} H_{LPG}(s) = \frac{1} {α_1 + α_2s + α_3s^2} \tag{7} \end{align*} $$
where $$ \begin{align*} α_1 & = 1 + \frac{2R_f}{ R_\alpha} \tag{8} \\ α_2 & = R_f(2C_1 + C_2 - C_3(a - 1) + (C_2 + C_3) \frac{R_f} {R_\alpha}) \tag{9} \\ α_3 & = R_f^2C_1(C_2 + C_3) \tag{10} \end{align*} $$
From the transfer function, we can derive an expression giving the feedback path amplification, $a$, necessary to produce the maximum resonant peak gain. We do this by evaluating $|H_{LPG}|$ on the imaginary axis, finding the maximum by taking the derivative with respect to frequency, and then evaluating the function at this point. We can then take the derivative of this function with respect to $a$, and solve the resulting expression to find the maximum with respect to $a$:
$$ \begin{align*} a_{max} = \frac{2C_1R_\alpha + (C_2 + C_3)(R_\alpha + R_f)} {C_3R_\alpha} \tag{11} \end{align*} $$
When $a > a_{max}$, the poles of the circuit cross the imaginary axis and the system becomes unstable. By evaluating $H_{LPG}$ at DC, we can see that the DC gain is given by:
$$ \begin{align*} H_{LPG}(0) = \frac{R_\alpha} {R_\alpha + 2R_f} \tag{12} \end{align*} $$
This expression highlights the potential-divider action that appears when the value of $R_f$ nears the value of $R_\alpha$. It can also be used to normalize the loudness between modes by calculating the difference in DC gain between the modes when $R_f$ is at its minimum value (which depends on the physical properties of the vactrol).
2.2. Discretization
A variety of approaches can be taken to the discretization of the system given in Eqs. (5) and (6). In this section we examine two such approaches.
2.2.1. Direct form model
The simplest and most traditional approach to discretization would be to apply the bilinear transform to transfer function (7), thus obtaining a z-domain transfer function which can be implemented in one of any number of standard digital filter topologies. The resulting digital transfer function is of the form:
$$ \begin{align*} H_{LPG} \left( 2F_s \frac{z - 1}{ z + 1} \right) = H_{LPG}(z) = \frac{β_{d1} + β_{d2}z^{-1} + β_{d3}z^{-2}} {α_{d1} + α_{d2}z^{-1} + α_{d3}z^{-2}} \tag{13} \end{align*} $$
i.e., a two-pole, two-zero digital filter.
Any of the direct form topologies could be used to implement this transfer function. For the purpose of this work, we use direct form II transposed, which exhibits advantageous numerical properties in many situations [16]. To mitigate the frequency-warping effects of the bilinear transform, we recommend oversampling the filter by a factor of 2. This warping effect is often also addressed by pre-warping the frequency control of the filter. However, in this case, the process of pre-warping is significantly complicated by the fact that there is no simple cutoff frequency parameter. The position of the poles of the filter is a complicated function of $R_f$, $R_\alpha$, and the capacitor values. As such, oversampling is a better option.
Magnitude responses for the discretized filter implemented via this method are shown in Fig. 5. The match with the continuous-time responses given in Fig. 2 is reasonably good for ’VCA’ and ’Lowpass’ modes.
The real drawback of this implementation is encountered when modulating the filter. Modulation appears to produce transients within the structure, which cause the output of the filter to grow. Long-term modulation can cause the filter output to diverge to infinity. This is obviously not desirable for a musical filter that is intended to be modulated. The reason for this behavior is that when we simplified Eqs. (5) and (6) to the transfer function (7), we implicitly discarded the true states of the system (the capacitor voltages), and constructed new states based on the output of the entire system at previous time-steps. This change of states also obviously includes a change to the coefficients used to update the states (i.e., the state transition matrix), which govern the stability of the system. In time-invariant conditions, this change does not affect the system’s response. However, when parameters are varied, particularly when they are varied quickly, the behavior of the system can be wildly different. It’s also worth noting that the original system had three states (one for each capacitor), whereas the system in transfer-function form has only two states. This is because one of the states of the original system, the voltage associated with capacitor $C_3$, is dependent purely on the other two states and hence is degenerate. Collapsing this state into the other states is fine in the time-invariant case, but not in the time-variant case.
2.2.2. Topology-preserving model
An alternative to discretising the system via its transfer function is to attempt to build a digital model that preserves the topology of the system described in Eqs. (5) and (6) by simply replacing any continuous blocks with their discrete equivalents. Fig. 3 shows this topology in domain-agnostic form. Preserving the topology of the system preserves its states, and hence the resulting system should be well-behaved in time-variant conditions if the continuous-time system was also well behaved. The structure of the system highlighted by this representation is interesting to note. The system appears to contain two lowpass filters (consisting of capacitors $C_1$ and $C_2$), surrounded by two feedback loops. One feedback loop contains only a straight multiplier, and represents the lack of buffering between and hence interdependence of the two low-pass filters. The other feedback loop contains a differentiator block, and represents the action of the capacitor $C_3$.
Figure 3: Block diagram of topology of Eqs. (5) and (6).
The primary problem when discretising a filter via this approach is the delay-free loops that are formed if the discrete integrator blocks have a delay-free path through them. One solution to this problem is to use purely explicit integrators, generally Forward-Euler. This is the approach taken in the delta-operator approach to filter design [17]. However, explicit integrators generally have poor accuracy and very poor stability unless the system is substantially oversampled. This is because they map stable poles in the s-plane to unstable poles in the z-plane.
A common approach taken in the virtual analog field has been to choose more robust implicit integrators such as Backward-Euler or Trapezoidal, and then insert a $z^{-1}$ block into any feedback paths which contain a delay-free loop [3]. This additional delay element usually requires some compensation in order to maintain the correct behaviour of the system. Backward-Euler integrators have been used in this context [4], but they possess a similar problem to Forward-Euler integrators in that they change the $Q$-factor of poles when mapping from the s-plane to the z-plane. In this case, unstable poles are mapped to stable poles, and consequently, whilst stability is maintained, the relationship between the strength of the resonant peak of the filter and cutoff frequency which is present in the continuous system is lost. This is an important perceptual quality in defining the sound of a synthesizer filter, and hence it is desirable to maintain.
Recent work has applied Trapezoidal integrators in similar structures, which maintain the $Q$-factor of poles during the s-plane to z-plane mapping [18]. Another approach has been to instead solve the delay-free loops by iteration [7, 8, 5, 9], although this is only strictly necessary if the loop contains a non-linearity. More recently, methods have been proposed that allow a simpler solution of the implicit problem [19]. In this work, we apply a method similar to that of Zavalishin [19]. Firstly, we construct the system by replacing all blocks in Fig. 3 with their digital equivalent. The integrator blocks and differentiator block are implemented using the trapezoidal rule, as this is the equivalent of the bilinear transform and possesses the same desirable qualities. The trapezoidal integrators and differentiator are implemented in direct form II transposed (DF2T). Their block diagrams are given in Fig. 4.
Addition blocks and multipliers are trivially replaced with their digital equivalent.
Figure 4: Block diagrams of direct form II transposed (DF2T) integrator and differentiator elements.
With these digital blocks inserted, we can write expressions for the outputs of all of the state-containing blocks (the differentiator and integrators) in terms of their own state and their inputs. If we denote the outputs and states of the blocks as $y_d$ and $s_d$ for the differentiator block, $y_o$ and $s_o$ for the $V_{\text{out}}$ integrator and $y_x$ and $s_x$ for the $V_x$ integrator, and $y_i$ for $V_{\text{in}}$, we have:
$$ \begin{align*} y_d & = s_d + 2F_s(d_1 y_o + d_2 y_x) \tag{14} \\ y_x & = s_x + \frac{1}{2F_s}(b_1 y_i + b_2 y_x + b_3 y_o + b_4 y_d) \tag{15} \\ y_o & = s_o + \frac{1}{2F_s}(a_1 y_x + a_2 y_o) \tag{16} \\ s_d & = -s_d - 4F_s(d_1 y_o + d_2 y_x) \tag{17} \\ s_x & = s_x + \frac{1}{F_s}(b_1 y_i + b_2 y_x + b_3 y_o + b_4 y_d) \tag{18} \\ s_o & = s_o + \frac{1}{F_s}(a_1 y_x + a_2 y_o) \tag{19} \end{align*} $$The first set of equations can be treated as a system of linear equations, with the outputs, $y_d$, $y_x$ and $y_o$, as unknowns and the states and input, $s_d$, $s_x$, $s_o$ and $x$ as constants. We can then solve the system with any standard technique to find an expression for each of the outputs in terms of only the states of the system and the input. With the outputs calculated, we update the states and move on to the next sample. This process is equivalent to re-arranging the system to eliminate the delay-free loops, whilst still maintaining all the individual states.
Alternatively, a more efficient approach is to solve the linear system for only one of the outputs and then re-arrange the other two output equations to allow them to be calculated consecutively from the other outputs in addition to the states and input. For example, we could write:
$$ \begin{align*} y_x & = \frac{a_2 b_4 s_d + 2F_s(b_3 - 2b_4 d_1 F_s) s_o - 2a_2 F_s s_x - a_2 b_1 y_i}{a_1 b_3 - a_2 b_2 - 2a_1 b_4 d_1 F_s + 2a_2 b_4 d_2 F_s} \tag{20} \\ y_o & = \left( s_o + \frac{a_1}{2F_s} y_x \right) \cdot \left(1 - \frac{a_2}{2F_s}\right)^{-1} \tag{21} \\ y_d & = s_d + 2F_s(d_1 y_o + d_2 y_x) \tag{22} \end{align*} $$To improve computational efficiency, many other simplifications of these equations can be performed ? including substituting back in the original component parameters in an attempt to find a more efficient form. This form is merely presented for concise explanatory purposes. Magnitude responses of the digital filter produced are shown in Fig. 5. Again, the filter is oversampled by a factor of 2 to reduce the frequency warping introduced by the trapezoidal integrators and differentiator. A close correlation with the magnitude response of the continuous system from Fig. 2 is seen. Compared to the DFT2 model, this version performs excellently in terms of time-varying behaviour and stability. The filter appears to be stable under all physically reasonable parameter values and under any rate of modulation, without any oversampling. It becomes unstable when the feedback amplitude $a$ exceeds the value given by Eq. 11, but this is also the case in the real system. Modulation with a smooth signal such as a sinusoid does not produce any unwanted transients or increase in volume, and sounds clean.
Figure 5: Magnitude response of modes of digital models of LPG circuit, for values of $R_f$ between 1kΩ and 1MΩ. Top: DF2T model. Bottom: Topology-preserving model.
2.2.3. Limiting or decoupling resonance
When used in lowpass mode the LPG circuit exhibits an uneven resonance response with respect to $R_f$, as can be inferred from Eq. (11). In fact, the maximum feedback gain possible before the system becomes unstable also varies depending on $R_f$. This behaviour is naturally also present in the digital models. We can ameliorate the effects of this behaviour in a number of ways. Firstly, if we only want to make sure that the filter remains stable no matter the selection of $a$, we can use (11) as a dynamic upper limit for the allowable possible values of $a$. Alternatively, the expression can be used to decouple the resonance control from $R_f$ and $R_\alpha$ by defining a new parameter $0 < a_{norm} < 1$. We can then use this value and $a_{max}$ to calculate the actual feedback gain used as:
$$ \begin{align*} a = a_{norm} a_{max}. \tag{23} \end{align*} $$
This makes the filter more controllable, but it means that the resonance no longer strictly behaves as it does in the real system. Whether this is appropriate depends on the application of the model. Note that using this parameterisation, the filter can be made to self-oscillate over its entire range by setting $a_{norm} = 1$.
2.3. Non-linearities
The models of the circuit presented above are completely linear. In reality, some non-linearity may be present in the photoresistive parts of the vactrol and in the op-amps. In older versions of the circuit, a transistor buffer is used at the output instead of an op-amp buffer, which exhibits much more significant non-linear behaviour. In some recent derivative versions of this circuit, feedback limiting diodes are used in the resonance feedback pathway. This configuration would exhibit strongly non-linear behaviour similar to that seen in the filter of the Korg MS-20 [20].
It is not possible to easily introduce non-linear behaviour into the direct-form based model described in Sec. 2.2.1. The topology preserving model described in Sec. 2.2.2 is more suitable. However, the introduction of non-linearities complicates the solution of the system of equations that is necessary to resolve the delay-free loops, especially if the non-linearities are transcendental functions. In order to solve the system, it is necessary to make an approximation of the non-linearity which leaves the system of equations in a solvable form. The simplest approximation is to instantaneously linearise the system around the point of operation of the non-linearity by calculating its tangent. For an arbitrary differentiable function of some input $x$, this linear approximation is given by:
$$ \begin{align*} f(x) &\approx f(x_0) + f'(x_0) \cdot (x - x_0) \ &= f(x_0) - x_0 f'(x_0) + x f'(x_0) \tag{24} \end{align*} $$
where $x_0$ is the operating point, and priming represents differentiation w.r.t. $x$. This can also be recognised as the first-order Taylor approximation of the function around the operating point. If we treat the operating point $x_0$ as a constant, we can solve the system in the same way as we did in the purely linear case.
The question of how to choose $x_0$ is a difficult one. The simplest approach would be to approximate $x_0$ as the value of the input to the non-linearity at the previous time-step. This approximation is reasonable when the input to the non-linearity is slowly changing. If the input is changing quickly, for example if it contains strong components near the Nyquist frequency, the error will be significant. This error could be reduced by oversampling, by iterating, by constructing a more complex predictor for the operating point, or by using a higher-order approximation of the nonlinearity.
As an example of applying this technique, we can consider the addition of a simple diode-limiter model, represented by a $\tanh()$ function [21, 22], to the resonance feedback path (i.e. the path connecting the second integrator to the differentiator). The new form of the equation for $y_d$, given by Eq. (14) in the linear case, would be:
$$ \begin{align*} y_d = s_d + 2F_s\left(d_1\left[\tanh(x_0) + (x - x_0) \cdot (1 - \tanh^2(x_0))\right] + d_2 y_x\right) \tag{25} \end{align*} $$
Similarly, the equation for the update of $s_d$, given by Eq. (17) in the linear case, is modified to:
$$ \begin{align*} s_d = -s_d - 4F_s\left(d_1\left[\tanh(x_0) + (x - x_0) \cdot \left(1 - \tanh^2(x_0)\right)\right] + d_2 y_x\right) \tag{26} \end{align*} $$
The system can then be solved as in the linear case, using these new expressions and also Eqs. (15), (16), (18) and (19). The resulting system looks much like that given in Eqs. (20)-(22), with the addition of a few new terms representing the non-linearity.
Fig. 6 shows the normalized magnitude spectrum of the first 10 harmonics of this non-linear model, measured using a sinesweep technique [23]. The cutoff controlling resistance $R_f$ is set to $110k\Omega$, and the resonance feedback path gain $a$ is set to the $a_{max}$ corresponding to this value of $R_f$. 4x oversampling was used.
Figure 6: Normalised magnitude spectra of first 10 harmonics of the non-linear model, with $R_f = 110k\Omega$ and $a = a_{max}.$
3. CONTROL PATH
The filter described in Sec. 2 takes as its main frequency control the two resistive parts of a photoresistive opto-isolator (vactrol) with value $R_f$. Since much of the interesting behaviour of this circuit is in its response to control, the connection between the applied control voltage and the value of $R_f$ must also be modelled.
A simplified version of the control circuitry of a Buchla 292-style filter is given in Fig. 7, and the values of its components in Tab. 2 Modelling the relationship between applied control voltage and vactrol resistance can be split into a number of stages. Firstly, we have to model the control circuitry to produce the correct relationship between the CV input (and offset) and the current through the LED part of the vactrol. Secondly, we have to model the mapping between the LED current and the resistance of the resistive parts of the vactrol ($R_f$). Lastly, we have to model the memory effects of the vactrol, and the filtering of the control value that it produces.
Table 2: Values of fixed elements in circuit from Fig. 7.
Comp. | Value | Comp. | Value | Comp. | Value |
---|---|---|---|---|---|
$C_c$ | 2nF | $R_1 + R_2$ | 10kΩ | $R_3$ | 150kΩ |
$R_4$ | 470Ω | $R_5$ | 100kΩ | $R_6$ | 20Ω |
$R_7$ | 33kΩ | $R_8$ | 4.7kΩ | $R_9$ | 470Ω |
$R_{10}$ | 10kΩ | $V_s$ | 15V | - | - |
3.1. Control Circuit
????The control circuit essentially consists of a first-order shelving filter applied to the control input signal $V_c$ and of a subcircuit that uses the output from the filter to control the amount of current flowing through the vactrol LED. The input filter both decreases high frequencies in the input signal and adds an amount of offset to it, controlled by the variable resistor modeled by $R_1$ and $R_2$. The current-controlling circuit resembles a logarithmic amplifier with the notable difference of the presence of a zener diode connected to ground.
????By means of nodal analysis it is immediate to verify that $V_1$, that is the voltage across $R_2$, is related to the voltage $V_2$ at the negative input terminal of the operational amplifier by
$$ V_1 = \frac{V_s + \dfrac{R_1}{ R_3} V_2}{ 1 +\dfrac{ R_1}{ R_2} + \dfrac{R_1}{R_3}} , \tag{27} $$
and that the current $I_4$ flowing from the input filter towards the positive terminal of the control input can be described, in the Laplace domain, as
$$ I_4(s) = \frac{[1 + s C_c (R_4 + R_5)] \dfrac{V_2(s) - V_c}{ R_5} - C_c V_2(0)}{1 + s C_c R_4}. \tag{28} $$
It is also possible to approximate $V_2$ in terms of the voltage $V_3$ across the zener diode and the filtered input signal as
$$ V_2(s) \approx V_3(s) + \frac{(R_6 + R_7) I_a(s)}{\alpha}, \tag{29} $$
where
$$ I_a(s) = \frac{V_b(s)}{R_5} + \frac{V_s}{R_3} \left(1 + \frac{R_1}{R_2}\right), \tag{30} $$
$$ V_b(s) = \frac{1 + s C_c (R_4 + R_5)}{1 + s C_c R_4} V_c(s), \tag{31} $$
$$ \alpha = 1 + (R_6 + R_7) \left(\frac{1}{R_3} + \frac{1}{R_5}\right). \tag{32} $$
In this circuit, the zener diode can be interpreted as a limiter that forces $V_3$ into the range delimited by its forward voltage drop $V_F$ and its breakdown voltage $-V_B$. A typical breakdown voltage is $V_B = 3.9 , \text{V}$, while we can ignore the value of $V_F$ since it should never be reached in this circuit. Between the two values, the zener diode has negligible current passing through it, therefore it can be seen as an open circuit. Under this assumption, the voltage $V_4$ between the vactrol LED and the resistor $R_9$, can be expressed by
$$ V_4 = V_3 - \left({R_9 \beta}-\frac{G}{ \alpha}\right)+\frac {I_a}{\alpha} \left[ R_9 - G (R_6 + R_7) \right], \tag{33} $$
where
$$ \beta = \frac{\dfrac{1}{\alpha}-1}{R_6 + R_7} + \frac{1}{R_8}, \tag{34} $$
and $G = 2 \times 10^5$.
By equating currents through $R_9$ and the vactrol LED, which is hereby modeled by the Shockley ideal diode equation, we obtain
$$ \left[V_4 + G \dfrac{V_3 + I_a (R_6 + R_7)}{\alpha}\right] \frac{1}{ R_9} = I_S \left( e^{\frac{V_3 - V_4}{n V_T}} - 1 \right), \tag{35} $$
where $I_S$ is the reverse saturation current, $n$ is the emission coefficient, and $V_T$ is the thermal voltage. By fitting the data from the datasheet of the device, we have extracted values $I_S = 2.7551 , \text{nA}$ and $n = 3.9696$, and we have chosen the thermal voltage to be $V_T = 26 , \text{mV}$ at room temperature ($\approx 300 , \text{K}$).
$V_3$ can therefore be explicitly expressed in terms of the system inputs using the Lambert W function, and further approximated as
$$ V_3 \approx -\frac{\alpha}{G} n V_T W\left( e^{\frac{G I_a (R_6 + R_7 - \frac{1}{\alpha \beta})}{\alpha n V_T}} \right) - \frac{I_a}{\alpha \beta}. \tag{36} $$
When the zener diode operates in its breakdown region, it can be modeled as a voltage source of value $V_3 = -V_B$ in parallel to $R_8$. Following a similar reasoning as before, we still obtain an equation of the form of (35), which can be solved in this case for $V_4$, leading to
$$ V_4 \approx n V_T W\left( e^{\frac{G [I_a (R_6 + R_7) - V_B]}{\alpha n V_T}} \right) - \frac{G \alpha [I_a (R_6 + R_7) - V_B]}{\alpha}. \tag{37} $$
The resulting current $I_f$ flowing through the vactrol LED can then be computed as
$$ I_f = \begin{cases} n V_T R_9 W\left( e^{\frac{G [I_a (R_6 + R_7) - V_B]}{\alpha n V_T}} \right), & V_3 = -V_B, \ \beta V_3 + \frac{I_a}{\alpha}, & \text{otherwise}, \end{cases} \tag{38} $$
while the current-to-resistance mapping can be modeled by fitting the data from the datasheet [14] using
$$ R_f = \frac{A}{{I_f}^{1.4}} + B, \tag{39} $$
where $A = 3.464 , \mu\text{A}^{1.4}$ and $B = 1136.212 , \Omega$.
If Vs CV O?set Vc Rf Rf Vactrol Figure 7: Simpli?ed schematic of the Buchla 292 control path. Table 2: Values of ?xed elements in circuit from Fig. 7. Comp. Value Comp. Value Comp. Value Cc 2nF R1 + R2 10k? R3 150k? R4 470k? R5 100k? R6 20k? R7 33k? R8 4.7k? R9 470? R10 10k? Vs 15V
????Since the computation of the Lambert W functions in (36) and (38) can be problematic both because of potentially high computational cost and the possibility of their arguments being outside of the range of common numerical data types, we hereby introduce valid and inexpensive approximations. Firstly, it is worth remembering that $W(1) = \Omega \approx 0.567$ and $W(x) \approx \log(x)$ when $x$ is sufficiently big. Then, it is possible to notice that the derivatives of the arguments of the exponentials in both equations with respect to $V_b$ are always greater than $6 \times 10^5$. These two considerations suggest that the Lambert W functions in (36) and (38) will have a shape, in terms of $V_b$, and hence $I_a$, that resembles a piecewise linear function being constantly 0 when the argument of the inner exponential is negative and turning very rapidly to a straight line when it becomes positive. Therefore, $W(e^x)$ can be approximated as a first-order polynomial for $x \approx x_i$, 0 when $x \leq -x_i$, and with a not-a-knot cubic spline otherwise:
$$ w(x) = k_0 + k_1x + k_2x^2 + k_3x^3. \tag{40} $$
In the case of (36), by using $x_i = 600$, which corresponds to a maximum variation in terms of $V_b$ of circa ±0.01 V, we obtain $k_0 = 1.468 \times 10^2$, $k_1 = 4.920 \times 10^{-1}$, $k_2 = 4.167 \times 10^{-4}$ and $k_3 = 7.391 \times 10^{-9}$, while the linear part can be expressed by:
$$ w_l(x) = x - k_L = x - 6.386. $$
This leads to a direct mapping between $I_a$, and thus $V_b$, and $V_3$ that can be expressed as:
$$ V_3 = \begin{cases} -\frac{I_a} {\alpha \beta} & c.\ 1, \\ -\frac{\alpha}{ G} n V_T \omega \left(\dfrac{ G I_a (R_6 + R_7) \frac{1}{\alpha \beta}} {\alpha n V_T}\right) -\frac{I_a} {\alpha \beta} & c.\ 2, \\ \kappa_L \frac{\alpha}{ G} n V_T - I_a (R_6 + R_7) & c.\ 3, \end{cases} \tag{41} $$
where case 1 corresponds to:
$$ I_a \leq -x_i \frac{\alpha n V_T}{G (R_6 + R_7-\frac{1}{\alpha \beta})}, $$
case 2 to:
$$ -x_i \frac{\alpha n V_T}{G (R_6 + R_7 - \frac{1}{\alpha \beta})} < I_a < x_i \frac{ \alpha n V_T}{G (R_6 + R_7 - \frac{1}{\alpha \beta})}, $$
and case 3 to:
$$ I_a \geq x_i \frac{\alpha n V_T}{G (R_6 + R_7 - \frac{1}{\alpha \beta})}. $$
For (38), we chose to simply consider the Lambert W function as a piecewise linear function that is constantly 0 when the exponential argument is negative and linearly growing when this is positive. Then, in order to better fit SPICE simulation results, we multiply the $W$ approximation in its linear region by a scaling factor $\gamma = 0.001$. Also, in order to guarantee continuity between zener breakdown and open-circuit regions, the open-circuit $I_f$ expression is added to the breakdown region approximation. In the end, the resulting value is constrained between minimum ($I_{f,\text{min}} = 10\mu A$) and maximum limits ($I_{f,\text{max}} = 40mA$). $I_{f,\text{max}}$ is set by the point at which the op-amp would saturate and can be varied to change the control response. The resulting $I_f$ approximation is therefore:
$$ I_f = \begin{cases} I_{f,\text{min}} & \text{c. 1}, \\ \beta V_3 + \dfrac{I_a}{\alpha} & \text{c. 2}, \\ \dfrac{\gamma G [I_a (R_6 + R_7) - V_B]}{\alpha R_9} - \beta V_B + \dfrac{I_a}{\alpha} & \text{c. 3}, \\ I_{f,\text{max}} & \text{c. 4}, \end{cases} \tag{42} $$
where case 1 corresponds to:
$$ I_a \leq \alpha (I_{f,\text{min}} - \beta V_3), $$
case 2 to:
$$ \alpha (I_{f,\text{min}} - \beta V_3) < I_a \leq \frac{V_B}{R_6 + R_7}, $$
case 3 to:
$$ \frac{V_B}{R_6 + R_7} < I_a < \frac{\gamma G V_B + \alpha R_9 (V_B \beta + I_{f,\text{max}})}{\gamma G (R_6 + R_7) + R_9}, $$
and case 4 to:
$$ I_a \geq \frac{\gamma G V_B + \alpha R_9 (V_B \beta + I_{f,\text{max}})}{\gamma G (R_6 + R_7) + R_9}. $$
Figure 8: $ V_c$ to $I_f$ relations, produced by model and by SPICE.
Fig. 8 shows the form of the relationship between $V_c$ to $I_f$ , in the case of the above described model, and in a SPICE simulation. Values of $R_1$, $R_2 = 5k\Omega$ and $R_6 = 10k\Omega$ are used. The correspondence between the modelled relationship and that derived from SPICE is very close in the region below the zener breakdown voltage $V_B$. The fit is less good after this point, but still adequate for the purpose.
3.2. Vactrol Model
A vactrol is made from two components, an LED and a light-dependent resistor (LDR) combined together within a light-proof housing. The LDR section is similar to those available as separate components, consisting of a region of semiconductor material separating two conductors, which are in turn connected to the terminals of the component. High resistance semiconductors are usually used, with the particular substance depending on the frequency of light which the component should respond to. The most common semiconductor used for visible-light LDRs, and in vactrols, is cadmium sulphide. When photons of sufficient energy hit the material, electrons are promoted from the valence band of the semiconductor to the free conduction band, decreasing the resistance of the material. The energy (and hence frequency) of light needed to make the LDR respond depends on the band gap between the valence band and the conduction band, which varies between semiconductors. Electrons from the conduction band are constantly decaying back down to the valence band, therefore the overall resistance depends on the balance between the rate of electron promotion due to incident photons and the rate of electron decay. The resistance therefore depends on the intensity of the incident light. When voltage is applied across the LED portion of the vactrol, photons are emitted, which then hit the semiconductor part of the LDR and decrease its resistance. This process results in a useful component that acts much like an ideal voltage-controlled resistance if we consider only long time-periods. However, the properties of the semiconductor in the LDR mean that the behaviour is more complicated on short time-scales, particularly in response to transient variations of illumination (and hence voltage applied to the LED). Notably, decreases in resistance due to increased illumination happen more quickly than the increase in resistance produced by a reduction in illumination. A voltage impulse applied over the LED therefore produces a quick drop in resistance in the LDR, followed by a slower decay back to high resistance. This resistance profile is remarkably similar to the amplitude envelope of a struck physical object, hence the special sound it produces when used as the variable resistance element within a synthesizer filter.
Adapting full models of photoconductor transient dynamics [25] for musical signal processing use is a significant task, and left for future work. Instead, we take a heuristic approach to modelling the particular vactrol used in the LPG. This vactrol is generally the Perkin Elmer VTL5C3 or VTL5C3/2. We propose an ad-hoc non-linear filter structure that will behave similarly to the vactrol with correct setting of parameter values. This structure is shown in Fig. 9. It consists of a lowpass filter constructed using an integrator. The cutoff frequency (or response time in this case) is switched between two different values dependent on the sign of the derivative of the input signal. These values are chosen from the datasheet [14] for the VTL5C3/2 as being approx 12ms in the positive-going direction and 250ms in the negative-going direction. This chosen value is then modulated further by the current output value of the vactrol model, so that it responds quicker when at high values, as also indicated on the datasheet.
4. IMPLEMENTATION AND RESULTS
The above described models of the audio and control circuitry of the LPG were implemented in Max/MSP using the Gen~ extension. The controls available in the model are a CV input (which operates on voltage values), a CV offset, a switch to engage or disengage 'lowpass' mode, and a resonance control. The 'VCA' mode is implemented by providing a control which varies ( R_{\alpha} ). This allows the response to be smoothly varied between filter-like and VCA-like by the user. These implementations are available at the website associated with this paper [3], along with audio demos. The resulting model seems to retain much of the character and dynamics of the original device. In lowpass mode, especially in the non-linear version, the model makes an interesting filter for subtractive synthesis, with a unique and quite aggressive character. We encourage readers to try the available implementation themselves in order to evaluate the quality of the sound.
5. CONCLUSIONS
In this work, we have examined the structure of the Buchla lowpass gate filter. A robust digital model of the audio part of the circuit is constructed by generating a digital filter structure with the same topology as the analog system, and solving its delay-free feedback loops. The control portion of the circuit is modeled by approximating its response and applying the output to heuristic models of the vactrol’s current to resistance mapping and memory effect. The resulting combined model was implemented for realtime use in Max/MSP and Gen~.
6. ACKNOWLEDGMENTS
Many thanks to Dr. Timothy Stinchcombe for some very useful correspondence about this circuit and its variations.
7. REFERENCES
[1] R. A. Moog, “A voltage-controlled low-pass high-pass filter for audio signal processing,” in 17th Convention of the Audio Eng. Soc., New York, USA, Oct. 1965.
[2] T. J. Pinch and F. Trocco, Analog days: The invention and impact of the Moog synthesizer , Harvard University Press, 2004.
[3] T. Stilson and J. O. Smith, “Analyzing the Moog VCF with considerations for digital implementation,” in Proc. Int. Computer Music Conf., Hong Kong, Aug. 1996, pp. 398?401.
[4] A. Huovilainen, “Non-linear digital implementation of the Moog ladder filter,” in Proc. 7th Intl. Conf. Digital Audio Effects (DAFx-06), Naples, Italy, Oct. 2004, pp. 61?64.
[5] F. Fontana, “Preserving the structure of the Moog VCF in the digital domain,” in Proc. Int. Computer Music Conf., Copenhagen, Denmark, Aug. 2007, pp. 291?294.
[6] V. Valimaki, F. Fontana, J. O. Smith, and U. Zolzer, “Introduction to the special issue on virtual analog audio effects and musical instruments,” IEEE Trans. Audio, Speech and Lang. Process. , vol. 18, no. 4, pp. 713?714, May 2010.
[7] M. Civolani and F. Fontana, “A nonlinear digital model of the EMS VCS3 voltage-controlled filter,” in Proc. 11th Int. Conf. Digital Audio Effects, Espoo, Finland, Sep. 2008, pp. 35?42.
[8] F. Fontana and M. Civolani, “Modeling of the EMS VCS3 voltage-controlled filter as a nonlinear filter network,” IEEE Trans. Audio, Speech and Lang. Process. , vol. 18, no. 4, pp. 760?772, May 2010.
[9] S. Zambon and F. Fontana, “Efficient polynomial implementation of the EMS VCS3 filter model,” in Proc. 14th Int. Conf. Digital Audio Effects (DAFx-11), Paris, France, Sep. 2011, pp. 287?290.
[10] J. Parker, “A simple digital model of the diode-based ringmodulator,” in Proc. 14th Intl. Conf. Digital Audio Effects (DAFx-11), Paris, France, 2011.
[11] S. Arnardottir, J. S. Abel, and J. O. Smith, “A digital model of the Echoplex tape delay,” in Proc. 125th Audio Eng. Soc. Conv., paper no. 7649, San Francisco, CA, May 2008.
[12] V. Valimaki, J. Parker, and J. S. Abel, “Parametric spring reverberation effect,” J. Audio Eng. Soc. , vol. 58, no. 7/8, pp. 547?562, 2010.
[13] C. Raffel and J. O. Smith, “Practical modeling of bucket brigade device circuits,” in Proc. 13th Int. Conf. Digital Audio Effects (DAFx-10), Graz, Austria, Sep. 2010, pp. 50?56.
[14] Perkin Elmer Optoelectronics, Photoconductive Cells and Analog Optoisolators (Vactrols) , 2001.
[15] R. P. Sallen and E. L. Key, “A practical method of designing RC active filters,” IRE Trans. on Circuit Theory , vol. 2, no. 1, pp. 74?85, 1955.
[16] J. O. Smith, Introduction to digital filters: with audio applications , Julius Smith, 2007.
[17] J. Kauraniemi, T. I. Laakso, I. Hartimo, and S. J. Ovaska, “Delta operator realizations of direct-form IIR filters,” IEEE Trans. on Circuits and Systems II: Analog and Digital Signal Processing , vol. 45, no. 1, pp. 41?52, 1998.
[18] S. D’Angelo and V. Valimaki, “An improved virtual analog model of the moog ladder filter,” in Proc. IEEE Int. Conf. Acoustics Speech Signal Proc. (ICASSP), Vancouver, BC, Canada, May 2013.
[19] V. Zavalishin, “Preserving the LTI system topology in s-to z-plane transforms,” Tech. Rep., Native Instruments, 2008.
[20] T. E. Stinchcombe, “A Study of the Korg MS10 & MS20 Filters,” 2006.
[21] D. T. Yeh, J. S. Abel, and J. O. Smith, “Simulation of the diode limiter in guitar distortion circuits by numerical solution of ordinary differential equations,” in Proc. of the 10th Int. Conf. on Digital Audio Effects (DAFx07), Bordeaux, France, 2007, pp. 197?204.
[22] A. Huovilainen, “Design of a scalable polyphony-MIDI synthesizer for a low cost DSP,” M.S. thesis, Aalto University, 2010.
[23] A. Farina, “Simultaneous measurement of impulse response and distortion with a swept-sine technique,” in Proc. AES 108th Conv., paper no. 5093, Paris, France, Feb. 2000.
[24] R.C.D. de Paiva, S. D’Angelo, J. Pakarinen, and V. Valimaki, “Emulation of operational amplifiers and diodes in audio distortion circuits,” IEEE Trans. on Circuits and Systems II: Express Briefs , vol. 59, no. 10, pp. 688?692, 2012.
[25] A. E. Iverson and D. L. Smith, “Mathematical modeling of photoconductor transient response,” IEEE Trans. on Electron Devices , vol. 34, no. 10, pp. 2098?2107, 1987.