From 7288da797ca8751df64d8dca7778c66078f40f0b Mon Sep 17 00:00:00 2001 From: Damien Zammit Date: Sun, 27 Jan 2019 19:45:32 +1100 Subject: Adjust gain so switching tonestack models balance out at 1kHz --- plugins/ZamTube/ZamTubePlugin.cpp | 5 +++-- plugins/ZamTube/tonestacks.cpp | 29 +++++++++++++++++++++++++++++ plugins/ZamTube/tonestacks.hpp | 2 ++ 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/plugins/ZamTube/ZamTubePlugin.cpp b/plugins/ZamTube/ZamTubePlugin.cpp index 408c51b..03b6f80 100644 --- a/plugins/ZamTube/ZamTubePlugin.cpp +++ b/plugins/ZamTube/ZamTubePlugin.cpp @@ -301,7 +301,8 @@ void ZamTubePlugin::deactivate() void ZamTubePlugin::run(const float** inputs, float** outputs, uint32_t frames) { - uint8_t stack = (uint8_t)tonestack > 24 ? 24 : (uint8_t)tonestack; + const uint8_t stack = (uint8_t)tonestack > 24 ? 24 : (uint8_t)tonestack; + const float adjustdb = Tonestacks::adjustdb[stack]; float fSlow0 = float(ts[stack][R4]); float fSlow1 = float(ts[stack][R3]); @@ -355,7 +356,7 @@ void ZamTubePlugin::run(const float** inputs, float** outputs, uint32_t frames) float cut = insane ? 0. : 15.; float pregain = from_dB(tubedrive*3.6364 - cut); - float postgain = from_dB(mastergain + cut + 5. + 42. * (1. - log1p(tubedrive/11.))); + float postgain = from_dB(mastergain + cut + adjustdb + 5. + 42. * (1. - log1p(tubedrive/11.))); for (uint32_t i = 0; i < frames; ++i) { diff --git a/plugins/ZamTube/tonestacks.cpp b/plugins/ZamTube/tonestacks.cpp index 59e80d3..10ec601 100644 --- a/plugins/ZamTube/tonestacks.cpp +++ b/plugins/ZamTube/tonestacks.cpp @@ -29,6 +29,34 @@ static const float tones[] = { 1e+6, 1e+6, 94e+3, 270e+3, 25e-12, 60e-9, 20e-9 }; +static const float levels[] = { + 8., + 10., + 17., + 13., + 5., + 5., + 6., + 4., + 8., + 15., + 1., + 5., + 4., + 9., + 11., + 10., + 4., + 19., + 7., + 7., + 14., + 10., + 12., + 10., + 12. +}; + const float* Tonestacks::bassman = (const float*)&tones[0]; const float* Tonestacks::mesa = (const float*)&tones[1*7]; const float* Tonestacks::twin = (const float*)&tones[2*7]; @@ -55,3 +83,4 @@ const float* Tonestacks::fender = (const float*)&tones[22*7]; const float* Tonestacks::fenderdeville = (const float*)&tones[23*7]; const float* Tonestacks::gibson = (const float*)&tones[24*7]; +const float* Tonestacks::adjustdb = (const float*)&levels[0]; diff --git a/plugins/ZamTube/tonestacks.hpp b/plugins/ZamTube/tonestacks.hpp index 67ce826..13eb1d4 100644 --- a/plugins/ZamTube/tonestacks.hpp +++ b/plugins/ZamTube/tonestacks.hpp @@ -28,6 +28,8 @@ namespace Tonestacks extern const float* fender; extern const float* fenderdeville; extern const float* gibson; + + extern const float* adjustdb; } #endif -- cgit v1.2.3