From a8d44772eca3959f777b529ffa7b4ad307de0536 Mon Sep 17 00:00:00 2001 From: Damien Zammit Date: Tue, 8 Jan 2019 23:33:01 +1100 Subject: Move tonestack coefficients to external file --- plugins/ZamTube/Makefile | 3 ++- plugins/ZamTube/ZamTubePlugin.cpp | 46 +++++++++++++++++++++++++++---- plugins/ZamTube/ZamTubePlugin.hpp | 31 +++------------------ plugins/ZamTube/tonestacks.cpp | 57 +++++++++++++++++++++++++++++++++++++++ plugins/ZamTube/tonestacks.hpp | 33 +++++++++++++++++++++++ 5 files changed, 136 insertions(+), 34 deletions(-) create mode 100644 plugins/ZamTube/tonestacks.cpp create mode 100644 plugins/ZamTube/tonestacks.hpp 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 @@ -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 -- cgit v1.2.3