gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

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:
Msource/jucePluginLib/parameter.cpp | 35++++++-----------------------------
Msource/jucePluginLib/parameter.h | 12++++++------
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;