[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