[SCM] calf/master: switched mute to solo buttons in multiband compressor

js at users.alioth.debian.org js at users.alioth.debian.org
Tue May 7 15:40:38 UTC 2013


The following commit has been merged in the master branch:
commit d3922be62c7b0391d110736bec16d20f364ee608
Author: boomshop.net <boomshop at BoomBox.fritz.box>
Date:   Fri Nov 18 04:05:46 2011 +0100

    switched mute to solo buttons in multiband compressor

diff --git a/gui/gui-multibandcompressor.xml b/gui/gui-multibandcompressor.xml
index ec0f1c3..fe3ef8c 100644
--- a/gui/gui-multibandcompressor.xml
+++ b/gui/gui-multibandcompressor.xml
@@ -146,8 +146,8 @@
                      <align><toggle size="1" param="bypass0" shrink="1"/></align>
                 </vbox>
                 <vbox expand="0" attach-x="1" attach-y="0">
-                     <label param="mute0"/>
-                     <align><toggle size="1" param="mute0" shrink="1"/></align>
+                     <label param="solo0"/>
+                     <align><toggle size="1" param="solo0" shrink="1"/></align>
                 </vbox>
             </table>
         </vbox></frame>
@@ -206,8 +206,8 @@
                      <align><toggle size="1" param="bypass1" shrink="1"/></align>
                 </vbox>
                 <vbox expand="0" attach-x="1" attach-y="0">
-                     <label param="mute1"/>
-                     <align><toggle size="1" param="mute1" shrink="1"/></align>
+                     <label param="solo1"/>
+                     <align><toggle size="1" param="solo1" shrink="1"/></align>
                 </vbox>
             </table>
         </vbox></frame>
@@ -266,8 +266,8 @@
                      <align><toggle size="1" param="bypass2" shrink="1"/></align>
                 </vbox>
                 <vbox expand="0" attach-x="1" attach-y="0">
-                     <label param="mute2"/>
-                     <align><toggle size="1" param="mute2" shrink="1"/></align>
+                     <label param="solo2"/>
+                     <align><toggle size="1" param="solo2" shrink="1"/></align>
                 </vbox>
             </table>
         </vbox></frame>
@@ -326,8 +326,8 @@
                      <align><toggle size="1" param="bypass3" shrink="1"/></align>
                 </vbox>
                 <vbox expand="0" attach-x="1" attach-y="0">
-                     <label param="mute3"/>
-                     <align><toggle size="1" param="mute3" shrink="1"/></align>
+                     <label param="solo3"/>
+                     <align><toggle size="1" param="solo3" shrink="1"/></align>
                 </vbox>
             </table>
         </vbox></frame>
diff --git a/src/calf/metadata.h b/src/calf/metadata.h
index d49594e..27cd2bf 100644
--- a/src/calf/metadata.h
+++ b/src/calf/metadata.h
@@ -185,13 +185,13 @@ struct multibandcompressor_metadata: public plugin_metadata<multibandcompressor_
            param_sep0, param_sep1, param_sep2,
            param_q0, param_q1, param_q2,
            param_threshold0, param_ratio0, param_attack0, param_release0, param_makeup0, param_knee0,
-           param_detection0, param_compression0, param_output0, param_bypass0, param_mute0,
+           param_detection0, param_compression0, param_output0, param_bypass0, param_solo0,
            param_threshold1, param_ratio1, param_attack1, param_release1, param_makeup1, param_knee1,
-           param_detection1, param_compression1, param_output1, param_bypass1, param_mute1,
+           param_detection1, param_compression1, param_output1, param_bypass1, param_solo1,
            param_threshold2, param_ratio2, param_attack2, param_release2, param_makeup2, param_knee2,
-           param_detection2, param_compression2, param_output2, param_bypass2, param_mute2,
+           param_detection2, param_compression2, param_output2, param_bypass2, param_solo2,
            param_threshold3, param_ratio3, param_attack3, param_release3, param_makeup3, param_knee3,
-           param_detection3, param_compression3, param_output3, param_bypass3, param_mute3,
+           param_detection3, param_compression3, param_output3, param_bypass3, param_solo3,
            param_count };
     PLUGIN_NAME_ID_LABEL("multiband_compressor", "multibandcompressor", "Multiband Compressor")
 };
diff --git a/src/calf/modules_comp.h b/src/calf/modules_comp.h
index 9f8923a..15ba09e 100644
--- a/src/calf/modules_comp.h
+++ b/src/calf/modules_comp.h
@@ -165,7 +165,8 @@ class multibandcompressor_audio_module: public audio_module<multibandcompressor_
 private:
     typedef multibandcompressor_audio_module AM;
     static const int strips = 4;
-    bool mute[strips];
+    bool solo[strips];
+    bool no_solo;
     uint32_t clip_inL, clip_inR, clip_outL, clip_outR;
     float meter_inL, meter_inR, meter_outL, meter_outR;
     gain_reduction_audio_module strip[strips];
diff --git a/src/metadata.cpp b/src/metadata.cpp
index f376d77..0aa27fc 100644
--- a/src/metadata.cpp
+++ b/src/metadata.cpp
@@ -334,7 +334,7 @@ CALF_PORT_PROPS(multibandcompressor) = {
     { 1,           0.03125,     1,     0,  PF_FLOAT | PF_SCALE_GAIN | PF_CTL_METER | PF_CTLO_LABEL | PF_CTLO_REVERSE | PF_UNIT_DB | PF_PROP_OUTPUT | PF_PROP_OPTIONAL| PF_PROP_GRAPH, NULL, "compression0", "Gain Reduction 1" },
     { 0,           0,           1,     0,  PF_FLOAT | PF_SCALE_GAIN | PF_CTL_METER | PF_CTLO_LABEL | PF_UNIT_DB | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "output0", "Output 1" },
     { 1,           0,           1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "bypass0", "Bypass 1" },
-    { 0,           0,           1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "mute0", "Mute 1" },
+    { 0,           0,           1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "solo0", "Solo 1" },
     
     
     { 0.03125,     0.000976563, 1,     0,  PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_DB, NULL, "threshold1", "Threshold 2" },
@@ -347,7 +347,7 @@ CALF_PORT_PROPS(multibandcompressor) = {
     { 1,           0.03125,     1,     0,  PF_FLOAT | PF_SCALE_GAIN | PF_CTL_METER | PF_CTLO_LABEL | PF_CTLO_REVERSE | PF_UNIT_DB | PF_PROP_OUTPUT | PF_PROP_OPTIONAL| PF_PROP_GRAPH, NULL, "compression1", "Gain Reduction 2" },
     { 0,           0,           1,     0,  PF_FLOAT | PF_SCALE_GAIN | PF_CTL_METER | PF_CTLO_LABEL | PF_UNIT_DB | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "output1", "Output 2" },
     { 1,           0,           1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "bypass1", "Bypass 2" },
-    { 0,           0,           1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "mute1", "Mute 2" },
+    { 0,           0,           1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "solo1", "Solo 2" },
     
     
     { 0.015625,    0.000976563, 1,     0,  PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_DB, NULL, "threshold2", "Threshold 3" },
@@ -360,7 +360,7 @@ CALF_PORT_PROPS(multibandcompressor) = {
     { 1,           0.03125,     1,     0,  PF_FLOAT | PF_SCALE_GAIN | PF_CTL_METER | PF_CTLO_LABEL | PF_CTLO_REVERSE | PF_UNIT_DB | PF_PROP_OUTPUT | PF_PROP_OPTIONAL| PF_PROP_GRAPH, NULL, "compression2", "Gain Reduction 3" },
     { 0,           0,           1,     0,  PF_FLOAT | PF_SCALE_GAIN | PF_CTL_METER | PF_CTLO_LABEL | PF_UNIT_DB | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "output2", "Output 3" },
     { 1,           0,           1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "bypass2", "Bypass 3" },
-    { 0,           0,           1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "mute2", "Mute 3" },
+    { 0,           0,           1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "solo2", "Solo 3" },
     
     
     { 0.0078125,   0.000976563, 1,     0,  PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_DB, NULL, "threshold3", "Threshold 4" },
@@ -373,7 +373,7 @@ CALF_PORT_PROPS(multibandcompressor) = {
     { 1,           0.03125,     1,     0,  PF_FLOAT | PF_SCALE_GAIN | PF_CTL_METER | PF_CTLO_LABEL | PF_CTLO_REVERSE | PF_UNIT_DB | PF_PROP_OUTPUT | PF_PROP_OPTIONAL| PF_PROP_GRAPH, NULL, "compression3", "Gain Reduction 4" },
     { 0,           0,           1,     0,  PF_FLOAT | PF_SCALE_GAIN | PF_CTL_METER | PF_CTLO_LABEL | PF_UNIT_DB | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "output3", "Output 4" },
     { 1,           0,           1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "bypass3", "Bypass 4" },
-    { 0,           0,           1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "mute3", "Mute 4" },
+    { 0,           0,           1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "solo3", "Solo 4" },
     {}
 };
 
diff --git a/src/modules_comp.cpp b/src/modules_comp.cpp
index 4c683b2..b75f2ef 100644
--- a/src/modules_comp.cpp
+++ b/src/modules_comp.cpp
@@ -75,6 +75,15 @@ void multibandcompressor_audio_module::deactivate()
 
 void multibandcompressor_audio_module::params_changed()
 {
+    // determine mute/solo states
+    solo[0] = *params[param_solo0] > 0.f ? true : false;
+    solo[1] = *params[param_solo1] > 0.f ? true : false;
+    solo[2] = *params[param_solo2] > 0.f ? true : false;
+    solo[3] = *params[param_solo3] > 0.f ? true : false;
+    no_solo = (*params[param_solo0] > 0.f ||
+            *params[param_solo1] > 0.f ||
+            *params[param_solo2] > 0.f ||
+            *params[param_solo3] > 0.f) ? false : true;
     // set the params of all filters
     if(*params[param_freq0] != freq_old[0] or *params[param_sep0] != sep_old[0] or *params[param_q0] != q_old[0]) {
         lpL0.set_lp_rbj((float)(*params[param_freq0] * (1 - *params[param_sep0])), *params[param_q0], (float)srate);
@@ -104,10 +113,10 @@ void multibandcompressor_audio_module::params_changed()
         q_old[2]    = *params[param_q2];
     }
     // set the params of all strips
-    strip[0].set_params(*params[param_attack0], *params[param_release0], *params[param_threshold0], *params[param_ratio0], *params[param_knee0], *params[param_makeup0], *params[param_detection0], 1.f, *params[param_bypass0], *params[param_mute0]);
-    strip[1].set_params(*params[param_attack1], *params[param_release1], *params[param_threshold1], *params[param_ratio1], *params[param_knee1], *params[param_makeup1], *params[param_detection1], 1.f, *params[param_bypass1], *params[param_mute1]);
-    strip[2].set_params(*params[param_attack2], *params[param_release2], *params[param_threshold2], *params[param_ratio2], *params[param_knee2], *params[param_makeup2], *params[param_detection2], 1.f, *params[param_bypass2], *params[param_mute2]);
-    strip[3].set_params(*params[param_attack3], *params[param_release3], *params[param_threshold3], *params[param_ratio3], *params[param_knee3], *params[param_makeup3], *params[param_detection3], 1.f, *params[param_bypass3], *params[param_mute3]);
+    strip[0].set_params(*params[param_attack0], *params[param_release0], *params[param_threshold0], *params[param_ratio0], *params[param_knee0], *params[param_makeup0], *params[param_detection0], 1.f, *params[param_bypass0], !(solo[0] || no_solo));
+    strip[1].set_params(*params[param_attack1], *params[param_release1], *params[param_threshold1], *params[param_ratio1], *params[param_knee1], *params[param_makeup1], *params[param_detection1], 1.f, *params[param_bypass1], !(solo[1] || no_solo));
+    strip[2].set_params(*params[param_attack2], *params[param_release2], *params[param_threshold2], *params[param_ratio2], *params[param_knee2], *params[param_makeup2], *params[param_detection2], 1.f, *params[param_bypass2], !(solo[2] || no_solo));
+    strip[3].set_params(*params[param_attack3], *params[param_release3], *params[param_threshold3], *params[param_ratio3], *params[param_knee3], *params[param_makeup3], *params[param_detection3], 1.f, *params[param_bypass3], !(solo[3] || no_solo));
 }
 
 void multibandcompressor_audio_module::set_sample_rate(uint32_t sr)
@@ -156,12 +165,6 @@ uint32_t multibandcompressor_audio_module::process(uint32_t offset, uint32_t num
     } else {
         // process all strips
         
-        // determine mute state of strips
-        mute[0] = *params[param_mute0] > 0.f ? true : false;
-        mute[1] = *params[param_mute1] > 0.f ? true : false;
-        mute[2] = *params[param_mute2] > 0.f ? true : false;
-        mute[3] = *params[param_mute3] > 0.f ? true : false;
-        
         // let meters fall a bit
         clip_inL    -= std::min(clip_inL,  numsamples);
         clip_inR    -= std::min(clip_inR,  numsamples);
@@ -183,7 +186,7 @@ uint32_t multibandcompressor_audio_module::process(uint32_t offset, uint32_t num
             float outR = 0.f;
             for (int i = 0; i < strips; i ++) {
                 // cycle trough strips
-                if (!mute[i]) {
+                if (solo[i] || no_solo) {
                     // strip unmuted
                     float left  = inL;
                     float right = inR;

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list