Browse Source

Improve trigger handling for VST2 and VST3

Signed-off-by: falkTX <falktx@falktx.com>
pull/443/head
falkTX 1 year ago
parent
commit
43aeb8bc4e
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
2 changed files with 11 additions and 8 deletions
  1. +6
    -5
      distrho/src/DistrhoPluginVST2.cpp
  2. +5
    -3
      distrho/src/DistrhoPluginVST3.cpp

+ 6
- 5
distrho/src/DistrhoPluginVST2.cpp View File

@@ -1167,7 +1167,7 @@ private:

void updateParameterOutputsAndTriggers()
{
float curValue;
float curValue, defValue;

for (uint32_t i=0, count=fPlugin.getParameterCount(); i < count; ++i)
{
@@ -1193,17 +1193,18 @@ private:
}
else if ((fPlugin.getParameterHints(i) & kParameterIsTrigger) == kParameterIsTrigger)
{
// NOTE: no trigger support in VST parameters, simulate it here
// NOTE: no trigger parameter support in VST2, simulate it here
defValue = fPlugin.getParameterDefault(i);
curValue = fPlugin.getParameterValue(i);

if (d_isEqual(curValue, fPlugin.getParameterRanges(i).def))
if (d_isEqual(curValue, defValue))
continue;

#if DISTRHO_PLUGIN_HAS_UI
if (fVstUI != nullptr)
setParameterValueFromPlugin(i, curValue);
setParameterValueFromPlugin(i, defValue);
#endif
fPlugin.setParameterValue(i, curValue);
fPlugin.setParameterValue(i, defValue);
}
else
{


+ 5
- 3
distrho/src/DistrhoPluginVST3.cpp View File

@@ -2870,7 +2870,7 @@ private:
{
DISTRHO_SAFE_ASSERT_RETURN(outparamsptr != nullptr,);

float curValue;
float curValue, defValue;
double normalized;

#if DPF_VST3_USES_SEPARATE_CONTROLLER
@@ -2897,12 +2897,14 @@ private:
}
else if (fPlugin.isParameterTrigger(i))
{
// NOTE: no trigger support in VST3 parameters, simulate it here
// NOTE: no trigger parameter support in VST3, simulate it here
defValue = fPlugin.getParameterDefault(i);
curValue = fPlugin.getParameterValue(i);

if (d_isEqual(curValue, fPlugin.getParameterDefault(i)))
if (d_isEqual(curValue, defValue))
continue;

curValue = defValue;
fPlugin.setParameterValue(i, curValue);
}
else if (fParameterValuesChangedDuringProcessing[kVst3InternalParameterBaseCount + i])


Loading…
Cancel
Save