[sdiy] [OT] Tube Screamer in depth modelling

Andrew Simper andy at cytomic.com
Wed May 24 05:01:29 CEST 2017


Brian had a question I hope he doesn't mind me pinging back to the list:

> I'm also curious about the models. Your description makes it seem like a
> user could import any .model and your code would interpret that in real time.
> How much does that affect performance?
>
> Brian Willoughby

Yes you can import any single diode .model statement, but only IS, N,
ISR, NR, CP, TT, CJ0, VJ, FC, M and IMAX are actually modelled.

I currently compute everything all the time even if the diode .model
statements leave some parts out, which is just to make things easier
for me in the initial phase of release to reduce complexity. Since I
have an automated circuit solver and I can generate the solution to
multiple circuits, one for each specific combination of parameters
left out, and I may do this in the future after I've tackled a few
easier tasks to reduce CPU, like not processing when there is silence
in and out of the plugin.

Currently in the core solver there are 28 exp and 4 logs calculated
per iteration of the NR solver per sample, with a maximum of 12
iterations per sample. Out of those 12 exp and the 4 logs are used to
model both clipping diodes in stereo. Each mono diode has one exp for
the IS (and N) terms, one for the ISR (and NR) terms, and an exp and
log for the non-linear junction capacitance CJ0 (and VJ, FC, M) terms.
Either the ISR or CJ0 can be zero, or the whole diode can be bypassed,
which makes for 4 different combinations per diode, so that would make
16 different circuits to solve if I computed only exactly the calls
needed without branching.

Cheers,

Andy



More information about the Synth-diy mailing list