summaryrefslogtreecommitdiff
path: root/plugins/ZamTube/ZamTubePlugin.cpp
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2015-06-12 16:34:35 +1000
committerDamien Zammit <damien@zamaudio.com>2015-06-12 16:34:35 +1000
commit49dd5f4510083f2da37d5f5745a836de3134a914 (patch)
treeedc3337dda29227dba67a30a181226fb20d572a9 /plugins/ZamTube/ZamTubePlugin.cpp
parentf6b6c58a8181488f135c66226d1f9b991de52e3d (diff)
Added insane toggle for high quality processing
Signed-off-by: Damien Zammit <damien@zamaudio.com>
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());