summaryrefslogtreecommitdiff
path: root/plugins/ZamTube/ZamTubePlugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/ZamTube/ZamTubePlugin.cpp')
-rw-r--r--plugins/ZamTube/ZamTubePlugin.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/plugins/ZamTube/ZamTubePlugin.cpp b/plugins/ZamTube/ZamTubePlugin.cpp
index b76e637..5280f7b 100644
--- a/plugins/ZamTube/ZamTubePlugin.cpp
+++ b/plugins/ZamTube/ZamTubePlugin.cpp
@@ -96,6 +96,15 @@ void ZamTubePlugin::d_initParameter(uint32_t index, Parameter& parameter)
parameter.ranges.min = -15.0f;
parameter.ranges.max = 15.0f;
break;
+ case paramInsane:
+ parameter.hints = kParameterIsAutomable | kParameterIsBoolean;
+ parameter.name = "Quality Insane";
+ parameter.symbol = "insane";
+ parameter.unit = " ";
+ parameter.ranges.def = 0.0f;
+ parameter.ranges.min = 0.0f;
+ parameter.ranges.max = 1.0f;
+ break;
}
}
@@ -132,6 +141,9 @@ float ZamTubePlugin::d_getParameterValue(uint32_t index) const
case paramGain:
return mastergain;
break;
+ case paramInsane:
+ return insane;
+ break;
default:
return 0.0f;
}
@@ -159,6 +171,9 @@ void ZamTubePlugin::d_setParameterValue(uint32_t index, float value)
case paramGain:
mastergain = value;
break;
+ case paramInsane:
+ insane = value;
+ break;
}
}
@@ -174,6 +189,7 @@ void ZamTubePlugin::d_setProgram(uint32_t index)
treble = 0.0f;
tonestack = 0.0f;
mastergain = 0.0f;
+ insane = 0.0f;
/* Default variable values */
@@ -997,7 +1013,11 @@ void ZamTubePlugin::d_run(const float** inputs, float** outputs, uint32_t frames
vp0 = e;
vp1 = 0.0;
- v.vp = sanitize_denormal(v.zeroffp(vp0,vp1,TOLERANCE));
+ if (insane > 0.5f) {
+ v.vp = sanitize_denormal(v.zeroffp_insane(vp0,vp1,TOLERANCE));
+ } else {
+ v.vp = sanitize_denormal(v.zeroffp(vp0,vp1,TOLERANCE));
+ }
//v.vp = v.secantfp(&vp0,&vp1);
v.vk = sanitize_denormal(v.ffk());