[SCM] calf/master: + Organ: add pitch bend range knob

js at users.alioth.debian.org js at users.alioth.debian.org
Tue May 7 15:39:21 UTC 2013


The following commit has been merged in the master branch:
commit 47139b913a44b86d7f8cf0194e18ee0b266c0a28
Author: Krzysztof Foltman <wdev at foltman.com>
Date:   Sun Feb 8 13:46:23 2009 +0000

    + Organ: add pitch bend range knob

diff --git a/gui/gui-organ.xml b/gui/gui-organ.xml
index f945d5f..f5b08ba 100644
--- a/gui/gui-organ.xml
+++ b/gui/gui-organ.xml
@@ -543,6 +543,11 @@
             <value param="detune"/>
           </vbox>
           <vbox>
+            <label param="pbend_range"/>
+            <knob param="pbend_range"/>
+            <value param="pbend_range"/>
+          </vbox>
+          <vbox>
             <label param="foldnote"/>
             <knob param="foldnote"/>
             <value param="foldnote"/>
diff --git a/src/calf/metadata.h b/src/calf/metadata.h
index 5595201..248ea3b 100644
--- a/src/calf/metadata.h
+++ b/src/calf/metadata.h
@@ -142,6 +142,7 @@ struct organ_enums
         par_transpose, par_detune,
         par_polyphony,
         par_quadenv,
+        par_pwhlrange,
         par_var_mapcurve,
         param_count
     };
diff --git a/src/calf/organ.h b/src/calf/organ.h
index d4f8e9d..441a6c4 100644
--- a/src/calf/organ.h
+++ b/src/calf/organ.h
@@ -87,6 +87,8 @@ struct organ_parameters {
     
     float quad_env;
     
+    float pitch_bend_range;
+    
     float dummy_mapcurve;
     
     //////////////////////////////////////////////////////////////////////////
diff --git a/src/modules.cpp b/src/modules.cpp
index f3b646c..da48666 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -285,7 +285,7 @@ CALF_PORT_PROPS(monosynth) = {
 
     { 0.5,         0,   1, 100, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_PROP_OUTPUT_GAIN, NULL, "master", "Volume" },
 
-    { 200,     -2400, 2400,   49, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_CENTS, NULL, "pbend_range", "PBend Range" },
+    { 200,         0, 2400,   25, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_CENTS, NULL, "pbend_range", "PBend Range" },
 
     { 5,       0.01, 20,    0, PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_HZ, NULL, "lfo_rate", "LFO Rate" },
     { 0.5,      0.1,  5,    0, PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_SEC, NULL, "lfo_delay", "LFO Delay" },
@@ -482,6 +482,8 @@ CALF_PORT_PROPS(organ) = {
     
     { 1,          0,    1,    0, PF_BOOL | PF_CTL_TOGGLE, NULL, "quad_env", "Quadratic AmpEnv" },
 
+    { 200,        0, 2400,   25, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_CENTS, NULL, "pbend_range", "PBend Range" },
+    
     { 0,          0,    0,    0, PF_STRING | PF_PROP_MSGCONTEXT, &organ_init_map_curve, "map_curve", "Key mapping curve" },
 };
 
diff --git a/src/organ.cpp b/src/organ.cpp
index c20d174..7c384a6 100644
--- a/src/organ.cpp
+++ b/src/organ.cpp
@@ -741,7 +741,7 @@ void drawbar_organ::update_params()
 
 void drawbar_organ::pitch_bend(int amt)
 {
-    parameters->pitch_bend = pow(2.0, amt * 2 / (12.0 * 8192));
+    parameters->pitch_bend = pow(2.0, (amt * parameters->pitch_bend_range) / (1200.0 * 8192.0));
     for (list<voice *>::iterator i = active_voices.begin(); i != active_voices.end(); i++)
     {
         organ_voice *v = dynamic_cast<organ_voice *>(*i);

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list