[SCM] calf/master: + Flanger, Multi Chorus, Phaser, Vintage Delay: add dry amount knobs for Aux Bus type uses

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


The following commit has been merged in the master branch:
commit 1609fdc19bc20731c5bf9460e192caf5f91dc1da
Author: Krzysztof Foltman <wdev at foltman.com>
Date:   Thu Nov 27 20:02:04 2008 +0000

    + Flanger, Multi Chorus, Phaser, Vintage Delay: add dry amount knobs for Aux Bus type uses

diff --git a/gui/gui-flanger.xml b/gui/gui-flanger.xml
index 4e8a618..d0f4ef9 100644
--- a/gui/gui-flanger.xml
+++ b/gui/gui-flanger.xml
@@ -17,6 +17,11 @@
                 <value param="feedback" />
             </vbox>
             <vbox border="10" expand="0">
+                <label param="dry" />
+                <knob param="dry" />
+                <value param="dry" />
+            </vbox>
+            <vbox border="10" expand="0">
                 <label param="amount" />
                 <knob param="amount" />
                 <value param="amount" />
diff --git a/gui/gui-multichorus.xml b/gui/gui-multichorus.xml
index 48f9951..0e7e8dd 100644
--- a/gui/gui-multichorus.xml
+++ b/gui/gui-multichorus.xml
@@ -12,9 +12,9 @@
                 <value param="mod_depth" />
             </vbox>
             <vbox border="10">
-                <label param="voices" />
-                <knob param="voices" />
-                <value param="voices" />
+                <label param="dry" />
+                <knob param="dry" />
+                <value param="dry" />
             </vbox>
             <vbox border="10">
                 <label param="amount" />
@@ -31,6 +31,11 @@
                 <value param="mod_rate" />
             </vbox>
             <vbox border="10">
+                <label param="voices" />
+                <knob param="voices" />
+                <value param="voices" />
+            </vbox>
+            <vbox border="10">
                 <label param="stereo" />
                 <knob param="stereo" type="3" />
                 <value param="stereo" />
diff --git a/gui/gui-phaser.xml b/gui/gui-phaser.xml
index 1cb35ec..01772f2 100644
--- a/gui/gui-phaser.xml
+++ b/gui/gui-phaser.xml
@@ -1,35 +1,38 @@
 <table border="10" cols="1" rows="2">
     <frame label="Timbre" attach-x="0" attach-y="0" shrink-y="1">
         <vbox>
-            <hbox>
-                <vbox border="10">
+            <table rows="2" cols="3">
+                <vbox border="10" attach-x="0" attach-y="0">
                     <label param="base_freq" />
                     <knob param="base_freq" />
                     <value param="base_freq" />
                 </vbox>
-                <vbox border="10">
+                <vbox border="10" attach-x="1" attach-y="0">
                     <label param="mod_depth" />
                     <knob param="mod_depth" />
                     <value param="mod_depth" />
                 </vbox>
-                <vbox border="10">
+                <vbox border="10" attach-x="2" attach-y="0">
                     <label param="amount" />
                     <knob param="amount" />
                     <value param="amount" />
                 </vbox>
-            </hbox>
-            <hbox>
-                <vbox border="10">
+                <vbox border="10" attach-x="0" attach-y="1">
                     <label param="stages" />
                     <knob param="stages" />
                     <value param="stages" />
                 </vbox>
-                <vbox border="10">
+                <vbox border="10" attach-x="1" attach-y="1">
                     <label param="feedback" />
                     <knob param="feedback" type="1"/>
                     <value param="feedback" />
                 </vbox>
-            </hbox>
+                <vbox border="10" attach-x="2" attach-y="1">
+                    <label param="dry" />
+                    <knob param="dry" />
+                    <value param="dry" />
+                </vbox>
+            </table>
         </vbox>
     </frame>
     <frame label="LFO"  attach-x="0" attach-y="1" shrink-y="1">
diff --git a/gui/gui-vintagedelay.xml b/gui/gui-vintagedelay.xml
index cb9f7d0..220dea4 100644
--- a/gui/gui-vintagedelay.xml
+++ b/gui/gui-vintagedelay.xml
@@ -31,15 +31,20 @@
             </hbox>
             <hbox>
                 <vbox>
-                    <label param="amount"  />
-                    <knob param="amount"/>
-                    <value param="amount"/>
-                </vbox>
-                <vbox>
                     <label param="feedback"  />
                     <knob param="feedback"/>
                     <value param="feedback"/>
                 </vbox>
+                <vbox>
+                    <label param="dry"  />
+                    <knob param="dry"/>
+                    <value param="dry"/>
+                </vbox>
+                <vbox>
+                    <label param="amount"  />
+                    <knob param="amount"/>
+                    <value param="amount"/>
+                </vbox>
             </hbox>
         </vbox>
     </frame>
diff --git a/src/calf/metadata.h b/src/calf/metadata.h
index d8f4335..cc83b14 100644
--- a/src/calf/metadata.h
+++ b/src/calf/metadata.h
@@ -30,14 +30,14 @@ namespace calf_plugins {
 struct flanger_metadata: public plugin_metadata<flanger_metadata>
 {
 public:
-    enum { par_delay, par_depth, par_rate, par_fb, par_stereo, par_reset, par_amount, param_count };
+    enum { par_delay, par_depth, par_rate, par_fb, par_stereo, par_reset, par_amount, par_dryamount, param_count };
     enum { in_count = 2, out_count = 2, support_midi = false, require_midi = false, rt_capable = true };
     PLUGIN_NAME_ID_LABEL("flanger", "flanger", "Flanger")
 };
 
 struct phaser_metadata: public plugin_metadata<phaser_metadata>
 {
-    enum { par_freq, par_depth, par_rate, par_fb, par_stages, par_stereo, par_reset, par_amount, param_count };
+    enum { par_freq, par_depth, par_rate, par_fb, par_stages, par_stereo, par_reset, par_amount, par_dryamount, param_count };
     enum { in_count = 2, out_count = 2, support_midi = false, require_midi = false, rt_capable = true };
     PLUGIN_NAME_ID_LABEL("phaser", "phaser", "Phaser")
 };
@@ -60,7 +60,7 @@ struct reverb_metadata: public plugin_metadata<reverb_metadata>
 
 struct vintage_delay_metadata: public plugin_metadata<vintage_delay_metadata>
 {
-    enum { par_bpm, par_divide, par_time_l, par_time_r, par_feedback, par_amount, par_mixmode, par_medium, param_count };
+    enum { par_bpm, par_divide, par_time_l, par_time_r, par_feedback, par_amount, par_mixmode, par_medium, par_dryamount, param_count };
     enum { in_count = 2, out_count = 2, rt_capable = true, support_midi = false, require_midi = false };
     PLUGIN_NAME_ID_LABEL("vintage_delay", "vintagedelay", "Vintage Delay")
 };
@@ -77,7 +77,7 @@ public:
 struct multichorus_metadata: public plugin_metadata<multichorus_metadata>
 {
 public:    
-    enum { par_delay, par_depth, par_rate, par_stereo, par_voices, par_vphase, par_amount, par_lfophase_l, par_lfophase_r, param_count };
+    enum { par_delay, par_depth, par_rate, par_stereo, par_voices, par_vphase, par_amount, par_dryamount, param_count };
     enum { in_count = 2, out_count = 2, rt_capable = true, support_midi = false, require_midi = false };
     PLUGIN_NAME_ID_LABEL("multichorus", "multichorus", "Multi Chorus")
 };
diff --git a/src/calf/modules.h b/src/calf/modules.h
index 0f57444..4ad0936 100644
--- a/src/calf/modules.h
+++ b/src/calf/modules.h
@@ -78,7 +78,7 @@ public:
     }
     void set_sample_rate(uint32_t sr);
     void params_changed() {
-        float dry = 1.0;
+        float dry = *params[par_dryamount];
         float wet = *params[par_amount];
         float rate = *params[par_rate]; // 0.01*pow(1000.0f,*params[par_rate]);
         float min_delay = *params[par_delay] / 1000.0;
@@ -139,7 +139,7 @@ public:
         is_active = false;
     }
     void params_changed() {
-        float dry = 1.0;
+        float dry = *params[par_dryamount];
         float wet = *params[par_amount];
         float rate = *params[par_rate]; // 0.01*pow(1000.0f,*params[par_rate]);
         float base_frq = *params[par_freq];
@@ -372,6 +372,7 @@ public:
     float buffers[2][MAX_DELAY];
     int bufptr, deltime_l, deltime_r, mixmode, medium, old_medium;
     gain_smoothing amt_left, amt_right, fb_left, fb_right;
+    float dry;
     
     dsp::biquad_d2<float> biquad_left[2], biquad_right[2];
     
@@ -388,7 +389,8 @@ public:
         deltime_l = dsp::fastf2i_drm(unit * *params[par_time_l]);
         deltime_r = dsp::fastf2i_drm(unit * *params[par_time_r]);
         amt_left.set_inertia(*params[par_amount]); amt_right.set_inertia(*params[par_amount]);
-        float fb = *params[par_feedback];;
+        float fb = *params[par_feedback];
+        dry = *params[par_dryamount];
         mixmode = dsp::fastf2i_drm(*params[par_mixmode]);
         medium = dsp::fastf2i_drm(*params[par_medium]);
         if (mixmode == 0)
@@ -433,8 +435,8 @@ public:
             float in_left = buffers[v][(bufptr - deltime_l) & ADDR_MASK], in_right = buffers[1 - v][(bufptr - deltime_r) & ADDR_MASK], out_left, out_right, del_left, del_right;
             dsp::sanitize(in_left), dsp::sanitize(in_right);
 
-            out_left = ins[0][i] + in_left * amt_left.get();
-            out_right = ins[1][i] + in_right * amt_right.get();
+            out_left = dry * ins[0][i] + in_left * amt_left.get();
+            out_right = dry * ins[1][i] + in_right * amt_right.get();
             del_left = ins[0][i] + in_left * fb_left.get();
             del_right = ins[1][i] + in_right * fb_right.get();
             
@@ -645,7 +647,7 @@ public:
     void params_changed()
     {
         // delicious copy-pasta from flanger module - it'd be better to keep it common or something
-        float dry = 1.0;
+        float dry = *params[par_dryamount];
         float wet = *params[par_amount];
         float rate = *params[par_rate];
         float min_delay = *params[par_delay] / 1000.0;
@@ -669,10 +671,6 @@ public:
     uint32_t process(uint32_t offset, uint32_t numsamples, uint32_t inputs_mask, uint32_t outputs_mask) {
         left.process(outs[0] + offset, ins[0] + offset, numsamples);
         right.process(outs[1] + offset, ins[1] + offset, numsamples);
-        if (params[par_lfophase_l])
-            *params[par_lfophase_l] = (double)left.lfo.phase * 360.0 / 4096.0;
-        if (params[par_lfophase_r])
-            *params[par_lfophase_r] = (double)right.lfo.phase * 360.0 / 4096.0;
         return outputs_mask; // XXXKF allow some delay after input going blank
     }
     void activate();
@@ -723,7 +721,7 @@ public:
 
         bool rms = *params[param_detection] == 0;
         bool average = *params[param_stereo_link] == 0;
-        float aweighting = *params[param_aweighting] > 0.5f;
+        bool aweighting = *params[param_aweighting] > 0.5f;
         float linThreshold = *params[param_threshold];
         ratio = *params[param_ratio];
         float attack = *params[param_attack];
diff --git a/src/modules.cpp b/src/modules.cpp
index e85ca10..76a88df 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -43,7 +43,8 @@ CALF_PORT_PROPS(flanger) = {
     { 0.90,   -0.99, 0.99,  0, PF_FLOAT | PF_SCALE_PERC | PF_CTL_KNOB | PF_UNIT_COEF, NULL, "feedback", "Feedback" },
     { 0,          0, 360,   9, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_DEG, NULL, "stereo", "Stereo phase" },
     { 0,          0, 1,     2, PF_BOOL | PF_CTL_BUTTON , NULL, "reset", "Reset" },
-    { 1,          0, 2,     0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_NOBOUNDS, NULL, "amount", "Amount" },
+    { 1,          0, 4,     0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_NOBOUNDS, NULL, "amount", "Amount" },
+    { 1.0,        0, 4,     0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_NOBOUNDS, NULL, "dry", "Dry Amount" },
 };
 
 CALF_PLUGIN_INFO(flanger) = { 0x847d, "Flanger", "Calf Flanger", "Krzysztof Foltman", calf_plugins::calf_copyright_info, "FlangerPlugin" };
@@ -60,7 +61,8 @@ CALF_PORT_PROPS(phaser) = {
     { 6,          1, 12,   12, PF_INT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "stages", "# Stages" },
     { 180,        0, 360,   9, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_DEG, NULL, "stereo", "Stereo phase" },
     { 0,          0, 1,     2, PF_BOOL | PF_CTL_BUTTON , NULL, "reset", "Reset" },
-    { 1,          0, 2,     0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_NOBOUNDS, NULL, "amount", "Amount" },
+    { 1,          0, 4,     0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_NOBOUNDS, NULL, "amount", "Amount" },
+    { 1.0,        0, 4,     0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_NOBOUNDS, NULL, "dry", "Dry Amount" },
 };
 
 CALF_PLUGIN_INFO(phaser) = { 0x8484, "Phaser", "Calf Phaser", "Krzysztof Foltman", calf_plugins::calf_copyright_info, "PhaserPlugin" };
@@ -125,9 +127,10 @@ CALF_PORT_PROPS(vintage_delay) = {
     {  3,        1,    16,    1, PF_INT | PF_SCALE_LINEAR | PF_CTL_FADER, NULL, "time_l", "Time L"},
     {  5,        1,    16,    1, PF_INT | PF_SCALE_LINEAR | PF_CTL_FADER, NULL, "time_r", "Time R"},
     { 0.5,       0,    1,     0, PF_FLOAT | PF_SCALE_PERC | PF_CTL_KNOB, NULL, "feedback", "Feedback" },
-    { 0.25,      0,    2,   100, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF, NULL, "amount", "Amount" },
+    { 0.25,      0,    4,   100, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF, NULL, "amount", "Amount" },
     { 1,         0,    1,     0, PF_ENUM | PF_CTL_COMBO, vintage_delay_mixmodes, "mix_mode", "Mix mode" },
     { 1,         0,    2,     0, PF_ENUM | PF_CTL_COMBO, vintage_delay_fbmodes, "medium", "Medium" },
+    { 1.0,       0,    4,     0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_NOBOUNDS, NULL, "dry", "Dry Amount" },
 };
 
 CALF_PLUGIN_INFO(vintage_delay) = { 0x8482, "VintageDelay", "Calf Vintage Delay", "Krzysztof Foltman", calf_plugins::calf_copyright_info, "DelayPlugin" };
@@ -163,8 +166,7 @@ CALF_PORT_PROPS(multichorus) = {
     { 4,          1,   8,   8, PF_INT | PF_SCALE_LINEAR | PF_CTL_FADER, NULL, "voices", "Voices"},
     { 64,         0, 360,  91, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_DEG, NULL, "vphase", "Inter-voice phase" },
     { 2,          0,   4,   0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_NOBOUNDS, NULL, "amount", "Amount" },
-    { 180,        0, 360,  91, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_DEG | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "lfo_phase_l", "Left LFO phase" },
-    { 180,        0, 360,  91, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_DEG | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "lfo_phase_r", "Right LFO phase" },
+    { 1.0,        0,   4,     0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_NOBOUNDS, NULL, "dry", "Dry Amount" },
 };
 
 CALF_PLUGIN_INFO(multichorus) = { 0x8501, "MultiChorus", "Calf MultiChorus", "Krzysztof Foltman", calf_plugins::calf_copyright_info, "ChorusPlugin" };

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list