Fix midi control for log plugin parameters.
authorSampo Savolainen <v2@iki.fi>
Sun, 2 Jul 2006 20:51:16 +0000 (20:51 +0000)
committerSampo Savolainen <v2@iki.fi>
Sun, 2 Jul 2006 20:51:16 +0000 (20:51 +0000)
git-svn-id: svn://localhost/ardour2/trunk@663 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/plugin.cc

index 2d1f8ffcbd06c888626865b65728b8eddf99482b..9fc6c579093d23b2797f7b7ca17cfcaf4e5e98d7 100644 (file)
@@ -127,10 +127,16 @@ Plugin::MIDIPortControl::set_value (float value)
                        value = 0.0;
                }
        } else {
-               value = lower + (range * value);
-               
-               if (logarithmic) {
-                       value = exp(value);
+
+               if (!logarithmic) {
+                       value = lower + (range * value);
+               } else {
+                       float _lower = 0.0f;
+                       if (lower > 0.0f) {
+                               _lower = log(lower);
+                       }
+
+                       value = exp(_lower + log(range) * value);
                }
        }