[SCM] calf/master: Stereo Input: replace channel flip switch with new stereo modes.

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


The following commit has been merged in the master branch:
commit 5d9d11cda70b22f2b89fb84ef432f0c4a79174b0
Author: Markus Schmidt <schmidt at boomshop.net>
Date:   Wed Dec 21 11:00:29 2011 +0000

    Stereo Input: replace channel flip switch with new stereo modes.

diff --git a/gui/gui-stereo.xml b/gui/gui-stereo.xml
index 0cfb79b..299439e 100644
--- a/gui/gui-stereo.xml
+++ b/gui/gui-stereo.xml
@@ -2,9 +2,6 @@
     <frame label="Input" expand="1" fill="1">
         <vbox spacing="8">
             <table rows="3" cols="3">
-                <label param="bypass" attach-y="2" attach-x="0" fill-x="0" expand-x="0" />
-                <toggle param="bypass" attach-y="0" attach-x="0" attach-h="2" fill-x="0" expand-x="0"/>
-                
                 <label param="meter_inL" attach-x="1" attach-y="0" fill-x="0" expand-x="0" fill-y="0" expand-y="0" text="L"/>
                 <vumeter param="meter_inL" position="2" hold="1.5" falloff="2.5"  attach-x="2" attach-y="0" fill-x="1" expand-x="1" fill-y="0" expand-y="0"/>
                 <led param="clip_inL" attach-x="3" attach-y="0" fill-x="0" expand-x="0" fill-y="0" expand-y="0" />
@@ -24,8 +21,8 @@
                     <value param="balance_in" />
                 </vbox>
                 <vbox expand="0" spacing="5">
-                    <label param="flip" />
-                    <align><toggle param="flip"/></align>
+                    <label param="bypass" />
+                    <align><toggle param="bypass" /></align>
                     <align><toggle param="softclip"/></align>
                     <label param="softclip" />
                 </vbox>
diff --git a/src/calf/metadata.h b/src/calf/metadata.h
index 8d2ff9a..85eff76 100644
--- a/src/calf/metadata.h
+++ b/src/calf/metadata.h
@@ -360,7 +360,7 @@ struct stereo_metadata: public plugin_metadata<stereo_metadata>
 {
     enum { in_count = 2, out_count = 2, ins_optional = 1, outs_optional = 1, support_midi = false, require_midi = false, rt_capable = true };
     enum { param_bypass, param_level_in, param_level_out, 
-           STEREO_VU_METER_PARAMS, param_balance_in, param_balance_out, param_flip, param_softclip, 
+           STEREO_VU_METER_PARAMS, param_balance_in, param_balance_out, param_softclip, 
            param_mute_l, param_mute_r, param_phase_l, param_phase_r,
            param_mode, param_slev, param_sbal, param_mlev, param_mpan,
            param_widener, param_delay,
diff --git a/src/custom_ctl.cpp b/src/custom_ctl.cpp
index f480429..be8234e 100644
--- a/src/custom_ctl.cpp
+++ b/src/custom_ctl.cpp
@@ -869,7 +869,7 @@ calf_tube_expose (GtkWidget *widget, GdkEventExpose *event)
     GtkStyle  *style  = gtk_widget_get_style(widget);
     cairo_t *c = gdk_cairo_create(GDK_DRAWABLE(window));
     
-    int ox = 4, oy = 4, inner = 1, rad, pad;
+    int ox = 4, oy = 4, inner = 1, pad;
     int sx = widget->allocation.width - (ox * 2), sy = widget->allocation.height - (oy * 2);
     
     if( self->cache_surface == NULL ) {
diff --git a/src/metadata.cpp b/src/metadata.cpp
index 98eeccf..42d3c22 100644
--- a/src/metadata.cpp
+++ b/src/metadata.cpp
@@ -817,7 +817,7 @@ CALF_PLUGIN_INFO(mono) = { 0x8589, "MonoInput", "Calf Mono Input", "Markus Schmi
 ////////////////////////////////////////////////////////////////////////////
 
 CALF_PORT_NAMES(stereo) = {"In L", "In R", "Out L", "Out R"};
-const char *stereo_mode_names[] = { "LR ▸ LR", "LR ▸ MS", "MS ▸ LR", "LR ▸ LL", "LR ▸ RR" };
+const char *stereo_mode_names[] = { "LR ▸ LR (Stereo Default)", "LR ▸ MS (Stereo to Mid-Side)", "MS ▸ LR (Mid-Side to Stereo)", "LR ▸ LL (Mono Left Channel)", "LR ▸ RR (Mono Right Channel)", "LR ▸ L+R (Mono Sum L+R)", "LR ▸ RL (Stereo Flip Channels)" };
 CALF_PORT_PROPS(stereo) = {
     { 0,           0,           1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "bypass", "Bypass" },
     { 1,           0,           64,    0,  PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_NOBOUNDS, NULL, "level_in", "Input" },
@@ -834,14 +834,13 @@ CALF_PORT_PROPS(stereo) = {
     { 0.f,      -1.f,           1.f,   0,  PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_GRAPH, NULL, "balance_in", "Balance In" },
     { 0.f,      -1.f,           1.f,   0,  PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_GRAPH, NULL, "balance_out", "Balance Out" },
     
-    { 0,          0,            1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "flip", "Flip L/R" },
     { 0,          0,            1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "softclip", "Softclip" },
     { 0,          0,            1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "mutel", "Mute L" },
     { 0,          0,            1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "muter", "Mute R" },
     { 0,          0,            1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "phasel", "Phase L" },
     { 0,          0,            1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "phaser", "Phase R" },
     
-    { 0,           0,           4,     0,  PF_ENUM | PF_CTL_COMBO, stereo_mode_names, "mode", "Mode" },
+    { 0,           0,           6,     0,  PF_ENUM | PF_CTL_COMBO, stereo_mode_names, "mode", "Mode" },
     
     { 0.f,      -1.f,            1.f,   0,  PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_GRAPH, NULL, "slev", "S Level" },
     { 0.f,      -1.f,            1.f,   0,  PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_GRAPH, NULL, "sbal", "S Balance" },
diff --git a/src/modules.cpp b/src/modules.cpp
index 36eb67e..ba06f02 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -477,6 +477,7 @@ void stereo_audio_module::params_changed() {
     switch((int)*params[param_mode])
     {
         case 0:
+        default:
             //LR->LR
             LL = (mlev * (2.f - mpan) + slev * (2.f - sbal));
             LR = (mlev * mpan - slev * sbal);
@@ -499,6 +500,8 @@ void stereo_audio_module::params_changed() {
             break;
         case 3:
         case 4:
+        case 5:
+        case 6:
             //LR->LL
             LL = 0.f;
             LR = 0.f;
@@ -543,21 +546,37 @@ uint32_t stereo_audio_module::process(uint32_t offset, uint32_t numsamples, uint
             L *= (1.f - std::max(0.f, *params[param_balance_in]));
             R *= (1.f + std::min(0.f, *params[param_balance_in]));
             
-            // flip
-            if(*params[param_flip] > 0.5) {
-                float tmp = L;
-                L = R;
-                R = tmp;
-            }
-            
-            // copy
+            // copy / flip / mono ...
             switch((int)*params[param_mode])
             {
+                case 0:
+                default:
+                    // LR > LR
+                    break;
+                case 1:
+                    // LR > MS
+                    break;
+                case 2:
+                    // MS > LR
+                    break;
                 case 3:
+                    // LR > LL
                     R = L;
                     break;
                 case 4:
+                    // LR > RR
+                    L = R;
+                    break;
+                case 5:
+                    // LR > L+R
+                    L = (L + R) / 2;
+                    R = L;
+                    break;
+                case 6:
+                    // LR > RL
+                    float tmp = L;
                     L = R;
+                    R = tmp;
                     break;
             }
             

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list