summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2019-01-08 23:33:01 +1100
committerDamien Zammit <damien@zamaudio.com>2019-01-08 23:33:01 +1100
commita8d44772eca3959f777b529ffa7b4ad307de0536 (patch)
tree26d00cd27f9b929f96ba4f9fc0a2b540168626a8
parent1303d967b7fa26bbe2a5d11a9859d74aefe391d8 (diff)
Move tonestack coefficients to external file
-rw-r--r--plugins/ZamTube/Makefile3
-rw-r--r--plugins/ZamTube/ZamTubePlugin.cpp46
-rw-r--r--plugins/ZamTube/ZamTubePlugin.hpp31
-rw-r--r--plugins/ZamTube/tonestacks.cpp57
-rw-r--r--plugins/ZamTube/tonestacks.hpp33
5 files changed, 136 insertions, 34 deletions
diff --git a/plugins/ZamTube/Makefile b/plugins/ZamTube/Makefile
index 4420e46..c440694 100644
--- a/plugins/ZamTube/Makefile
+++ b/plugins/ZamTube/Makefile
@@ -14,7 +14,8 @@ NAME = ZamTube
FILES_DSP = \
ZamTubePlugin.cpp \
- triode.cpp
+ triode.cpp \
+ tonestacks.cpp
FILES_UI = \
ZamTubeArtwork.cpp \
diff --git a/plugins/ZamTube/ZamTubePlugin.cpp b/plugins/ZamTube/ZamTubePlugin.cpp
index e47db44..23ecc6e 100644
--- a/plugins/ZamTube/ZamTubePlugin.cpp
+++ b/plugins/ZamTube/ZamTubePlugin.cpp
@@ -19,6 +19,7 @@
*/
#include "ZamTubePlugin.hpp"
+#include "tonestacks.hpp"
#include "triode.h"
#include <stdio.h>
@@ -29,8 +30,44 @@ START_NAMESPACE_DISTRHO
ZamTubePlugin::ZamTubePlugin()
: Plugin(paramCount, 1, 0) // 1 program, 0 states
{
- // set default values
- loadProgram(0);
+ int i, j;
+
+ const float* tstacks[25] = {
+ Tonestacks::bassman,
+ Tonestacks::mesa,
+ Tonestacks::twin,
+ Tonestacks::princeton,
+ Tonestacks::jcm800,
+ Tonestacks::jcm2000,
+ Tonestacks::jtm45,
+ Tonestacks::mlead,
+ Tonestacks::m2199,
+ Tonestacks::ac30,
+ Tonestacks::ac15,
+ Tonestacks::soldano,
+ Tonestacks::sovtek,
+ Tonestacks::peavey,
+ Tonestacks::ibanez,
+ Tonestacks::roland,
+ Tonestacks::ampeg,
+ Tonestacks::ampegrev,
+ Tonestacks::bogner,
+ Tonestacks::groove,
+ Tonestacks::crunch,
+ Tonestacks::fenderblues,
+ Tonestacks::fender,
+ Tonestacks::fenderdeville,
+ Tonestacks::gibson
+ };
+
+ for (i = 0; i < 25; i++) {
+ for (j = 0; j < 7; j++) {
+ ts[i][j] = tstacks[i][j];
+ }
+ }
+
+ // set default values
+ loadProgram(0);
}
// -----------------------------------------------------------------------
@@ -200,7 +237,6 @@ void ZamTubePlugin::loadProgram(uint32_t index)
void ZamTubePlugin::activate()
{
-
T Fs = getSampleRate();
// Passive components
@@ -244,8 +280,8 @@ void ZamTubePlugin::activate()
fConst1 = faustpower<2>(fConst0);
fConst2 = (3 * fConst0);
for (int i=0; i<4; i++) fRec0[i] = 0;
-}
-
+
+}
void ZamTubePlugin::run(const float** inputs, float** outputs, uint32_t frames)
{
diff --git a/plugins/ZamTube/ZamTubePlugin.hpp b/plugins/ZamTube/ZamTubePlugin.hpp
index 9877eef..45568e5 100644
--- a/plugins/ZamTube/ZamTubePlugin.hpp
+++ b/plugins/ZamTube/ZamTubePlugin.hpp
@@ -160,34 +160,9 @@ Wave digital filter physical model of a triode tube amplifier stage, with modell
private:
float tubedrive,bass,middle,treble,tonestack,mastergain,insane; //parameters
- const float ts[25][7] = {
- // R1 R2 R3 R4 C1 C2 C3
- {250e+3,1e+6, 25e+3, 56e+3, 250e-12,20e-9, 20e-9},
- {250e+3,250e+3, 25e+3, 100e+3, 250e-12,100e-9, 47e-9},
- {250e+3,250e+3, 10e+3, 100e+3, 120e-12,100e-9, 47e-9},
- {250e+3,250e+3, 4.8e+3, 100e+3, 250e-12,100e-9, 47e-9},
- {220e+3,1e+6, 22e+3, 33e+3, 470e-12,22e-9, 22e-9},
- {250e+3,1e+6, 25e+3, 56e+3, 500e-12,22e-9, 22e-9},
- {250e+3,1e+6, 25e+3, 33e+3, 270e-12,22e-9, 22e-9},
- {250e+3,1e+6, 25e+3, 33e+3, 500e-12,22e-9, 22e-9},
- {250e+3,250e+3, 25e+3, 56e+3, 250e-12,47e-9, 47e-9},
- {1e+6, 1e+6, 10e+3, 100e+3, 50e-12, 22e-9, 22e-9},
- {220e+3,220e+3, 220e+3, 100e+3, 470e-12,100e-9, 47e-9},
- {250e+3,1e+6, 25e+3, 47e+3, 470e-12,20e-9, 20e-9},
- {500e+3,1e+6, 10e+3, 47e+3, 470e-12,22e-9, 22e-9},
- {250e+3,250e+3, 20e+3, 68e+3, 270e-12,22e-9, 22e-9},
- {250e+3,250e+3, 10e+3, 100e+3, 270e-12,100e-9, 40e-9},
- {250e+3,250e+3, 10e+3, 41e+3, 240e-12,33e-9, 82e-9},
- {250e+3,1e+6, 25e+3, 32e+3, 470e-12,22e-9, 22e-9},
- {250e+3,250e+3, 10e+3, 100e+3, 100e-12,100e-9, 47e-9},
- {250e+3,1e+6, 33e+3, 51e+3, 220e-12,15e-9, 47e-9},
- {220e+3,1e+6, 22e+3, 68e+3, 470e-12,22e-9, 22e-9},
- {220e+3,220e+3, 10e+3, 100e+3, 220e-12,47e-9, 47e-9},
- {250e+3,250e+3, 25e+3, 100e+3, 250e-12,22e-9, 22e-9},
- {250e+3,250e+3, 10e+3, 100e+3, 250e-12,100e-9, 47e-9},
- {250e+3,250e+3, 25e+3, 130e+3, 250e-12,100e-9, 22e-9},
- {1e+6, 1e+6, 94e+3, 270e+3, 25e-12, 60e-9, 20e-9}
- };
+
+ float ts[25][7];
+
};
// -----------------------------------------------------------------------
diff --git a/plugins/ZamTube/tonestacks.cpp b/plugins/ZamTube/tonestacks.cpp
new file mode 100644
index 0000000..59e80d3
--- /dev/null
+++ b/plugins/ZamTube/tonestacks.cpp
@@ -0,0 +1,57 @@
+#include "tonestacks.hpp"
+
+static const float tones[] = {
+// R1 R2 R3 R4 C1 C2 C3
+ 250e+3,1e+6, 25e+3, 56e+3, 250e-12,20e-9, 20e-9,
+ 250e+3,250e+3, 25e+3, 100e+3, 250e-12,100e-9, 47e-9,
+ 250e+3,250e+3, 10e+3, 100e+3, 120e-12,100e-9, 47e-9,
+ 250e+3,250e+3, 4.8e+3, 100e+3, 250e-12,100e-9, 47e-9,
+ 220e+3,1e+6, 22e+3, 33e+3, 470e-12,22e-9, 22e-9,
+ 250e+3,1e+6, 25e+3, 56e+3, 500e-12,22e-9, 22e-9,
+ 250e+3,1e+6, 25e+3, 33e+3, 270e-12,22e-9, 22e-9,
+ 250e+3,1e+6, 25e+3, 33e+3, 500e-12,22e-9, 22e-9,
+ 250e+3,250e+3, 25e+3, 56e+3, 250e-12,47e-9, 47e-9,
+ 1e+6, 1e+6, 10e+3, 100e+3, 50e-12, 22e-9, 22e-9,
+ 220e+3,220e+3, 220e+3, 100e+3, 470e-12,100e-9, 47e-9,
+ 250e+3,1e+6, 25e+3, 47e+3, 470e-12,20e-9, 20e-9,
+ 500e+3,1e+6, 10e+3, 47e+3, 470e-12,22e-9, 22e-9,
+ 250e+3,250e+3, 20e+3, 68e+3, 270e-12,22e-9, 22e-9,
+ 250e+3,250e+3, 10e+3, 100e+3, 270e-12,100e-9, 40e-9,
+ 250e+3,250e+3, 10e+3, 41e+3, 240e-12,33e-9, 82e-9,
+ 250e+3,1e+6, 25e+3, 32e+3, 470e-12,22e-9, 22e-9,
+ 250e+3,250e+3, 10e+3, 100e+3, 100e-12,100e-9, 47e-9,
+ 250e+3,1e+6, 33e+3, 51e+3, 220e-12,15e-9, 47e-9,
+ 220e+3,1e+6, 22e+3, 68e+3, 470e-12,22e-9, 22e-9,
+ 220e+3,220e+3, 10e+3, 100e+3, 220e-12,47e-9, 47e-9,
+ 250e+3,250e+3, 25e+3, 100e+3, 250e-12,22e-9, 22e-9,
+ 250e+3,250e+3, 10e+3, 100e+3, 250e-12,100e-9, 47e-9,
+ 250e+3,250e+3, 25e+3, 130e+3, 250e-12,100e-9, 22e-9,
+ 1e+6, 1e+6, 94e+3, 270e+3, 25e-12, 60e-9, 20e-9
+};
+
+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];
+const float* Tonestacks::princeton = (const float*)&tones[3*7];
+const float* Tonestacks::jcm800 = (const float*)&tones[4*7];
+const float* Tonestacks::jcm2000 = (const float*)&tones[5*7];
+const float* Tonestacks::jtm45 = (const float*)&tones[6*7];
+const float* Tonestacks::mlead = (const float*)&tones[7*7];
+const float* Tonestacks::m2199 = (const float*)&tones[8*7];
+const float* Tonestacks::ac30 = (const float*)&tones[9*7];
+const float* Tonestacks::ac15 = (const float*)&tones[10*7];
+const float* Tonestacks::soldano = (const float*)&tones[11*7];
+const float* Tonestacks::sovtek = (const float*)&tones[12*7];
+const float* Tonestacks::peavey = (const float*)&tones[13*7];
+const float* Tonestacks::ibanez = (const float*)&tones[14*7];
+const float* Tonestacks::roland = (const float*)&tones[15*7];
+const float* Tonestacks::ampeg = (const float*)&tones[16*7];
+const float* Tonestacks::ampegrev = (const float*)&tones[17*7];
+const float* Tonestacks::bogner = (const float*)&tones[18*7];
+const float* Tonestacks::groove = (const float*)&tones[19*7];
+const float* Tonestacks::crunch = (const float*)&tones[20*7];
+const float* Tonestacks::fenderblues = (const float*)&tones[21*7];
+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];
+
diff --git a/plugins/ZamTube/tonestacks.hpp b/plugins/ZamTube/tonestacks.hpp
new file mode 100644
index 0000000..67ce826
--- /dev/null
+++ b/plugins/ZamTube/tonestacks.hpp
@@ -0,0 +1,33 @@
+#ifndef TONESTACKS_HPP
+#define TONESTACKS_HPP
+
+namespace Tonestacks
+{
+ extern const float* bassman;
+ extern const float* mesa;
+ extern const float* twin;
+ extern const float* princeton;
+ extern const float* jcm800;
+ extern const float* jcm2000;
+ extern const float* jtm45;
+ extern const float* mlead;
+ extern const float* m2199;
+ extern const float* ac30;
+ extern const float* ac15;
+ extern const float* soldano;
+ extern const float* sovtek;
+ extern const float* peavey;
+ extern const float* ibanez;
+ extern const float* roland;
+ extern const float* ampeg;
+ extern const float* ampegrev;
+ extern const float* bogner;
+ extern const float* groove;
+ extern const float* crunch;
+ extern const float* fenderblues;
+ extern const float* fender;
+ extern const float* fenderdeville;
+ extern const float* gibson;
+}
+
+#endif