[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