1
2
3/*******************************************************************************
4**************************** File generated by *********************************
5********************************************************************************
6 ./build-plug.py -i FatFrog_p1.sch FatFrog_p2.sch FatFrog_p3.sch PlexiPowerAmpEL34.sch JMP_p1.sch JMP_p2.sch -T --table_neg 2 4 -o 10 -x 15.0 -N --switch 1=Bright --bypass -r 1=0.333 3=0.666 4=0.666 5=0.555 6=0.555 --build --name FatFrog
7*******************************************************************************/
8
9// generated automatically
10// DO NOT MODIFY!
11declare id "fatfrog";
12declare name "FatFrog";
13declare category "Extern";
14declare shortname "FatFrog";
15declare description "HighGain Amplifier";
16
17import("stdfaust.lib");
18
19/*******************************************************************************
20  * 1-dimensional function table for linear interpolation
21*******************************************************************************/
22rd = library("reducemaps.lib");
23
24//-- Rdtable from waveform
25rtable(table, r) = (table, int(r)):rdtable;
26
27//-- Copy the sign of x to f
28ccopysign(f, x) = ma.fabs(f) * sign(x);
29
30//-- Get sign of value x
31sign(x) = x<0, 1, -1 : select2;
32
33//-- Check if value x is negative
34fsignbit(x) = x<0;
35
36//-- Get fractal part of value n
37fractal(n) = n - int(n);
38
39//-- Interpolate value between i and i+1 in table with fractal coefficient f.
40interpolation(table, size, f, i) = select2(i<0,select2(i>size-2,
41    rtable(table, i)*(1-f) + rtable(table,i+1)*f, rtable(table, size-1)),
42    rtable(table, 0)) : table_gate(table);
43
44//-- reduce dc-offset (noise) from table response for very low values
45table_gate(table,x) = select2(ma.fabs(x):rd.maxn(4096)<ma.fabs(rtable(table, 1))*(0.12), x, x*x*x);
46
47//-- Linear interpolation for value x in rdtable
48circuit_response(table, low, high, step, size, x) =
49    interpolation(table, size, fractal(linindex(step, x)),
50    int(linindex(step, x))), x : ccopysign;
51
52//-- Calculate linear table index for value x
53linindex(step, x) = ma.fabs(x) * step;
54
55//-- predefined filterbank
56freq_split = fi.filterbank(3, (86.0,210.0,1200.0,6531.0));
57
58
59
60/*******************************************************************************
61  * fatfrog_p1 generated by dkbuiler from FatFrog_p1.sch
62*******************************************************************************/
63
64p1 = pre : fi.iir((b0/a0,b1/a0,b2/a0),(a1/a0,a2/a0)) with {
65    LogPot(a, x) = ba.if(a, (exp(a * x) - 1) / (exp(a) - 1), x);
66    Inverted(b, x) = ba.if(b, 1 - x, x);
67    s = 0.993;
68    fs = float(ma.SR);
69    pre = _;
70
71
72    b0 = fs*(4.16735243056623e-10*fs - 1.34532561213629e-5) - 0.00381962735513334;
73
74    b1 = -8.33470486113245e-10*pow(fs,2) - 0.00763925471026669;
75
76    b2 = fs*(4.16735243056623e-10*fs + 1.34532561213629e-5) - 0.00381962735513334;
77
78    a0 = fs*(4.16735243056623e-10*fs + 8.26427569712678e-7) + 0.000173476651332639;
79
80    a1 = -8.33470486113245e-10*pow(fs,2) + 0.000346953302665278;
81
82    a2 = fs*(4.16735243056623e-10*fs - 8.26427569712678e-7) + 0.000173476651332639;
83};
84
85/****************************************************************************************
86* fatfrog_p2_table generated by DK/circ_table_gen.py -- do not modify manually
87****************************************************************************************/
88
89 // variables used
90 // --sig_max  15.000000
91 // --table_div  24.187463
92 // --table_op  10.000000
93
94fatfrog_p2_clip = circuit_response(fatfrog_p2_table, low, high, step, size) with{
95
96    low = 0;
97    high =-0.833333;
98    step =132.667;
99    size =200;
100
101    fatfrog_p2_table = waveform {
102    0.000000000000,-0.010712151353,-0.020788209399,-0.030288758114,-0.039268727972,
103    -0.047777878957,-0.055861253976,-0.063559601086,-0.070909764322,-0.077945043733,
104    -0.084695525822,-0.091188385904,-0.097448164100,-0.103497016752,-0.109354945070,
105    -0.115040002789,-0.120568484534,-0.125955096528,-0.131213111156,-0.136354506821,
106    -0.141390094406,-0.146329631577,-0.151181926031,-0.155954928737,-0.160655818100,
107    -0.165291075921,-0.169866555921,-0.174387545552,-0.178858821741,-0.183284701150,
108    -0.187669085492,-0.192015502374,-0.196327142115,-0.200606890924,-0.204857360800,
109    -0.209080916478,-0.213279699707,-0.217455651124,-0.221610529963,-0.225745931815,
110    -0.229863304625,-0.233963963109,-0.238049101740,-0.242119806446,-0.246177065159,
111    -0.250221777310,-0.254254762385,-0.258276767646,-0.262288475074,-0.266290507633,
112    -0.270283434918,-0.274267778242,-0.278244015219,-0.282212583903,-0.286173886510,
113    -0.290128292786,-0.294076143032,-0.298017750841,-0.301953405562,-0.305883374529,
114    -0.309807905062,-0.313727226289,-0.317641550772,-0.321551075990,-0.325455985674,
115    -0.329356451010,-0.333252631727,-0.337144677089,-0.341032726776,-0.344916911697,
116    -0.348797354719,-0.352674171321,-0.356547470200,-0.360417353807,-0.364283918841,
117    -0.368147256694,-0.372007453859,-0.375864592290,-0.379718749745,-0.383570000084,
118    -0.387418413547,-0.391264057005,-0.395106994195,-0.398947285921,-0.402784990254,
119    -0.406620162699,-0.410452856364,-0.414283122097,-0.418111008630,-0.421936562697,
120    -0.425759829147,-0.429580851053,-0.433399669805,-0.437216325201,-0.441030855527,
121    -0.444843297634,-0.448653687011,-0.452462057847,-0.456268443094,-0.460072874521,
122    -0.463875382772,-0.467675997409,-0.471474746966,-0.475271658982,-0.479066760051,
123    -0.482860075855,-0.486651631202,-0.490441450058,-0.494229555581,-0.498015970149,
124    -0.501800715391,-0.505583812212,-0.509365280819,-0.513145140748,-0.516923410882,
125    -0.520700109479,-0.524475254190,-0.528248862079,-0.532020949643,-0.535791532830,
126    -0.539560627060,-0.543328247235,-0.547094407762,-0.550859122566,-0.554622405105,
127    -0.558384268384,-0.562144724971,-0.565903787008,-0.569661466225,-0.573417773953,
128    -0.577172721136,-0.580926318342,-0.584678575774,-0.588429503283,-0.592179110376,
129    -0.595927406228,-0.599674399689,-0.603420099300,-0.607164513294,-0.610907649610,
130    -0.614649515903,-0.618390119547,-0.622129467649,-0.625867567053,-0.629604424348,
131    -0.633340045879,-0.637074437750,-0.640807605833,-0.644539555775,-0.648270293005,
132    -0.651999822738,-0.655728149984,-0.659455279554,-0.663181216063,-0.666905963940,
133    -0.670629527429,-0.674351910599,-0.678073117346,-0.681793151398,-0.685512016324,
134    -0.689229715533,-0.692946252284,-0.696661629687,-0.700375850709,-0.704088918178,
135    -0.707800834787,-0.711511603098,-0.715221225547,-0.718929704448,-0.722637041994,
136    -0.726343240263,-0.730048301221,-0.733752226727,-0.737455018533,-0.741156678289,
137    -0.744857207547,-0.748556607765,-0.752254880305,-0.755952026441,-0.759648047360,
138    -0.763342944165,-0.767036717877,-0.770729369438,-0.774420899714,-0.778111309497,
139    -0.781800599506,-0.785488770393,-0.789175822741,-0.792861757070,-0.796546573836,
140    -0.800230273435,-0.803912856202,-0.807594322420,-0.811274672313,-0.814953906054,
141    -0.818632023765,-0.822309025516,-0.825984911333,-0.829659681193,-0.833333335030
142    };
143};
144
145
146/****************************************************************************************
147* fatfrog_p2_neg_table generated by DK/circ_table_gen.py -- do not modify manually
148****************************************************************************************/
149
150 // variables used
151 // --sig_max  -15.000000
152 // --table_div  24.187463
153 // --table_op  10.000000
154
155fatfrog_p2_neg_clip = circuit_response(fatfrog_p2_neg_table, low, high, step, size) with{
156
157    low = 0;
158    high =0.550206;
159    step =132.667;
160    size =200;
161
162    fatfrog_p2_neg_table = waveform {
163    0.000000000000,0.010689788950,0.020704100806,0.030110387046,0.038969146539,
164    0.047334652345,0.055255601546,0.062775696308,0.069934163529,0.076766219616,
165    0.083303486286,0.089574362602,0.095604357934,0.101416390011,0.107031051779,
166    0.112466850390,0.117740421276,0.122866719950,0.127859193885,0.132729936577,
167    0.137489825657,0.142148646743,0.146715204506,0.151197422304,0.155602431561,
168    0.159936651967,0.164205863459,0.168415270810,0.172569561627,0.176672958401,
169    0.180729265255,0.184741909912,0.188713981390,0.192648263856,0.196547267032,
170    0.200413253506,0.204248263277,0.208054135791,0.211832529755,0.215584940928,
171    0.219312718116,0.223017077541,0.226699115755,0.230359821245,0.234000084864,
172    0.237620709205,0.241222417027,0.244805858825,0.248371619639,0.251920225171,
173    0.255452147280,0.258967808926,0.262467588611,0.265951824368,0.269420817349,
174    0.272874835046,0.276314114187,0.279738863334,0.283149265224,0.286545478856,
175    0.289927641386,0.293295869804,0.296650262457,0.299990900404,0.303317848633,
176    0.306631157153,0.309930861966,0.313216985943,0.316489539595,0.319748521778,
177    0.322993920300,0.326225712477,0.329443865619,0.332648337459,0.335839076535,
178    0.339016022523,0.342179106530,0.345328251350,0.348463371679,0.351584374310,
179    0.354691158288,0.357783615049,0.360861628529,0.363925075253,0.366973824408,
180    0.370007737893,0.373026670354,0.376030469211,0.379018974658,0.381992019666,
181    0.384949429965,0.387891024015,0.390816612979,0.393726000673,0.396618983521,
182    0.399495350497,0.402354883062,0.405197355103,0.408022532855,0.410830174836,
183    0.413620031765,0.416391846489,0.419145353907,0.421880280892,0.424596346217,
184    0.427293260482,0.429970726049,0.432628436977,0.435266078966,0.437883329304,
185    0.440479856835,0.443055321921,0.445609376432,0.448141663738,0.450651818724,
186    0.453139467821,0.455604229059,0.458045712136,0.460463518524,0.462857241591,
187    0.465226466759,0.467570771697,0.469889726546,0.472182894186,0.474449830551,
188    0.476690084982,0.478903200634,0.481088714942,0.483246160139,0.485375063837,
189    0.487474949674,0.489545338033,0.491585746830,0.493595692384,0.495574690361,
190    0.497522256806,0.499437909259,0.501321167961,0.503171557148,0.504988606437,
191    0.506771852302,0.508520839644,0.510235123443,0.511914270507,0.513557861287,
192    0.515165491787,0.516736775524,0.518271345564,0.519768856600,0.521228987068,
193    0.522651441289,0.524035951619,0.525382280592,0.526690223025,0.527959608090,
194    0.529190301302,0.530382206421,0.531535267232,0.532649469193,0.533724840907,
195    0.534761455413,0.535759431267,0.536718933388,0.537640173654,0.538523411235,
196    0.539368952636,0.540177151460,0.540948407866,0.541683167728,0.542381921495,
197    0.543045202761,0.543673586549,0.544267687332,0.544828156796,0.545355681386,
198    0.545850979647,0.546314799384,0.546747914694,0.547151122873,0.547525241250,
199    0.547871103981,0.548189558816,0.548481463903,0.548747684625,0.548989090523,
200    0.549206552318,0.549400939057,0.549573115407,0.549723939108,0.549854258601,
201    0.549964910839,0.550056719295,0.550130492159,0.550187020738,0.550227078049,
202    0.550251417605,0.550260772389,0.550255854006,0.550237352009,0.550205933387
203    };
204};
205
206/*******************************************************************************
207  * fatfrog_p2 generated by dkbuiler from FatFrog_p2.sch
208*******************************************************************************/
209
210p2 = pre : fi.iir((b0/a0,b1/a0,b2/a0,b3/a0),(a1/a0,a2/a0,a3/a0)) : fatfrog_p2clip with {
211    LogPot(a, x) = ba.if(a, (exp(a * x) - 1) / (exp(a) - 1), x);
212    Inverted(b, x) = ba.if(b, 1 - x, x);
213    s = 0.993;
214    fs = float(ma.SR);
215    pre = _;
216
217
218    Volume = vslider("Volume[name:Volume][style:knob]", 0.5, 0, 1, 0.01) : Inverted(0) : LogPot(3) : si.smooth(s);
219
220    b0 = Volume*(Volume*pow(fs,2)*(1.12794330933527e-13*fs + 2.55306317187702e-10) + fs*(fs*(-1.12794330933527e-13*fs - 3.11703482654466e-10) - 1.27653158593851e-7));
221
222    b1 = Volume*(Volume*pow(fs,2)*(-3.3838299280058e-13*fs - 2.55306317187702e-10) + fs*(fs*(3.3838299280058e-13*fs + 3.11703482654466e-10) - 1.27653158593851e-7));
223
224    b2 = Volume*(Volume*pow(fs,2)*(3.3838299280058e-13*fs - 2.55306317187702e-10) + fs*(fs*(-3.3838299280058e-13*fs + 3.11703482654466e-10) + 1.27653158593851e-7));
225
226    b3 = Volume*(Volume*pow(fs,2)*(-1.12794330933527e-13*fs + 2.55306317187702e-10) + fs*(fs*(1.12794330933527e-13*fs - 3.11703482654466e-10) + 1.27653158593851e-7));
227
228    a0 = Volume*(Volume*fs*(fs*(-3.18232353484157e-14*fs - 7.27329344390611e-11) - 1.58911559362935e-9) + fs*(fs*(3.18232353484157e-14*fs + 3.88784287492572e-11) + 8.42231264623558e-10)) + fs*(4.97661233640118e-11*fs + 5.40406043934383e-8) + 1.16799996131758e-6;
229
230    a1 = Volume*(Volume*fs*(fs*(9.54697060452472e-14*fs + 7.27329344390611e-11) - 1.58911559362935e-9) + fs*(fs*(-9.54697060452472e-14*fs - 3.88784287492572e-11) + 8.42231264623558e-10)) + fs*(-4.97661233640118e-11*fs + 5.40406043934383e-8) + 3.50399988395273e-6;
231
232    a2 = Volume*(Volume*fs*(fs*(-9.54697060452472e-14*fs + 7.27329344390611e-11) + 1.58911559362935e-9) + fs*(fs*(9.54697060452472e-14*fs - 3.88784287492572e-11) - 8.42231264623558e-10)) + fs*(-4.97661233640118e-11*fs - 5.40406043934383e-8) + 3.50399988395273e-6;
233
234    a3 = Volume*(Volume*fs*(fs*(3.18232353484157e-14*fs - 7.27329344390611e-11) + 1.58911559362935e-9) + fs*(fs*(-3.18232353484157e-14*fs + 3.88784287492572e-11) - 8.42231264623558e-10)) + fs*(4.97661233640118e-11*fs - 5.40406043934383e-8) + 1.16799996131758e-6;
235};
236
237fatfrog_p2p = _<: ba.if(fsignbit(_), fatfrog_p2_neg_clip, fatfrog_p2_clip) :>_ ;
238
239fatfrog_p2clip = freq_split: ( fatfrog_p2p , fatfrog_p2p , fatfrog_p2p, fatfrog_p2p, fatfrog_p2p) :>_;
240
241
242/*******************************************************************************
243  * fatfrog_p3 generated by dkbuiler from FatFrog_p3.sch
244*******************************************************************************/
245
246p3 = pre : fi.iir((b0/a0,b1/a0,b2/a0,b3/a0),(a1/a0,a2/a0,a3/a0)) with {
247    LogPot(a, x) = ba.if(a, (exp(a * x) - 1) / (exp(a) - 1), x);
248    Inverted(b, x) = ba.if(b, 1 - x, x);
249    s = 0.993;
250    fs = float(ma.SR);
251    pre = _;
252
253
254    Master = vslider("Master[name:Master][style:knob]", 0.5, 0, 1, 0.01) : Inverted(0) : LogPot(3) : si.smooth(s);
255
256    Bass = vslider("Bass[name:Bass][style:knob]", 0.5, 0, 1, 0.01) : Inverted(0) : LogPot(7) : si.smooth(s);
257
258
259    Treble = vslider("Treble[name:Treble][style:knob]", 0.5, 0, 1, 0.01) : Inverted(0) : si.smooth(s);
260
261
262    Middle = vslider("Middle[name:Middle][style:knob]", 0.5, 0, 1, 0.01) : Inverted(0) : si.smooth(s);
263
264    b0 = Master*(Bass*(Middle*pow(fs,2)*(-3.48166185515821e-13*fs - 1.49526650953366e-9) + fs*(-4.06590047763715e-10*fs - 1.54469680736949e-6)) + Middle*(Middle*pow(fs,2)*(7.65965608134806e-15*fs + 3.28958632097406e-11) + fs*(fs*(-7.65965608134806e-15*fs - 3.97766178642034e-11) - 3.3272508000304e-8)) + Treble*(-4.54129807194549e-13*Bass*pow(fs,3) + 9.99085575828008e-15*Middle*pow(fs,3) + fs*(fs*(-9.99085575828008e-15*fs - 2.06422639633886e-11) - 7.10821761824676e-9)) + fs*(-8.94498105080173e-12*fs - 3.39833297621287e-8));
265
266    b1 = Master*(Bass*(Middle*pow(fs,2)*(1.04449855654746e-12*fs + 1.49526650953366e-9) + fs*(4.06590047763715e-10*fs - 1.54469680736949e-6)) + Middle*(Middle*pow(fs,2)*(-2.29789682440442e-14*fs - 3.28958632097406e-11) + fs*(fs*(2.29789682440442e-14*fs + 3.97766178642034e-11) - 3.3272508000304e-8)) + Treble*(1.36238942158365e-12*Bass*pow(fs,3) - 2.99725672748402e-14*Middle*pow(fs,3) + fs*(fs*(2.99725672748402e-14*fs + 2.06422639633886e-11) - 7.10821761824676e-9)) + fs*(8.94498105080173e-12*fs - 3.39833297621287e-8));
267
268    b2 = Master*(Bass*(Middle*pow(fs,2)*(-1.04449855654746e-12*fs + 1.49526650953366e-9) + fs*(4.06590047763715e-10*fs + 1.54469680736949e-6)) + Middle*(Middle*pow(fs,2)*(2.29789682440442e-14*fs - 3.28958632097406e-11) + fs*(fs*(-2.29789682440442e-14*fs + 3.97766178642034e-11) + 3.3272508000304e-8)) + Treble*(-1.36238942158365e-12*Bass*pow(fs,3) + 2.99725672748402e-14*Middle*pow(fs,3) + fs*(fs*(-2.99725672748402e-14*fs + 2.06422639633886e-11) + 7.10821761824676e-9)) + fs*(8.94498105080173e-12*fs + 3.39833297621287e-8));
269
270    b3 = Master*(Bass*(Middle*pow(fs,2)*(3.48166185515821e-13*fs - 1.49526650953366e-9) + fs*(-4.06590047763715e-10*fs + 1.54469680736949e-6)) + Middle*(Middle*pow(fs,2)*(-7.65965608134806e-15*fs + 3.28958632097406e-11) + fs*(fs*(7.65965608134806e-15*fs - 3.97766178642034e-11) + 3.3272508000304e-8)) + Treble*(4.54129807194549e-13*Bass*pow(fs,3) - 9.99085575828008e-15*Middle*pow(fs,3) + fs*(fs*(9.99085575828008e-15*fs - 2.06422639633886e-11) + 7.10821761824676e-9)) + fs*(-8.94498105080173e-12*fs + 3.39833297621287e-8));
271
272    a0 = Bass*(Middle*fs*(fs*(8.4448446570892e-15*fs + 3.65575592641919e-11) + 7.84234481690603e-10) + fs*(fs*(1.08432864509182e-14*fs + 6.24344932141459e-11) + 3.89557496727746e-8) + 8.1015958852335e-7) + Middle*(Middle*fs*(fs*(-1.85786582455962e-16*fs - 8.04266303812222e-13) - 1.72531585971933e-11) + fs*(fs*(-5.27657194642384e-17*fs - 1.85435971576751e-13) + 8.01487640287796e-10)) + Treble*(Bass*(Middle*pow(fs,2)*(1.33441449601444e-15*fs + 7.42921009195142e-12) + fs*(fs*(2.38552301920201e-15*fs + 1.26485665547481e-11) + 7.6748038139994e-9)) + Middle*(Middle*pow(fs,2)*(-2.93571189123176e-17*fs - 1.63442622022931e-13) + fs*(fs*(-2.31243875101266e-17*fs - 5.41706378172345e-14) + 1.72531585971933e-10)) + Treble*(Bass*(-1.56989940707581e-15*Middle*pow(fs,3) + pow(fs,2)*(-2.38152207460354e-15*fs - 1.62179690813617e-12)) + Middle*(3.45377869556678e-17*Middle*pow(fs,3) + pow(fs,2)*(1.785569868561e-17*fs - 3.56795319789957e-14)) + fs*(fs*(-5.23934856412778e-17*fs - 1.43930535370065e-13) - 3.68590206394583e-11)) + fs*(fs*(5.24815064224442e-17*fs + 3.86701328713641e-13) + 7.29224792105746e-10) + 1.78235109475137e-7) + fs*(fs*(2.38552301920201e-16*fs + 1.86643550757113e-12) + 3.40420425733631e-9) + 8.27983099470864e-7;
273
274    a1 = Bass*(Middle*fs*(fs*(-2.53345339712676e-14*fs - 3.65575592641919e-11) + 7.84234481690603e-10) + fs*(fs*(-3.25298593527547e-14*fs - 6.24344932141459e-11) + 3.89557496727746e-8) + 2.43047876557005e-6) + Middle*(Middle*fs*(fs*(5.57359747367887e-16*fs + 8.04266303812222e-13) - 1.72531585971933e-11) + fs*(fs*(1.58297158392715e-16*fs + 1.85435971576751e-13) + 8.01487640287796e-10)) + Treble*(Bass*(Middle*pow(fs,2)*(-4.00324348804331e-15*fs - 7.42921009195142e-12) + fs*(fs*(-7.15656905760603e-15*fs - 1.26485665547481e-11) + 7.6748038139994e-9)) + Middle*(Middle*pow(fs,2)*(8.80713567369529e-17*fs + 1.63442622022931e-13) + fs*(fs*(6.93731625303797e-17*fs + 5.41706378172345e-14) + 1.72531585971933e-10)) + Treble*(Bass*(4.70969822122743e-15*Middle*pow(fs,3) + pow(fs,2)*(7.14456622381061e-15*fs + 1.62179690813617e-12)) + Middle*(-1.03613360867003e-16*Middle*pow(fs,3) + pow(fs,2)*(-5.35670960568299e-17*fs + 3.56795319789957e-14)) + fs*(fs*(1.57180456923833e-16*fs + 1.43930535370065e-13) - 3.68590206394583e-11)) + fs*(fs*(-1.57444519267333e-16*fs - 3.86701328713641e-13) + 7.29224792105746e-10) + 5.34705328425411e-7) + fs*(fs*(-7.15656905760603e-16*fs - 1.86643550757113e-12) + 3.40420425733631e-9) + 2.48394929841259e-6;
275
276    a2 = Bass*(Middle*fs*(fs*(2.53345339712676e-14*fs - 3.65575592641919e-11) - 7.84234481690603e-10) + fs*(fs*(3.25298593527547e-14*fs - 6.24344932141459e-11) - 3.89557496727746e-8) + 2.43047876557005e-6) + Middle*(Middle*fs*(fs*(-5.57359747367887e-16*fs + 8.04266303812222e-13) + 1.72531585971933e-11) + fs*(fs*(-1.58297158392715e-16*fs + 1.85435971576751e-13) - 8.01487640287796e-10)) + Treble*(Bass*(Middle*pow(fs,2)*(4.00324348804331e-15*fs - 7.42921009195142e-12) + fs*(fs*(7.15656905760603e-15*fs - 1.26485665547481e-11) - 7.6748038139994e-9)) + Middle*(Middle*pow(fs,2)*(-8.80713567369529e-17*fs + 1.63442622022931e-13) + fs*(fs*(-6.93731625303797e-17*fs + 5.41706378172345e-14) - 1.72531585971933e-10)) + Treble*(Bass*(-4.70969822122743e-15*Middle*pow(fs,3) + pow(fs,2)*(-7.14456622381061e-15*fs + 1.62179690813617e-12)) + Middle*(1.03613360867003e-16*Middle*pow(fs,3) + pow(fs,2)*(5.35670960568299e-17*fs + 3.56795319789957e-14)) + fs*(fs*(-1.57180456923833e-16*fs + 1.43930535370065e-13) + 3.68590206394583e-11)) + fs*(fs*(1.57444519267333e-16*fs - 3.86701328713641e-13) - 7.29224792105746e-10) + 5.34705328425411e-7) + fs*(fs*(7.15656905760603e-16*fs - 1.86643550757113e-12) - 3.40420425733631e-9) + 2.48394929841259e-6;
277
278    a3 = Bass*(Middle*fs*(fs*(-8.4448446570892e-15*fs + 3.65575592641919e-11) - 7.84234481690603e-10) + fs*(fs*(-1.08432864509182e-14*fs + 6.24344932141459e-11) - 3.89557496727746e-8) + 8.1015958852335e-7) + Middle*(Middle*fs*(fs*(1.85786582455962e-16*fs - 8.04266303812222e-13) + 1.72531585971933e-11) + fs*(fs*(5.27657194642384e-17*fs - 1.85435971576751e-13) - 8.01487640287796e-10)) + Treble*(Bass*(Middle*pow(fs,2)*(-1.33441449601444e-15*fs + 7.42921009195142e-12) + fs*(fs*(-2.38552301920201e-15*fs + 1.26485665547481e-11) - 7.6748038139994e-9)) + Middle*(Middle*pow(fs,2)*(2.93571189123176e-17*fs - 1.63442622022931e-13) + fs*(fs*(2.31243875101266e-17*fs - 5.41706378172345e-14) - 1.72531585971933e-10)) + Treble*(Bass*(1.56989940707581e-15*Middle*pow(fs,3) + pow(fs,2)*(2.38152207460354e-15*fs - 1.62179690813617e-12)) + Middle*(-3.45377869556678e-17*Middle*pow(fs,3) + pow(fs,2)*(-1.785569868561e-17*fs - 3.56795319789957e-14)) + fs*(fs*(5.23934856412778e-17*fs - 1.43930535370065e-13) + 3.68590206394583e-11)) + fs*(fs*(-5.24815064224442e-17*fs + 3.86701328713641e-13) - 7.29224792105746e-10) + 1.78235109475137e-7) + fs*(fs*(-2.38552301920201e-16*fs + 1.86643550757113e-12) - 3.40420425733631e-9) + 8.27983099470864e-7;
279};
280
281/****************************************************************************************
282* fatfrog_poweramp_table generated by DK/circ_table_gen.py -- do not modify manually
283****************************************************************************************/
284
285 // variables used
286 // --sig_max  1.400000
287 // --table_div  1.684552
288 // --table_op  1.000000
289
290fatfrog_poweramp_clip = circuit_response(fatfrog_poweramp_table, low, high, step, size) with{
291
292    low = 0;
293    high =0.833333;
294    step =142.143;
295    size =200;
296
297    fatfrog_poweramp_table = waveform {
298    0.000000000000,0.008825069056,0.017581566729,0.026269903187,0.034890465555,
299    0.043443658654,0.051929868850,0.060349505962,0.068702951545,0.076990613410,
300    0.085212874669,0.093370128103,0.101462771605,0.109491192293,0.117455779277,
301    0.125356920917,0.133195001455,0.140970418466,0.148683539107,0.156334761409,
302    0.163924456272,0.171453013208,0.178920811925,0.186328222432,0.193675625016,
303    0.200963407969,0.208191932778,0.215361567217,0.222472697993,0.229525680172,
304    0.236520901792,0.243458710457,0.250339474548,0.257163569576,0.263931348881,
305    0.270643177811,0.277299409324,0.283900407919,0.290446529521,0.296938122771,
306    0.303375546946,0.309759151256,0.316089285597,0.322366298196,0.328590535608,
307    0.334762342540,0.340882060475,0.346950036585,0.352966603290,0.358932104243,
308    0.364846877639,0.370711249622,0.376525560168,0.382290140574,0.388005315775,
309    0.393671416942,0.399288772025,0.404857702297,0.410378536938,0.415851589047,
310    0.421277181468,0.426655631817,0.431987254468,0.437272366677,0.442511279324,
311    0.447704303409,0.452851747777,0.457953921154,0.463011125387,0.468023669161,
312    0.472991851195,0.477915974277,0.482796332150,0.487633229188,0.492426956125,
313    0.497177807362,0.501886073846,0.506552046948,0.511176018334,0.515758270335,
314    0.520299087251,0.524798755416,0.529257556663,0.533675768918,0.538053670789,
315    0.542391540684,0.546689653613,0.550948279398,0.555167696010,0.559348168034,
316    0.563489964912,0.567593355127,0.571658603749,0.575685970920,0.579675724258,
317    0.583628117736,0.587543414507,0.591421871735,0.595263740340,0.599069279141,
318    0.602838737759,0.606572367383,0.610270417096,0.613933134590,0.617560765687,
319    0.621153554917,0.624711744403,0.628235577388,0.631725291806,0.635181126584,
320    0.638603318260,0.641992102801,0.645347712765,0.648670379716,0.651960337348,
321    0.655217812543,0.658443033155,0.661636227511,0.664797617402,0.667927428210,
322    0.671025880875,0.674093197740,0.677129595125,0.680135293039,0.683110506168,
323    0.686055448937,0.688970336972,0.691855380478,0.694710790096,0.697536776369,
324    0.700333545446,0.703101305038,0.705840260675,0.708550614229,0.711232569274,
325    0.713886327661,0.716512088070,0.719110049659,0.721680408531,0.724223361618,
326    0.726739103475,0.729227826292,0.731689723008,0.734124984098,0.736533798639,
327    0.738916355468,0.741272841367,0.743603441274,0.745908340423,0.748187722027,
328    0.750441767742,0.752670657655,0.754874572657,0.757053690735,0.759208188412,
329    0.761338242823,0.763444027128,0.765525716623,0.767583483045,0.769617497350,
330    0.771627930340,0.773614950578,0.775578726418,0.777519424545,0.779437210341,
331    0.781332248371,0.783204701796,0.785054734023,0.786882505198,0.788688175562,
332    0.790471904966,0.792233850299,0.793974169490,0.795693018007,0.797390550199,
333    0.799066920924,0.800722281709,0.802356785430,0.803970581781,0.805563820995,
334    0.807136651706,0.808689221322,0.810221676641,0.811734163187,0.813226825850,
335    0.814699808290,0.816153253063,0.817587302265,0.819002096686,0.820397775366,
336    0.821774478216,0.823132342882,0.824471506335,0.825792104528,0.827094272846,
337    0.828378145433,0.829643855964,0.830891536387,0.832121318561,0.833333333339
338    };
339};
340
341
342/****************************************************************************************
343* fatfrog_poweramp_neg_table generated by DK/circ_table_gen.py -- do not modify manually
344****************************************************************************************/
345
346 // variables used
347 // --sig_max  -1.400000
348 // --table_div  1.684552
349 // --table_op  1.000000
350
351fatfrog_poweramp_neg_clip = circuit_response(fatfrog_poweramp_neg_table, low, high, step, size) with{
352
353    low = 0;
354    high =-0.830434;
355    step =142.143;
356    size =200;
357
358    fatfrog_poweramp_neg_table = waveform {
359    0.000000000000,-0.008825166416,-0.017581955846,-0.026270748592,-0.034891927952,
360    -0.043445895020,-0.051933028482,-0.060353713507,-0.068708344701,-0.076997279049,
361    -0.085220920211,-0.093379650456,-0.101473847974,-0.109503893701,-0.117470170243,
362    -0.125373053511,-0.133212915640,-0.140990142782,-0.148705110523,-0.156358185222,
363    -0.163949749539,-0.171480173168,-0.178949827852,-0.186359083790,-0.193708313082,
364    -0.200997875893,-0.208228144469,-0.215399491663,-0.222512266704,-0.229566845140,
365    -0.236563578802,-0.243502835296,-0.250384971175,-0.257210346178,-0.263979312312,
366    -0.270692226415,-0.277349439820,-0.283951308672,-0.290498183437,-0.296990409097,
367    -0.303428333067,-0.309812303564,-0.316142669098,-0.322419766753,-0.328643940091,
368    -0.334815528853,-0.340934871940,-0.347002303943,-0.353018165786,-0.358982786115,
369    -0.364896496770,-0.370759633766,-0.376572522445,-0.382335485534,-0.388048858784,
370    -0.393712957996,-0.399328110793,-0.404894638133,-0.410412854580,-0.415883084307,
371    -0.421305640058,-0.426680833592,-0.432008982476,-0.437290395884,-0.442525383943,
372    -0.447714254521,-0.452857313789,-0.457954866525,-0.463007216132,-0.468014664763,
373    -0.472977507652,-0.477896050270,-0.482770585254,-0.487601405460,-0.492388805190,
374    -0.497133080728,-0.501834519752,-0.506493405025,-0.511110032103,-0.515684679743,
375    -0.520217632509,-0.524709174236,-0.529159583293,-0.533569140304,-0.537938122341,
376    -0.542266803832,-0.546555456680,-0.550804357015,-0.555013770934,-0.559183972674,
377    -0.563315225583,-0.567407798699,-0.571461954073,-0.575477954408,-0.579456063283,
378    -0.583396537818,-0.587299636289,-0.591165618130,-0.594994733142,-0.598787239769,
379    -0.602543387137,-0.606263425611,-0.609947605378,-0.613596173718,-0.617209375000,
380    -0.620787454324,-0.624330653787,-0.627839216646,-0.631313380725,-0.634753384965,
381    -0.638159466288,-0.641531860042,-0.644870800713,-0.648176518840,-0.651449247993,
382    -0.654689215377,-0.657896650703,-0.661071779722,-0.664214829073,-0.667326020581,
383    -0.670405579210,-0.673453722176,-0.676470673651,-0.679456649217,-0.682411864733,
384    -0.685336538825,-0.688230882515,-0.691095111078,-0.693929432606,-0.696734060342,
385    -0.699509202616,-0.702255064375,-0.704971855016,-0.707659775910,-0.710319032607,
386    -0.712949825521,-0.715552356630,-0.718126825518,-0.720673430658,-0.723192367252,
387    -0.725683832057,-0.728148019865,-0.730585122627,-0.732995333386,-0.735378842133,
388    -0.737735837986,-0.740066509107,-0.742371043092,-0.744649624698,-0.746902439379,
389    -0.749129669401,-0.751331497574,-0.753508104803,-0.755659670110,-0.757786372384,
390    -0.759888389373,-0.761965897374,-0.764019070360,-0.766048083130,-0.768053108124,
391    -0.770034317048,-0.771991880375,-0.773925967602,-0.775836746544,-0.777724384911,
392    -0.779589048241,-0.781430901838,-0.783250109603,-0.785046833823,-0.786821236559,
393    -0.788573478626,-0.790303719548,-0.792012117675,-0.793698830218,-0.795364014068,
394    -0.797007824406,-0.798630415730,-0.800231941079,-0.801812553473,-0.803372403455,
395    -0.804911641427,-0.806430417283,-0.807928878875,-0.809407173790,-0.810865448057,
396    -0.812303847251,-0.813722516074,-0.815121597513,-0.816501234517,-0.817861568263,
397    -0.819202739722,-0.820524888245,-0.821828152919,-0.823112671327,-0.824378580512,
398    -0.825626016395,-0.826855114143,-0.828066007852,-0.829258831036,-0.830433715874
399    };
400};
401
402/*******************************************************************************
403  * fatfrog_poweramp generated by dkbuiler from PlexiPowerAmpEL34.sch
404*******************************************************************************/
405
406p4 = pre : fi.iir((b0/a0,b1/a0,b2/a0,b3/a0,b4/a0),(a1/a0,a2/a0,a3/a0,a4/a0)) : fatfrog_powerampclip with {
407    LogPot(a, x) = ba.if(a, (exp(a * x) - 1) / (exp(a) - 1), x);
408    Inverted(b, x) = ba.if(b, 1 - x, x);
409    s = 0.993;
410    fs = float(ma.SR);
411    pre = _;
412
413
414    b0 = fs*(fs*(fs*(3.87560926163844e-19*fs + 4.30800903120125e-16) + 3.17509705609174e-17) + 5.3495467261267e-19);
415
416    b1 = fs*(pow(fs,2)*(-1.55024370465538e-18*fs - 8.61601806240251e-16) + 1.06990934522534e-18);
417
418    b2 = pow(fs,2)*(2.32536555698307e-18*pow(fs,2) - 6.35019411218347e-17);
419
420    b3 = fs*(pow(fs,2)*(-1.55024370465538e-18*fs + 8.61601806240251e-16) - 1.06990934522534e-18);
421
422    b4 = fs*(fs*(fs*(3.87560926163844e-19*fs - 4.30800903120125e-16) + 3.17509705609174e-17) - 5.3495467261267e-19);
423
424    a0 = fs*(fs*(fs*(1.82693733893894e-19*fs + 2.71243523616587e-16) + 8.16290535602033e-14) + 4.64147298174261e-12) + 4.00158102875003e-12;
425
426    a1 = fs*(pow(fs,2)*(-7.30774935575574e-19*fs - 5.42487047233173e-16) + 9.28294596348523e-12) + 1.60063241150001e-11;
427
428    a2 = pow(fs,2)*(1.09616240336336e-18*pow(fs,2) - 1.63258107120407e-13) + 2.40094861725002e-11;
429
430    a3 = fs*(pow(fs,2)*(-7.30774935575574e-19*fs + 5.42487047233173e-16) - 9.28294596348523e-12) + 1.60063241150001e-11;
431
432    a4 = fs*(fs*(fs*(1.82693733893894e-19*fs - 2.71243523616587e-16) + 8.16290535602033e-14) - 4.64147298174261e-12) + 4.00158102875003e-12;
433};
434
435fatfrog_powerampp = _<: ba.if(fsignbit(_), fatfrog_poweramp_neg_clip, fatfrog_poweramp_clip) :>_ ;
436
437fatfrog_powerampclip = freq_split: ( fatfrog_powerampp , fatfrog_powerampp , fatfrog_powerampp, fatfrog_powerampp, fatfrog_powerampp) :>_;
438
439
440/*******************************************************************************
441  * fatfrog_cab_p1 generated by dkbuiler from JMP_p1.sch
442*******************************************************************************/
443
444p5 = pre : fi.iir((b0/a0,b1/a0,b2/a0,b3/a0,b4/a0,b5/a0,b6/a0,b7/a0),(a1/a0,a2/a0,a3/a0,a4/a0,a5/a0,a6/a0,a7/a0)) with {
445    LogPot(a, x) = ba.if(a, (exp(a * x) - 1) / (exp(a) - 1), x);
446    Inverted(b, x) = ba.if(b, 1 - x, x);
447    s = 0.993;
448    fs = float(ma.SR);
449    pre = _;
450
451
452    b0 = pow(fs,3)*(fs*(fs*(fs*(5.41478926354201e-34*fs + 9.89823968225517e-29) + 2.21389820371069e-25) + 8.2706263330292e-23) + 3.05852920983453e-20);
453
454    b1 = pow(fs,3)*(fs*(fs*(fs*(-3.79035248447941e-33*fs - 4.94911984112759e-28) - 6.64169461113208e-25) - 8.2706263330292e-23) + 3.05852920983453e-20);
455
456    b2 = pow(fs,3)*(fs*(fs*(fs*(1.13710574534382e-32*fs + 8.90841571402966e-28) + 2.21389820371069e-25) - 2.48118789990876e-22) - 9.1755876295036e-20);
457
458    b3 = pow(fs,3)*(fs*(fs*(fs*(-1.8951762422397e-32*fs - 4.94911984112759e-28) + 1.10694910185535e-24) + 2.48118789990876e-22) - 9.1755876295036e-20);
459
460    b4 = pow(fs,3)*(fs*(fs*(fs*(1.8951762422397e-32*fs - 4.94911984112759e-28) - 1.10694910185535e-24) + 2.48118789990876e-22) + 9.1755876295036e-20);
461
462    b5 = pow(fs,3)*(fs*(fs*(fs*(-1.13710574534382e-32*fs + 8.90841571402966e-28) - 2.21389820371069e-25) - 2.48118789990876e-22) + 9.1755876295036e-20);
463
464    b6 = pow(fs,3)*(fs*(fs*(fs*(3.79035248447941e-33*fs - 4.94911984112759e-28) + 6.64169461113208e-25) - 8.2706263330292e-23) - 3.05852920983453e-20);
465
466    b7 = pow(fs,3)*(fs*(fs*(fs*(-5.41478926354201e-34*fs + 9.89823968225517e-29) - 2.21389820371069e-25) + 8.2706263330292e-23) - 3.05852920983453e-20);
467
468    a0 = fs*(fs*(fs*(fs*(fs*(fs*(5.41489755986876e-34*fs + 5.09078733178756e-29) + 2.30252226046762e-25) + 1.50190005873638e-22) + 7.82551343611017e-20) + 2.17831661090841e-17) + 4.23378644784192e-15) + 1.61880500310045e-13;
469
470    a1 = fs*(fs*(fs*(fs*(fs*(fs*(-3.79042829190813e-33*fs - 2.54539366589378e-28) - 6.90756678140285e-25) - 1.50190005873638e-22) + 7.82551343611017e-20) + 6.53494983272524e-17) + 2.11689322392096e-14) + 1.13316350217031e-12;
471
472    a2 = fs*(fs*(fs*(fs*(fs*(fs*(1.13712848757244e-32*fs + 4.58170859860881e-28) + 2.30252226046762e-25) - 4.50570017620913e-22) - 2.34765403083305e-19) + 2.17831661090841e-17) + 3.81040780305773e-14) + 3.39949050651094e-12;
473
474    a3 = fs*(fs*(fs*(fs*(fs*(fs*(-1.89521414595407e-32*fs - 2.54539366589378e-28) + 1.15126113023381e-24) + 4.50570017620913e-22) - 2.34765403083305e-19) - 1.08915830545421e-16) + 2.11689322392096e-14) + 5.66581751085156e-12;
475
476    a4 = fs*(fs*(fs*(fs*(fs*(fs*(1.89521414595407e-32*fs - 2.54539366589378e-28) - 1.15126113023381e-24) + 4.50570017620913e-22) + 2.34765403083305e-19) - 1.08915830545421e-16) - 2.11689322392096e-14) + 5.66581751085156e-12;
477
478    a5 = fs*(fs*(fs*(fs*(fs*(fs*(-1.13712848757244e-32*fs + 4.58170859860881e-28) - 2.30252226046762e-25) - 4.50570017620913e-22) + 2.34765403083305e-19) + 2.17831661090841e-17) - 3.81040780305773e-14) + 3.39949050651094e-12;
479
480    a6 = fs*(fs*(fs*(fs*(fs*(fs*(3.79042829190813e-33*fs - 2.54539366589378e-28) + 6.90756678140285e-25) - 1.50190005873638e-22) - 7.82551343611017e-20) + 6.53494983272524e-17) - 2.11689322392096e-14) + 1.13316350217031e-12;
481
482    a7 = fs*(fs*(fs*(fs*(fs*(fs*(-5.41489755986876e-34*fs + 5.09078733178756e-29) - 2.30252226046762e-25) + 1.50190005873638e-22) - 7.82551343611017e-20) + 2.17831661090841e-17) - 4.23378644784192e-15) + 1.61880500310045e-13;
483};
484
485
486/*******************************************************************************
487  * fatfrog_cab_p2 generated by dkbuiler from JMP_p2.sch
488*******************************************************************************/
489
490p6 = pre : fi.iir((b0/a0,b1/a0,b2/a0,b3/a0,b4/a0),(a1/a0,a2/a0,a3/a0,a4/a0)) with {
491    LogPot(a, x) = ba.if(a, (exp(a * x) - 1) / (exp(a) - 1), x);
492    Inverted(b, x) = ba.if(b, 1 - x, x);
493    s = 0.993;
494    fs = float(ma.SR);
495    pre = _;
496
497
498    b0 = 0.00504891959951124;
499
500    b1 = 0.0201956783980450;
501
502    b2 = 0.0302935175970674;
503
504    b3 = 0.0201956783980450;
505
506    b4 = 0.00504891959951124;
507
508    a0 = fs*(fs*(fs*(7.69566058426545e-20*fs + 3.51033127781783e-15) + 6.87327741113863e-11) + 8.30384029826822e-7) + 0.00504902057840812;
509
510    a1 = fs*(pow(fs,2)*(-3.07826423370618e-19*fs - 7.02066255563566e-15) + 1.66076805965364e-6) + 0.0201960823136325;
511
512    a2 = pow(fs,2)*(4.61739635055927e-19*pow(fs,2) - 1.37465548222773e-10) + 0.0302941234704487;
513
514    a3 = fs*(pow(fs,2)*(-3.07826423370618e-19*fs + 7.02066255563566e-15) - 1.66076805965364e-6) + 0.0201960823136325;
515
516    a4 = fs*(fs*(fs*(7.69566058426545e-20*fs - 3.51033127781783e-15) + 6.87327741113863e-11) - 8.30384029826822e-7) + 0.00504902057840812;
517};
518
519b1 = checkbox("Bright[name:Bright");
520
521process = ba.bypass_fade(ma.SR/10, b1, p1 : *(0.333)) : p2 : p3 : *(0.666) : p4 : *(0.666) : p5 : *(0.555) : p6 : *(0.555) ;
522
523