Synth pages
   Synth story
DIY modules
Diode Ladder Filters
Korg MS10/20 Filters
Moog paper refs
Fooled by SPICE
Filter pole animations
Serge VCS
EDP Gnat schematics
Old brochures
PE Synth/Minisonic
About me
Photo links
Purple Mountain
Contact details
What's new
Cheltenham Circular Footpath
The Trouble with Christmas
this night wounds time
Behold the Computer
Solartron scans

Site map

I have a Facebook page for occasional blog-like articles:

Tim Stinchcombe's Synth Stuff


A Comprehensive TB-303 Diode Ladder Filter Model

Over at the KVR Forum there is a humungous thread running about producing a TB-303 filter emulation which is faithful to the sound of the real thing. Around Oct 2009 I made a couple of posts there myself (here and here) wherein I presented a little more information about the large transfer function I had derived for the filter (presented at the top of the main diode ladder filter page):

\begin{multline*} H(s)=\dfrac{1.06s^3(s+109.9)(s+34.0)(s+7.41)}{\left(\dfrac{s^4}{\omega_c^4}+2^{\frac{11}{4}}\dfrac{s^3}{\omega_c^3}+10\sqrt{2}\dfrac{s^2}{\omega_c^2}+2^{\frac{13}{4}}\dfrac{s}{\omega_c}+1\right)(s+97.5)(s+38.5)(s+4.45)}\cdots\\ \cdots\frac{\phantom{1}}{\rule[-2mm]{0mm}{8mm}\times(s+578.1)(s+20.0)(s+7.41)+18.7ks^4(s+46.5)(s+4.40)} \end{multline*}

In the interests of completeness I have put this brief page together, containing the extra information.

The whole purpose of the exercise was to take into account the various high-pass filtering effects caused by the numerous coupling capacitors around the core of the filter itself (in the main analysis on the other page, they were ignored for the sake of both clarity and sanity). I see there as being basically five sets of these, as roughly annotated in the following diagram:

It took a considerable amount of effort to analyse the effects of each of these sections, particularly '1' and '5'. Together they contribute a further six poles, and an equal number of zeroes, to the overall transfer function above, making it even more unwieldy than it originally was. I then coded this up as a SPICE-based Laplace-block model (click on it):

Click for full version

which can be seen is also rather unpretty. In that diagram the blocks are numbered as the sections in the first picture, and it should correspond to the transfer function at the top of the page (though at the time of writing this, I am not going to check it...!). The resonance is coded as a constant from 0 to 1, and is shown as the '0.99' in block 4; the cut-off frequency is hard-coded as 820Hz.

Here is the more standard component-level simulation of the circuit that I used to produce plots in order to compare to the output of the Laplace-block model:

Click for full version

The following graphs show outputs for the resonance set to 0, 0.2, 0.4,...1, and I think they agree tolerably well:

The lower resonant peak is very real: shortly before I put this work down in favour of other projects I took some measurements from my TBX-303 clone, and the test set-up I was using was adding just enough capacitive load to enable the filter to oscillate comfortably at around 8Hz. I feel the effect of this peak, boosting the base frequencies as it does, might be a large contributing factor to the sound of the TB-303 overall.

[Page last updated: 17 Dec 2022]