summaryrefslogtreecommitdiff
path: root/plugins/ZamHeadX2
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/ZamHeadX2')
-rw-r--r--plugins/ZamHeadX2/ZamHeadX2Plugin.cpp2
-rw-r--r--plugins/ZamHeadX2/convolution.cpp5
2 files changed, 3 insertions, 4 deletions
diff --git a/plugins/ZamHeadX2/ZamHeadX2Plugin.cpp b/plugins/ZamHeadX2/ZamHeadX2Plugin.cpp
index c74a069..ac7b698 100644
--- a/plugins/ZamHeadX2/ZamHeadX2Plugin.cpp
+++ b/plugins/ZamHeadX2/ZamHeadX2Plugin.cpp
@@ -209,10 +209,12 @@ void ZamHeadX2Plugin::setState(const char* key, const char*)
snprintf(azim, 3, "%d", az);
if ((az != azold) || (el != elold)) {
other = !active;
+ signal = false;
clv[other]->clv_release();
clv[other]->clv_configure("convolution.ir.preset", elev, azim);
clv[other]->clv_initialize(getSampleRate(), 2, 2, getBufferSize());
swap = other;
+ signal = true;
}
azold = az;
elold = el;
diff --git a/plugins/ZamHeadX2/convolution.cpp b/plugins/ZamHeadX2/convolution.cpp
index 8f21269..a3e3f33 100644
--- a/plugins/ZamHeadX2/convolution.cpp
+++ b/plugins/ZamHeadX2/convolution.cpp
@@ -448,7 +448,7 @@ void LV2convolv::clv_release (void) {
void LV2convolv::clv_clone_settings(LV2convolv *clv_new) {
convproc = clv_new->convproc;
- ir_fn = clv_new->ir_fn;
+ ir_fn = strdup(clv_new->ir_fn);
ir_preset = clv_new->ir_preset;
ir_presetx = clv_new->ir_presetx;
ir_presety = clv_new->ir_presety;
@@ -462,9 +462,6 @@ void LV2convolv::clv_clone_settings(LV2convolv *clv_new) {
fragment_size = clv_new->fragment_size;
clv_new->convproc = NULL;
- if (ir_fn) {
- clv_new->ir_fn = strdup (ir_fn);
- }
}
void LV2convolv::clv_free (void) {