aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/WinVST/BussColors4
diff options
context:
space:
mode:
authorChris Johnson <jinx6568@sover.net>2018-10-22 18:04:06 -0400
committerChris Johnson <jinx6568@sover.net>2018-10-22 18:04:06 -0400
commit633be2e22c6648c901f08f3b4cd4e8e14ea86443 (patch)
tree1e272c3d2b5bd29636b9f9f521af62734e4df012 /plugins/WinVST/BussColors4
parent057757aa8eb0a463caf0cdfdb5894ac5f723ff3f (diff)
downloadairwindows-lv2-port-633be2e22c6648c901f08f3b4cd4e8e14ea86443.tar.gz
airwindows-lv2-port-633be2e22c6648c901f08f3b4cd4e8e14ea86443.tar.bz2
airwindows-lv2-port-633be2e22c6648c901f08f3b4cd4e8e14ea86443.zip
Updates (in case my plane crashes)
Diffstat (limited to 'plugins/WinVST/BussColors4')
-rwxr-xr-xplugins/WinVST/BussColors4/.vs/Console4Channel64/v14/.suobin0 -> 32768 bytes
-rwxr-xr-xplugins/WinVST/BussColors4/.vs/VSTProject/v14/.suobin0 -> 23040 bytes
-rwxr-xr-xplugins/WinVST/BussColors4/BussColors4.cpp199
-rwxr-xr-xplugins/WinVST/BussColors4/BussColors4.h85
-rwxr-xr-xplugins/WinVST/BussColors4/BussColors4Proc.cpp1644
-rwxr-xr-xplugins/WinVST/BussColors4/VSTProject.sln28
-rwxr-xr-xplugins/WinVST/BussColors4/VSTProject.vcxproj183
-rwxr-xr-xplugins/WinVST/BussColors4/VSTProject.vcxproj.filters48
-rwxr-xr-xplugins/WinVST/BussColors4/VSTProject.vcxproj.user19
-rwxr-xr-xplugins/WinVST/BussColors4/vstplug.def3
10 files changed, 2209 insertions, 0 deletions
diff --git a/plugins/WinVST/BussColors4/.vs/Console4Channel64/v14/.suo b/plugins/WinVST/BussColors4/.vs/Console4Channel64/v14/.suo
new file mode 100755
index 0000000..777b846
--- /dev/null
+++ b/plugins/WinVST/BussColors4/.vs/Console4Channel64/v14/.suo
Binary files differ
diff --git a/plugins/WinVST/BussColors4/.vs/VSTProject/v14/.suo b/plugins/WinVST/BussColors4/.vs/VSTProject/v14/.suo
new file mode 100755
index 0000000..8ad21ec
--- /dev/null
+++ b/plugins/WinVST/BussColors4/.vs/VSTProject/v14/.suo
Binary files differ
diff --git a/plugins/WinVST/BussColors4/BussColors4.cpp b/plugins/WinVST/BussColors4/BussColors4.cpp
new file mode 100755
index 0000000..720dbf9
--- /dev/null
+++ b/plugins/WinVST/BussColors4/BussColors4.cpp
@@ -0,0 +1,199 @@
+/* ========================================
+ * BussColors4 - BussColors4.h
+ * Copyright (c) 2016 airwindows, All rights reserved
+ * ======================================== */
+
+#ifndef __BussColors4_H
+#include "BussColors4.h"
+#endif
+
+AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new BussColors4(audioMaster);}
+
+BussColors4::BussColors4(audioMasterCallback audioMaster) :
+ AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
+{
+ A = 0.0;
+ B = 0.5;
+ C = 0.5;
+ D = 1.0;
+
+ for (int count = 0; count < 174; count++) {bL[count] = 0; bR[count] = 0;}
+ for (int count = 0; count < 99; count++) {dL[count] = 0; dR[count] = 0;}
+ for (int count = 0; count < 34; count++) c[count] = count; //initial setup for 44.1K
+ g[1] = pow(10.0, -5.2 / 14.0); //dark
+ g[2] = pow(10.0, -6.2 / 14.0); //rock
+ g[3] = pow(10.0, -2.9 / 14.0); //lush
+ g[4] = pow(10.0, -1.1 / 14.0); //vibe
+ g[5] = pow(10.0, -5.1 / 14.0); //holo
+ g[6] = pow(10.0, -3.6 / 14.0); //punch
+ g[7] = pow(10.0, -2.3 / 14.0); //steel
+ g[8] = pow(10.0, -2.9 / 14.0); //tube
+ //preset gains for models
+ outg[1] = pow(10.0, -0.3 / 14.0); //dark
+ outg[2] = pow(10.0, 0.5 / 14.0); //rock
+ outg[3] = pow(10.0, -0.7 / 14.0); //lush
+ outg[4] = pow(10.0, -0.6 / 14.0); //vibe
+ outg[5] = pow(10.0, -0.2 / 14.0); //holo
+ outg[6] = pow(10.0, 0.3 / 14.0); //punch
+ outg[7] = pow(10.0, 0.1 / 14.0); //steel
+ outg[8] = pow(10.0, 0.9 / 14.0); //tube
+ //preset gains for models
+ controlL = 0;
+ controlR = 0;
+ slowdynL = 0;
+ slowdynR = 0;
+ gcount = 0;
+
+ fpNShapeLA = 0.0;
+ fpNShapeLB = 0.0;
+ fpNShapeRA = 0.0;
+ fpNShapeRB = 0.0;
+ fpFlip = true;
+ //this is reset: values being initialized only once. Startup values, whatever they are.
+
+ _canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
+ _canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
+ _canDo.insert("x2in2out");
+ setNumInputs(kNumInputs);
+ setNumOutputs(kNumOutputs);
+ setUniqueID(kUniqueId);
+ canProcessReplacing(); // supports output replacing
+ canDoubleReplacing(); // supports double precision processing
+ programsAreChunks(true);
+ vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
+}
+
+BussColors4::~BussColors4() {}
+VstInt32 BussColors4::getVendorVersion () {return 1000;}
+void BussColors4::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
+void BussColors4::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
+//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
+//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
+
+static float pinParameter(float data)
+{
+ if (data < 0.0f) return 0.0f;
+ if (data > 1.0f) return 1.0f;
+ return data;
+}
+
+VstInt32 BussColors4::getChunk (void** data, bool isPreset)
+{
+ float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
+ chunkData[0] = A;
+ chunkData[1] = B;
+ chunkData[2] = C;
+ chunkData[3] = D;
+ /* Note: The way this is set up, it will break if you manage to save settings on an Intel
+ machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
+ started with. */
+
+ *data = chunkData;
+ return kNumParameters * sizeof(float);
+}
+
+VstInt32 BussColors4::setChunk (void* data, VstInt32 byteSize, bool isPreset)
+{
+ float *chunkData = (float *)data;
+ A = pinParameter(chunkData[0]);
+ B = pinParameter(chunkData[1]);
+ C = pinParameter(chunkData[2]);
+ D = pinParameter(chunkData[3]);
+ /* We're ignoring byteSize as we found it to be a filthy liar */
+
+ /* calculate any other fields you need here - you could copy in
+ code from setParameter() here. */
+ return 0;
+}
+
+void BussColors4::setParameter(VstInt32 index, float value) {
+ switch (index) {
+ case kParamA: A = value; break;
+ case kParamB: B = value; break; //percent. Using this value, it'll be 0-100 everywhere
+ case kParamC: C = value; break;
+ case kParamD: D = value; break; //this is the popup, stored as a float
+ default: throw; // unknown parameter, shouldn't happen!
+ }
+ //we can also set other defaults here, and do calculations that only have to happen
+ //once when parameters actually change. Here is the 'popup' setting its (global) values.
+ //variables can also be set in the processreplacing loop, and there they'll be set every buffersize
+ //here they're set when a parameter's actually changed, which should be less frequent, but
+ //you must use global variables in the BussColors4.h file to do it.
+ switch((VstInt32)( D * 3.999 ))
+ {
+ case 0: fpFlip = true; break; //choice A
+ case 1: fpFlip = false; break; //choice B
+ case 2: break; //choice C
+ case 3: break; //choice D
+ default: break; //should not happen
+ }
+ //this relates to using D as a 'popup' and changing things based on that switch.
+ //we are using fpFlip just because it's already there globally, as an example.
+}
+
+float BussColors4::getParameter(VstInt32 index) {
+ switch (index) {
+ case kParamA: return A; break;
+ case kParamB: return B; break;
+ case kParamC: return C; break;
+ case kParamD: return D; break;
+ default: break; // unknown parameter, shouldn't happen!
+ } return 0.0; //we only need to update the relevant name, this is simple to manage
+}
+
+void BussColors4::getParameterName(VstInt32 index, char *text) {
+ switch (index) {
+ case kParamA: vst_strncpy (text, "Color", kVstMaxParamStrLen); break;
+ case kParamB: vst_strncpy (text, "Input Trim", kVstMaxParamStrLen); break;
+ case kParamC: vst_strncpy (text, "Output Trim", kVstMaxParamStrLen); break;
+ case kParamD: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break;
+ default: break; // unknown parameter, shouldn't happen!
+ } //this is our labels for displaying in the VST host
+}
+
+void BussColors4::getParameterDisplay(VstInt32 index, char *text) {
+ switch (index) {
+ case kParamA: switch((VstInt32)( A * 7.999 )) //0 to almost edge of # of params
+ {case 0: vst_strncpy (text, "Dark", kVstMaxParamStrLen); break;
+ case 1: vst_strncpy (text, "Rock", kVstMaxParamStrLen); break;
+ case 2: vst_strncpy (text, "Lush", kVstMaxParamStrLen); break;
+ case 3: vst_strncpy (text, "Vibe", kVstMaxParamStrLen); break;
+ case 4: vst_strncpy (text, "Holo", kVstMaxParamStrLen); break;
+ case 5: vst_strncpy (text, "Punch", kVstMaxParamStrLen); break;
+ case 6: vst_strncpy (text, "Steel", kVstMaxParamStrLen); break;
+ case 7: vst_strncpy (text, "Tube", kVstMaxParamStrLen); break;
+ default: break; // unknown parameter, shouldn't happen!
+ } break; //completed A 'popup' parameter, exit
+ case kParamB: float2string ((B * 36.0)-18.0, text, kVstMaxParamStrLen); break;
+ case kParamC: float2string ((C * 36.0)-18.0, text, kVstMaxParamStrLen); break;
+ case kParamD: float2string (D, text, kVstMaxParamStrLen); break;
+ default: break; // unknown parameter, shouldn't happen!
+ } //this displays the values and handles 'popups' where it's discrete choices
+}
+
+void BussColors4::getParameterLabel(VstInt32 index, char *text) {
+ switch (index) {
+ case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
+ case kParamB: vst_strncpy (text, "dB", kVstMaxParamStrLen); break;
+ case kParamC: vst_strncpy (text, "dB", kVstMaxParamStrLen); break;
+ case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
+ default: break; // unknown parameter, shouldn't happen!
+ }
+}
+
+VstInt32 BussColors4::canDo(char *text)
+{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
+
+bool BussColors4::getEffectName(char* name) {
+ vst_strncpy(name, "BussColors4", kVstMaxProductStrLen); return true;
+}
+
+VstPlugCategory BussColors4::getPlugCategory() {return kPlugCategEffect;}
+
+bool BussColors4::getProductString(char* text) {
+ vst_strncpy (text, "airwindows BussColors4", kVstMaxProductStrLen); return true;
+}
+
+bool BussColors4::getVendorString(char* text) {
+ vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
+}
diff --git a/plugins/WinVST/BussColors4/BussColors4.h b/plugins/WinVST/BussColors4/BussColors4.h
new file mode 100755
index 0000000..d07460e
--- /dev/null
+++ b/plugins/WinVST/BussColors4/BussColors4.h
@@ -0,0 +1,85 @@
+/* ========================================
+ * BussColors4 - BussColors4.h
+ * Created 8/12/11 by SPIAdmin
+ * Copyright (c) 2011 __MyCompanyName__, All rights reserved
+ * ======================================== */
+
+#ifndef __BussColors4_H
+#define __BussColors4_H
+
+#ifndef __audioeffect__
+#include "audioeffectx.h"
+#endif
+
+#include <set>
+#include <string>
+#include <math.h>
+
+enum {
+ kParamA = 0,
+ kParamB = 1,
+ kParamC = 2,
+ kParamD = 3,
+ kNumParameters = 4
+}; //
+
+const int kNumPrograms = 0;
+const int kNumInputs = 2;
+const int kNumOutputs = 2;
+const unsigned long kUniqueId = 'bsc4'; //Change this to what the AU identity is!
+
+class BussColors4 :
+ public AudioEffectX
+{
+public:
+ BussColors4(audioMasterCallback audioMaster);
+ ~BussColors4();
+ virtual bool getEffectName(char* name); // The plug-in name
+ virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in
+ virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg
+ virtual bool getVendorString(char* text); // Vendor info
+ virtual VstInt32 getVendorVersion(); // Version number
+ virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
+ virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames);
+ virtual void getProgramName(char *name); // read the name from the host
+ virtual void setProgramName(char *name); // changes the name of the preset displayed in the host
+ virtual VstInt32 getChunk (void** data, bool isPreset);
+ virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
+ virtual float getParameter(VstInt32 index); // get the parameter value at the specified index
+ virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value
+ virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB)
+ virtual void getParameterName(VstInt32 index, char *text); // name of the parameter
+ virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value
+ virtual VstInt32 canDo(char *text);
+private:
+ char _programName[kVstMaxProgNameLen + 1];
+ std::set< std::string > _canDo;
+
+ double bL[175]; //full buffer for high sample rates. Scales to 192K
+ double bR[175]; //full buffer for high sample rates. Scales to 192K
+ double dL[100]; //buffer for calculating sag as it relates to the dynamic impulse synthesis. To 192K.
+ double dR[100]; //buffer for calculating sag as it relates to the dynamic impulse synthesis. To 192K.
+ int c[35]; //just the number of taps we use, doesn't have to scale
+ double g[9]; //console model
+ double outg[9]; //console model
+ double controlL;
+ double controlR;
+ double slowdynL;
+ double slowdynR;
+ int gcount;
+
+ long double fpNShapeLA;
+ long double fpNShapeLB;
+ long double fpNShapeRA;
+ long double fpNShapeRB;
+ bool fpFlip;
+ //default stuff
+
+ float A;
+ float B;
+ float C;
+ float D; //parameters. Always 0-1, and we scale/alter them elsewhere.
+
+};
+
+#endif
diff --git a/plugins/WinVST/BussColors4/BussColors4Proc.cpp b/plugins/WinVST/BussColors4/BussColors4Proc.cpp
new file mode 100755
index 0000000..2629ee8
--- /dev/null
+++ b/plugins/WinVST/BussColors4/BussColors4Proc.cpp
@@ -0,0 +1,1644 @@
+/* ========================================
+ * BussColors4 - BussColors4.h
+ * Copyright (c) 2016 airwindows, All rights reserved
+ * ======================================== */
+
+#ifndef __BussColors4_H
+#include "BussColors4.h"
+#endif
+
+void BussColors4::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
+{
+ float* in1 = inputs[0];
+ float* in2 = inputs[1];
+ float* out1 = outputs[0];
+ float* out2 = outputs[1];
+
+ double overallscale = 1.0;
+ overallscale /= 44100.0;
+ overallscale *= getSampleRate();
+ if (overallscale < 1.0) overallscale = 1.0;
+ if (overallscale > 4.5) overallscale = 4.5;
+ const int maxConvolutionBufferSize = (int)(34.0 * overallscale); //we won't use more of the buffer than we have to
+ for (int count = 0; count < 34; count++) c[count] = (int)(count * overallscale); //assign conv taps
+ double drySampleL;
+ double drySampleR;
+ double applyconvL;
+ double applyconvR;
+ int offsetA = 3;
+ double dynamicconvL = 3.0;
+ double dynamicconvR = 3.0;
+ double gain = 0.436;
+ double outgain = 1.0;
+ double bridgerectifier;
+ float fpTemp;
+ long double fpOld = 0.618033988749894848204586; //golden ratio!
+ long double fpNew = 1.0 - fpOld;
+
+ long double inputSampleL;
+ long double inputSampleR;
+
+ int console = (int)( A * 7.999 )+1; //the AU used a 1-8 index, will just keep it
+ switch (console)
+ {
+ case 1: offsetA = 4; gain = g[1]; outgain = outg[1]; break; //Dark (Focusrite)
+ case 2: offsetA = 3; gain = g[2]; outgain = outg[2]; break; //Rock (SSL)
+ case 3: offsetA = 5; gain = g[3]; outgain = outg[3]; break; //Lush (Neve)
+ case 4: offsetA = 8; gain = g[4]; outgain = outg[4]; break; //Vibe (Elation)
+ case 5: offsetA = 5; gain = g[5]; outgain = outg[5]; break; //Holo (Precision 8)
+ case 6: offsetA = 7; gain = g[6]; outgain = outg[6]; break; //Punch (API)
+ case 7: offsetA = 7; gain = g[7]; outgain = outg[7]; break; //Steel (Calibre)
+ case 8: offsetA = 6; gain = g[8]; outgain = outg[8]; break; //Tube (Manley)
+ }
+ offsetA = (int)(offsetA * overallscale); //we extend the sag buffer too, at high sample rates
+ if (offsetA < 3) offsetA = 3; //are we getting divides by zero?
+ gain *= pow(10.0,((B * 36.0)-18.0)/14.0); //add adjustment factor
+ outgain *= pow(10.0,(((C * 36.0)-18.0)+3.3)/14.0); //add adjustment factor
+ double wet = D;
+ double dry = 1.0 - wet;
+
+ while (--sampleFrames >= 0)
+ {
+ inputSampleL = *in1;
+ inputSampleR = *in2;
+ if (inputSampleL<1.2e-38 && -inputSampleL<1.2e-38) {
+ static int noisesource = 0;
+ //this declares a variable before anything else is compiled. It won't keep assigning
+ //it to 0 for every sample, it's as if the declaration doesn't exist in this context,
+ //but it lets me add this denormalization fix in a single place rather than updating
+ //it in three different locations. The variable isn't thread-safe but this is only
+ //a random seed and we can share it with whatever.
+ noisesource = noisesource % 1700021; noisesource++;
+ int residue = noisesource * noisesource;
+ residue = residue % 170003; residue *= residue;
+ residue = residue % 17011; residue *= residue;
+ residue = residue % 1709; residue *= residue;
+ residue = residue % 173; residue *= residue;
+ residue = residue % 17;
+ double applyresidue = residue;
+ applyresidue *= 0.00000001;
+ applyresidue *= 0.00000001;
+ inputSampleL = applyresidue;
+ }
+ if (inputSampleR<1.2e-38 && -inputSampleR<1.2e-38) {
+ static int noisesource = 0;
+ noisesource = noisesource % 1700021; noisesource++;
+ int residue = noisesource * noisesource;
+ residue = residue % 170003; residue *= residue;
+ residue = residue % 17011; residue *= residue;
+ residue = residue % 1709; residue *= residue;
+ residue = residue % 173; residue *= residue;
+ residue = residue % 17;
+ double applyresidue = residue;
+ applyresidue *= 0.00000001;
+ applyresidue *= 0.00000001;
+ inputSampleR = applyresidue;
+ //this denormalization routine produces a white noise at -300 dB which the noise
+ //shaping will interact with to produce a bipolar output, but the noise is actually
+ //all positive. That should stop any variables from going denormal, and the routine
+ //only kicks in if digital black is input. As a final touch, if you save to 24-bit
+ //the silence will return to being digital black again.
+ }
+ drySampleL = inputSampleL;
+ drySampleR = inputSampleR;
+
+ if (gain != 1.0) {
+ inputSampleL *= gain;
+ inputSampleR *= gain;
+ }
+
+
+ bridgerectifier = fabs(inputSampleL);
+ slowdynL *= 0.999;
+ slowdynL += bridgerectifier;
+ if (slowdynL > 1.5) {slowdynL = 1.5;}
+ //before the iron bar- fry console for crazy behavior
+ dynamicconvL = 2.5 + slowdynL;
+
+ if (bridgerectifier > 1.57079633) bridgerectifier = 1.0;
+ else bridgerectifier = sin(bridgerectifier);
+ if (inputSampleL > 0) inputSampleL = bridgerectifier;
+ else inputSampleL = -bridgerectifier;
+ //end pre saturation stage L
+
+ bridgerectifier = fabs(inputSampleR);
+ slowdynR *= 0.999;
+ slowdynR += bridgerectifier;
+ if (slowdynR > 1.5) {slowdynR = 1.5;}
+ //before the iron bar- fry console for crazy behavior
+ dynamicconvR = 2.5 + slowdynR;
+
+ if (bridgerectifier > 1.57079633) bridgerectifier = 1.0;
+ else bridgerectifier = sin(bridgerectifier);
+ if (inputSampleR > 0) inputSampleR = bridgerectifier;
+ else inputSampleR = -bridgerectifier;
+ //end pre saturation stage R
+
+ if (gcount < 0 || gcount > 44) gcount = 44;
+
+ dL[gcount+44] = dL[gcount] = fabs(inputSampleL);
+ controlL += (dL[gcount] / offsetA);
+ controlL -= (dL[gcount+offsetA] / offsetA);
+ controlL -= 0.000001;
+ if (controlL < 0) controlL = 0;
+ if (controlL > 100) controlL = 100;
+ applyconvL = (controlL / offsetA) * dynamicconvL;
+ //now we have a 'sag' style average to apply to the conv, L
+
+ dR[gcount+44] = dR[gcount] = fabs(inputSampleR);
+ controlR += (dR[gcount] / offsetA);
+ controlR -= (dR[gcount+offsetA] / offsetA);
+ controlR -= 0.000001;
+ if (controlR < 0) controlR = 0;
+ if (controlR > 100) controlR = 100;
+ applyconvR = (controlR / offsetA) * dynamicconvR;
+ //now we have a 'sag' style average to apply to the conv, R
+
+ gcount--;
+
+ //now the convolution
+ for (int count = maxConvolutionBufferSize; count > 0; --count) {bL[count] = bL[count-1];} //was 173
+ //we're only doing assigns, and it saves us an add inside the convolution calculation
+ //therefore, we'll just assign everything one step along and have our buffer that way.
+ bL[0] = inputSampleL;
+
+ for (int count = maxConvolutionBufferSize; count > 0; --count) {bR[count] = bR[count-1];} //was 173
+ //we're only doing assigns, and it saves us an add inside the convolution calculation
+ //therefore, we'll just assign everything one step along and have our buffer that way.
+ bR[0] = inputSampleR;
+ //The reason these are separate is, since it's just a big assign-fest, it's possible compilers can
+ //come up with a clever way to do it. Interleaving the samples might make it enough more complicated
+ //that the compiler wouldn't know to do 'em in batches or whatever. Just a thought, profiling would
+ //be the correct way to find out this (or indeed, whether doing another add insode the convolutions would
+ //be the best bet,
+
+ //The convolutions!
+
+ switch (console)
+ {
+ case 1:
+ //begin Cider (Focusrite) MCI
+ inputSampleL += (bL[c[1]] * (0.61283288942201319 + (0.00024011410669522*applyconvL)));
+ inputSampleL -= (bL[c[2]] * (0.24036380659761222 - (0.00020789518206241*applyconvL)));
+ inputSampleL += (bL[c[3]] * (0.09104669761717916 + (0.00012829642741548*applyconvL)));
+ inputSampleL -= (bL[c[4]] * (0.02378290768554025 - (0.00017673646470440*applyconvL)));
+ inputSampleL -= (bL[c[5]] * (0.02832818490275965 - (0.00013536187747384*applyconvL)));
+ inputSampleL += (bL[c[6]] * (0.03268797679215937 + (0.00015035126653359*applyconvL)));
+ inputSampleL -= (bL[c[7]] * (0.04024464202655586 - (0.00015034923056735*applyconvL)));
+ inputSampleL += (bL[c[8]] * (0.01864890074318696 + (0.00014513281680642*applyconvL)));
+ inputSampleL -= (bL[c[9]] * (0.01632731954100322 - (0.00015509089075614*applyconvL)));
+ inputSampleL -= (bL[c[10]] * (0.00318907090555589 - (0.00014784812076550*applyconvL)));
+ inputSampleL -= (bL[c[11]] * (0.00208573465221869 - (0.00015350520779465*applyconvL)));
+ inputSampleL -= (bL[c[12]] * (0.00907033901519614 - (0.00015442964157250*applyconvL)));
+ inputSampleL -= (bL[c[13]] * (0.00199458794148013 - (0.00015595640046297*applyconvL)));
+ inputSampleL -= (bL[c[14]] * (0.00705979153201755 - (0.00015730069418051*applyconvL)));
+ inputSampleL -= (bL[c[15]] * (0.00429488975412722 - (0.00015743697943505*applyconvL)));
+ inputSampleL -= (bL[c[16]] * (0.00497724878704936 - (0.00016014760011861*applyconvL)));
+ inputSampleL -= (bL[c[17]] * (0.00506059305562353 - (0.00016194824072466*applyconvL)));
+ inputSampleL -= (bL[c[18]] * (0.00483432223285621 - (0.00016329050124225*applyconvL)));
+ inputSampleL -= (bL[c[19]] * (0.00495100420886005 - (0.00016297509798749*applyconvL)));
+ inputSampleL -= (bL[c[20]] * (0.00489319520555115 - (0.00016472839684661*applyconvL)));
+ inputSampleL -= (bL[c[21]] * (0.00489177657970308 - (0.00016791875866630*applyconvL)));
+ inputSampleL -= (bL[c[22]] * (0.00487900894707044 - (0.00016755993898534*applyconvL)));
+ inputSampleL -= (bL[c[23]] * (0.00486234009335561 - (0.00016968157345446*applyconvL)));
+ inputSampleL -= (bL[c[24]] * (0.00485737490288736 - (0.00017180713324431*applyconvL)));
+ inputSampleL -= (bL[c[25]] * (0.00484106070563455 - (0.00017251073661092*applyconvL)));
+ inputSampleL -= (bL[c[26]] * (0.00483219429408410 - (0.00017321683790891*applyconvL)));
+ inputSampleL -= (bL[c[27]] * (0.00482013597437550 - (0.00017392186866488*applyconvL)));
+ inputSampleL -= (bL[c[28]] * (0.00480949628051497 - (0.00017569098775602*applyconvL)));
+ inputSampleL -= (bL[c[29]] * (0.00479992055604049 - (0.00017746046369449*applyconvL)));
+ inputSampleL -= (bL[c[30]] * (0.00478750757986987 - (0.00017745630047554*applyconvL)));
+ inputSampleL -= (bL[c[31]] * (0.00477828651185740 - (0.00017958043287604*applyconvL)));
+ inputSampleL -= (bL[c[32]] * (0.00476906544384494 - (0.00018170456527653*applyconvL)));
+ inputSampleL -= (bL[c[33]] * (0.00475700712413634 - (0.00018099144598088*applyconvL)));
+ //end Cider (Focusrite) MCI
+ break;
+ case 2:
+ //begin Rock (SSL) conv
+ inputSampleL += (bL[c[1]] * (0.67887916185274055 + (0.00068787552301086*applyconvL)));
+ inputSampleL -= (bL[c[2]] * (0.25671050678827934 + (0.00017691749454490*applyconvL)));
+ inputSampleL += (bL[c[3]] * (0.15135839896615280 + (0.00007481480365043*applyconvL)));
+ inputSampleL -= (bL[c[4]] * (0.11813512969090802 + (0.00005191138121359*applyconvL)));
+ inputSampleL += (bL[c[5]] * (0.08329104347166429 + (0.00001871054659794*applyconvL)));
+ inputSampleL -= (bL[c[6]] * (0.07663817456103936 + (0.00002751359071705*applyconvL)));
+ inputSampleL += (bL[c[7]] * (0.05477586152148759 + (0.00000744843212679*applyconvL)));
+ inputSampleL -= (bL[c[8]] * (0.05547314737187786 + (0.00001025289931145*applyconvL)));
+ inputSampleL += (bL[c[9]] * (0.03822948356540711 - (0.00000249791561457*applyconvL)));
+ inputSampleL -= (bL[c[10]] * (0.04199383340841713 - (0.00000067328840674*applyconvL)));
+ inputSampleL += (bL[c[11]] * (0.02695796542339694 - (0.00000796704606548*applyconvL)));
+ inputSampleL -= (bL[c[12]] * (0.03228715059431878 - (0.00000579711816722*applyconvL)));
+ inputSampleL += (bL[c[13]] * (0.01846929689819187 - (0.00000984017804950*applyconvL)));
+ inputSampleL -= (bL[c[14]] * (0.02528050435045951 - (0.00000701189792484*applyconvL)));
+ inputSampleL += (bL[c[15]] * (0.01207844846859765 - (0.00001522630289356*applyconvL)));
+ inputSampleL -= (bL[c[16]] * (0.01894464378378515 - (0.00001205456372080*applyconvL)));
+ inputSampleL += (bL[c[17]] * (0.00667804407593324 - (0.00001343604283817*applyconvL)));
+ inputSampleL -= (bL[c[18]] * (0.01408418045473130 - (0.00001246443581504*applyconvL)));
+ inputSampleL += (bL[c[19]] * (0.00228696509481569 - (0.00001506764046927*applyconvL)));
+ inputSampleL -= (bL[c[20]] * (0.01006277891348454 - (0.00000970723079112*applyconvL)));
+ inputSampleL -= (bL[c[21]] * (0.00132368373546377 + (0.00001188847238761*applyconvL)));
+ inputSampleL -= (bL[c[22]] * (0.00676615715578373 - (0.00001209129844861*applyconvL)));
+ inputSampleL -= (bL[c[23]] * (0.00426288438418556 + (0.00001286836943559*applyconvL)));
+ inputSampleL -= (bL[c[24]] * (0.00408897698639688 - (0.00001102542567911*applyconvL)));
+ inputSampleL -= (bL[c[25]] * (0.00662040619382751 + (0.00001206328529063*applyconvL)));
+ inputSampleL -= (bL[c[26]] * (0.00196101294183599 - (0.00000950703614981*applyconvL)));
+ inputSampleL -= (bL[c[27]] * (0.00845620581010342 + (0.00001279970295678*applyconvL)));
+ inputSampleL -= (bL[c[28]] * (0.00032595215043616 - (0.00000920518241371*applyconvL)));
+ inputSampleL -= (bL[c[29]] * (0.00982957737435458 + (0.00001177745362317*applyconvL)));
+ inputSampleL += (bL[c[30]] * (0.00086920573760513 + (0.00000913758382404*applyconvL)));
+ inputSampleL -= (bL[c[31]] * (0.01079020871452061 + (0.00000900750153697*applyconvL)));
+ inputSampleL += (bL[c[32]] * (0.00167613606334460 + (0.00000732769151038*applyconvL)));
+ inputSampleL -= (bL[c[33]] * (0.01138050011044332 + (0.00000946908207442*applyconvL)));
+ //end Rock (SSL) conv
+ break;
+ case 3:
+ //begin Lush (Neve) conv
+ inputSampleL += (bL[c[1]] * (0.20641602693167951 - (0.00078952185394898*applyconvL)));
+ inputSampleL -= (bL[c[2]] * (0.07601816702459827 + (0.00022786334179951*applyconvL)));
+ inputSampleL += (bL[c[3]] * (0.03929765560019285 - (0.00054517993246352*applyconvL)));
+ inputSampleL += (bL[c[4]] * (0.00298333157711103 - (0.00033083756545638*applyconvL)));
+ inputSampleL -= (bL[c[5]] * (0.00724006282304610 + (0.00045483683460812*applyconvL)));
+ inputSampleL += (bL[c[6]] * (0.03073108963506036 - (0.00038190060537423*applyconvL)));
+ inputSampleL -= (bL[c[7]] * (0.02332434692533051 + (0.00040347288688932*applyconvL)));
+ inputSampleL += (bL[c[8]] * (0.03792606869061214 - (0.00039673687335892*applyconvL)));
+ inputSampleL -= (bL[c[9]] * (0.02437059376675688 + (0.00037221210539535*applyconvL)));
+ inputSampleL += (bL[c[10]] * (0.03416764311979521 - (0.00040314850796953*applyconvL)));
+ inputSampleL -= (bL[c[11]] * (0.01761669868102127 + (0.00035989484330131*applyconvL)));
+ inputSampleL += (bL[c[12]] * (0.02538237753523052 - (0.00040149119125394*applyconvL)));
+ inputSampleL -= (bL[c[13]] * (0.00770737340728377 + (0.00035462118723555*applyconvL)));
+ inputSampleL += (bL[c[14]] * (0.01580706228482803 - (0.00037563141307594*applyconvL)));
+ inputSampleL += (bL[c[15]] * (0.00055119240005586 - (0.00035409299268971*applyconvL)));
+ inputSampleL += (bL[c[16]] * (0.00818552143438768 - (0.00036507661042180*applyconvL)));
+ inputSampleL += (bL[c[17]] * (0.00661842703548304 - (0.00034550528559056*applyconvL)));
+ inputSampleL += (bL[c[18]] * (0.00362447476272098 - (0.00035553012761240*applyconvL)));
+ inputSampleL += (bL[c[19]] * (0.00957098027225745 - (0.00034091691045338*applyconvL)));
+ inputSampleL += (bL[c[20]] * (0.00193621774016660 - (0.00034554529131668*applyconvL)));
+ inputSampleL += (bL[c[21]] * (0.01005433027357935 - (0.00033878223153845*applyconvL)));
+ inputSampleL += (bL[c[22]] * (0.00221712428802004 - (0.00033481410137711*applyconvL)));
+ inputSampleL += (bL[c[23]] * (0.00911255639207995 - (0.00033263425232666*applyconvL)));
+ inputSampleL += (bL[c[24]] * (0.00339667169034909 - (0.00032634428038430*applyconvL)));
+ inputSampleL += (bL[c[25]] * (0.00774096948249924 - (0.00032599868802996*applyconvL)));
+ inputSampleL += (bL[c[26]] * (0.00463907626773794 - (0.00032131993173361*applyconvL)));
+ inputSampleL += (bL[c[27]] * (0.00658222997260378 - (0.00032014977430211*applyconvL)));
+ inputSampleL += (bL[c[28]] * (0.00550347079924993 - (0.00031557153256653*applyconvL)));
+ inputSampleL += (bL[c[29]] * (0.00588754981375325 - (0.00032041307242303*applyconvL)));
+ inputSampleL += (bL[c[30]] * (0.00590293898419892 - (0.00030457857428714*applyconvL)));
+ inputSampleL += (bL[c[31]] * (0.00558952010441800 - (0.00030448053548086*applyconvL)));
+ inputSampleL += (bL[c[32]] * (0.00598183557634295 - (0.00030715064323181*applyconvL)));
+ inputSampleL += (bL[c[33]] * (0.00555223929714115 - (0.00030319367948553*applyconvL)));
+ //end Lush (Neve) conv
+ break;
+ case 4:
+ //begin Elation (LA2A) vibe
+ inputSampleL -= (bL[c[1]] * (0.25867935358656502 - (0.00045755657070112*applyconvL)));
+ inputSampleL += (bL[c[2]] * (0.11509367290253694 - (0.00017494270657228*applyconvL)));
+ inputSampleL -= (bL[c[3]] * (0.06709853575891785 - (0.00058913102597723*applyconvL)));
+ inputSampleL += (bL[c[4]] * (0.01871006356851681 - (0.00003387358004645*applyconvL)));
+ inputSampleL -= (bL[c[5]] * (0.00794797957360465 - (0.00044224784691203*applyconvL)));
+ inputSampleL -= (bL[c[6]] * (0.01956921817394220 - (0.00006718936750076*applyconvL)));
+ inputSampleL += (bL[c[7]] * (0.01682120257195205 + (0.00032857446292230*applyconvL)));
+ inputSampleL -= (bL[c[8]] * (0.03401069039824205 - (0.00013634182872897*applyconvL)));
+ inputSampleL += (bL[c[9]] * (0.02369950268232634 + (0.00023112685751657*applyconvL)));
+ inputSampleL -= (bL[c[10]] * (0.03477071178117132 - (0.00018029792231600*applyconvL)));
+ inputSampleL += (bL[c[11]] * (0.02024369717958201 + (0.00017337813374202*applyconvL)));
+ inputSampleL -= (bL[c[12]] * (0.02819087729102172 - (0.00021438538665420*applyconvL)));
+ inputSampleL += (bL[c[13]] * (0.01147946743141303 + (0.00014424066034649*applyconvL)));
+ inputSampleL -= (bL[c[14]] * (0.01894777011468867 - (0.00021549146262408*applyconvL)));
+ inputSampleL += (bL[c[15]] * (0.00301370330346873 + (0.00013527460148394*applyconvL)));
+ inputSampleL -= (bL[c[16]] * (0.01067147835815486 - (0.00020960689910868*applyconvL)));
+ inputSampleL -= (bL[c[17]] * (0.00402715397506384 - (0.00014421582712470*applyconvL)));
+ inputSampleL -= (bL[c[18]] * (0.00502221703392005 - (0.00019805767015024*applyconvL)));
+ inputSampleL -= (bL[c[19]] * (0.00808788533308497 - (0.00016095444141931*applyconvL)));
+ inputSampleL -= (bL[c[20]] * (0.00232696588842683 - (0.00018384470981829*applyconvL)));
+ inputSampleL -= (bL[c[21]] * (0.00943950821324531 - (0.00017098987347593*applyconvL)));
+ inputSampleL -= (bL[c[22]] * (0.00193709517200834 - (0.00018151995939591*applyconvL)));
+ inputSampleL -= (bL[c[23]] * (0.00899713952612659 - (0.00017385835059948*applyconvL)));
+ inputSampleL -= (bL[c[24]] * (0.00280584331659089 - (0.00017742164162470*applyconvL)));
+ inputSampleL -= (bL[c[25]] * (0.00780381001954970 - (0.00018002500755708*applyconvL)));
+ inputSampleL -= (bL[c[26]] * (0.00400370310490333 - (0.00017471691087957*applyconvL)));
+ inputSampleL -= (bL[c[27]] * (0.00661527728186928 - (0.00018137323370347*applyconvL)));
+ inputSampleL -= (bL[c[28]] * (0.00496545526864518 - (0.00017681872601767*applyconvL)));
+ inputSampleL -= (bL[c[29]] * (0.00580728820997532 - (0.00018186220389790*applyconvL)));
+ inputSampleL -= (bL[c[30]] * (0.00549309984725666 - (0.00017722985399075*applyconvL)));
+ inputSampleL -= (bL[c[31]] * (0.00542194777529239 - (0.00018486900185338*applyconvL)));
+ inputSampleL -= (bL[c[32]] * (0.00565992080998939 - (0.00018005824393118*applyconvL)));
+ inputSampleL -= (bL[c[33]] * (0.00532121562846656 - (0.00018643189636216*applyconvL)));
+ //end Elation (LA2A)
+ break;
+ case 5:
+ //begin Precious (Precision 8) Holo
+ inputSampleL += (bL[c[1]] * (0.59188440274551890 - (0.00008361469668405*applyconvL)));
+ inputSampleL -= (bL[c[2]] * (0.24439750948076133 + (0.00002651678396848*applyconvL)));
+ inputSampleL += (bL[c[3]] * (0.14109876103205621 - (0.00000840487181372*applyconvL)));
+ inputSampleL -= (bL[c[4]] * (0.10053507128157971 + (0.00001768100964598*applyconvL)));
+ inputSampleL += (bL[c[5]] * (0.05859287880626238 - (0.00000361398065989*applyconvL)));
+ inputSampleL -= (bL[c[6]] * (0.04337406889823660 + (0.00000735941182117*applyconvL)));
+ inputSampleL += (bL[c[7]] * (0.01589900680531097 + (0.00000207347387987*applyconvL)));
+ inputSampleL -= (bL[c[8]] * (0.01087234854973281 + (0.00000732123412029*applyconvL)));
+ inputSampleL -= (bL[c[9]] * (0.00845782429679176 - (0.00000133058605071*applyconvL)));
+ inputSampleL += (bL[c[10]] * (0.00662278586618295 - (0.00000424594730611*applyconvL)));
+ inputSampleL -= (bL[c[11]] * (0.02000592193760155 + (0.00000632896879068*applyconvL)));
+ inputSampleL += (bL[c[12]] * (0.01321157777167565 - (0.00001421171592570*applyconvL)));
+ inputSampleL -= (bL[c[13]] * (0.02249955362988238 + (0.00000163937127317*applyconvL)));
+ inputSampleL += (bL[c[14]] * (0.01196492077581504 - (0.00000535385220676*applyconvL)));
+ inputSampleL -= (bL[c[15]] * (0.01905917427000097 + (0.00000121672882030*applyconvL)));
+ inputSampleL += (bL[c[16]] * (0.00761909482108073 - (0.00000326242895115*applyconvL)));
+ inputSampleL -= (bL[c[17]] * (0.01362744780256239 + (0.00000359274216003*applyconvL)));
+ inputSampleL += (bL[c[18]] * (0.00200183122683721 - (0.00000089207452791*applyconvL)));
+ inputSampleL -= (bL[c[19]] * (0.00833042637239315 + (0.00000946767677294*applyconvL)));
+ inputSampleL -= (bL[c[20]] * (0.00258481175207224 - (0.00000087429351464*applyconvL)));
+ inputSampleL -= (bL[c[21]] * (0.00459744479712244 - (0.00000049519758701*applyconvL)));
+ inputSampleL -= (bL[c[22]] * (0.00534277030993820 + (0.00000397547847155*applyconvL)));
+ inputSampleL -= (bL[c[23]] * (0.00272332919605675 + (0.00000040077229097*applyconvL)));
+ inputSampleL -= (bL[c[24]] * (0.00637243782359372 - (0.00000139419072176*applyconvL)));
+ inputSampleL -= (bL[c[25]] * (0.00233001590327504 + (0.00000420129915747*applyconvL)));
+ inputSampleL -= (bL[c[26]] * (0.00623296727793041 + (0.00000019010664856*applyconvL)));
+ inputSampleL -= (bL[c[27]] * (0.00276177096376805 + (0.00000580301901385*applyconvL)));
+ inputSampleL -= (bL[c[28]] * (0.00559184754866264 + (0.00000080597287792*applyconvL)));
+ inputSampleL -= (bL[c[29]] * (0.00343180144395919 - (0.00000243701142085*applyconvL)));
+ inputSampleL -= (bL[c[30]] * (0.00493325428861701 + (0.00000300985740900*applyconvL)));
+ inputSampleL -= (bL[c[31]] * (0.00396140827680823 - (0.00000051459681789*applyconvL)));
+ inputSampleL -= (bL[c[32]] * (0.00448497879902493 + (0.00000744412841743*applyconvL)));
+ inputSampleL -= (bL[c[33]] * (0.00425146888772076 - (0.00000082346016542*applyconvL)));
+ //end Precious (Precision 8) Holo
+ break;
+ case 6:
+ //begin Punch (API) conv
+ inputSampleL += (bL[c[1]] * (0.09299870608542582 - (0.00009582362368873*applyconvL)));
+ inputSampleL -= (bL[c[2]] * (0.11947847710741009 - (0.00004500891602770*applyconvL)));
+ inputSampleL += (bL[c[3]] * (0.09071606264761795 + (0.00005639498984741*applyconvL)));
+ inputSampleL -= (bL[c[4]] * (0.08561982770836980 - (0.00004964855606916*applyconvL)));
+ inputSampleL += (bL[c[5]] * (0.06440549220820363 + (0.00002428052139507*applyconvL)));
+ inputSampleL -= (bL[c[6]] * (0.05987991812840746 + (0.00000101867082290*applyconvL)));
+ inputSampleL += (bL[c[7]] * (0.03980233135839382 + (0.00003312430049041*applyconvL)));
+ inputSampleL -= (bL[c[8]] * (0.03648402630896925 - (0.00002116186381142*applyconvL)));
+ inputSampleL += (bL[c[9]] * (0.01826860869525248 + (0.00003115110025396*applyconvL)));
+ inputSampleL -= (bL[c[10]] * (0.01723968622495364 - (0.00002450634121718*applyconvL)));
+ inputSampleL += (bL[c[11]] * (0.00187588812316724 + (0.00002838206198968*applyconvL)));
+ inputSampleL -= (bL[c[12]] * (0.00381796423957237 - (0.00003155815499462*applyconvL)));
+ inputSampleL -= (bL[c[13]] * (0.00852092214496733 - (0.00001702651162392*applyconvL)));
+ inputSampleL += (bL[c[14]] * (0.00315560292270588 + (0.00002547861676047*applyconvL)));
+ inputSampleL -= (bL[c[15]] * (0.01258630914496868 - (0.00004555319243213*applyconvL)));
+ inputSampleL += (bL[c[16]] * (0.00536435648963575 + (0.00001812393657101*applyconvL)));
+ inputSampleL -= (bL[c[17]] * (0.01272975658159178 - (0.00004103775306121*applyconvL)));
+ inputSampleL += (bL[c[18]] * (0.00403818975172755 + (0.00003764615492871*applyconvL)));
+ inputSampleL -= (bL[c[19]] * (0.01042617366897483 - (0.00003605210426041*applyconvL)));
+ inputSampleL += (bL[c[20]] * (0.00126599583390057 + (0.00004305458668852*applyconvL)));
+ inputSampleL -= (bL[c[21]] * (0.00747876207688339 - (0.00003731207018977*applyconvL)));
+ inputSampleL -= (bL[c[22]] * (0.00149873689175324 - (0.00005086601800791*applyconvL)));
+ inputSampleL -= (bL[c[23]] * (0.00503221309488033 - (0.00003636086782783*applyconvL)));
+ inputSampleL -= (bL[c[24]] * (0.00342998224655821 - (0.00004103091180506*applyconvL)));
+ inputSampleL -= (bL[c[25]] * (0.00355585977903117 - (0.00003698982145400*applyconvL)));
+ inputSampleL -= (bL[c[26]] * (0.00437201792934817 - (0.00002720235666939*applyconvL)));
+ inputSampleL -= (bL[c[27]] * (0.00299217874451556 - (0.00004446954727956*applyconvL)));
+ inputSampleL -= (bL[c[28]] * (0.00457924652487249 - (0.00003859065778860*applyconvL)));
+ inputSampleL -= (bL[c[29]] * (0.00298182934892027 - (0.00002064710931733*applyconvL)));
+ inputSampleL -= (bL[c[30]] * (0.00438838441540584 - (0.00005223008424866*applyconvL)));
+ inputSampleL -= (bL[c[31]] * (0.00323984218794705 - (0.00003397987535887*applyconvL)));
+ inputSampleL -= (bL[c[32]] * (0.00407693981307314 - (0.00003935772436894*applyconvL)));
+ inputSampleL -= (bL[c[33]] * (0.00350435348467321 - (0.00005525463935338*applyconvL)));
+ //end Punch (API) conv
+ break;
+ case 7:
+ //begin Calibre (?) steel
+ inputSampleL -= (bL[c[1]] * (0.23505923670562212 - (0.00028312859289245*applyconvL)));
+ inputSampleL += (bL[c[2]] * (0.08188436704577637 - (0.00008817721351341*applyconvL)));
+ inputSampleL -= (bL[c[3]] * (0.05075798481700617 - (0.00018817166632483*applyconvL)));
+ inputSampleL -= (bL[c[4]] * (0.00455811821873093 + (0.00001922902995296*applyconvL)));
+ inputSampleL -= (bL[c[5]] * (0.00027610521433660 - (0.00013252525469291*applyconvL)));
+ inputSampleL -= (bL[c[6]] * (0.03529246280346626 - (0.00002772989223299*applyconvL)));
+ inputSampleL += (bL[c[7]] * (0.01784111585586136 + (0.00010230276997291*applyconvL)));
+ inputSampleL -= (bL[c[8]] * (0.04394950700298298 - (0.00005910607126944*applyconvL)));
+ inputSampleL += (bL[c[9]] * (0.01990770780547606 + (0.00007640328340556*applyconvL)));
+ inputSampleL -= (bL[c[10]] * (0.04073629569741782 - (0.00007712327117090*applyconvL)));
+ inputSampleL += (bL[c[11]] * (0.01349648572795252 + (0.00005959130575917*applyconvL)));
+ inputSampleL -= (bL[c[12]] * (0.03191590248003717 - (0.00008418000575151*applyconvL)));
+ inputSampleL += (bL[c[13]] * (0.00348795527924766 + (0.00005489156318238*applyconvL)));
+ inputSampleL -= (bL[c[14]] * (0.02198496281481767 - (0.00008471601187581*applyconvL)));
+ inputSampleL -= (bL[c[15]] * (0.00504771152505089 - (0.00005525060587917*applyconvL)));
+ inputSampleL -= (bL[c[16]] * (0.01391075698598491 - (0.00007929630732607*applyconvL)));
+ inputSampleL -= (bL[c[17]] * (0.01142762504081717 - (0.00005967036737742*applyconvL)));
+ inputSampleL -= (bL[c[18]] * (0.00893541815021255 - (0.00007535697758141*applyconvL)));
+ inputSampleL -= (bL[c[19]] * (0.01459704973464936 - (0.00005969199602841*applyconvL)));
+ inputSampleL -= (bL[c[20]] * (0.00694755135226282 - (0.00006930127097865*applyconvL)));
+ inputSampleL -= (bL[c[21]] * (0.01516695630808575 - (0.00006365800069826*applyconvL)));
+ inputSampleL -= (bL[c[22]] * (0.00705917318113651 - (0.00006497209096539*applyconvL)));
+ inputSampleL -= (bL[c[23]] * (0.01420501209177591 - (0.00006555654576113*applyconvL)));
+ inputSampleL -= (bL[c[24]] * (0.00815905656808701 - (0.00006105622534761*applyconvL)));
+ inputSampleL -= (bL[c[25]] * (0.01274326525552961 - (0.00006542652857017*applyconvL)));
+ inputSampleL -= (bL[c[26]] * (0.00937146927845488 - (0.00006051267868722*applyconvL)));
+ inputSampleL -= (bL[c[27]] * (0.01146573981165209 - (0.00006381511607749*applyconvL)));
+ inputSampleL -= (bL[c[28]] * (0.01021294359409007 - (0.00005930397856398*applyconvL)));
+ inputSampleL -= (bL[c[29]] * (0.01065217095323532 - (0.00006371505438319*applyconvL)));
+ inputSampleL -= (bL[c[30]] * (0.01058751196699751 - (0.00006042857480233*applyconvL)));
+ inputSampleL -= (bL[c[31]] * (0.01026557827762401 - (0.00006007776163871*applyconvL)));
+ inputSampleL -= (bL[c[32]] * (0.01060929183604604 - (0.00006114703012726*applyconvL)));
+ inputSampleL -= (bL[c[33]] * (0.01014533525058528 - (0.00005963567932887*applyconvL)));
+ //end Calibre (?)
+ break;
+ case 8:
+ //begin Tube (Manley) conv
+ inputSampleL -= (bL[c[1]] * (0.20641602693167951 - (0.00078952185394898*applyconvL)));
+ inputSampleL += (bL[c[2]] * (0.07601816702459827 + (0.00022786334179951*applyconvL)));
+ inputSampleL -= (bL[c[3]] * (0.03929765560019285 - (0.00054517993246352*applyconvL)));
+ inputSampleL -= (bL[c[4]] * (0.00298333157711103 - (0.00033083756545638*applyconvL)));
+ inputSampleL += (bL[c[5]] * (0.00724006282304610 + (0.00045483683460812*applyconvL)));
+ inputSampleL -= (bL[c[6]] * (0.03073108963506036 - (0.00038190060537423*applyconvL)));
+ inputSampleL += (bL[c[7]] * (0.02332434692533051 + (0.00040347288688932*applyconvL)));
+ inputSampleL -= (bL[c[8]] * (0.03792606869061214 - (0.00039673687335892*applyconvL)));
+ inputSampleL += (bL[c[9]] * (0.02437059376675688 + (0.00037221210539535*applyconvL)));
+ inputSampleL -= (bL[c[10]] * (0.03416764311979521 - (0.00040314850796953*applyconvL)));
+ inputSampleL += (bL[c[11]] * (0.01761669868102127 + (0.00035989484330131*applyconvL)));
+ inputSampleL -= (bL[c[12]] * (0.02538237753523052 - (0.00040149119125394*applyconvL)));
+ inputSampleL += (bL[c[13]] * (0.00770737340728377 + (0.00035462118723555*applyconvL)));
+ inputSampleL -= (bL[c[14]] * (0.01580706228482803 - (0.00037563141307594*applyconvL)));
+ inputSampleL -= (bL[c[15]] * (0.00055119240005586 - (0.00035409299268971*applyconvL)));
+ inputSampleL -= (bL[c[16]] * (0.00818552143438768 - (0.00036507661042180*applyconvL)));
+ inputSampleL -= (bL[c[17]] * (0.00661842703548304 - (0.00034550528559056*applyconvL)));
+ inputSampleL -= (bL[c[18]] * (0.00362447476272098 - (0.00035553012761240*applyconvL)));
+ inputSampleL -= (bL[c[19]] * (0.00957098027225745 - (0.00034091691045338*applyconvL)));
+ inputSampleL -= (bL[c[20]] * (0.00193621774016660 - (0.00034554529131668*applyconvL)));
+ inputSampleL -= (bL[c[21]] * (0.01005433027357935 - (0.00033878223153845*applyconvL)));
+ inputSampleL -= (bL[c[22]] * (0.00221712428802004 - (0.00033481410137711*applyconvL)));
+ inputSampleL -= (bL[c[23]] * (0.00911255639207995 - (0.00033263425232666*applyconvL)));
+ inputSampleL -= (bL[c[24]] * (0.00339667169034909 - (0.00032634428038430*applyconvL)));
+ inputSampleL -= (bL[c[25]] * (0.00774096948249924 - (0.00032599868802996*applyconvL)));
+ inputSampleL -= (bL[c[26]] * (0.00463907626773794 - (0.00032131993173361*applyconvL)));
+ inputSampleL -= (bL[c[27]] * (0.00658222997260378 - (0.00032014977430211*applyconvL)));
+ inputSampleL -= (bL[c[28]] * (0.00550347079924993 - (0.00031557153256653*applyconvL)));
+ inputSampleL -= (bL[c[29]] * (0.00588754981375325 - (0.00032041307242303*applyconvL)));
+ inputSampleL -= (bL[c[30]] * (0.00590293898419892 - (0.00030457857428714*applyconvL)));
+ inputSampleL -= (bL[c[31]] * (0.00558952010441800 - (0.00030448053548086*applyconvL)));
+ inputSampleL -= (bL[c[32]] * (0.00598183557634295 - (0.00030715064323181*applyconvL)));
+ inputSampleL -= (bL[c[33]] * (0.00555223929714115 - (0.00030319367948553*applyconvL)));
+ //end Tube (Manley) conv
+ break;
+ }
+
+ switch (console)
+ {
+ case 1:
+ //begin Cider (Focusrite) MCI
+ inputSampleR += (bR[c[1]] * (0.61283288942201319 + (0.00024011410669522*applyconvR)));
+ inputSampleR -= (bR[c[2]] * (0.24036380659761222 - (0.00020789518206241*applyconvR)));
+ inputSampleR += (bR[c[3]] * (0.09104669761717916 + (0.00012829642741548*applyconvR)));
+ inputSampleR -= (bR[c[4]] * (0.02378290768554025 - (0.00017673646470440*applyconvR)));
+ inputSampleR -= (bR[c[5]] * (0.02832818490275965 - (0.00013536187747384*applyconvR)));
+ inputSampleR += (bR[c[6]] * (0.03268797679215937 + (0.00015035126653359*applyconvR)));
+ inputSampleR -= (bR[c[7]] * (0.04024464202655586 - (0.00015034923056735*applyconvR)));
+ inputSampleR += (bR[c[8]] * (0.01864890074318696 + (0.00014513281680642*applyconvR)));
+ inputSampleR -= (bR[c[9]] * (0.01632731954100322 - (0.00015509089075614*applyconvR)));
+ inputSampleR -= (bR[c[10]] * (0.00318907090555589 - (0.00014784812076550*applyconvR)));
+ inputSampleR -= (bR[c[11]] * (0.00208573465221869 - (0.00015350520779465*applyconvR)));
+ inputSampleR -= (bR[c[12]] * (0.00907033901519614 - (0.00015442964157250*applyconvR)));
+ inputSampleR -= (bR[c[13]] * (0.00199458794148013 - (0.00015595640046297*applyconvR)));
+ inputSampleR -= (bR[c[14]] * (0.00705979153201755 - (0.00015730069418051*applyconvR)));
+ inputSampleR -= (bR[c[15]] * (0.00429488975412722 - (0.00015743697943505*applyconvR)));
+ inputSampleR -= (bR[c[16]] * (0.00497724878704936 - (0.00016014760011861*applyconvR)));
+ inputSampleR -= (bR[c[17]] * (0.00506059305562353 - (0.00016194824072466*applyconvR)));
+ inputSampleR -= (bR[c[18]] * (0.00483432223285621 - (0.00016329050124225*applyconvR)));
+ inputSampleR -= (bR[c[19]] * (0.00495100420886005 - (0.00016297509798749*applyconvR)));
+ inputSampleR -= (bR[c[20]] * (0.00489319520555115 - (0.00016472839684661*applyconvR)));
+ inputSampleR -= (bR[c[21]] * (0.00489177657970308 - (0.00016791875866630*applyconvR)));
+ inputSampleR -= (bR[c[22]] * (0.00487900894707044 - (0.00016755993898534*applyconvR)));
+ inputSampleR -= (bR[c[23]] * (0.00486234009335561 - (0.00016968157345446*applyconvR)));
+ inputSampleR -= (bR[c[24]] * (0.00485737490288736 - (0.00017180713324431*applyconvR)));
+ inputSampleR -= (bR[c[25]] * (0.00484106070563455 - (0.00017251073661092*applyconvR)));
+ inputSampleR -= (bR[c[26]] * (0.00483219429408410 - (0.00017321683790891*applyconvR)));
+ inputSampleR -= (bR[c[27]] * (0.00482013597437550 - (0.00017392186866488*applyconvR)));
+ inputSampleR -= (bR[c[28]] * (0.00480949628051497 - (0.00017569098775602*applyconvR)));
+ inputSampleR -= (bR[c[29]] * (0.00479992055604049 - (0.00017746046369449*applyconvR)));
+ inputSampleR -= (bR[c[30]] * (0.00478750757986987 - (0.00017745630047554*applyconvR)));
+ inputSampleR -= (bR[c[31]] * (0.00477828651185740 - (0.00017958043287604*applyconvR)));
+ inputSampleR -= (bR[c[32]] * (0.00476906544384494 - (0.00018170456527653*applyconvR)));
+ inputSampleR -= (bR[c[33]] * (0.00475700712413634 - (0.00018099144598088*applyconvR)));
+ //end Cider (Focusrite) MCI
+ break;
+ case 2:
+ //begin Rock (SSL) conv
+ inputSampleR += (bR[c[1]] * (0.67887916185274055 + (0.00068787552301086*applyconvR)));
+ inputSampleR -= (bR[c[2]] * (0.25671050678827934 + (0.00017691749454490*applyconvR)));
+ inputSampleR += (bR[c[3]] * (0.15135839896615280 + (0.00007481480365043*applyconvR)));
+ inputSampleR -= (bR[c[4]] * (0.11813512969090802 + (0.00005191138121359*applyconvR)));
+ inputSampleR += (bR[c[5]] * (0.08329104347166429 + (0.00001871054659794*applyconvR)));
+ inputSampleR -= (bR[c[6]] * (0.07663817456103936 + (0.00002751359071705*applyconvR)));
+ inputSampleR += (bR[c[7]] * (0.05477586152148759 + (0.00000744843212679*applyconvR)));
+ inputSampleR -= (bR[c[8]] * (0.05547314737187786 + (0.00001025289931145*applyconvR)));
+ inputSampleR += (bR[c[9]] * (0.03822948356540711 - (0.00000249791561457*applyconvR)));
+ inputSampleR -= (bR[c[10]] * (0.04199383340841713 - (0.00000067328840674*applyconvR)));
+ inputSampleR += (bR[c[11]] * (0.02695796542339694 - (0.00000796704606548*applyconvR)));
+ inputSampleR -= (bR[c[12]] * (0.03228715059431878 - (0.00000579711816722*applyconvR)));
+ inputSampleR += (bR[c[13]] * (0.01846929689819187 - (0.00000984017804950*applyconvR)));
+ inputSampleR -= (bR[c[14]] * (0.02528050435045951 - (0.00000701189792484*applyconvR)));
+ inputSampleR += (bR[c[15]] * (0.01207844846859765 - (0.00001522630289356*applyconvR)));
+ inputSampleR -= (bR[c[16]] * (0.01894464378378515 - (0.00001205456372080*applyconvR)));
+ inputSampleR += (bR[c[17]] * (0.00667804407593324 - (0.00001343604283817*applyconvR)));
+ inputSampleR -= (bR[c[18]] * (0.01408418045473130 - (0.00001246443581504*applyconvR)));
+ inputSampleR += (bR[c[19]] * (0.00228696509481569 - (0.00001506764046927*applyconvR)));
+ inputSampleR -= (bR[c[20]] * (0.01006277891348454 - (0.00000970723079112*applyconvR)));
+ inputSampleR -= (bR[c[21]] * (0.00132368373546377 + (0.00001188847238761*applyconvR)));
+ inputSampleR -= (bR[c[22]] * (0.00676615715578373 - (0.00001209129844861*applyconvR)));
+ inputSampleR -= (bR[c[23]] * (0.00426288438418556 + (0.00001286836943559*applyconvR)));
+ inputSampleR -= (bR[c[24]] * (0.00408897698639688 - (0.00001102542567911*applyconvR)));
+ inputSampleR -= (bR[c[25]] * (0.00662040619382751 + (0.00001206328529063*applyconvR)));
+ inputSampleR -= (bR[c[26]] * (0.00196101294183599 - (0.00000950703614981*applyconvR)));
+ inputSampleR -= (bR[c[27]] * (0.00845620581010342 + (0.00001279970295678*applyconvR)));
+ inputSampleR -= (bR[c[28]] * (0.00032595215043616 - (0.00000920518241371*applyconvR)));
+ inputSampleR -= (bR[c[29]] * (0.00982957737435458 + (0.00001177745362317*applyconvR)));
+ inputSampleR += (bR[c[30]] * (0.00086920573760513 + (0.00000913758382404*applyconvR)));
+ inputSampleR -= (bR[c[31]] * (0.01079020871452061 + (0.00000900750153697*applyconvR)));
+ inputSampleR += (bR[c[32]] * (0.00167613606334460 + (0.00000732769151038*applyconvR)));
+ inputSampleR -= (bR[c[33]] * (0.01138050011044332 + (0.00000946908207442*applyconvR)));
+ //end Rock (SSL) conv
+ break;
+ case 3:
+ //begin Lush (Neve) conv
+ inputSampleR += (bR[c[1]] * (0.20641602693167951 - (0.00078952185394898*applyconvR)));
+ inputSampleR -= (bR[c[2]] * (0.07601816702459827 + (0.00022786334179951*applyconvR)));
+ inputSampleR += (bR[c[3]] * (0.03929765560019285 - (0.00054517993246352*applyconvR)));
+ inputSampleR += (bR[c[4]] * (0.00298333157711103 - (0.00033083756545638*applyconvR)));
+ inputSampleR -= (bR[c[5]] * (0.00724006282304610 + (0.00045483683460812*applyconvR)));
+ inputSampleR += (bR[c[6]] * (0.03073108963506036 - (0.00038190060537423*applyconvR)));
+ inputSampleR -= (bR[c[7]] * (0.02332434692533051 + (0.00040347288688932*applyconvR)));
+ inputSampleR += (bR[c[8]] * (0.03792606869061214 - (0.00039673687335892*applyconvR)));
+ inputSampleR -= (bR[c[9]] * (0.02437059376675688 + (0.00037221210539535*applyconvR)));
+ inputSampleR += (bR[c[10]] * (0.03416764311979521 - (0.00040314850796953*applyconvR)));
+ inputSampleR -= (bR[c[11]] * (0.01761669868102127 + (0.00035989484330131*applyconvR)));
+ inputSampleR += (bR[c[12]] * (0.02538237753523052 - (0.00040149119125394*applyconvR)));
+ inputSampleR -= (bR[c[13]] * (0.00770737340728377 + (0.00035462118723555*applyconvR)));
+ inputSampleR += (bR[c[14]] * (0.01580706228482803 - (0.00037563141307594*applyconvR)));
+ inputSampleR += (bR[c[15]] * (0.00055119240005586 - (0.00035409299268971*applyconvR)));
+ inputSampleR += (bR[c[16]] * (0.00818552143438768 - (0.00036507661042180*applyconvR)));
+ inputSampleR += (bR[c[17]] * (0.00661842703548304 - (0.00034550528559056*applyconvR)));
+ inputSampleR += (bR[c[18]] * (0.00362447476272098 - (0.00035553012761240*applyconvR)));
+ inputSampleR += (bR[c[19]] * (0.00957098027225745 - (0.00034091691045338*applyconvR)));
+ inputSampleR += (bR[c[20]] * (0.00193621774016660 - (0.00034554529131668*applyconvR)));
+ inputSampleR += (bR[c[21]] * (0.01005433027357935 - (0.00033878223153845*applyconvR)));
+ inputSampleR += (bR[c[22]] * (0.00221712428802004 - (0.00033481410137711*applyconvR)));
+ inputSampleR += (bR[c[23]] * (0.00911255639207995 - (0.00033263425232666*applyconvR)));
+ inputSampleR += (bR[c[24]] * (0.00339667169034909 - (0.00032634428038430*applyconvR)));
+ inputSampleR += (bR[c[25]] * (0.00774096948249924 - (0.00032599868802996*applyconvR)));
+ inputSampleR += (bR[c[26]] * (0.00463907626773794 - (0.00032131993173361*applyconvR)));
+ inputSampleR += (bR[c[27]] * (0.00658222997260378 - (0.00032014977430211*applyconvR)));
+ inputSampleR += (bR[c[28]] * (0.00550347079924993 - (0.00031557153256653*applyconvR)));
+ inputSampleR += (bR[c[29]] * (0.00588754981375325 - (0.00032041307242303*applyconvR)));
+ inputSampleR += (bR[c[30]] * (0.00590293898419892 - (0.00030457857428714*applyconvR)));
+ inputSampleR += (bR[c[31]] * (0.00558952010441800 - (0.00030448053548086*applyconvR)));
+ inputSampleR += (bR[c[32]] * (0.00598183557634295 - (0.00030715064323181*applyconvR)));
+ inputSampleR += (bR[c[33]] * (0.00555223929714115 - (0.00030319367948553*applyconvR)));
+ //end Lush (Neve) conv
+ break;
+ case 4:
+ //begin Elation (LA2A) vibe
+ inputSampleR -= (bR[c[1]] * (0.25867935358656502 - (0.00045755657070112*applyconvR)));
+ inputSampleR += (bR[c[2]] * (0.11509367290253694 - (0.00017494270657228*applyconvR)));
+ inputSampleR -= (bR[c[3]] * (0.06709853575891785 - (0.00058913102597723*applyconvR)));
+ inputSampleR += (bR[c[4]] * (0.01871006356851681 - (0.00003387358004645*applyconvR)));
+ inputSampleR -= (bR[c[5]] * (0.00794797957360465 - (0.00044224784691203*applyconvR)));
+ inputSampleR -= (bR[c[6]] * (0.01956921817394220 - (0.00006718936750076*applyconvR)));
+ inputSampleR += (bR[c[7]] * (0.01682120257195205 + (0.00032857446292230*applyconvR)));
+ inputSampleR -= (bR[c[8]] * (0.03401069039824205 - (0.00013634182872897*applyconvR)));
+ inputSampleR += (bR[c[9]] * (0.02369950268232634 + (0.00023112685751657*applyconvR)));
+ inputSampleR -= (bR[c[10]] * (0.03477071178117132 - (0.00018029792231600*applyconvR)));
+ inputSampleR += (bR[c[11]] * (0.02024369717958201 + (0.00017337813374202*applyconvR)));
+ inputSampleR -= (bR[c[12]] * (0.02819087729102172 - (0.00021438538665420*applyconvR)));
+ inputSampleR += (bR[c[13]] * (0.01147946743141303 + (0.00014424066034649*applyconvR)));
+ inputSampleR -= (bR[c[14]] * (0.01894777011468867 - (0.00021549146262408*applyconvR)));
+ inputSampleR += (bR[c[15]] * (0.00301370330346873 + (0.00013527460148394*applyconvR)));
+ inputSampleR -= (bR[c[16]] * (0.01067147835815486 - (0.00020960689910868*applyconvR)));
+ inputSampleR -= (bR[c[17]] * (0.00402715397506384 - (0.00014421582712470*applyconvR)));
+ inputSampleR -= (bR[c[18]] * (0.00502221703392005 - (0.00019805767015024*applyconvR)));
+ inputSampleR -= (bR[c[19]] * (0.00808788533308497 - (0.00016095444141931*applyconvR)));
+ inputSampleR -= (bR[c[20]] * (0.00232696588842683 - (0.00018384470981829*applyconvR)));
+ inputSampleR -= (bR[c[21]] * (0.00943950821324531 - (0.00017098987347593*applyconvR)));
+ inputSampleR -= (bR[c[22]] * (0.00193709517200834 - (0.00018151995939591*applyconvR)));
+ inputSampleR -= (bR[c[23]] * (0.00899713952612659 - (0.00017385835059948*applyconvR)));
+ inputSampleR -= (bR[c[24]] * (0.00280584331659089 - (0.00017742164162470*applyconvR)));
+ inputSampleR -= (bR[c[25]] * (0.00780381001954970 - (0.00018002500755708*applyconvR)));
+ inputSampleR -= (bR[c[26]] * (0.00400370310490333 - (0.00017471691087957*applyconvR)));
+ inputSampleR -= (bR[c[27]] * (0.00661527728186928 - (0.00018137323370347*applyconvR)));
+ inputSampleR -= (bR[c[28]] * (0.00496545526864518 - (0.00017681872601767*applyconvR)));
+ inputSampleR -= (bR[c[29]] * (0.00580728820997532 - (0.00018186220389790*applyconvR)));
+ inputSampleR -= (bR[c[30]] * (0.00549309984725666 - (0.00017722985399075*applyconvR)));
+ inputSampleR -= (bR[c[31]] * (0.00542194777529239 - (0.00018486900185338*applyconvR)));
+ inputSampleR -= (bR[c[32]] * (0.00565992080998939 - (0.00018005824393118*applyconvR)));
+ inputSampleR -= (bR[c[33]] * (0.00532121562846656 - (0.00018643189636216*applyconvR)));
+ //end Elation (LA2A)
+ break;
+ case 5:
+ //begin Precious (Precision 8) Holo
+ inputSampleR += (bR[c[1]] * (0.59188440274551890 - (0.00008361469668405*applyconvR)));
+ inputSampleR -= (bR[c[2]] * (0.24439750948076133 + (0.00002651678396848*applyconvR)));
+ inputSampleR += (bR[c[3]] * (0.14109876103205621 - (0.00000840487181372*applyconvR)));
+ inputSampleR -= (bR[c[4]] * (0.10053507128157971 + (0.00001768100964598*applyconvR)));
+ inputSampleR += (bR[c[5]] * (0.05859287880626238 - (0.00000361398065989*applyconvR)));
+ inputSampleR -= (bR[c[6]] * (0.04337406889823660 + (0.00000735941182117*applyconvR)));
+ inputSampleR += (bR[c[7]] * (0.01589900680531097 + (0.00000207347387987*applyconvR)));
+ inputSampleR -= (bR[c[8]] * (0.01087234854973281 + (0.00000732123412029*applyconvR)));
+ inputSampleR -= (bR[c[9]] * (0.00845782429679176 - (0.00000133058605071*applyconvR)));
+ inputSampleR += (bR[c[10]] * (0.00662278586618295 - (0.00000424594730611*applyconvR)));
+ inputSampleR -= (bR[c[11]] * (0.02000592193760155 + (0.00000632896879068*applyconvR)));
+ inputSampleR += (bR[c[12]] * (0.01321157777167565 - (0.00001421171592570*applyconvR)));
+ inputSampleR -= (bR[c[13]] * (0.02249955362988238 + (0.00000163937127317*applyconvR)));
+ inputSampleR += (bR[c[14]] * (0.01196492077581504 - (0.00000535385220676*applyconvR)));
+ inputSampleR -= (bR[c[15]] * (0.01905917427000097 + (0.00000121672882030*applyconvR)));
+ inputSampleR += (bR[c[16]] * (0.00761909482108073 - (0.00000326242895115*applyconvR)));
+ inputSampleR -= (bR[c[17]] * (0.01362744780256239 + (0.00000359274216003*applyconvR)));
+ inputSampleR += (bR[c[18]] * (0.00200183122683721 - (0.00000089207452791*applyconvR)));
+ inputSampleR -= (bR[c[19]] * (0.00833042637239315 + (0.00000946767677294*applyconvR)));
+ inputSampleR -= (bR[c[20]] * (0.00258481175207224 - (0.00000087429351464*applyconvR)));
+ inputSampleR -= (bR[c[21]] * (0.00459744479712244 - (0.00000049519758701*applyconvR)));
+ inputSampleR -= (bR[c[22]] * (0.00534277030993820 + (0.00000397547847155*applyconvR)));
+ inputSampleR -= (bR[c[23]] * (0.00272332919605675 + (0.00000040077229097*applyconvR)));
+ inputSampleR -= (bR[c[24]] * (0.00637243782359372 - (0.00000139419072176*applyconvR)));
+ inputSampleR -= (bR[c[25]] * (0.00233001590327504 + (0.00000420129915747*applyconvR)));
+ inputSampleR -= (bR[c[26]] * (0.00623296727793041 + (0.00000019010664856*applyconvR)));
+ inputSampleR -= (bR[c[27]] * (0.00276177096376805 + (0.00000580301901385*applyconvR)));
+ inputSampleR -= (bR[c[28]] * (0.00559184754866264 + (0.00000080597287792*applyconvR)));
+ inputSampleR -= (bR[c[29]] * (0.00343180144395919 - (0.00000243701142085*applyconvR)));
+ inputSampleR -= (bR[c[30]] * (0.00493325428861701 + (0.00000300985740900*applyconvR)));
+ inputSampleR -= (bR[c[31]] * (0.00396140827680823 - (0.00000051459681789*applyconvR)));
+ inputSampleR -= (bR[c[32]] * (0.00448497879902493 + (0.00000744412841743*applyconvR)));
+ inputSampleR -= (bR[c[33]] * (0.00425146888772076 - (0.00000082346016542*applyconvR)));
+ //end Precious (Precision 8) Holo
+ break;
+ case 6:
+ //begin Punch (API) conv
+ inputSampleR += (bR[c[1]] * (0.09299870608542582 - (0.00009582362368873*applyconvR)));
+ inputSampleR -= (bR[c[2]] * (0.11947847710741009 - (0.00004500891602770*applyconvR)));
+ inputSampleR += (bR[c[3]] * (0.09071606264761795 + (0.00005639498984741*applyconvR)));
+ inputSampleR -= (bR[c[4]] * (0.08561982770836980 - (0.00004964855606916*applyconvR)));
+ inputSampleR += (bR[c[5]] * (0.06440549220820363 + (0.00002428052139507*applyconvR)));
+ inputSampleR -= (bR[c[6]] * (0.05987991812840746 + (0.00000101867082290*applyconvR)));
+ inputSampleR += (bR[c[7]] * (0.03980233135839382 + (0.00003312430049041*applyconvR)));
+ inputSampleR -= (bR[c[8]] * (0.03648402630896925 - (0.00002116186381142*applyconvR)));
+ inputSampleR += (bR[c[9]] * (0.01826860869525248 + (0.00003115110025396*applyconvR)));
+ inputSampleR -= (bR[c[10]] * (0.01723968622495364 - (0.00002450634121718*applyconvR)));
+ inputSampleR += (bR[c[11]] * (0.00187588812316724 + (0.00002838206198968*applyconvR)));
+ inputSampleR -= (bR[c[12]] * (0.00381796423957237 - (0.00003155815499462*applyconvR)));
+ inputSampleR -= (bR[c[13]] * (0.00852092214496733 - (0.00001702651162392*applyconvR)));
+ inputSampleR += (bR[c[14]] * (0.00315560292270588 + (0.00002547861676047*applyconvR)));
+ inputSampleR -= (bR[c[15]] * (0.01258630914496868 - (0.00004555319243213*applyconvR)));
+ inputSampleR += (bR[c[16]] * (0.00536435648963575 + (0.00001812393657101*applyconvR)));
+ inputSampleR -= (bR[c[17]] * (0.01272975658159178 - (0.00004103775306121*applyconvR)));
+ inputSampleR += (bR[c[18]] * (0.00403818975172755 + (0.00003764615492871*applyconvR)));
+ inputSampleR -= (bR[c[19]] * (0.01042617366897483 - (0.00003605210426041*applyconvR)));
+ inputSampleR += (bR[c[20]] * (0.00126599583390057 + (0.00004305458668852*applyconvR)));
+ inputSampleR -= (bR[c[21]] * (0.00747876207688339 - (0.00003731207018977*applyconvR)));
+ inputSampleR -= (bR[c[22]] * (0.00149873689175324 - (0.00005086601800791*applyconvR)));
+ inputSampleR -= (bR[c[23]] * (0.00503221309488033 - (0.00003636086782783*applyconvR)));
+ inputSampleR -= (bR[c[24]] * (0.00342998224655821 - (0.00004103091180506*applyconvR)));
+ inputSampleR -= (bR[c[25]] * (0.00355585977903117 - (0.00003698982145400*applyconvR)));
+ inputSampleR -= (bR[c[26]] * (0.00437201792934817 - (0.00002720235666939*applyconvR)));
+ inputSampleR -= (bR[c[27]] * (0.00299217874451556 - (0.00004446954727956*applyconvR)));
+ inputSampleR -= (bR[c[28]] * (0.00457924652487249 - (0.00003859065778860*applyconvR)));
+ inputSampleR -= (bR[c[29]] * (0.00298182934892027 - (0.00002064710931733*applyconvR)));
+ inputSampleR -= (bR[c[30]] * (0.00438838441540584 - (0.00005223008424866*applyconvR)));
+ inputSampleR -= (bR[c[31]] * (0.00323984218794705 - (0.00003397987535887*applyconvR)));
+ inputSampleR -= (bR[c[32]] * (0.00407693981307314 - (0.00003935772436894*applyconvR)));
+ inputSampleR -= (bR[c[33]] * (0.00350435348467321 - (0.00005525463935338*applyconvR)));
+ //end Punch (API) conv
+ break;
+ case 7:
+ //begin Calibre (?) steel
+ inputSampleR -= (bR[c[1]] * (0.23505923670562212 - (0.00028312859289245*applyconvR)));
+ inputSampleR += (bR[c[2]] * (0.08188436704577637 - (0.00008817721351341*applyconvR)));
+ inputSampleR -= (bR[c[3]] * (0.05075798481700617 - (0.00018817166632483*applyconvR)));
+ inputSampleR -= (bR[c[4]] * (0.00455811821873093 + (0.00001922902995296*applyconvR)));
+ inputSampleR -= (bR[c[5]] * (0.00027610521433660 - (0.00013252525469291*applyconvR)));
+ inputSampleR -= (bR[c[6]] * (0.03529246280346626 - (0.00002772989223299*applyconvR)));
+ inputSampleR += (bR[c[7]] * (0.01784111585586136 + (0.00010230276997291*applyconvR)));
+ inputSampleR -= (bR[c[8]] * (0.04394950700298298 - (0.00005910607126944*applyconvR)));
+ inputSampleR += (bR[c[9]] * (0.01990770780547606 + (0.00007640328340556*applyconvR)));
+ inputSampleR -= (bR[c[10]] * (0.04073629569741782 - (0.00007712327117090*applyconvR)));
+ inputSampleR += (bR[c[11]] * (0.01349648572795252 + (0.00005959130575917*applyconvR)));
+ inputSampleR -= (bR[c[12]] * (0.03191590248003717 - (0.00008418000575151*applyconvR)));
+ inputSampleR += (bR[c[13]] * (0.00348795527924766 + (0.00005489156318238*applyconvR)));
+ inputSampleR -= (bR[c[14]] * (0.02198496281481767 - (0.00008471601187581*applyconvR)));
+ inputSampleR -= (bR[c[15]] * (0.00504771152505089 - (0.00005525060587917*applyconvR)));
+ inputSampleR -= (bR[c[16]] * (0.01391075698598491 - (0.00007929630732607*applyconvR)));
+ inputSampleR -= (bR[c[17]] * (0.01142762504081717 - (0.00005967036737742*applyconvR)));
+ inputSampleR -= (bR[c[18]] * (0.00893541815021255 - (0.00007535697758141*applyconvR)));
+ inputSampleR -= (bR[c[19]] * (0.01459704973464936 - (0.00005969199602841*applyconvR)));
+ inputSampleR -= (bR[c[20]] * (0.00694755135226282 - (0.00006930127097865*applyconvR)));
+ inputSampleR -= (bR[c[21]] * (0.01516695630808575 - (0.00006365800069826*applyconvR)));
+ inputSampleR -= (bR[c[22]] * (0.00705917318113651 - (0.00006497209096539*applyconvR)));
+ inputSampleR -= (bR[c[23]] * (0.01420501209177591 - (0.00006555654576113*applyconvR)));
+ inputSampleR -= (bR[c[24]] * (0.00815905656808701 - (0.00006105622534761*applyconvR)));
+ inputSampleR -= (bR[c[25]] * (0.01274326525552961 - (0.00006542652857017*applyconvR)));
+ inputSampleR -= (bR[c[26]] * (0.00937146927845488 - (0.00006051267868722*applyconvR)));
+ inputSampleR -= (bR[c[27]] * (0.01146573981165209 - (0.00006381511607749*applyconvR)));
+ inputSampleR -= (bR[c[28]] * (0.01021294359409007 - (0.00005930397856398*applyconvR)));
+ inputSampleR -= (bR[c[29]] * (0.01065217095323532 - (0.00006371505438319*applyconvR)));
+ inputSampleR -= (bR[c[30]] * (0.01058751196699751 - (0.00006042857480233*applyconvR)));
+ inputSampleR -= (bR[c[31]] * (0.01026557827762401 - (0.00006007776163871*applyconvR)));
+ inputSampleR -= (bR[c[32]] * (0.01060929183604604 - (0.00006114703012726*applyconvR)));
+ inputSampleR -= (bR[c[33]] * (0.01014533525058528 - (0.00005963567932887*applyconvR)));
+ //end Calibre (?)
+ break;
+ case 8:
+ //begin Tube (Manley) conv
+ inputSampleR -= (bR[c[1]] * (0.20641602693167951 - (0.00078952185394898*applyconvR)));
+ inputSampleR += (bR[c[2]] * (0.07601816702459827 + (0.00022786334179951*applyconvR)));
+ inputSampleR -= (bR[c[3]] * (0.03929765560019285 - (0.00054517993246352*applyconvR)));
+ inputSampleR -= (bR[c[4]] * (0.00298333157711103 - (0.00033083756545638*applyconvR)));
+ inputSampleR += (bR[c[5]] * (0.00724006282304610 + (0.00045483683460812*applyconvR)));
+ inputSampleR -= (bR[c[6]] * (0.03073108963506036 - (0.00038190060537423*applyconvR)));
+ inputSampleR += (bR[c[7]] * (0.02332434692533051 + (0.00040347288688932*applyconvR)));
+ inputSampleR -= (bR[c[8]] * (0.03792606869061214 - (0.00039673687335892*applyconvR)));
+ inputSampleR += (bR[c[9]] * (0.02437059376675688 + (0.00037221210539535*applyconvR)));
+ inputSampleR -= (bR[c[10]] * (0.03416764311979521 - (0.00040314850796953*applyconvR)));
+ inputSampleR += (bR[c[11]] * (0.01761669868102127 + (0.00035989484330131*applyconvR)));
+ inputSampleR -= (bR[c[12]] * (0.02538237753523052 - (0.00040149119125394*applyconvR)));
+ inputSampleR += (bR[c[13]] * (0.00770737340728377 + (0.00035462118723555*applyconvR)));
+ inputSampleR -= (bR[c[14]] * (0.01580706228482803 - (0.00037563141307594*applyconvR)));
+ inputSampleR -= (bR[c[15]] * (0.00055119240005586 - (0.00035409299268971*applyconvR)));
+ inputSampleR -= (bR[c[16]] * (0.00818552143438768 - (0.00036507661042180*applyconvR)));
+ inputSampleR -= (bR[c[17]] * (0.00661842703548304 - (0.00034550528559056*applyconvR)));
+ inputSampleR -= (bR[c[18]] * (0.00362447476272098 - (0.00035553012761240*applyconvR)));
+ inputSampleR -= (bR[c[19]] * (0.00957098027225745 - (0.00034091691045338*applyconvR)));
+ inputSampleR -= (bR[c[20]] * (0.00193621774016660 - (0.00034554529131668*applyconvR)));
+ inputSampleR -= (bR[c[21]] * (0.01005433027357935 - (0.00033878223153845*applyconvR)));
+ inputSampleR -= (bR[c[22]] * (0.00221712428802004 - (0.00033481410137711*applyconvR)));
+ inputSampleR -= (bR[c[23]] * (0.00911255639207995 - (0.00033263425232666*applyconvR)));
+ inputSampleR -= (bR[c[24]] * (0.00339667169034909 - (0.00032634428038430*applyconvR)));
+ inputSampleR -= (bR[c[25]] * (0.00774096948249924 - (0.00032599868802996*applyconvR)));
+ inputSampleR -= (bR[c[26]] * (0.00463907626773794 - (0.00032131993173361*applyconvR)));
+ inputSampleR -= (bR[c[27]] * (0.00658222997260378 - (0.00032014977430211*applyconvR)));
+ inputSampleR -= (bR[c[28]] * (0.00550347079924993 - (0.00031557153256653*applyconvR)));
+ inputSampleR -= (bR[c[29]] * (0.00588754981375325 - (0.00032041307242303*applyconvR)));
+ inputSampleR -= (bR[c[30]] * (0.00590293898419892 - (0.00030457857428714*applyconvR)));
+ inputSampleR -= (bR[c[31]] * (0.00558952010441800 - (0.00030448053548086*applyconvR)));
+ inputSampleR -= (bR[c[32]] * (0.00598183557634295 - (0.00030715064323181*applyconvR)));
+ inputSampleR -= (bR[c[33]] * (0.00555223929714115 - (0.00030319367948553*applyconvR)));
+ //end Tube (Manley) conv
+ break;
+ }
+
+ bridgerectifier = fabs(inputSampleL);
+ bridgerectifier = 1.0-cos(bridgerectifier);
+ if (inputSampleL > 0) inputSampleL -= bridgerectifier;
+ else inputSampleL += bridgerectifier;
+
+ bridgerectifier = fabs(inputSampleR);
+ bridgerectifier = 1.0-cos(bridgerectifier);
+ if (inputSampleR > 0) inputSampleR -= bridgerectifier;
+ else inputSampleR += bridgerectifier;
+
+
+ if (outgain != 1.0) {
+ inputSampleL *= outgain;
+ inputSampleR *= outgain;
+ }
+
+ if (wet !=1.0) {
+ inputSampleL = (inputSampleL * wet) + (drySampleL * dry);
+ inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
+ }
+
+ //noise shaping to 32-bit floating point
+ if (fpFlip) {
+ fpTemp = inputSampleL;
+ fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
+ inputSampleL += fpNShapeLA;
+ fpTemp = inputSampleR;
+ fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
+ inputSampleR += fpNShapeRA;
+ }
+ else {
+ fpTemp = inputSampleL;
+ fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
+ inputSampleL += fpNShapeLB;
+ fpTemp = inputSampleR;
+ fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
+ inputSampleR += fpNShapeRB;
+ }
+ fpFlip = !fpFlip;
+ //end noise shaping on 32 bit output
+
+ *out1 = inputSampleL;
+ *out2 = inputSampleR;
+
+ *in1++;
+ *in2++;
+ *out1++;
+ *out2++;
+ }
+}
+
+void BussColors4::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
+{
+ double* in1 = inputs[0];
+ double* in2 = inputs[1];
+ double* out1 = outputs[0];
+ double* out2 = outputs[1];
+
+ double overallscale = 1.0;
+ overallscale /= 44100.0;
+ overallscale *= getSampleRate();
+ if (overallscale < 1.0) overallscale = 1.0;
+ if (overallscale > 4.5) overallscale = 4.5;
+ const int maxConvolutionBufferSize = (int)(34.0 * overallscale); //we won't use more of the buffer than we have to
+ for (int count = 0; count < 34; count++) c[count] = (int)(count * overallscale); //assign conv taps
+ double drySampleL;
+ double drySampleR;
+ double applyconvL;
+ double applyconvR;
+ int offsetA = 3;
+ double dynamicconvL = 3.0;
+ double dynamicconvR = 3.0;
+ double gain = 0.436;
+ double outgain = 1.0;
+ double bridgerectifier;
+ double fpTemp;
+ long double fpOld = 0.618033988749894848204586; //golden ratio!
+ long double fpNew = 1.0 - fpOld;
+
+ long double inputSampleL;
+ long double inputSampleR;
+
+ int console = (int)( A * 7.999 )+1; //the AU used a 1-8 index, will just keep it
+ switch (console)
+ {
+ case 1: offsetA = 4; gain = g[1]; outgain = outg[1]; break; //Dark (Focusrite)
+ case 2: offsetA = 3; gain = g[2]; outgain = outg[2]; break; //Rock (SSL)
+ case 3: offsetA = 5; gain = g[3]; outgain = outg[3]; break; //Lush (Neve)
+ case 4: offsetA = 8; gain = g[4]; outgain = outg[4]; break; //Vibe (Elation)
+ case 5: offsetA = 5; gain = g[5]; outgain = outg[5]; break; //Holo (Precision 8)
+ case 6: offsetA = 7; gain = g[6]; outgain = outg[6]; break; //Punch (API)
+ case 7: offsetA = 7; gain = g[7]; outgain = outg[7]; break; //Steel (Calibre)
+ case 8: offsetA = 6; gain = g[8]; outgain = outg[8]; break; //Tube (Manley)
+ }
+ offsetA = (int)(offsetA * overallscale); //we extend the sag buffer too, at high sample rates
+ if (offsetA < 3) offsetA = 3; //are we getting divides by zero?
+ gain *= pow(10.0,((B * 36.0)-18.0)/14.0); //add adjustment factor
+ outgain *= pow(10.0,(((C * 36.0)-18.0)+3.3)/14.0); //add adjustment factor
+ double wet = D;
+ double dry = 1.0 - wet;
+
+ while (--sampleFrames >= 0)
+ {
+ inputSampleL = *in1;
+ inputSampleR = *in2;
+ if (inputSampleL<1.2e-38 && -inputSampleL<1.2e-38) {
+ static int noisesource = 0;
+ //this declares a variable before anything else is compiled. It won't keep assigning
+ //it to 0 for every sample, it's as if the declaration doesn't exist in this context,
+ //but it lets me add this denormalization fix in a single place rather than updating
+ //it in three different locations. The variable isn't thread-safe but this is only
+ //a random seed and we can share it with whatever.
+ noisesource = noisesource % 1700021; noisesource++;
+ int residue = noisesource * noisesource;
+ residue = residue % 170003; residue *= residue;
+ residue = residue % 17011; residue *= residue;
+ residue = residue % 1709; residue *= residue;
+ residue = residue % 173; residue *= residue;
+ residue = residue % 17;
+ double applyresidue = residue;
+ applyresidue *= 0.00000001;
+ applyresidue *= 0.00000001;
+ inputSampleL = applyresidue;
+ }
+ if (inputSampleR<1.2e-38 && -inputSampleR<1.2e-38) {
+ static int noisesource = 0;
+ noisesource = noisesource % 1700021; noisesource++;
+ int residue = noisesource * noisesource;
+ residue = residue % 170003; residue *= residue;
+ residue = residue % 17011; residue *= residue;
+ residue = residue % 1709; residue *= residue;
+ residue = residue % 173; residue *= residue;
+ residue = residue % 17;
+ double applyresidue = residue;
+ applyresidue *= 0.00000001;
+ applyresidue *= 0.00000001;
+ inputSampleR = applyresidue;
+ //this denormalization routine produces a white noise at -300 dB which the noise
+ //shaping will interact with to produce a bipolar output, but the noise is actually
+ //all positive. That should stop any variables from going denormal, and the routine
+ //only kicks in if digital black is input. As a final touch, if you save to 24-bit
+ //the silence will return to being digital black again.
+ }
+ drySampleL = inputSampleL;
+ drySampleR = inputSampleR;
+
+ if (gain != 1.0) {
+ inputSampleL *= gain;
+ inputSampleR *= gain;
+ }
+
+
+ bridgerectifier = fabs(inputSampleL);
+ slowdynL *= 0.999;
+ slowdynL += bridgerectifier;
+ if (slowdynL > 1.5) {slowdynL = 1.5;}
+ //before the iron bar- fry console for crazy behavior
+ dynamicconvL = 2.5 + slowdynL;
+
+ if (bridgerectifier > 1.57079633) bridgerectifier = 1.0;
+ else bridgerectifier = sin(bridgerectifier);
+ if (inputSampleL > 0) inputSampleL = bridgerectifier;
+ else inputSampleL = -bridgerectifier;
+ //end pre saturation stage L
+
+ bridgerectifier = fabs(inputSampleR);
+ slowdynR *= 0.999;
+ slowdynR += bridgerectifier;
+ if (slowdynR > 1.5) {slowdynR = 1.5;}
+ //before the iron bar- fry console for crazy behavior
+ dynamicconvR = 2.5 + slowdynR;
+
+ if (bridgerectifier > 1.57079633) bridgerectifier = 1.0;
+ else bridgerectifier = sin(bridgerectifier);
+ if (inputSampleR > 0) inputSampleR = bridgerectifier;
+ else inputSampleR = -bridgerectifier;
+ //end pre saturation stage R
+
+ if (gcount < 0 || gcount > 44) gcount = 44;
+
+ dL[gcount+44] = dL[gcount] = fabs(inputSampleL);
+ controlL += (dL[gcount] / offsetA);
+ controlL -= (dL[gcount+offsetA] / offsetA);
+ controlL -= 0.000001;
+ if (controlL < 0) controlL = 0;
+ if (controlL > 100) controlL = 100;
+ applyconvL = (controlL / offsetA) * dynamicconvL;
+ //now we have a 'sag' style average to apply to the conv, L
+
+ dR[gcount+44] = dR[gcount] = fabs(inputSampleR);
+ controlR += (dR[gcount] / offsetA);
+ controlR -= (dR[gcount+offsetA] / offsetA);
+ controlR -= 0.000001;
+ if (controlR < 0) controlR = 0;
+ if (controlR > 100) controlR = 100;
+ applyconvR = (controlR / offsetA) * dynamicconvR;
+ //now we have a 'sag' style average to apply to the conv, R
+
+ gcount--;
+
+ //now the convolution
+ for (int count = maxConvolutionBufferSize; count > 0; --count) {bL[count] = bL[count-1];} //was 173
+ //we're only doing assigns, and it saves us an add inside the convolution calculation
+ //therefore, we'll just assign everything one step along and have our buffer that way.
+ bL[0] = inputSampleL;
+
+ for (int count = maxConvolutionBufferSize; count > 0; --count) {bR[count] = bR[count-1];} //was 173
+ //we're only doing assigns, and it saves us an add inside the convolution calculation
+ //therefore, we'll just assign everything one step along and have our buffer that way.
+ bR[0] = inputSampleR;
+ //The reason these are separate is, since it's just a big assign-fest, it's possible compilers can
+ //come up with a clever way to do it. Interleaving the samples might make it enough more complicated
+ //that the compiler wouldn't know to do 'em in batches or whatever. Just a thought, profiling would
+ //be the correct way to find out this (or indeed, whether doing another add insode the convolutions would
+ //be the best bet,
+
+ //The convolutions!
+
+ switch (console)
+ {
+ case 1:
+ //begin Cider (Focusrite) MCI
+ inputSampleL += (bL[c[1]] * (0.61283288942201319 + (0.00024011410669522*applyconvL)));
+ inputSampleL -= (bL[c[2]] * (0.24036380659761222 - (0.00020789518206241*applyconvL)));
+ inputSampleL += (bL[c[3]] * (0.09104669761717916 + (0.00012829642741548*applyconvL)));
+ inputSampleL -= (bL[c[4]] * (0.02378290768554025 - (0.00017673646470440*applyconvL)));
+ inputSampleL -= (bL[c[5]] * (0.02832818490275965 - (0.00013536187747384*applyconvL)));
+ inputSampleL += (bL[c[6]] * (0.03268797679215937 + (0.00015035126653359*applyconvL)));
+ inputSampleL -= (bL[c[7]] * (0.04024464202655586 - (0.00015034923056735*applyconvL)));
+ inputSampleL += (bL[c[8]] * (0.01864890074318696 + (0.00014513281680642*applyconvL)));
+ inputSampleL -= (bL[c[9]] * (0.01632731954100322 - (0.00015509089075614*applyconvL)));
+ inputSampleL -= (bL[c[10]] * (0.00318907090555589 - (0.00014784812076550*applyconvL)));
+ inputSampleL -= (bL[c[11]] * (0.00208573465221869 - (0.00015350520779465*applyconvL)));
+ inputSampleL -= (bL[c[12]] * (0.00907033901519614 - (0.00015442964157250*applyconvL)));
+ inputSampleL -= (bL[c[13]] * (0.00199458794148013 - (0.00015595640046297*applyconvL)));
+ inputSampleL -= (bL[c[14]] * (0.00705979153201755 - (0.00015730069418051*applyconvL)));
+ inputSampleL -= (bL[c[15]] * (0.00429488975412722 - (0.00015743697943505*applyconvL)));
+ inputSampleL -= (bL[c[16]] * (0.00497724878704936 - (0.00016014760011861*applyconvL)));
+ inputSampleL -= (bL[c[17]] * (0.00506059305562353 - (0.00016194824072466*applyconvL)));
+ inputSampleL -= (bL[c[18]] * (0.00483432223285621 - (0.00016329050124225*applyconvL)));
+ inputSampleL -= (bL[c[19]] * (0.00495100420886005 - (0.00016297509798749*applyconvL)));
+ inputSampleL -= (bL[c[20]] * (0.00489319520555115 - (0.00016472839684661*applyconvL)));
+ inputSampleL -= (bL[c[21]] * (0.00489177657970308 - (0.00016791875866630*applyconvL)));
+ inputSampleL -= (bL[c[22]] * (0.00487900894707044 - (0.00016755993898534*applyconvL)));
+ inputSampleL -= (bL[c[23]] * (0.00486234009335561 - (0.00016968157345446*applyconvL)));
+ inputSampleL -= (bL[c[24]] * (0.00485737490288736 - (0.00017180713324431*applyconvL)));
+ inputSampleL -= (bL[c[25]] * (0.00484106070563455 - (0.00017251073661092*applyconvL)));
+ inputSampleL -= (bL[c[26]] * (0.00483219429408410 - (0.00017321683790891*applyconvL)));
+ inputSampleL -= (bL[c[27]] * (0.00482013597437550 - (0.00017392186866488*applyconvL)));
+ inputSampleL -= (bL[c[28]] * (0.00480949628051497 - (0.00017569098775602*applyconvL)));
+ inputSampleL -= (bL[c[29]] * (0.00479992055604049 - (0.00017746046369449*applyconvL)));
+ inputSampleL -= (bL[c[30]] * (0.00478750757986987 - (0.00017745630047554*applyconvL)));
+ inputSampleL -= (bL[c[31]] * (0.00477828651185740 - (0.00017958043287604*applyconvL)));
+ inputSampleL -= (bL[c[32]] * (0.00476906544384494 - (0.00018170456527653*applyconvL)));
+ inputSampleL -= (bL[c[33]] * (0.00475700712413634 - (0.00018099144598088*applyconvL)));
+ //end Cider (Focusrite) MCI
+ break;
+ case 2:
+ //begin Rock (SSL) conv
+ inputSampleL += (bL[c[1]] * (0.67887916185274055 + (0.00068787552301086*applyconvL)));
+ inputSampleL -= (bL[c[2]] * (0.25671050678827934 + (0.00017691749454490*applyconvL)));
+ inputSampleL += (bL[c[3]] * (0.15135839896615280 + (0.00007481480365043*applyconvL)));
+ inputSampleL -= (bL[c[4]] * (0.11813512969090802 + (0.00005191138121359*applyconvL)));
+ inputSampleL += (bL[c[5]] * (0.08329104347166429 + (0.00001871054659794*applyconvL)));
+ inputSampleL -= (bL[c[6]] * (0.07663817456103936 + (0.00002751359071705*applyconvL)));
+ inputSampleL += (bL[c[7]] * (0.05477586152148759 + (0.00000744843212679*applyconvL)));
+ inputSampleL -= (bL[c[8]] * (0.05547314737187786 + (0.00001025289931145*applyconvL)));
+ inputSampleL += (bL[c[9]] * (0.03822948356540711 - (0.00000249791561457*applyconvL)));
+ inputSampleL -= (bL[c[10]] * (0.04199383340841713 - (0.00000067328840674*applyconvL)));
+ inputSampleL += (bL[c[11]] * (0.02695796542339694 - (0.00000796704606548*applyconvL)));
+ inputSampleL -= (bL[c[12]] * (0.03228715059431878 - (0.00000579711816722*applyconvL)));
+ inputSampleL += (bL[c[13]] * (0.01846929689819187 - (0.00000984017804950*applyconvL)));
+ inputSampleL -= (bL[c[14]] * (0.02528050435045951 - (0.00000701189792484*applyconvL)));
+ inputSampleL += (bL[c[15]] * (0.01207844846859765 - (0.00001522630289356*applyconvL)));
+ inputSampleL -= (bL[c[16]] * (0.01894464378378515 - (0.00001205456372080*applyconvL)));
+ inputSampleL += (bL[c[17]] * (0.00667804407593324 - (0.00001343604283817*applyconvL)));
+ inputSampleL -= (bL[c[18]] * (0.01408418045473130 - (0.00001246443581504*applyconvL)));
+ inputSampleL += (bL[c[19]] * (0.00228696509481569 - (0.00001506764046927*applyconvL)));
+ inputSampleL -= (bL[c[20]] * (0.01006277891348454 - (0.00000970723079112*applyconvL)));
+ inputSampleL -= (bL[c[21]] * (0.00132368373546377 + (0.00001188847238761*applyconvL)));
+ inputSampleL -= (bL[c[22]] * (0.00676615715578373 - (0.00001209129844861*applyconvL)));
+ inputSampleL -= (bL[c[23]] * (0.00426288438418556 + (0.00001286836943559*applyconvL)));
+ inputSampleL -= (bL[c[24]] * (0.00408897698639688 - (0.00001102542567911*applyconvL)));
+ inputSampleL -= (bL[c[25]] * (0.00662040619382751 + (0.00001206328529063*applyconvL)));
+ inputSampleL -= (bL[c[26]] * (0.00196101294183599 - (0.00000950703614981*applyconvL)));
+ inputSampleL -= (bL[c[27]] * (0.00845620581010342 + (0.00001279970295678*applyconvL)));
+ inputSampleL -= (bL[c[28]] * (0.00032595215043616 - (0.00000920518241371*applyconvL)));
+ inputSampleL -= (bL[c[29]] * (0.00982957737435458 + (0.00001177745362317*applyconvL)));
+ inputSampleL += (bL[c[30]] * (0.00086920573760513 + (0.00000913758382404*applyconvL)));
+ inputSampleL -= (bL[c[31]] * (0.01079020871452061 + (0.00000900750153697*applyconvL)));
+ inputSampleL += (bL[c[32]] * (0.00167613606334460 + (0.00000732769151038*applyconvL)));
+ inputSampleL -= (bL[c[33]] * (0.01138050011044332 + (0.00000946908207442*applyconvL)));
+ //end Rock (SSL) conv
+ break;
+ case 3:
+ //begin Lush (Neve) conv
+ inputSampleL += (bL[c[1]] * (0.20641602693167951 - (0.00078952185394898*applyconvL)));
+ inputSampleL -= (bL[c[2]] * (0.07601816702459827 + (0.00022786334179951*applyconvL)));
+ inputSampleL += (bL[c[3]] * (0.03929765560019285 - (0.00054517993246352*applyconvL)));
+ inputSampleL += (bL[c[4]] * (0.00298333157711103 - (0.00033083756545638*applyconvL)));
+ inputSampleL -= (bL[c[5]] * (0.00724006282304610 + (0.00045483683460812*applyconvL)));
+ inputSampleL += (bL[c[6]] * (0.03073108963506036 - (0.00038190060537423*applyconvL)));
+ inputSampleL -= (bL[c[7]] * (0.02332434692533051 + (0.00040347288688932*applyconvL)));
+ inputSampleL += (bL[c[8]] * (0.03792606869061214 - (0.00039673687335892*applyconvL)));
+ inputSampleL -= (bL[c[9]] * (0.02437059376675688 + (0.00037221210539535*applyconvL)));
+ inputSampleL += (bL[c[10]] * (0.03416764311979521 - (0.00040314850796953*applyconvL)));
+ inputSampleL -= (bL[c[11]] * (0.01761669868102127 + (0.00035989484330131*applyconvL)));
+ inputSampleL += (bL[c[12]] * (0.02538237753523052 - (0.00040149119125394*applyconvL)));
+ inputSampleL -= (bL[c[13]] * (0.00770737340728377 + (0.00035462118723555*applyconvL)));
+ inputSampleL += (bL[c[14]] * (0.01580706228482803 - (0.00037563141307594*applyconvL)));
+ inputSampleL += (bL[c[15]] * (0.00055119240005586 - (0.00035409299268971*applyconvL)));
+ inputSampleL += (bL[c[16]] * (0.00818552143438768 - (0.00036507661042180*applyconvL)));
+ inputSampleL += (bL[c[17]] * (0.00661842703548304 - (0.00034550528559056*applyconvL)));
+ inputSampleL += (bL[c[18]] * (0.00362447476272098 - (0.00035553012761240*applyconvL)));
+ inputSampleL += (bL[c[19]] * (0.00957098027225745 - (0.00034091691045338*applyconvL)));
+ inputSampleL += (bL[c[20]] * (0.00193621774016660 - (0.00034554529131668*applyconvL)));
+ inputSampleL += (bL[c[21]] * (0.01005433027357935 - (0.00033878223153845*applyconvL)));
+ inputSampleL += (bL[c[22]] * (0.00221712428802004 - (0.00033481410137711*applyconvL)));
+ inputSampleL += (bL[c[23]] * (0.00911255639207995 - (0.00033263425232666*applyconvL)));
+ inputSampleL += (bL[c[24]] * (0.00339667169034909 - (0.00032634428038430*applyconvL)));
+ inputSampleL += (bL[c[25]] * (0.00774096948249924 - (0.00032599868802996*applyconvL)));
+ inputSampleL += (bL[c[26]] * (0.00463907626773794 - (0.00032131993173361*applyconvL)));
+ inputSampleL += (bL[c[27]] * (0.00658222997260378 - (0.00032014977430211*applyconvL)));
+ inputSampleL += (bL[c[28]] * (0.00550347079924993 - (0.00031557153256653*applyconvL)));
+ inputSampleL += (bL[c[29]] * (0.00588754981375325 - (0.00032041307242303*applyconvL)));
+ inputSampleL += (bL[c[30]] * (0.00590293898419892 - (0.00030457857428714*applyconvL)));
+ inputSampleL += (bL[c[31]] * (0.00558952010441800 - (0.00030448053548086*applyconvL)));
+ inputSampleL += (bL[c[32]] * (0.00598183557634295 - (0.00030715064323181*applyconvL)));
+ inputSampleL += (bL[c[33]] * (0.00555223929714115 - (0.00030319367948553*applyconvL)));
+ //end Lush (Neve) conv
+ break;
+ case 4:
+ //begin Elation (LA2A) vibe
+ inputSampleL -= (bL[c[1]] * (0.25867935358656502 - (0.00045755657070112*applyconvL)));
+ inputSampleL += (bL[c[2]] * (0.11509367290253694 - (0.00017494270657228*applyconvL)));
+ inputSampleL -= (bL[c[3]] * (0.06709853575891785 - (0.00058913102597723*applyconvL)));
+ inputSampleL += (bL[c[4]] * (0.01871006356851681 - (0.00003387358004645*applyconvL)));
+ inputSampleL -= (bL[c[5]] * (0.00794797957360465 - (0.00044224784691203*applyconvL)));
+ inputSampleL -= (bL[c[6]] * (0.01956921817394220 - (0.00006718936750076*applyconvL)));
+ inputSampleL += (bL[c[7]] * (0.01682120257195205 + (0.00032857446292230*applyconvL)));
+ inputSampleL -= (bL[c[8]] * (0.03401069039824205 - (0.00013634182872897*applyconvL)));
+ inputSampleL += (bL[c[9]] * (0.02369950268232634 + (0.00023112685751657*applyconvL)));
+ inputSampleL -= (bL[c[10]] * (0.03477071178117132 - (0.00018029792231600*applyconvL)));
+ inputSampleL += (bL[c[11]] * (0.02024369717958201 + (0.00017337813374202*applyconvL)));
+ inputSampleL -= (bL[c[12]] * (0.02819087729102172 - (0.00021438538665420*applyconvL)));
+ inputSampleL += (bL[c[13]] * (0.01147946743141303 + (0.00014424066034649*applyconvL)));
+ inputSampleL -= (bL[c[14]] * (0.01894777011468867 - (0.00021549146262408*applyconvL)));
+ inputSampleL += (bL[c[15]] * (0.00301370330346873 + (0.00013527460148394*applyconvL)));
+ inputSampleL -= (bL[c[16]] * (0.01067147835815486 - (0.00020960689910868*applyconvL)));
+ inputSampleL -= (bL[c[17]] * (0.00402715397506384 - (0.00014421582712470*applyconvL)));
+ inputSampleL -= (bL[c[18]] * (0.00502221703392005 - (0.00019805767015024*applyconvL)));
+ inputSampleL -= (bL[c[19]] * (0.00808788533308497 - (0.00016095444141931*applyconvL)));
+ inputSampleL -= (bL[c[20]] * (0.00232696588842683 - (0.00018384470981829*applyconvL)));
+ inputSampleL -= (bL[c[21]] * (0.00943950821324531 - (0.00017098987347593*applyconvL)));
+ inputSampleL -= (bL[c[22]] * (0.00193709517200834 - (0.00018151995939591*applyconvL)));
+ inputSampleL -= (bL[c[23]] * (0.00899713952612659 - (0.00017385835059948*applyconvL)));
+ inputSampleL -= (bL[c[24]] * (0.00280584331659089 - (0.00017742164162470*applyconvL)));
+ inputSampleL -= (bL[c[25]] * (0.00780381001954970 - (0.00018002500755708*applyconvL)));
+ inputSampleL -= (bL[c[26]] * (0.00400370310490333 - (0.00017471691087957*applyconvL)));
+ inputSampleL -= (bL[c[27]] * (0.00661527728186928 - (0.00018137323370347*applyconvL)));
+ inputSampleL -= (bL[c[28]] * (0.00496545526864518 - (0.00017681872601767*applyconvL)));
+ inputSampleL -= (bL[c[29]] * (0.00580728820997532 - (0.00018186220389790*applyconvL)));
+ inputSampleL -= (bL[c[30]] * (0.00549309984725666 - (0.00017722985399075*applyconvL)));
+ inputSampleL -= (bL[c[31]] * (0.00542194777529239 - (0.00018486900185338*applyconvL)));
+ inputSampleL -= (bL[c[32]] * (0.00565992080998939 - (0.00018005824393118*applyconvL)));
+ inputSampleL -= (bL[c[33]] * (0.00532121562846656 - (0.00018643189636216*applyconvL)));
+ //end Elation (LA2A)
+ break;
+ case 5:
+ //begin Precious (Precision 8) Holo
+ inputSampleL += (bL[c[1]] * (0.59188440274551890 - (0.00008361469668405*applyconvL)));
+ inputSampleL -= (bL[c[2]] * (0.24439750948076133 + (0.00002651678396848*applyconvL)));
+ inputSampleL += (bL[c[3]] * (0.14109876103205621 - (0.00000840487181372*applyconvL)));
+ inputSampleL -= (bL[c[4]] * (0.10053507128157971 + (0.00001768100964598*applyconvL)));
+ inputSampleL += (bL[c[5]] * (0.05859287880626238 - (0.00000361398065989*applyconvL)));
+ inputSampleL -= (bL[c[6]] * (0.04337406889823660 + (0.00000735941182117*applyconvL)));
+ inputSampleL += (bL[c[7]] * (0.01589900680531097 + (0.00000207347387987*applyconvL)));
+ inputSampleL -= (bL[c[8]] * (0.01087234854973281 + (0.00000732123412029*applyconvL)));
+ inputSampleL -= (bL[c[9]] * (0.00845782429679176 - (0.00000133058605071*applyconvL)));
+ inputSampleL += (bL[c[10]] * (0.00662278586618295 - (0.00000424594730611*applyconvL)));
+ inputSampleL -= (bL[c[11]] * (0.02000592193760155 + (0.00000632896879068*applyconvL)));
+ inputSampleL += (bL[c[12]] * (0.01321157777167565 - (0.00001421171592570*applyconvL)));
+ inputSampleL -= (bL[c[13]] * (0.02249955362988238 + (0.00000163937127317*applyconvL)));
+ inputSampleL += (bL[c[14]] * (0.01196492077581504 - (0.00000535385220676*applyconvL)));
+ inputSampleL -= (bL[c[15]] * (0.01905917427000097 + (0.00000121672882030*applyconvL)));
+ inputSampleL += (bL[c[16]] * (0.00761909482108073 - (0.00000326242895115*applyconvL)));
+ inputSampleL -= (bL[c[17]] * (0.01362744780256239 + (0.00000359274216003*applyconvL)));
+ inputSampleL += (bL[c[18]] * (0.00200183122683721 - (0.00000089207452791*applyconvL)));
+ inputSampleL -= (bL[c[19]] * (0.00833042637239315 + (0.00000946767677294*applyconvL)));
+ inputSampleL -= (bL[c[20]] * (0.00258481175207224 - (0.00000087429351464*applyconvL)));
+ inputSampleL -= (bL[c[21]] * (0.00459744479712244 - (0.00000049519758701*applyconvL)));
+ inputSampleL -= (bL[c[22]] * (0.00534277030993820 + (0.00000397547847155*applyconvL)));
+ inputSampleL -= (bL[c[23]] * (0.00272332919605675 + (0.00000040077229097*applyconvL)));
+ inputSampleL -= (bL[c[24]] * (0.00637243782359372 - (0.00000139419072176*applyconvL)));
+ inputSampleL -= (bL[c[25]] * (0.00233001590327504 + (0.00000420129915747*applyconvL)));
+ inputSampleL -= (bL[c[26]] * (0.00623296727793041 + (0.00000019010664856*applyconvL)));
+ inputSampleL -= (bL[c[27]] * (0.00276177096376805 + (0.00000580301901385*applyconvL)));
+ inputSampleL -= (bL[c[28]] * (0.00559184754866264 + (0.00000080597287792*applyconvL)));
+ inputSampleL -= (bL[c[29]] * (0.00343180144395919 - (0.00000243701142085*applyconvL)));
+ inputSampleL -= (bL[c[30]] * (0.00493325428861701 + (0.00000300985740900*applyconvL)));
+ inputSampleL -= (bL[c[31]] * (0.00396140827680823 - (0.00000051459681789*applyconvL)));
+ inputSampleL -= (bL[c[32]] * (0.00448497879902493 + (0.00000744412841743*applyconvL)));
+ inputSampleL -= (bL[c[33]] * (0.00425146888772076 - (0.00000082346016542*applyconvL)));
+ //end Precious (Precision 8) Holo
+ break;
+ case 6:
+ //begin Punch (API) conv
+ inputSampleL += (bL[c[1]] * (0.09299870608542582 - (0.00009582362368873*applyconvL)));
+ inputSampleL -= (bL[c[2]] * (0.11947847710741009 - (0.00004500891602770*applyconvL)));
+ inputSampleL += (bL[c[3]] * (0.09071606264761795 + (0.00005639498984741*applyconvL)));
+ inputSampleL -= (bL[c[4]] * (0.08561982770836980 - (0.00004964855606916*applyconvL)));
+ inputSampleL += (bL[c[5]] * (0.06440549220820363 + (0.00002428052139507*applyconvL)));
+ inputSampleL -= (bL[c[6]] * (0.05987991812840746 + (0.00000101867082290*applyconvL)));
+ inputSampleL += (bL[c[7]] * (0.03980233135839382 + (0.00003312430049041*applyconvL)));
+ inputSampleL -= (bL[c[8]] * (0.03648402630896925 - (0.00002116186381142*applyconvL)));
+ inputSampleL += (bL[c[9]] * (0.01826860869525248 + (0.00003115110025396*applyconvL)));
+ inputSampleL -= (bL[c[10]] * (0.01723968622495364 - (0.00002450634121718*applyconvL)));
+ inputSampleL += (bL[c[11]] * (0.00187588812316724 + (0.00002838206198968*applyconvL)));
+ inputSampleL -= (bL[c[12]] * (0.00381796423957237 - (0.00003155815499462*applyconvL)));
+ inputSampleL -= (bL[c[13]] * (0.00852092214496733 - (0.00001702651162392*applyconvL)));
+ inputSampleL += (bL[c[14]] * (0.00315560292270588 + (0.00002547861676047*applyconvL)));
+ inputSampleL -= (bL[c[15]] * (0.01258630914496868 - (0.00004555319243213*applyconvL)));
+ inputSampleL += (bL[c[16]] * (0.00536435648963575 + (0.00001812393657101*applyconvL)));
+ inputSampleL -= (bL[c[17]] * (0.01272975658159178 - (0.00004103775306121*applyconvL)));
+ inputSampleL += (bL[c[18]] * (0.00403818975172755 + (0.00003764615492871*applyconvL)));
+ inputSampleL -= (bL[c[19]] * (0.01042617366897483 - (0.00003605210426041*applyconvL)));
+ inputSampleL += (bL[c[20]] * (0.00126599583390057 + (0.00004305458668852*applyconvL)));
+ inputSampleL -= (bL[c[21]] * (0.00747876207688339 - (0.00003731207018977*applyconvL)));
+ inputSampleL -= (bL[c[22]] * (0.00149873689175324 - (0.00005086601800791*applyconvL)));
+ inputSampleL -= (bL[c[23]] * (0.00503221309488033 - (0.00003636086782783*applyconvL)));
+ inputSampleL -= (bL[c[24]] * (0.00342998224655821 - (0.00004103091180506*applyconvL)));
+ inputSampleL -= (bL[c[25]] * (0.00355585977903117 - (0.00003698982145400*applyconvL)));
+ inputSampleL -= (bL[c[26]] * (0.00437201792934817 - (0.00002720235666939*applyconvL)));
+ inputSampleL -= (bL[c[27]] * (0.00299217874451556 - (0.00004446954727956*applyconvL)));
+ inputSampleL -= (bL[c[28]] * (0.00457924652487249 - (0.00003859065778860*applyconvL)));
+ inputSampleL -= (bL[c[29]] * (0.00298182934892027 - (0.00002064710931733*applyconvL)));
+ inputSampleL -= (bL[c[30]] * (0.00438838441540584 - (0.00005223008424866*applyconvL)));
+ inputSampleL -= (bL[c[31]] * (0.00323984218794705 - (0.00003397987535887*applyconvL)));
+ inputSampleL -= (bL[c[32]] * (0.00407693981307314 - (0.00003935772436894*applyconvL)));
+ inputSampleL -= (bL[c[33]] * (0.00350435348467321 - (0.00005525463935338*applyconvL)));
+ //end Punch (API) conv
+ break;
+ case 7:
+ //begin Calibre (?) steel
+ inputSampleL -= (bL[c[1]] * (0.23505923670562212 - (0.00028312859289245*applyconvL)));
+ inputSampleL += (bL[c[2]] * (0.08188436704577637 - (0.00008817721351341*applyconvL)));
+ inputSampleL -= (bL[c[3]] * (0.05075798481700617 - (0.00018817166632483*applyconvL)));
+ inputSampleL -= (bL[c[4]] * (0.00455811821873093 + (0.00001922902995296*applyconvL)));
+ inputSampleL -= (bL[c[5]] * (0.00027610521433660 - (0.00013252525469291*applyconvL)));
+ inputSampleL -= (bL[c[6]] * (0.03529246280346626 - (0.00002772989223299*applyconvL)));
+ inputSampleL += (bL[c[7]] * (0.01784111585586136 + (0.00010230276997291*applyconvL)));
+ inputSampleL -= (bL[c[8]] * (0.04394950700298298 - (0.00005910607126944*applyconvL)));
+ inputSampleL += (bL[c[9]] * (0.01990770780547606 + (0.00007640328340556*applyconvL)));
+ inputSampleL -= (bL[c[10]] * (0.04073629569741782 - (0.00007712327117090*applyconvL)));
+ inputSampleL += (bL[c[11]] * (0.01349648572795252 + (0.00005959130575917*applyconvL)));
+ inputSampleL -= (bL[c[12]] * (0.03191590248003717 - (0.00008418000575151*applyconvL)));
+ inputSampleL += (bL[c[13]] * (0.00348795527924766 + (0.00005489156318238*applyconvL)));
+ inputSampleL -= (bL[c[14]] * (0.02198496281481767 - (0.00008471601187581*applyconvL)));
+ inputSampleL -= (bL[c[15]] * (0.00504771152505089 - (0.00005525060587917*applyconvL)));
+ inputSampleL -= (bL[c[16]] * (0.01391075698598491 - (0.00007929630732607*applyconvL)));
+ inputSampleL -= (bL[c[17]] * (0.01142762504081717 - (0.00005967036737742*applyconvL)));
+ inputSampleL -= (bL[c[18]] * (0.00893541815021255 - (0.00007535697758141*applyconvL)));
+ inputSampleL -= (bL[c[19]] * (0.01459704973464936 - (0.00005969199602841*applyconvL)));
+ inputSampleL -= (bL[c[20]] * (0.00694755135226282 - (0.00006930127097865*applyconvL)));
+ inputSampleL -= (bL[c[21]] * (0.01516695630808575 - (0.00006365800069826*applyconvL)));
+ inputSampleL -= (bL[c[22]] * (0.00705917318113651 - (0.00006497209096539*applyconvL)));
+ inputSampleL -= (bL[c[23]] * (0.01420501209177591 - (0.00006555654576113*applyconvL)));
+ inputSampleL -= (bL[c[24]] * (0.00815905656808701 - (0.00006105622534761*applyconvL)));
+ inputSampleL -= (bL[c[25]] * (0.01274326525552961 - (0.00006542652857017*applyconvL)));
+ inputSampleL -= (bL[c[26]] * (0.00937146927845488 - (0.00006051267868722*applyconvL)));
+ inputSampleL -= (bL[c[27]] * (0.01146573981165209 - (0.00006381511607749*applyconvL)));
+ inputSampleL -= (bL[c[28]] * (0.01021294359409007 - (0.00005930397856398*applyconvL)));
+ inputSampleL -= (bL[c[29]] * (0.01065217095323532 - (0.00006371505438319*applyconvL)));
+ inputSampleL -= (bL[c[30]] * (0.01058751196699751 - (0.00006042857480233*applyconvL)));
+ inputSampleL -= (bL[c[31]] * (0.01026557827762401 - (0.00006007776163871*applyconvL)));
+ inputSampleL -= (bL[c[32]] * (0.01060929183604604 - (0.00006114703012726*applyconvL)));
+ inputSampleL -= (bL[c[33]] * (0.01014533525058528 - (0.00005963567932887*applyconvL)));
+ //end Calibre (?)
+ break;
+ case 8:
+ //begin Tube (Manley) conv
+ inputSampleL -= (bL[c[1]] * (0.20641602693167951 - (0.00078952185394898*applyconvL)));
+ inputSampleL += (bL[c[2]] * (0.07601816702459827 + (0.00022786334179951*applyconvL)));
+ inputSampleL -= (bL[c[3]] * (0.03929765560019285 - (0.00054517993246352*applyconvL)));
+ inputSampleL -= (bL[c[4]] * (0.00298333157711103 - (0.00033083756545638*applyconvL)));
+ inputSampleL += (bL[c[5]] * (0.00724006282304610 + (0.00045483683460812*applyconvL)));
+ inputSampleL -= (bL[c[6]] * (0.03073108963506036 - (0.00038190060537423*applyconvL)));
+ inputSampleL += (bL[c[7]] * (0.02332434692533051 + (0.00040347288688932*applyconvL)));
+ inputSampleL -= (bL[c[8]] * (0.03792606869061214 - (0.00039673687335892*applyconvL)));
+ inputSampleL += (bL[c[9]] * (0.02437059376675688 + (0.00037221210539535*applyconvL)));
+ inputSampleL -= (bL[c[10]] * (0.03416764311979521 - (0.00040314850796953*applyconvL)));
+ inputSampleL += (bL[c[11]] * (0.01761669868102127 + (0.00035989484330131*applyconvL)));
+ inputSampleL -= (bL[c[12]] * (0.02538237753523052 - (0.00040149119125394*applyconvL)));
+ inputSampleL += (bL[c[13]] * (0.00770737340728377 + (0.00035462118723555*applyconvL)));
+ inputSampleL -= (bL[c[14]] * (0.01580706228482803 - (0.00037563141307594*applyconvL)));
+ inputSampleL -= (bL[c[15]] * (0.00055119240005586 - (0.00035409299268971*applyconvL)));
+ inputSampleL -= (bL[c[16]] * (0.00818552143438768 - (0.00036507661042180*applyconvL)));
+ inputSampleL -= (bL[c[17]] * (0.00661842703548304 - (0.00034550528559056*applyconvL)));
+ inputSampleL -= (bL[c[18]] * (0.00362447476272098 - (0.00035553012761240*applyconvL)));
+ inputSampleL -= (bL[c[19]] * (0.00957098027225745 - (0.00034091691045338*applyconvL)));
+ inputSampleL -= (bL[c[20]] * (0.00193621774016660 - (0.00034554529131668*applyconvL)));
+ inputSampleL -= (bL[c[21]] * (0.01005433027357935 - (0.00033878223153845*applyconvL)));
+ inputSampleL -= (bL[c[22]] * (0.00221712428802004 - (0.00033481410137711*applyconvL)));
+ inputSampleL -= (bL[c[23]] * (0.00911255639207995 - (0.00033263425232666*applyconvL)));
+ inputSampleL -= (bL[c[24]] * (0.00339667169034909 - (0.00032634428038430*applyconvL)));
+ inputSampleL -= (bL[c[25]] * (0.00774096948249924 - (0.00032599868802996*applyconvL)));
+ inputSampleL -= (bL[c[26]] * (0.00463907626773794 - (0.00032131993173361*applyconvL)));
+ inputSampleL -= (bL[c[27]] * (0.00658222997260378 - (0.00032014977430211*applyconvL)));
+ inputSampleL -= (bL[c[28]] * (0.00550347079924993 - (0.00031557153256653*applyconvL)));
+ inputSampleL -= (bL[c[29]] * (0.00588754981375325 - (0.00032041307242303*applyconvL)));
+ inputSampleL -= (bL[c[30]] * (0.00590293898419892 - (0.00030457857428714*applyconvL)));
+ inputSampleL -= (bL[c[31]] * (0.00558952010441800 - (0.00030448053548086*applyconvL)));
+ inputSampleL -= (bL[c[32]] * (0.00598183557634295 - (0.00030715064323181*applyconvL)));
+ inputSampleL -= (bL[c[33]] * (0.00555223929714115 - (0.00030319367948553*applyconvL)));
+ //end Tube (Manley) conv
+ break;
+ }
+
+ switch (console)
+ {
+ case 1:
+ //begin Cider (Focusrite) MCI
+ inputSampleR += (bR[c[1]] * (0.61283288942201319 + (0.00024011410669522*applyconvR)));
+ inputSampleR -= (bR[c[2]] * (0.24036380659761222 - (0.00020789518206241*applyconvR)));
+ inputSampleR += (bR[c[3]] * (0.09104669761717916 + (0.00012829642741548*applyconvR)));
+ inputSampleR -= (bR[c[4]] * (0.02378290768554025 - (0.00017673646470440*applyconvR)));
+ inputSampleR -= (bR[c[5]] * (0.02832818490275965 - (0.00013536187747384*applyconvR)));
+ inputSampleR += (bR[c[6]] * (0.03268797679215937 + (0.00015035126653359*applyconvR)));
+ inputSampleR -= (bR[c[7]] * (0.04024464202655586 - (0.00015034923056735*applyconvR)));
+ inputSampleR += (bR[c[8]] * (0.01864890074318696 + (0.00014513281680642*applyconvR)));
+ inputSampleR -= (bR[c[9]] * (0.01632731954100322 - (0.00015509089075614*applyconvR)));
+ inputSampleR -= (bR[c[10]] * (0.00318907090555589 - (0.00014784812076550*applyconvR)));
+ inputSampleR -= (bR[c[11]] * (0.00208573465221869 - (0.00015350520779465*applyconvR)));
+ inputSampleR -= (bR[c[12]] * (0.00907033901519614 - (0.00015442964157250*applyconvR)));
+ inputSampleR -= (bR[c[13]] * (0.00199458794148013 - (0.00015595640046297*applyconvR)));
+ inputSampleR -= (bR[c[14]] * (0.00705979153201755 - (0.00015730069418051*applyconvR)));
+ inputSampleR -= (bR[c[15]] * (0.00429488975412722 - (0.00015743697943505*applyconvR)));
+ inputSampleR -= (bR[c[16]] * (0.00497724878704936 - (0.00016014760011861*applyconvR)));
+ inputSampleR -= (bR[c[17]] * (0.00506059305562353 - (0.00016194824072466*applyconvR)));
+ inputSampleR -= (bR[c[18]] * (0.00483432223285621 - (0.00016329050124225*applyconvR)));
+ inputSampleR -= (bR[c[19]] * (0.00495100420886005 - (0.00016297509798749*applyconvR)));
+ inputSampleR -= (bR[c[20]] * (0.00489319520555115 - (0.00016472839684661*applyconvR)));
+ inputSampleR -= (bR[c[21]] * (0.00489177657970308 - (0.00016791875866630*applyconvR)));
+ inputSampleR -= (bR[c[22]] * (0.00487900894707044 - (0.00016755993898534*applyconvR)));
+ inputSampleR -= (bR[c[23]] * (0.00486234009335561 - (0.00016968157345446*applyconvR)));
+ inputSampleR -= (bR[c[24]] * (0.00485737490288736 - (0.00017180713324431*applyconvR)));
+ inputSampleR -= (bR[c[25]] * (0.00484106070563455 - (0.00017251073661092*applyconvR)));
+ inputSampleR -= (bR[c[26]] * (0.00483219429408410 - (0.00017321683790891*applyconvR)));
+ inputSampleR -= (bR[c[27]] * (0.00482013597437550 - (0.00017392186866488*applyconvR)));
+ inputSampleR -= (bR[c[28]] * (0.00480949628051497 - (0.00017569098775602*applyconvR)));
+ inputSampleR -= (bR[c[29]] * (0.00479992055604049 - (0.00017746046369449*applyconvR)));
+ inputSampleR -= (bR[c[30]] * (0.00478750757986987 - (0.00017745630047554*applyconvR)));
+ inputSampleR -= (bR[c[31]] * (0.00477828651185740 - (0.00017958043287604*applyconvR)));
+ inputSampleR -= (bR[c[32]] * (0.00476906544384494 - (0.00018170456527653*applyconvR)));
+ inputSampleR -= (bR[c[33]] * (0.00475700712413634 - (0.00018099144598088*applyconvR)));
+ //end Cider (Focusrite) MCI
+ break;
+ case 2:
+ //begin Rock (SSL) conv
+ inputSampleR += (bR[c[1]] * (0.67887916185274055 + (0.00068787552301086*applyconvR)));
+ inputSampleR -= (bR[c[2]] * (0.25671050678827934 + (0.00017691749454490*applyconvR)));
+ inputSampleR += (bR[c[3]] * (0.15135839896615280 + (0.00007481480365043*applyconvR)));
+ inputSampleR -= (bR[c[4]] * (0.11813512969090802 + (0.00005191138121359*applyconvR)));
+ inputSampleR += (bR[c[5]] * (0.08329104347166429 + (0.00001871054659794*applyconvR)));
+ inputSampleR -= (bR[c[6]] * (0.07663817456103936 + (0.00002751359071705*applyconvR)));
+ inputSampleR += (bR[c[7]] * (0.05477586152148759 + (0.00000744843212679*applyconvR)));
+ inputSampleR -= (bR[c[8]] * (0.05547314737187786 + (0.00001025289931145*applyconvR)));
+ inputSampleR += (bR[c[9]] * (0.03822948356540711 - (0.00000249791561457*applyconvR)));
+ inputSampleR -= (bR[c[10]] * (0.04199383340841713 - (0.00000067328840674*applyconvR)));
+ inputSampleR += (bR[c[11]] * (0.02695796542339694 - (0.00000796704606548*applyconvR)));
+ inputSampleR -= (bR[c[12]] * (0.03228715059431878 - (0.00000579711816722*applyconvR)));
+ inputSampleR += (bR[c[13]] * (0.01846929689819187 - (0.00000984017804950*applyconvR)));
+ inputSampleR -= (bR[c[14]] * (0.02528050435045951 - (0.00000701189792484*applyconvR)));
+ inputSampleR += (bR[c[15]] * (0.01207844846859765 - (0.00001522630289356*applyconvR)));
+ inputSampleR -= (bR[c[16]] * (0.01894464378378515 - (0.00001205456372080*applyconvR)));
+ inputSampleR += (bR[c[17]] * (0.00667804407593324 - (0.00001343604283817*applyconvR)));
+ inputSampleR -= (bR[c[18]] * (0.01408418045473130 - (0.00001246443581504*applyconvR)));
+ inputSampleR += (bR[c[19]] * (0.00228696509481569 - (0.00001506764046927*applyconvR)));
+ inputSampleR -= (bR[c[20]] * (0.01006277891348454 - (0.00000970723079112*applyconvR)));
+ inputSampleR -= (bR[c[21]] * (0.00132368373546377 + (0.00001188847238761*applyconvR)));
+ inputSampleR -= (bR[c[22]] * (0.00676615715578373 - (0.00001209129844861*applyconvR)));
+ inputSampleR -= (bR[c[23]] * (0.00426288438418556 + (0.00001286836943559*applyconvR)));
+ inputSampleR -= (bR[c[24]] * (0.00408897698639688 - (0.00001102542567911*applyconvR)));
+ inputSampleR -= (bR[c[25]] * (0.00662040619382751 + (0.00001206328529063*applyconvR)));
+ inputSampleR -= (bR[c[26]] * (0.00196101294183599 - (0.00000950703614981*applyconvR)));
+ inputSampleR -= (bR[c[27]] * (0.00845620581010342 + (0.00001279970295678*applyconvR)));
+ inputSampleR -= (bR[c[28]] * (0.00032595215043616 - (0.00000920518241371*applyconvR)));
+ inputSampleR -= (bR[c[29]] * (0.00982957737435458 + (0.00001177745362317*applyconvR)));
+ inputSampleR += (bR[c[30]] * (0.00086920573760513 + (0.00000913758382404*applyconvR)));
+ inputSampleR -= (bR[c[31]] * (0.01079020871452061 + (0.00000900750153697*applyconvR)));
+ inputSampleR += (bR[c[32]] * (0.00167613606334460 + (0.00000732769151038*applyconvR)));
+ inputSampleR -= (bR[c[33]] * (0.01138050011044332 + (0.00000946908207442*applyconvR)));
+ //end Rock (SSL) conv
+ break;
+ case 3:
+ //begin Lush (Neve) conv
+ inputSampleR += (bR[c[1]] * (0.20641602693167951 - (0.00078952185394898*applyconvR)));
+ inputSampleR -= (bR[c[2]] * (0.07601816702459827 + (0.00022786334179951*applyconvR)));
+ inputSampleR += (bR[c[3]] * (0.03929765560019285 - (0.00054517993246352*applyconvR)));
+ inputSampleR += (bR[c[4]] * (0.00298333157711103 - (0.00033083756545638*applyconvR)));
+ inputSampleR -= (bR[c[5]] * (0.00724006282304610 + (0.00045483683460812*applyconvR)));
+ inputSampleR += (bR[c[6]] * (0.03073108963506036 - (0.00038190060537423*applyconvR)));
+ inputSampleR -= (bR[c[7]] * (0.02332434692533051 + (0.00040347288688932*applyconvR)));
+ inputSampleR += (bR[c[8]] * (0.03792606869061214 - (0.00039673687335892*applyconvR)));
+ inputSampleR -= (bR[c[9]] * (0.02437059376675688 + (0.00037221210539535*applyconvR)));
+ inputSampleR += (bR[c[10]] * (0.03416764311979521 - (0.00040314850796953*applyconvR)));
+ inputSampleR -= (bR[c[11]] * (0.01761669868102127 + (0.00035989484330131*applyconvR)));
+ inputSampleR += (bR[c[12]] * (0.02538237753523052 - (0.00040149119125394*applyconvR)));
+ inputSampleR -= (bR[c[13]] * (0.00770737340728377 + (0.00035462118723555*applyconvR)));
+ inputSampleR += (bR[c[14]] * (0.01580706228482803 - (0.00037563141307594*applyconvR)));
+ inputSampleR += (bR[c[15]] * (0.00055119240005586 - (0.00035409299268971*applyconvR)));
+ inputSampleR += (bR[c[16]] * (0.00818552143438768 - (0.00036507661042180*applyconvR)));
+ inputSampleR += (bR[c[17]] * (0.00661842703548304 - (0.00034550528559056*applyconvR)));
+ inputSampleR += (bR[c[18]] * (0.00362447476272098 - (0.00035553012761240*applyconvR)));
+ inputSampleR += (bR[c[19]] * (0.00957098027225745 - (0.00034091691045338*applyconvR)));
+ inputSampleR += (bR[c[20]] * (0.00193621774016660 - (0.00034554529131668*applyconvR)));
+ inputSampleR += (bR[c[21]] * (0.01005433027357935 - (0.00033878223153845*applyconvR)));
+ inputSampleR += (bR[c[22]] * (0.00221712428802004 - (0.00033481410137711*applyconvR)));
+ inputSampleR += (bR[c[23]] * (0.00911255639207995 - (0.00033263425232666*applyconvR)));
+ inputSampleR += (bR[c[24]] * (0.00339667169034909 - (0.00032634428038430*applyconvR)));
+ inputSampleR += (bR[c[25]] * (0.00774096948249924 - (0.00032599868802996*applyconvR)));
+ inputSampleR += (bR[c[26]] * (0.00463907626773794 - (0.00032131993173361*applyconvR)));
+ inputSampleR += (bR[c[27]] * (0.00658222997260378 - (0.00032014977430211*applyconvR)));
+ inputSampleR += (bR[c[28]] * (0.00550347079924993 - (0.00031557153256653*applyconvR)));
+ inputSampleR += (bR[c[29]] * (0.00588754981375325 - (0.00032041307242303*applyconvR)));
+ inputSampleR += (bR[c[30]] * (0.00590293898419892 - (0.00030457857428714*applyconvR)));
+ inputSampleR += (bR[c[31]] * (0.00558952010441800 - (0.00030448053548086*applyconvR)));
+ inputSampleR += (bR[c[32]] * (0.00598183557634295 - (0.00030715064323181*applyconvR)));
+ inputSampleR += (bR[c[33]] * (0.00555223929714115 - (0.00030319367948553*applyconvR)));
+ //end Lush (Neve) conv
+ break;
+ case 4:
+ //begin Elation (LA2A) vibe
+ inputSampleR -= (bR[c[1]] * (0.25867935358656502 - (0.00045755657070112*applyconvR)));
+ inputSampleR += (bR[c[2]] * (0.11509367290253694 - (0.00017494270657228*applyconvR)));
+ inputSampleR -= (bR[c[3]] * (0.06709853575891785 - (0.00058913102597723*applyconvR)));
+ inputSampleR += (bR[c[4]] * (0.01871006356851681 - (0.00003387358004645*applyconvR)));
+ inputSampleR -= (bR[c[5]] * (0.00794797957360465 - (0.00044224784691203*applyconvR)));
+ inputSampleR -= (bR[c[6]] * (0.01956921817394220 - (0.00006718936750076*applyconvR)));
+ inputSampleR += (bR[c[7]] * (0.01682120257195205 + (0.00032857446292230*applyconvR)));
+ inputSampleR -= (bR[c[8]] * (0.03401069039824205 - (0.00013634182872897*applyconvR)));
+ inputSampleR += (bR[c[9]] * (0.02369950268232634 + (0.00023112685751657*applyconvR)));
+ inputSampleR -= (bR[c[10]] * (0.03477071178117132 - (0.00018029792231600*applyconvR)));
+ inputSampleR += (bR[c[11]] * (0.02024369717958201 + (0.00017337813374202*applyconvR)));
+ inputSampleR -= (bR[c[12]] * (0.02819087729102172 - (0.00021438538665420*applyconvR)));
+ inputSampleR += (bR[c[13]] * (0.01147946743141303 + (0.00014424066034649*applyconvR)));
+ inputSampleR -= (bR[c[14]] * (0.01894777011468867 - (0.00021549146262408*applyconvR)));
+ inputSampleR += (bR[c[15]] * (0.00301370330346873 + (0.00013527460148394*applyconvR)));
+ inputSampleR -= (bR[c[16]] * (0.01067147835815486 - (0.00020960689910868*applyconvR)));
+ inputSampleR -= (bR[c[17]] * (0.00402715397506384 - (0.00014421582712470*applyconvR)));
+ inputSampleR -= (bR[c[18]] * (0.00502221703392005 - (0.00019805767015024*applyconvR)));
+ inputSampleR -= (bR[c[19]] * (0.00808788533308497 - (0.00016095444141931*applyconvR)));
+ inputSampleR -= (bR[c[20]] * (0.00232696588842683 - (0.00018384470981829*applyconvR)));
+ inputSampleR -= (bR[c[21]] * (0.00943950821324531 - (0.00017098987347593*applyconvR)));
+ inputSampleR -= (bR[c[22]] * (0.00193709517200834 - (0.00018151995939591*applyconvR)));
+ inputSampleR -= (bR[c[23]] * (0.00899713952612659 - (0.00017385835059948*applyconvR)));
+ inputSampleR -= (bR[c[24]] * (0.00280584331659089 - (0.00017742164162470*applyconvR)));
+ inputSampleR -= (bR[c[25]] * (0.00780381001954970 - (0.00018002500755708*applyconvR)));
+ inputSampleR -= (bR[c[26]] * (0.00400370310490333 - (0.00017471691087957*applyconvR)));
+ inputSampleR -= (bR[c[27]] * (0.00661527728186928 - (0.00018137323370347*applyconvR)));
+ inputSampleR -= (bR[c[28]] * (0.00496545526864518 - (0.00017681872601767*applyconvR)));
+ inputSampleR -= (bR[c[29]] * (0.00580728820997532 - (0.00018186220389790*applyconvR)));
+ inputSampleR -= (bR[c[30]] * (0.00549309984725666 - (0.00017722985399075*applyconvR)));
+ inputSampleR -= (bR[c[31]] * (0.00542194777529239 - (0.00018486900185338*applyconvR)));
+ inputSampleR -= (bR[c[32]] * (0.00565992080998939 - (0.00018005824393118*applyconvR)));
+ inputSampleR -= (bR[c[33]] * (0.00532121562846656 - (0.00018643189636216*applyconvR)));
+ //end Elation (LA2A)
+ break;
+ case 5:
+ //begin Precious (Precision 8) Holo
+ inputSampleR += (bR[c[1]] * (0.59188440274551890 - (0.00008361469668405*applyconvR)));
+ inputSampleR -= (bR[c[2]] * (0.24439750948076133 + (0.00002651678396848*applyconvR)));
+ inputSampleR += (bR[c[3]] * (0.14109876103205621 - (0.00000840487181372*applyconvR)));
+ inputSampleR -= (bR[c[4]] * (0.10053507128157971 + (0.00001768100964598*applyconvR)));
+ inputSampleR += (bR[c[5]] * (0.05859287880626238 - (0.00000361398065989*applyconvR)));
+ inputSampleR -= (bR[c[6]] * (0.04337406889823660 + (0.00000735941182117*applyconvR)));
+ inputSampleR += (bR[c[7]] * (0.01589900680531097 + (0.00000207347387987*applyconvR)));
+ inputSampleR -= (bR[c[8]] * (0.01087234854973281 + (0.00000732123412029*applyconvR)));
+ inputSampleR -= (bR[c[9]] * (0.00845782429679176 - (0.00000133058605071*applyconvR)));
+ inputSampleR += (bR[c[10]] * (0.00662278586618295 - (0.00000424594730611*applyconvR)));
+ inputSampleR -= (bR[c[11]] * (0.02000592193760155 + (0.00000632896879068*applyconvR)));
+ inputSampleR += (bR[c[12]] * (0.01321157777167565 - (0.00001421171592570*applyconvR)));
+ inputSampleR -= (bR[c[13]] * (0.02249955362988238 + (0.00000163937127317*applyconvR)));
+ inputSampleR += (bR[c[14]] * (0.01196492077581504 - (0.00000535385220676*applyconvR)));
+ inputSampleR -= (bR[c[15]] * (0.01905917427000097 + (0.00000121672882030*applyconvR)));
+ inputSampleR += (bR[c[16]] * (0.00761909482108073 - (0.00000326242895115*applyconvR)));
+ inputSampleR -= (bR[c[17]] * (0.01362744780256239 + (0.00000359274216003*applyconvR)));
+ inputSampleR += (bR[c[18]] * (0.00200183122683721 - (0.00000089207452791*applyconvR)));
+ inputSampleR -= (bR[c[19]] * (0.00833042637239315 + (0.00000946767677294*applyconvR)));
+ inputSampleR -= (bR[c[20]] * (0.00258481175207224 - (0.00000087429351464*applyconvR)));
+ inputSampleR -= (bR[c[21]] * (0.00459744479712244 - (0.00000049519758701*applyconvR)));
+ inputSampleR -= (bR[c[22]] * (0.00534277030993820 + (0.00000397547847155*applyconvR)));
+ inputSampleR -= (bR[c[23]] * (0.00272332919605675 + (0.00000040077229097*applyconvR)));
+ inputSampleR -= (bR[c[24]] * (0.00637243782359372 - (0.00000139419072176*applyconvR)));
+ inputSampleR -= (bR[c[25]] * (0.00233001590327504 + (0.00000420129915747*applyconvR)));
+ inputSampleR -= (bR[c[26]] * (0.00623296727793041 + (0.00000019010664856*applyconvR)));
+ inputSampleR -= (bR[c[27]] * (0.00276177096376805 + (0.00000580301901385*applyconvR)));
+ inputSampleR -= (bR[c[28]] * (0.00559184754866264 + (0.00000080597287792*applyconvR)));
+ inputSampleR -= (bR[c[29]] * (0.00343180144395919 - (0.00000243701142085*applyconvR)));
+ inputSampleR -= (bR[c[30]] * (0.00493325428861701 + (0.00000300985740900*applyconvR)));
+ inputSampleR -= (bR[c[31]] * (0.00396140827680823 - (0.00000051459681789*applyconvR)));
+ inputSampleR -= (bR[c[32]] * (0.00448497879902493 + (0.00000744412841743*applyconvR)));
+ inputSampleR -= (bR[c[33]] * (0.00425146888772076 - (0.00000082346016542*applyconvR)));
+ //end Precious (Precision 8) Holo
+ break;
+ case 6:
+ //begin Punch (API) conv
+ inputSampleR += (bR[c[1]] * (0.09299870608542582 - (0.00009582362368873*applyconvR)));
+ inputSampleR -= (bR[c[2]] * (0.11947847710741009 - (0.00004500891602770*applyconvR)));
+ inputSampleR += (bR[c[3]] * (0.09071606264761795 + (0.00005639498984741*applyconvR)));
+ inputSampleR -= (bR[c[4]] * (0.08561982770836980 - (0.00004964855606916*applyconvR)));
+ inputSampleR += (bR[c[5]] * (0.06440549220820363 + (0.00002428052139507*applyconvR)));
+ inputSampleR -= (bR[c[6]] * (0.05987991812840746 + (0.00000101867082290*applyconvR)));
+ inputSampleR += (bR[c[7]] * (0.03980233135839382 + (0.00003312430049041*applyconvR)));
+ inputSampleR -= (bR[c[8]] * (0.03648402630896925 - (0.00002116186381142*applyconvR)));
+ inputSampleR += (bR[c[9]] * (0.01826860869525248 + (0.00003115110025396*applyconvR)));
+ inputSampleR -= (bR[c[10]] * (0.01723968622495364 - (0.00002450634121718*applyconvR)));
+ inputSampleR += (bR[c[11]] * (0.00187588812316724 + (0.00002838206198968*applyconvR)));
+ inputSampleR -= (bR[c[12]] * (0.00381796423957237 - (0.00003155815499462*applyconvR)));
+ inputSampleR -= (bR[c[13]] * (0.00852092214496733 - (0.00001702651162392*applyconvR)));
+ inputSampleR += (bR[c[14]] * (0.00315560292270588 + (0.00002547861676047*applyconvR)));
+ inputSampleR -= (bR[c[15]] * (0.01258630914496868 - (0.00004555319243213*applyconvR)));
+ inputSampleR += (bR[c[16]] * (0.00536435648963575 + (0.00001812393657101*applyconvR)));
+ inputSampleR -= (bR[c[17]] * (0.01272975658159178 - (0.00004103775306121*applyconvR)));
+ inputSampleR += (bR[c[18]] * (0.00403818975172755 + (0.00003764615492871*applyconvR)));
+ inputSampleR -= (bR[c[19]] * (0.01042617366897483 - (0.00003605210426041*applyconvR)));
+ inputSampleR += (bR[c[20]] * (0.00126599583390057 + (0.00004305458668852*applyconvR)));
+ inputSampleR -= (bR[c[21]] * (0.00747876207688339 - (0.00003731207018977*applyconvR)));
+ inputSampleR -= (bR[c[22]] * (0.00149873689175324 - (0.00005086601800791*applyconvR)));
+ inputSampleR -= (bR[c[23]] * (0.00503221309488033 - (0.00003636086782783*applyconvR)));
+ inputSampleR -= (bR[c[24]] * (0.00342998224655821 - (0.00004103091180506*applyconvR)));
+ inputSampleR -= (bR[c[25]] * (0.00355585977903117 - (0.00003698982145400*applyconvR)));
+ inputSampleR -= (bR[c[26]] * (0.00437201792934817 - (0.00002720235666939*applyconvR)));
+ inputSampleR -= (bR[c[27]] * (0.00299217874451556 - (0.00004446954727956*applyconvR)));
+ inputSampleR -= (bR[c[28]] * (0.00457924652487249 - (0.00003859065778860*applyconvR)));
+ inputSampleR -= (bR[c[29]] * (0.00298182934892027 - (0.00002064710931733*applyconvR)));
+ inputSampleR -= (bR[c[30]] * (0.00438838441540584 - (0.00005223008424866*applyconvR)));
+ inputSampleR -= (bR[c[31]] * (0.00323984218794705 - (0.00003397987535887*applyconvR)));
+ inputSampleR -= (bR[c[32]] * (0.00407693981307314 - (0.00003935772436894*applyconvR)));
+ inputSampleR -= (bR[c[33]] * (0.00350435348467321 - (0.00005525463935338*applyconvR)));
+ //end Punch (API) conv
+ break;
+ case 7:
+ //begin Calibre (?) steel
+ inputSampleR -= (bR[c[1]] * (0.23505923670562212 - (0.00028312859289245*applyconvR)));
+ inputSampleR += (bR[c[2]] * (0.08188436704577637 - (0.00008817721351341*applyconvR)));
+ inputSampleR -= (bR[c[3]] * (0.05075798481700617 - (0.00018817166632483*applyconvR)));
+ inputSampleR -= (bR[c[4]] * (0.00455811821873093 + (0.00001922902995296*applyconvR)));
+ inputSampleR -= (bR[c[5]] * (0.00027610521433660 - (0.00013252525469291*applyconvR)));
+ inputSampleR -= (bR[c[6]] * (0.03529246280346626 - (0.00002772989223299*applyconvR)));
+ inputSampleR += (bR[c[7]] * (0.01784111585586136 + (0.00010230276997291*applyconvR)));
+ inputSampleR -= (bR[c[8]] * (0.04394950700298298 - (0.00005910607126944*applyconvR)));
+ inputSampleR += (bR[c[9]] * (0.01990770780547606 + (0.00007640328340556*applyconvR)));
+ inputSampleR -= (bR[c[10]] * (0.04073629569741782 - (0.00007712327117090*applyconvR)));
+ inputSampleR += (bR[c[11]] * (0.01349648572795252 + (0.00005959130575917*applyconvR)));
+ inputSampleR -= (bR[c[12]] * (0.03191590248003717 - (0.00008418000575151*applyconvR)));
+ inputSampleR += (bR[c[13]] * (0.00348795527924766 + (0.00005489156318238*applyconvR)));
+ inputSampleR -= (bR[c[14]] * (0.02198496281481767 - (0.00008471601187581*applyconvR)));
+ inputSampleR -= (bR[c[15]] * (0.00504771152505089 - (0.00005525060587917*applyconvR)));
+ inputSampleR -= (bR[c[16]] * (0.01391075698598491 - (0.00007929630732607*applyconvR)));
+ inputSampleR -= (bR[c[17]] * (0.01142762504081717 - (0.00005967036737742*applyconvR)));
+ inputSampleR -= (bR[c[18]] * (0.00893541815021255 - (0.00007535697758141*applyconvR)));
+ inputSampleR -= (bR[c[19]] * (0.01459704973464936 - (0.00005969199602841*applyconvR)));
+ inputSampleR -= (bR[c[20]] * (0.00694755135226282 - (0.00006930127097865*applyconvR)));
+ inputSampleR -= (bR[c[21]] * (0.01516695630808575 - (0.00006365800069826*applyconvR)));
+ inputSampleR -= (bR[c[22]] * (0.00705917318113651 - (0.00006497209096539*applyconvR)));
+ inputSampleR -= (bR[c[23]] * (0.01420501209177591 - (0.00006555654576113*applyconvR)));
+ inputSampleR -= (bR[c[24]] * (0.00815905656808701 - (0.00006105622534761*applyconvR)));
+ inputSampleR -= (bR[c[25]] * (0.01274326525552961 - (0.00006542652857017*applyconvR)));
+ inputSampleR -= (bR[c[26]] * (0.00937146927845488 - (0.00006051267868722*applyconvR)));
+ inputSampleR -= (bR[c[27]] * (0.01146573981165209 - (0.00006381511607749*applyconvR)));
+ inputSampleR -= (bR[c[28]] * (0.01021294359409007 - (0.00005930397856398*applyconvR)));
+ inputSampleR -= (bR[c[29]] * (0.01065217095323532 - (0.00006371505438319*applyconvR)));
+ inputSampleR -= (bR[c[30]] * (0.01058751196699751 - (0.00006042857480233*applyconvR)));
+ inputSampleR -= (bR[c[31]] * (0.01026557827762401 - (0.00006007776163871*applyconvR)));
+ inputSampleR -= (bR[c[32]] * (0.01060929183604604 - (0.00006114703012726*applyconvR)));
+ inputSampleR -= (bR[c[33]] * (0.01014533525058528 - (0.00005963567932887*applyconvR)));
+ //end Calibre (?)
+ break;
+ case 8:
+ //begin Tube (Manley) conv
+ inputSampleR -= (bR[c[1]] * (0.20641602693167951 - (0.00078952185394898*applyconvR)));
+ inputSampleR += (bR[c[2]] * (0.07601816702459827 + (0.00022786334179951*applyconvR)));
+ inputSampleR -= (bR[c[3]] * (0.03929765560019285 - (0.00054517993246352*applyconvR)));
+ inputSampleR -= (bR[c[4]] * (0.00298333157711103 - (0.00033083756545638*applyconvR)));
+ inputSampleR += (bR[c[5]] * (0.00724006282304610 + (0.00045483683460812*applyconvR)));
+ inputSampleR -= (bR[c[6]] * (0.03073108963506036 - (0.00038190060537423*applyconvR)));
+ inputSampleR += (bR[c[7]] * (0.02332434692533051 + (0.00040347288688932*applyconvR)));
+ inputSampleR -= (bR[c[8]] * (0.03792606869061214 - (0.00039673687335892*applyconvR)));
+ inputSampleR += (bR[c[9]] * (0.02437059376675688 + (0.00037221210539535*applyconvR)));
+ inputSampleR -= (bR[c[10]] * (0.03416764311979521 - (0.00040314850796953*applyconvR)));
+ inputSampleR += (bR[c[11]] * (0.01761669868102127 + (0.00035989484330131*applyconvR)));
+ inputSampleR -= (bR[c[12]] * (0.02538237753523052 - (0.00040149119125394*applyconvR)));
+ inputSampleR += (bR[c[13]] * (0.00770737340728377 + (0.00035462118723555*applyconvR)));
+ inputSampleR -= (bR[c[14]] * (0.01580706228482803 - (0.00037563141307594*applyconvR)));
+ inputSampleR -= (bR[c[15]] * (0.00055119240005586 - (0.00035409299268971*applyconvR)));
+ inputSampleR -= (bR[c[16]] * (0.00818552143438768 - (0.00036507661042180*applyconvR)));
+ inputSampleR -= (bR[c[17]] * (0.00661842703548304 - (0.00034550528559056*applyconvR)));
+ inputSampleR -= (bR[c[18]] * (0.00362447476272098 - (0.00035553012761240*applyconvR)));
+ inputSampleR -= (bR[c[19]] * (0.00957098027225745 - (0.00034091691045338*applyconvR)));
+ inputSampleR -= (bR[c[20]] * (0.00193621774016660 - (0.00034554529131668*applyconvR)));
+ inputSampleR -= (bR[c[21]] * (0.01005433027357935 - (0.00033878223153845*applyconvR)));
+ inputSampleR -= (bR[c[22]] * (0.00221712428802004 - (0.00033481410137711*applyconvR)));
+ inputSampleR -= (bR[c[23]] * (0.00911255639207995 - (0.00033263425232666*applyconvR)));
+ inputSampleR -= (bR[c[24]] * (0.00339667169034909 - (0.00032634428038430*applyconvR)));
+ inputSampleR -= (bR[c[25]] * (0.00774096948249924 - (0.00032599868802996*applyconvR)));
+ inputSampleR -= (bR[c[26]] * (0.00463907626773794 - (0.00032131993173361*applyconvR)));
+ inputSampleR -= (bR[c[27]] * (0.00658222997260378 - (0.00032014977430211*applyconvR)));
+ inputSampleR -= (bR[c[28]] * (0.00550347079924993 - (0.00031557153256653*applyconvR)));
+ inputSampleR -= (bR[c[29]] * (0.00588754981375325 - (0.00032041307242303*applyconvR)));
+ inputSampleR -= (bR[c[30]] * (0.00590293898419892 - (0.00030457857428714*applyconvR)));
+ inputSampleR -= (bR[c[31]] * (0.00558952010441800 - (0.00030448053548086*applyconvR)));
+ inputSampleR -= (bR[c[32]] * (0.00598183557634295 - (0.00030715064323181*applyconvR)));
+ inputSampleR -= (bR[c[33]] * (0.00555223929714115 - (0.00030319367948553*applyconvR)));
+ //end Tube (Manley) conv
+ break;
+ }
+
+ bridgerectifier = fabs(inputSampleL);
+ bridgerectifier = 1.0-cos(bridgerectifier);
+ if (inputSampleL > 0) inputSampleL -= bridgerectifier;
+ else inputSampleL += bridgerectifier;
+
+ bridgerectifier = fabs(inputSampleR);
+ bridgerectifier = 1.0-cos(bridgerectifier);
+ if (inputSampleR > 0) inputSampleR -= bridgerectifier;
+ else inputSampleR += bridgerectifier;
+
+
+ if (outgain != 1.0) {
+ inputSampleL *= outgain;
+ inputSampleR *= outgain;
+ }
+
+ if (wet !=1.0) {
+ inputSampleL = (inputSampleL * wet) + (drySampleL * dry);
+ inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
+ }
+
+ //noise shaping to 64-bit floating point
+ if (fpFlip) {
+ fpTemp = inputSampleL;
+ fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
+ inputSampleL += fpNShapeLA;
+ fpTemp = inputSampleR;
+ fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
+ inputSampleR += fpNShapeRA;
+ }
+ else {
+ fpTemp = inputSampleL;
+ fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
+ inputSampleL += fpNShapeLB;
+ fpTemp = inputSampleR;
+ fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
+ inputSampleR += fpNShapeRB;
+ }
+ fpFlip = !fpFlip;
+ //end noise shaping on 64 bit output
+
+ *out1 = inputSampleL;
+ *out2 = inputSampleR;
+
+ *in1++;
+ *in2++;
+ *out1++;
+ *out2++;
+ }
+} \ No newline at end of file
diff --git a/plugins/WinVST/BussColors4/VSTProject.sln b/plugins/WinVST/BussColors4/VSTProject.sln
new file mode 100755
index 0000000..694b424
--- /dev/null
+++ b/plugins/WinVST/BussColors4/VSTProject.sln
@@ -0,0 +1,28 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VSTProject", "VSTProject.vcxproj", "{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x64.ActiveCfg = Debug|x64
+ {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x64.Build.0 = Debug|x64
+ {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x86.ActiveCfg = Debug|Win32
+ {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x86.Build.0 = Debug|Win32
+ {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x64.ActiveCfg = Release|x64
+ {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x64.Build.0 = Release|x64
+ {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x86.ActiveCfg = Release|Win32
+ {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/plugins/WinVST/BussColors4/VSTProject.vcxproj b/plugins/WinVST/BussColors4/VSTProject.vcxproj
new file mode 100755
index 0000000..5ea4a2c
--- /dev/null
+++ b/plugins/WinVST/BussColors4/VSTProject.vcxproj
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffect.cpp" />
+ <ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.cpp" />
+ <ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\vstplugmain.cpp" />
+ <ClCompile Include="BussColors4.cpp" />
+ <ClCompile Include="BussColors4Proc.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\aeffeditor.h" />
+ <ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffect.h" />
+ <ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.h" />
+ <ClInclude Include="BussColors4.h" />
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}</ProjectGuid>
+ <RootNamespace>VSTProject</RootNamespace>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ <ProjectName>BussColors464</ProjectName>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v140</PlatformToolset>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v140</PlatformToolset>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v140</PlatformToolset>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v140</PlatformToolset>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <TargetExt>.dll</TargetExt>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
+ <IntDir>$(Configuration)\</IntDir>
+ <ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH)</ExecutablePath>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
+ <IntDir>$(Configuration)\</IntDir>
+ <ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH)</ExecutablePath>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <AdditionalIncludeDirectories>C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <MinimalRebuild>false</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <DebugInformationFormat>None</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <ModuleDefinitionFile>vstplug.def</ModuleDefinitionFile>
+ <IgnoreSpecificDefaultLibraries>libcmt.dll;libcmtd.dll;msvcrt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+ <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <AdditionalIncludeDirectories>C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <PreprocessorDefinitions>WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <DebugInformationFormat>None</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <IgnoreSpecificDefaultLibraries>libcmt.dll;libcmtd.dll;msvcrt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+ <ModuleDefinitionFile>vstplug.def</ModuleDefinitionFile>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <IntrinsicFunctions>false</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <AdditionalIncludeDirectories>C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <DebugInformationFormat>None</DebugInformationFormat>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <PreprocessorDefinitions>WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <IgnoreSpecificDefaultLibraries>libcmt.dll;libcmtd.dll;msvcrt.lib;libc.lib;libcd.lib;libcmt.lib;msvcrtd.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+ <AdditionalDependencies>libcmt.lib;uuid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ModuleDefinitionFile>vstplug.def</ModuleDefinitionFile>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <IntrinsicFunctions>false</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <AdditionalIncludeDirectories>C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <DebugInformationFormat>None</DebugInformationFormat>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <PreprocessorDefinitions>WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <IgnoreSpecificDefaultLibraries>libcmt.dll;libcmtd.dll;msvcrt.lib;libc.lib;libcd.lib;libcmt.lib;msvcrtd.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+ <AdditionalDependencies>libcmt.lib;uuid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ModuleDefinitionFile>vstplug.def</ModuleDefinitionFile>
+ </Link>
+ </ItemDefinitionGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/WinVST/BussColors4/VSTProject.vcxproj.filters b/plugins/WinVST/BussColors4/VSTProject.vcxproj.filters
new file mode 100755
index 0000000..b3d011a
--- /dev/null
+++ b/plugins/WinVST/BussColors4/VSTProject.vcxproj.filters
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffect.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\vstplugmain.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="BussColors4.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="BussColors4Proc.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\aeffeditor.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffect.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="BussColors4.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/WinVST/BussColors4/VSTProject.vcxproj.user b/plugins/WinVST/BussColors4/VSTProject.vcxproj.user
new file mode 100755
index 0000000..2216267
--- /dev/null
+++ b/plugins/WinVST/BussColors4/VSTProject.vcxproj.user
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LocalDebuggerAmpDefaultAccelerator>{ADEFF70D-84BF-47A1-91C3-FF6B0FC71218}</LocalDebuggerAmpDefaultAccelerator>
+ <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LocalDebuggerAmpDefaultAccelerator>{ADEFF70D-84BF-47A1-91C3-FF6B0FC71218}</LocalDebuggerAmpDefaultAccelerator>
+ <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LocalDebuggerAmpDefaultAccelerator>{ADEFF70D-84BF-47A1-91C3-FF6B0FC71218}</LocalDebuggerAmpDefaultAccelerator>
+ <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LocalDebuggerAmpDefaultAccelerator>{ADEFF70D-84BF-47A1-91C3-FF6B0FC71218}</LocalDebuggerAmpDefaultAccelerator>
+ <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/WinVST/BussColors4/vstplug.def b/plugins/WinVST/BussColors4/vstplug.def
new file mode 100755
index 0000000..5bf499a
--- /dev/null
+++ b/plugins/WinVST/BussColors4/vstplug.def
@@ -0,0 +1,3 @@
+EXPORTS
+ VSTPluginMain
+ main=VSTPluginMain \ No newline at end of file