summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2019-01-27 19:45:32 +1100
committerDamien Zammit <damien@zamaudio.com>2019-01-27 19:45:32 +1100
commit7288da797ca8751df64d8dca7778c66078f40f0b (patch)
treed6f9d52064a8470b3377526d26f7b4d896ca1164
parent0ec51df8c4b102b7ffa9146d5dcb8fef5b38b9d9 (diff)
Adjust gain so switching tonestack models balance out at 1kHz
-rw-r--r--plugins/ZamTube/ZamTubePlugin.cpp5
-rw-r--r--plugins/ZamTube/tonestacks.cpp29
-rw-r--r--plugins/ZamTube/tonestacks.hpp2
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