diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2020-09-02 21:35:47 +0200 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2020-09-02 21:42:47 +0200 |
commit | cccd83938fd33631c36dd5e22ea2364a12fe5305 (patch) | |
tree | eac0433654c31ea6b31c295c74088b60dc7bf607 /plugins/LV2/src/AQuickVoiceClip/AQuickVoiceClip.cpp | |
parent | 529eff1742ef8e62bc8ccb402fcaa21eba7e2ff7 (diff) | |
download | airwindows-lv2-port-cccd83938fd33631c36dd5e22ea2364a12fe5305.tar.gz airwindows-lv2-port-cccd83938fd33631c36dd5e22ea2364a12fe5305.tar.bz2 airwindows-lv2-port-cccd83938fd33631c36dd5e22ea2364a12fe5305.zip |
LV2: Reset state on activate.
This makes sure all internal parameters are initializet to sane values
before processing starts. The VST version does this on construction, but
it seems better (at least for LV2) to do this as part of the activate
callback.
This should fix noise on the start of the audio processing with the
plugins.
Diffstat (limited to 'plugins/LV2/src/AQuickVoiceClip/AQuickVoiceClip.cpp')
-rw-r--r-- | plugins/LV2/src/AQuickVoiceClip/AQuickVoiceClip.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/plugins/LV2/src/AQuickVoiceClip/AQuickVoiceClip.cpp b/plugins/LV2/src/AQuickVoiceClip/AQuickVoiceClip.cpp index ac30296..2271128 100644 --- a/plugins/LV2/src/AQuickVoiceClip/AQuickVoiceClip.cpp +++ b/plugins/LV2/src/AQuickVoiceClip/AQuickVoiceClip.cpp @@ -7,6 +7,56 @@ AQuickVoiceClip::AQuickVoiceClip(double rate) { } +void AQuickVoiceClip::activate() +{ + LataLast6Sample = LataLast5Sample = LataLast4Sample = 0.0; + LataLast3Sample = LataLast2Sample = LataLast1Sample = 0.0; + LataHalfwaySample = LataHalfDrySample = LataHalfDiffSample = 0.0; + LataDrySample = LataDiffSample = LataPrevDiffSample = 0.0; + + RataLast6Sample = RataLast5Sample = RataLast4Sample = 0.0; + RataLast3Sample = RataLast2Sample = RataLast1Sample = 0.0; + RataHalfwaySample = RataHalfDrySample = RataHalfDiffSample = 0.0; + RataDrySample = RataDiffSample = RataPrevDiffSample = 0.0; + + LlastSample = 0.0; + LlastOutSample = 0.0; + LlastOut2Sample = 0.0; + LlastOut3Sample = 0.0; + LlpDepth = 0.0; + Lovershoot = 0.0; + Loverall = 0; + LiirSampleA = 0.0; + LiirSampleB = 0.0; + LiirSampleC = 0.0; + LiirSampleD = 0.0; + + RlastSample = 0.0; + RlastOutSample = 0.0; + RlastOut2Sample = 0.0; + RlastOut3Sample = 0.0; + RlpDepth = 0.0; + Rovershoot = 0.0; + Roverall = 0; + RiirSampleA = 0.0; + RiirSampleB = 0.0; + RiirSampleC = 0.0; + RiirSampleD = 0.0; + flip = true; + + ataK1 = -0.646; //first FIR shaping of interpolated sample, brightens + ataK2 = 0.311; //second FIR shaping of interpolated sample, thickens + ataK6 = -0.093; //third FIR shaping of interpolated sample, brings air + ataK7 = 0.057; //fourth FIR shaping of interpolated sample, thickens + ataK8 = -0.023; //fifth FIR shaping of interpolated sample, brings air + ataK3 = 0.114; //add raw to interpolated dry, toughens + ataK4 = 0.886; //remainder of interpolated dry, adds up to 1.0 + ataK5 = 0.431; //subtract this much prev. diff sample, brightens. 0.431 becomes flat + + fpNShapeL = 0.0; + fpNShapeR = 0.0; +} + void AQuickVoiceClip::run(uint32_t num_samples) { A = *params[0]; |