[SCM] calf/master: Merge branch 'master' into stringport

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


+ ChangeLog: update (0.0.17 no longer "ongoing")
+ VU meter: fix last pixel in reverse mode (eg. compression indicator)
Merge branch 'master' of ssh://repo.or.cz/srv/git/calf
+ Organ, Flanger: more presets
* Compressor: Limited Threshold to -60 dB so logarithmic compressor works properly.
+ Organ: release-related fixes
+ Organ: MOAR PRESETS!!!
+ Organ: make 9x louder, remove test expression pedal support
+ Compressor: Fixed buggy RMS conditional.
Merge branch 'master' of ssh://repo.or.cz/srv/git/calf
+ Compressor: Small cleanups.
+ Flanger, Multi Chorus, Phaser, Vintage Delay: add dry amount knobs for Aux Bus type uses
Merge branch 'master' of ssh://repo.or.cz/srv/git/calf
+ Framework: an attempt at optimizing Hermite interpolation a little bit
+ Compressor: Fixed clip LED to operate completely in integer domain.
Merge branch 'master' of ssh://repo.or.cz/srv/git/calf
+ Compressor: Another go at optimizations.
+ Framework: remove (if'ed out) monotonic Hermite code
+ Benchmark: add more nasty compressor settings, add multichorus benchmarking
+ GUI: nasty hack to make labels less likely to be truncated
Merge branch 'master' of ssh://repo.or.cz/srv/git/calf
+ Flanger, Filter: add frames around freq. response graph for consistency (Stefan Kost's suggestion)
+ Compressor: Various optimizations, speed improved by >30%.
+ Benchmark: restore effect benchmarking, add test params for compressor
+ LED: make a bit brighter
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-Git-Refname: refs/heads/master
X-Git-Reftype: branch
X-Git-Oldrev: d6a3c1a63a147948535a50da009275278ad5e6a3
X-Git-Newrev: 34569260c452f0fa4c543155ebba174a42a343dc

The following commit has been merged in the master branch:
commit 23f59038ad7b4780277657e0e1425566d759e1fb
Merge: e13fbb3e61f3f30549f405a5216b448a18ce896f 9573a5592a8e14d5319bb130505aab8f2694ab43
Author: Krzysztof Foltman <wdev at foltman.com>
Date:   Sun Nov 30 19:28:54 2008 +0000

    Merge branch 'master' into stringport

diff --combined src/calf/metadata.h
index 3714881,cc83b14..544594c
--- a/src/calf/metadata.h
+++ b/src/calf/metadata.h
@@@ -30,14 -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 +60,7 @@@ struct reverb_metadata: public plugin_m
  
  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 +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")
  };
@@@ -126,12 -126,8 +126,12 @@@ struct organ_enum
          par_eg3attack, par_eg3decay, par_eg3sustain, par_eg3release, par_eg3velscl, par_eg3ampctl, 
          par_lforate, par_lfoamt, par_lfowet, par_lfophase, par_lfomode,
          par_transpose, par_detune,
 +        par_var_mapcurve,
          param_count
      };
 +    enum {
 +        var_count = 1
 +    };
      enum organ_waveform { 
          wave_sine, 
          wave_sinepl1, wave_sinepl2, wave_sinepl3,
diff --combined src/calf/modules_synths.h
index eec733a,9b4b238..775c58b
--- a/src/calf/modules_synths.h
+++ b/src/calf/modules_synths.h
@@@ -207,13 -207,14 +207,14 @@@ public
      organ_audio_module()
      : drawbar_organ(&par_values)
      {
+         var_map_curve = "2\n0 1\n1 1\n"; // XXXKF hacky bugfix
      }
  
      void set_sample_rate(uint32_t sr) {
          srate = sr;
      }
      void params_changed() {
 -        for (int i = 0; i < param_count; i++)
 +        for (int i = 0; i < param_count - var_count; i++)
              ((float *)&par_values)[i] = *params[i];
          update_params();
      }
diff --combined src/calf/organ.h
index c397597,5d44c98..eed6bdb
--- a/src/calf/organ.h
+++ b/src/calf/organ.h
@@@ -83,8 -83,6 +83,8 @@@ struct organ_parameters 
      float global_transpose;
      float global_detune;
      
 +    float dummy_mapcurve;
 +    
      //////////////////////////////////////////////////////////////////////////
      // these parameters are calculated
      
@@@ -309,7 -307,7 +309,7 @@@ struct drawbar_organ: public dsp::basic
          }
          if (percussion.get_active())
              percussion.render_percussion_to(buf, nsamples);
-         float gain = parameters->master * (1.0 / (9 * 8));
+         float gain = parameters->master * (1.0 / 8);
          for (int i=0; i<nsamples; i++) {
              output[0][i] = gain*buf[i][0];
              output[1][i] = gain*buf[i][1];
@@@ -334,10 -332,12 +334,12 @@@
      void update_params();
      void control_change(int controller, int value)
      {
+ #if 0
          if (controller == 11)
          {
              parameters->cutoff = value / 64.0 - 1;
          }
+ #endif
          dsp::basic_synth::control_change(controller, value);
      }
      void pitch_bend(int amt);
diff --combined src/giface.cpp
index a1b590f,2046b88..03209b7
--- a/src/giface.cpp
+++ b/src/giface.cpp
@@@ -131,7 -131,7 +131,7 @@@ int parameter_properties::get_char_coun
          len = std::max(len, strlen(buf)) + 2;
          return (int)len;
      }
-     return std::max(to_string(min).length(), std::max(to_string(max).length(), to_string(max * 0.999999).length()));
+     return std::max(to_string(min).length(), std::max(to_string(max).length(), to_string(min + (max-min) * 0.987654).length()));
  }
  
  std::string parameter_properties::to_string(float value) const
@@@ -149,8 -149,6 +149,8 @@@
      }
      switch(flags & PF_TYPEMASK)
      {
 +    case PF_STRING:
 +        return "N/A";
      case PF_INT:
      case PF_BOOL:
      case PF_ENUM:
@@@ -190,14 -188,13 +190,14 @@@
  void calf_plugins::plugin_ctl_iface::clear_preset() {
      int param_count = get_param_count();
      for (int i=0; i < param_count; i++)
 -        set_param_value(i, get_param_props(i)->def_value);
 -    // This is never called in practice, at least for now
 -    const char **p = get_default_configure_vars();
 -    if (p)
      {
 -        for(; p[0]; p += 2)
 -            configure(p[0], p[1]);
 +        parameter_properties &pp = *get_param_props(i);
 +        if ((pp.flags & PF_TYPEMASK) == PF_STRING)
 +        {
 +            configure(pp.short_name, pp.choices ? pp.choices[0] : "");
 +        }
 +        else
 +            set_param_value(i, pp.def_value);
      }
  }
  
@@@ -211,25 -208,3 +211,25 @@@ const char *calf_plugins::load_gui_xml(
          return NULL;
      }
  }
 +
 +bool calf_plugins::check_for_message_context_ports(parameter_properties *parameters, int count)
 +{
 +    for (int i = count - 1; i >= 0; i--)
 +    {
 +        if (parameters[i].flags & PF_PROP_MSGCONTEXT)
 +            return true;
 +    }
 +    return false;
 +}
 +
 +bool calf_plugins::check_for_string_ports(parameter_properties *parameters, int count)
 +{
 +    for (int i = count - 1; i >= 0; i--)
 +    {
 +        if ((parameters[i].flags & PF_TYPEMASK) == PF_STRING)
 +            return true;
 +        if ((parameters[i].flags & PF_TYPEMASK) < PF_STRING)
 +            return false;
 +    }
 +    return false;
 +}
diff --combined src/gui.cpp
index 20f8d2d,68e669d..c421773
--- a/src/gui.cpp
+++ b/src/gui.cpp
@@@ -52,10 -52,8 +52,10 @@@ void param_control::update_label(
  
  void param_control::hook_params()
  {
 -    if (param_no != -1)
 +    if (param_no != -1) {
          gui->add_param_ctl(param_no, this);
 +    }
 +    gui->params.push_back(this);
  }
  
  param_control::~param_control()
@@@ -409,7 -407,7 +409,7 @@@ struct curve_param_control_callback: pu
          ss << data.size() << endl;
          for (size_t i = 0; i < data.size(); i++)
              ss << data[i].first << " " << data[i].second << endl;
 -        ctl->gui->send_configure(ctl->attribs["key"].c_str(), ss.str().c_str());
 +        ctl->gui->plugin->configure(ctl->attribs["key"].c_str(), ss.str().c_str());
      }
      virtual void clip(CalfCurve *src, int pt, float &x, float &y, bool &hide)
      {
@@@ -434,7 -432,7 +434,7 @@@ GtkWidget *curve_param_control::create(
  
  void curve_param_control::send_configure(const char *key, const char *value)
  {
-     cout << "send conf " << key << endl;
+     // cout << "send conf " << key << endl;
      if (attribs["key"] == key)
      {
          stringstream ss(value);
@@@ -776,6 -774,7 +776,6 @@@ void plugin_gui::xml_element_start(cons
              current_control->init_xml(element);
              current_control->set();
              current_control->hook_params();
 -            params.push_back(current_control);
              return;
          }
      }
@@@ -837,26 -836,22 +837,26 @@@ GtkWidget *plugin_gui::create_from_xml(
  
  void plugin_gui::send_configure(const char *key, const char *value)
  {
 -    plugin->configure(key, value);
 +    // XXXKF this should really be replaced by a separate list of SCI-capable param controls
 +    for (unsigned int i = 0; i < params.size(); i++)
 +    {
 +        assert(params[i] != NULL);
 +        send_configure_iface *sci = dynamic_cast<send_configure_iface *>(params[i]);
 +        if (sci)
 +            sci->send_configure(key, value);
 +    }
  }
  
  void plugin_gui::on_idle()
  {
      for (unsigned int i = 0; i < params.size(); i++)
      {
 -        if (params[i] != NULL)
 -        {
 -            parameter_properties &props = *plugin->get_param_props(params[i]->param_no);
 -            bool is_output = (props.flags & PF_PROP_OUTPUT) != 0;
 -            if (is_output) {
 -                params[i]->set();
 -            }
 -            params[i]->on_idle();
 +        parameter_properties &props = *plugin->get_param_props(params[i]->param_no);
 +        bool is_output = (props.flags & PF_PROP_OUTPUT) != 0;
 +        if (is_output) {
 +            params[i]->set();
          }
 +        params[i]->on_idle();
      }    
      // XXXKF iterate over par2ctl, too...
  }
@@@ -865,10 -860,13 +865,10 @@@ void plugin_gui::refresh(
  {
      for (unsigned int i = 0; i < params.size(); i++)
      {
 -        if (params[i] != NULL)
 -            params[i]->set();
 +        params[i]->set();
          send_configure_iface *sci = dynamic_cast<send_configure_iface *>(params[i]);
          if (sci)
 -        {
              plugin->send_configures(sci);
 -        }
      }
  }
  
@@@ -1112,7 -1110,6 +1112,7 @@@ void plugin_gui_window::create(plugin_c
  
      source_id = g_timeout_add_full(G_PRIORITY_LOW, 1000/30, on_idle, this, NULL); // 30 fps should be enough for everybody
      gtk_ui_manager_ensure_update(ui_mgr);
 +    gui->plugin->send_configures(gui);
  }
  
  void plugin_gui_window::close()
diff --combined src/modules.cpp
index 59b6c39,5742145..b515de1
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@@ -43,7 -43,8 +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 +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" };
@@@ -99,7 -101,7 +101,7 @@@ CALF_PORT_PROPS(filter) = 
      { 2000,      10,20000,    0, PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_HZ | PF_PROP_GRAPH, NULL, "freq", "Frequency" },
      { 0.707,  0.707,   32,    0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF, NULL, "res", "Resonance" },
      { 0,          0,    5,    1, PF_ENUM | PF_CTL_COMBO, filter_choices, "mode", "Mode" },
 -    { 20,         5,  100,    20, PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_MSEC, NULL, "inertia", "Inertia"},
 +    { 20,         5,  100,    20, PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_MSEC | PF_PROP_MSGCONTEXT, NULL, "inertia", "Inertia"},
  };
  
  CALF_PLUGIN_INFO(filter) = { 0x847f, "Filter", "Calf Filter", "Krzysztof Foltman", calf_plugins::calf_copyright_info, "FilterPlugin" };
@@@ -125,9 -127,10 +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 +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" };
@@@ -177,18 -179,18 +179,18 @@@ const char *compressor_detection_names[
  const char *compressor_stereo_link_names[] = { "Average", "Maximum" };
  
  CALF_PORT_PROPS(compressor) = {
-     { 0.0625,      0, 1,    0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_DB, NULL, "threshold", "Threshold" },
-     { 5,      1, 20,  21, PF_FLOAT | PF_SCALE_LOG_INF | PF_CTL_KNOB | PF_UNIT_COEF, NULL, "ratio", "Ratio" },
-     { 15,     0.01, 2000, 0, PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_MSEC, NULL, "attack", "Attack" },
-     { 150,    0.01, 2000, 0, PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_MSEC, NULL, "release", "Release" },
+     { 0.125,      0.000976563, 1,    0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_DB, NULL, "threshold", "Threshold" },
+     { 2,      1, 20,  21, PF_FLOAT | PF_SCALE_LOG_INF | PF_CTL_KNOB | PF_UNIT_COEF, NULL, "ratio", "Ratio" },
+     { 20,     0.01, 2000, 0, PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_MSEC, NULL, "attack", "Attack" },
+     { 250,    0.01, 2000, 0, PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_MSEC, NULL, "release", "Release" },
      { 2,      1, 64,   0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_DB, NULL, "makeup", "Makeup Gain" },
-     { 1,      1,  8,   0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_DB, NULL, "knee", "Knee" },
+     { 2.828427125,      1,  8,   0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_DB, NULL, "knee", "Knee" },
      { 0,      0,  1,   0, PF_ENUM | PF_CTL_COMBO, compressor_detection_names, "detection", "Detection" },
      { 0,      0,  1,   0, PF_ENUM | PF_CTL_COMBO, compressor_stereo_link_names, "stereo_link", "Stereo Link" },
      { 0,      0,  1,   0, PF_BOOL | PF_CTL_TOGGLE, NULL, "aweighting", "A-weighting" },
      { 0, 0.03125, 1,    0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_METER | PF_CTLO_LABEL | PF_CTLO_REVERSE | PF_UNIT_DB | PF_PROP_OUTPUT | PF_PROP_OPTIONAL| PF_PROP_GRAPH, NULL, "compression", "Compression" },
-     { 0,      0,  1,    0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_METER | PF_CTLO_LABEL | PF_UNIT_DB | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "peak", "Peak" },
-     { 0,      0,  1,    0, PF_BOOL | PF_CTL_LED | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "clip", "Clip" },
+     { 0,      0,  1,    0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_METER | PF_CTLO_LABEL | PF_UNIT_DB | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "peak", "Peak Output" },
+     { 0,      0,  1,    0, PF_BOOL | PF_CTL_LED | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "clip", "0dB" },
      { 0,      0,  1,    0, PF_BOOL | PF_CTL_TOGGLE, NULL, "bypass", "Bypass" }
  };
  
@@@ -289,8 -291,6 +291,8 @@@ const char *organ_ampctl_names[] = { "N
  
  const char *organ_vibrato_mode_names[] = { "None", "Direct", "Flt 1", "Flt 2", "Voice", "Global"  };
  
 +const char *organ_init_map_curve = "2\n0 1\n1 1\n";
 +
  CALF_PORT_PROPS(organ) = {
      { 8,       0,  8, 80, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_FADER, NULL, "l1", "16'" },
      { 8,       0,  8, 80, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_FADER, NULL, "l2", "5 1/3'" },
@@@ -430,8 -430,6 +432,8 @@@
  
      { -12,        -24, 24,   49, PF_INT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_SEMITONES, NULL, "transpose", "Transpose" },
      { 0,       -100,  100,  201, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_CENTS, NULL, "detune", "Detune" },
 +    
 +    { 0,          0,    0,    0, PF_STRING | PF_PROP_MSGCONTEXT, &organ_init_map_curve, "map_curve", "Key mapping curve" },
  };
  
  ////////////////////////////////////////////////////////////////////////////

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list