[SCM] calf/master: + Reverb: add dry amount (Sampo Savolainen's request)

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


The following commit has been merged in the master branch:
commit 6b290f26815b8a86ef5a29a720f191536575c1ae
Author: Krzysztof Foltman <wdev at foltman.com>
Date:   Sun Nov 16 20:54:17 2008 +0000

    + Reverb: add dry amount (Sampo Savolainen's request)

diff --git a/gui/gui-reverb.xml b/gui/gui-reverb.xml
index 51d2e2a..60d2a62 100644
--- a/gui/gui-reverb.xml
+++ b/gui/gui-reverb.xml
@@ -1,29 +1,36 @@
 <vbox border="10">
     <hbox>
-        <vbox border="10">
+        <vbox border="5">
             <label param="decay_time" />
             <knob param="decay_time" />
             <value param="decay_time" />
         </vbox>
-        <vbox border="10">
+        <vbox border="5">
             <label param="hf_damp" />
             <knob param="hf_damp" />
             <value param="hf_damp" />
         </vbox>
-        <vbox border="10">
-            <label param="diffusion" />
-            <knob param="diffusion" />
-            <value param="diffusion" />
+        <vbox border="5">
+            <label param="dry" />
+            <knob param="dry" />
+            <value param="dry" />
         </vbox>
-        <vbox border="10">
+        <vbox border="5">
             <label param="amount" />
             <knob param="amount" />
             <value param="amount" />
         </vbox>
     </hbox>
     <hbox>
-        <label param="room_size"  />
-        <combo param="room_size" />
+        <vbox border="5">
+            <label param="diffusion" />
+            <knob param="diffusion" />
+            <value param="diffusion" />
+        </vbox>
+        <vbox border="5">
+            <label param="room_size"  />
+            <combo param="room_size" />
+        </vbox>
     </hbox>
 </vbox>
 
diff --git a/src/calf/metadata.h b/src/calf/metadata.h
index d0ce0c4..d8f4335 100644
--- a/src/calf/metadata.h
+++ b/src/calf/metadata.h
@@ -53,7 +53,7 @@ struct filter_metadata: public plugin_metadata<filter_metadata>
 
 struct reverb_metadata: public plugin_metadata<reverb_metadata>
 {
-    enum { par_decay, par_hfdamp, par_roomsize, par_diffusion, par_amount, param_count };
+    enum { par_decay, par_hfdamp, par_roomsize, par_diffusion, par_amount, par_dry, param_count };
     enum { in_count = 2, out_count = 2, support_midi = false, require_midi = false, rt_capable = true };
     PLUGIN_NAME_ID_LABEL("reverb", "reverb", "Reverb")
 };
diff --git a/src/calf/modules.h b/src/calf/modules.h
index 7a99863..8e9b681 100644
--- a/src/calf/modules.h
+++ b/src/calf/modules.h
@@ -199,7 +199,7 @@ class reverb_audio_module: public audio_module<reverb_metadata>
 public:    
     dsp::reverb<float> reverb;
     uint32_t srate;
-    gain_smoothing amount;
+    gain_smoothing amount, dryamount;
     float *ins[in_count]; 
     float *outs[out_count];
     float *params[param_count];
@@ -211,16 +211,18 @@ public:
         reverb.set_time(*params[par_decay]);
         reverb.set_cutoff(*params[par_hfdamp]);
         amount.set_inertia(*params[par_amount]);
+        dryamount.set_inertia(*params[par_dry]);
     }
     uint32_t process(uint32_t offset, uint32_t numsamples, uint32_t inputs_mask, uint32_t outputs_mask) {
         numsamples += offset;
         for (uint32_t i = offset; i < numsamples; i++) {
+            float dry = dryamount.get();
             float wet = amount.get();
             float l = ins[0][i], r = ins[1][i];
             float rl = l, rr = r;
             reverb.process(rl, rr);
-            outs[0][i] = l + wet*rl;
-            outs[1][i] = r + wet*rr;
+            outs[0][i] = dry*l + wet*rl;
+            outs[1][i] = dry*r + wet*rr;
         }
         reverb.extra_sanitize();
         return outputs_mask;
diff --git a/src/modules.cpp b/src/modules.cpp
index 5335363..a0e89be 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -76,7 +76,8 @@ CALF_PORT_PROPS(reverb) = {
     { 5000,    2000,20000,    0, PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_HZ, NULL, "hf_damp", "High Frq Damp" },
     { 2,          0,    3,    0, PF_ENUM | PF_CTL_COMBO , reverb_room_sizes, "room_size", "Room size", },
     { 0.5,        0,    1,    0, PF_FLOAT | PF_CTL_KNOB | PF_SCALE_PERC, NULL, "diffusion", "Diffusion" },
-    { 0.25,       0,    2,    0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_NOBOUNDS, NULL, "amount", "Amount" },
+    { 0.25,       0,    2,    0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_NOBOUNDS, NULL, "amount", "Wet Amount" },
+    { 1.0,        0,    2,    0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_NOBOUNDS, NULL, "dry", "Dry Amount" },
 };
 
 CALF_PLUGIN_INFO(reverb) = { 0x847e, "Reverb", "Calf Reverb", "Krzysztof Foltman", calf_plugins::calf_copyright_info, "ReverbPlugin" };

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list