Add preference to configure VST3 Knob mode

This commit is contained in:
Robin Gareus 2025-11-11 01:05:00 +01:00
parent 6d53b42022
commit d8ea090902
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
4 changed files with 50 additions and 10 deletions

View file

@ -259,6 +259,7 @@ CONFIG_VARIABLE (bool, setup_sidechain, "setup-sidechain", false)
CONFIG_VARIABLE (uint32_t, plugin_scan_timeout, "plugin-scan-timeout", 150) /* deci-seconds */
CONFIG_VARIABLE (uint32_t, limit_n_automatables, "limit-n-automatables", 512)
CONFIG_VARIABLE (uint32_t, plugin_cache_version, "plugin-cache-version", 0)
CONFIG_VARIABLE (VST3KnobMode, vst3_knob_mode, "vst3-knob-mode", VST3KnobLinearMode)
CONFIG_VARIABLE (float, tail_duration_sec, "tail-duration-sec", 2.0)
CONFIG_VARIABLE (uint32_t, max_tail_samples, "max-tail-samples", 0xffffffff) // aka kInfiniteTail

View file

@ -2927,6 +2927,13 @@ LuaBindings::common (lua_State* L)
.addConst ("NameAfterDriver", ARDOUR::TracksAutoNamingRule(NameAfterDriver))
.endNamespace ()
.beginNamespace ("VST3KnobMode")
.addConst ("VST3KnobPluginDefault", ARDOUR::VST3KnobMode(VST3KnobPluginDefault))
.addConst ("VST3KnobCircularMode", ARDOUR::VST3KnobMode(VST3KnobCircularMode))
.addConst ("VST3KnobRelativCircularMode", ARDOUR::VST3KnobMode(VST3KnobRelativCircularMode))
.addConst ("VST3KnobLinearMode", ARDOUR::VST3KnobMode(VST3KnobLinearMode))
.endNamespace ()
.endNamespace (); // end ARDOUR
luabridge::getGlobalNamespace (L)

View file

@ -1322,7 +1322,19 @@ VST3PI::VST3PI (std::shared_ptr<ARDOUR::VST3PluginModule> m, std::string unique_
FUnknownPtr<Vst::IEditController2> controller2 (_controller);
if (controller2) {
controller2->setKnobMode (Vst::kLinearMode);
switch (Config->get_vst3_knob_mode ()) {
case VST3KnobLinearMode:
controller2->setKnobMode (Vst::kLinearMode);
break;
case VST3KnobCircularMode:
controller2->setKnobMode (Vst::kCircularMode);
break;
case VST3KnobRelativCircularMode:
controller2->setKnobMode (Vst::kRelativCircularMode);
break;
default:
break;
}
}
int32 n_params = _controller->getParameterCount ();