diff options
author | Len Ovens <len@ovenwerks.net> | 2016-03-26 11:38:19 -0700 |
---|---|---|
committer | Len Ovens <len@ovenwerks.net> | 2016-03-26 11:38:19 -0700 |
commit | 6c3559dc6c703cb67cd0deda8057d857f168b36c (patch) | |
tree | 3a1da8144c2682e17bc373aa314c4abbb08952d5 /libs/surfaces | |
parent | 35e4c9936d01064b02b367becfc34eb8fce9eb54 (diff) |
OSC: added a linear VCA style gain control for faders that are 0 to 1 linear.
path = /ardour/routes/gainVCA if RID position
Diffstat (limited to 'libs/surfaces')
-rw-r--r-- | libs/surfaces/osc/osc.cc | 7 | ||||
-rw-r--r-- | libs/surfaces/osc/osc.h | 2 |
2 files changed, 9 insertions, 0 deletions
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index 3e880979ed..37c0cd7727 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -477,6 +477,7 @@ OSC::register_callbacks() REGISTER_CALLBACK (serv, "/ardour/routes/recenable", "ii", route_recenable); REGISTER_CALLBACK (serv, "/ardour/routes/gainabs", "if", route_set_gain_abs); REGISTER_CALLBACK (serv, "/ardour/routes/gaindB", "if", route_set_gain_dB); + REGISTER_CALLBACK (serv, "/ardour/routes/gainVCA", "if", route_set_gain_VCA); REGISTER_CALLBACK (serv, "/ardour/routes/trimabs", "if", route_set_trim_abs); REGISTER_CALLBACK (serv, "/ardour/routes/trimdB", "if", route_set_trim_dB); REGISTER_CALLBACK (serv, "/ardour/routes/pan_stereo_position", "if", route_set_pan_stereo_position); @@ -1110,6 +1111,12 @@ OSC::route_set_gain_dB (int rid, float dB) return route_set_gain_abs (rid, dB_to_coefficient (dB)); } +int +OSC::route_set_gain_VCA (int rid, float pos) +{ + return route_set_gain_abs (rid, slider_position_to_gain_with_max (pos, 2.0)); +} + int OSC::route_set_trim_abs (int rid, float level) diff --git a/libs/surfaces/osc/osc.h b/libs/surfaces/osc/osc.h index a3b83e0365..efad21ba7c 100644 --- a/libs/surfaces/osc/osc.h +++ b/libs/surfaces/osc/osc.h @@ -290,6 +290,7 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest> PATH_CALLBACK2(route_recenable,i,i); PATH_CALLBACK2(route_set_gain_abs,i,f); PATH_CALLBACK2(route_set_gain_dB,i,f); + PATH_CALLBACK2(route_set_gain_VCA,i,f); PATH_CALLBACK2(route_set_trim_abs,i,f); PATH_CALLBACK2(route_set_trim_dB,i,f); PATH_CALLBACK2(route_set_pan_stereo_position,i,f); @@ -304,6 +305,7 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest> int route_recenable (int rid, int yn); int route_set_gain_abs (int rid, float level); int route_set_gain_dB (int rid, float dB); + int route_set_gain_VCA (int rid, float pos); int route_set_trim_abs (int rid, float level); int route_set_trim_dB (int rid, float dB); int route_set_pan_stereo_position (int rid, float left_right_fraction); |