commit 86e7b05e59aa21b374ed5693d3ad7bf348363059
parent 9503022bfca7e3945a81cb23eaef07e6307eb045
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Sun, 2 Jun 2024 15:15:58 +0200
never notify host about derived parameter changes, confuses Ableton/Bitwig
Diffstat:
2 files changed, 12 insertions(+), 35 deletions(-)
diff --git a/source/jucePluginLib/parameter.cpp b/source/jucePluginLib/parameter.cpp
@@ -24,7 +24,7 @@ namespace pluginLib
onValueChanged(this);
}
- void Parameter::setDerivedValue(const int _value, const Origin _origin, const bool _notifyHost)
+ void Parameter::setDerivedValue(const int _value)
{
const int newValue = clampValue(_value);
@@ -34,28 +34,7 @@ namespace pluginLib
m_lastValue = newValue;
m_lastValueOrigin = Origin::Derived;
- if(_notifyHost && getDescription().isPublic)
- {
- switch (_origin)
- {
- case Origin::Midi:
- case Origin::HostAutomation:
- case Origin::Derived:
- case Origin::PresetChange:
- setUnnormalizedValue(newValue, Origin::Derived);
- break;
- case Origin::Unknown:
- case Origin::Ui:
- {
- setUnnormalizedValueNotifyingHost(newValue, Origin::Derived);
- }
- break;
- }
- }
- else
- {
- m_value.setValue(newValue);
- }
+ m_value.setValue(newValue);
}
void Parameter::sendToSynth()
@@ -191,13 +170,11 @@ namespace pluginLib
if (m_changingDerivedValues)
return;
- if(_origin == Origin::Midi)
- int foo=0;
m_lastValueOrigin = _origin;
m_value.setValue(clampValue(_newValue));
sendToSynth();
- forwardToDerived(_newValue, _origin, true);
+ forwardToDerived(_newValue);
}
void Parameter::setValueFromSynth(const int _newValue, const Origin _origin)
@@ -224,10 +201,10 @@ namespace pluginLib
}
}
- forwardToDerived(_newValue, _origin, notifyHost);
+ forwardToDerived(_newValue);
}
- void Parameter::forwardToDerived(const int _newValue, const Origin _origin, const bool _notifyHost)
+ void Parameter::forwardToDerived(const int _newValue)
{
if (m_changingDerivedValues)
return;
@@ -235,7 +212,7 @@ namespace pluginLib
m_changingDerivedValues = true;
for (const auto& p : m_derivedParameters)
- p->setDerivedValue(_newValue, _origin, _notifyHost);
+ p->setDerivedValue(_newValue);
m_changingDerivedValues = false;
}
diff --git a/source/jucePluginLib/parameter.h b/source/jucePluginLib/parameter.h
@@ -48,6 +48,10 @@ namespace pluginLib
void setValue(float _newValue) override;
void setUnnormalizedValue(int _newValue, Origin _origin);
+ void setValueNotifyingHost(float _value, Origin _origin);
+ void setUnnormalizedValueNotifyingHost(float _value, Origin _origin);
+ void setUnnormalizedValueNotifyingHost(int _value, Origin _origin);
+
void setValueFromSynth(int _newValue, Origin _origin);
bool isDiscrete() const override { return m_desc.isDiscrete; }
@@ -84,10 +88,6 @@ namespace pluginLib
Origin getChangeOrigin() const { return m_lastValueOrigin; }
- void setValueNotifyingHost(float _value, Origin _origin);
- void setUnnormalizedValueNotifyingHost(float _value, Origin _origin);
- void setUnnormalizedValueNotifyingHost(int _value, Origin _origin);
-
void setRateLimitMilliseconds(uint32_t _ms);
void setLinkState(ParameterLinkType _type);
@@ -116,11 +116,11 @@ namespace pluginLib
static juce::String genId(const Description &d, int part, int uniqueId);
void valueChanged(juce::Value &) override;
- void setDerivedValue(int _value, Origin _origin, bool _notifyHost);
+ void setDerivedValue(const int _value);
void sendToSynth();
static uint64_t milliseconds();
void sendParameterChangeDelayed(uint8_t, uint32_t _uniqueId);
- void forwardToDerived(int _newValue, Origin _origin, bool _notifyHost);
+ void forwardToDerived(const int _newValue);
int clampValue(int _value) const;