diff options
author | Damien Zammit <damien@zamaudio.com> | 2019-01-01 19:43:46 +1100 |
---|---|---|
committer | Damien Zammit <damien@zamaudio.com> | 2019-01-01 20:20:10 +1100 |
commit | 96ec0c7dbc9c034bc8716309b92fda84bb27cf92 (patch) | |
tree | d56044d30cdd2c00e1b0d42c4476011ee7af41af /plugins | |
parent | 2a4e1bb0e68da38baa1623bc81d6610f56f4ec82 (diff) |
Scale down caps
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/ZamTube/ZamTubePlugin.cpp | 2 | ||||
-rw-r--r-- | plugins/ZamTube/wdfcircuits.h | 25 |
2 files changed, 15 insertions, 12 deletions
diff --git a/plugins/ZamTube/ZamTubePlugin.cpp b/plugins/ZamTube/ZamTubePlugin.cpp index 9d845ff..ca149f2 100644 --- a/plugins/ZamTube/ZamTubePlugin.cpp +++ b/plugins/ZamTube/ZamTubePlugin.cpp @@ -951,7 +951,7 @@ void ZamTubePlugin::run(const float** inputs, float** outputs, uint32_t frames) in = fabs(in) < DANGER ? in : 0.f; double ViE = in*from_dB(tubedrive - 10.); - tubeout = e * ckt.advanc(ViE) * from_dB(40. - tubedrive); + tubeout = e * ckt.advanc(ViE) * from_dB(40. - tubedrive)*from_dB(-3.); if (!ckt.on) { tubeout = 0.0; } else { diff --git a/plugins/ZamTube/wdfcircuits.h b/plugins/ZamTube/wdfcircuits.h index 16504b1..f8d8a49 100644 --- a/plugins/ZamTube/wdfcircuits.h +++ b/plugins/ZamTube/wdfcircuits.h @@ -26,9 +26,9 @@ public: void updateRValues(Real C_Ci, Real C_Ck, Real C_Co, Real E_E250, Real R_E250, Real R_Rg, Real R_Ri, Real R_Rk, Real R_Ro, Real R_Vi, Real sampleRate, Triode& tube) { t = tube; Real ViR = R_Vi; - Real CiR = 1.0 / (2.0*C_Ci*sampleRate); - Real CkR = 1.0 / (2.0*C_Ck*sampleRate); - Real CoR = 1.0 / (2.0*C_Co*sampleRate); + CiR = 1.0 / (2.0*C_Ci*sampleRate); + CkR = 1.0 / (2.0*C_Ck*sampleRate); + CoR = 1.0 / (2.0*C_Co*sampleRate); Real RoR = R_Ro; Real RgR = R_Rg; Real RiR = R_Ri; @@ -74,16 +74,15 @@ public: Real advanc(Real VE){ ViE = VE; Real Ckb = Cka; - Real I3_3b3 = I3_3Gamma1 * Ckb; + Real I3_3b3 = I3_3Gamma1 * Ckb / CkR; Real Cib = Cia; - Real S0_3b3 = ViE + S0_3Gamma1*(Cib); - Real P0_3b3 = P0_3Gamma1*(-S0_3b3); - Real S1_3b3 = P0_3b3 + S1_3Gamma1*(P0_3b3); + Real S0_3b3 = (ViE + S0_3Gamma1 * Cib / CiR); + Real P0_3b3 = -P0_3Gamma1 * S0_3b3; + Real S1_3b3 = (P0_3b3 + S1_3Gamma1*(P0_3b3)); Real Cob = Coa; Real S2_3b3 = Cob; - Real P2_3b3 = E250E + P2_3Gamma1*(-S2_3b3); + Real P2_3b3 = (E250E - P2_3Gamma1 * S2_3b3); //Tube: K G P - //printf("K=%f G=%f P=%f\n", I3_3b3,-S1_3b3,P2_3b3); t.compute(I3_3b3,-S1_3b3,P2_3b3); Real b1 = t.getC(); Real b2 = t.getG(); @@ -91,8 +90,8 @@ public: //Set As Real I3_3b1 = (b1 - I3_3Gamma1*(b1 + Ckb)); Cka = I3_3b1; - Real S1_3b2 = P0_3b3 - b2 - S1_3Gamma1*(P0_3b3 - b2); - Real P0_3b1 = S1_3b2 + (-S0_3b3) - P0_3Gamma1*(S1_3b2 - S0_3b3); + Real S1_3b2 = (P0_3b3 - b2 - S1_3Gamma1*(P0_3b3 - b2)); + Real P0_3b1 = (S1_3b2 + (-S0_3b3) - P0_3Gamma1*(S1_3b2 - S0_3b3)); Real S0_3b1 = (Cib - P0_3b1 - S0_3Gamma1*(Cib - P0_3b1)); Cia = S0_3b1; Real P2_3b1 = (b3 - S2_3b3 - P2_3Gamma1*(b3 - S2_3b3)); @@ -100,6 +99,7 @@ public: Coa = S2_3b2; Real S2_3b1 = (Cob - P2_3b1 - S2_3Gamma1*(Cob - P2_3b1)); Real Roa = S2_3b1; + //printf("K=%f G=%f P=%f out=%f\n", I3_3b3,-S1_3b3,P2_3b3, Roa); return Roa; } @@ -110,6 +110,9 @@ private: Real Coa; //R values + Real CiR; + Real CkR; + Real CoR; Real I3_3Gamma1; Real E250E; Real ViE; |