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 974841112ea22d2f7d84d44dbd327ef8fa541206
parent 5ab5f8b3ae1ed24f6ec1aa8eaee1b6cadd88a4f5
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Fri, 25 Oct 2024 18:47:15 +0200

do not forward parameter changes echoed by the DSP back to the DAW, it causes some hosts to stop automation because it guesses that we're editing parameters

Diffstat:
Msource/virusJucePlugin/VirusController.cpp | 9+++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/source/virusJucePlugin/VirusController.cpp b/source/virusJucePlugin/VirusController.cpp @@ -83,7 +83,7 @@ namespace virus Controller::~Controller() = default; - bool Controller::parseSysexMessage(const pluginLib::SysEx& _msg, synthLib::MidiEventSource) + bool Controller::parseSysexMessage(const pluginLib::SysEx& _msg, synthLib::MidiEventSource _source) { std::string name; pluginLib::MidiPacket::Data data; @@ -109,7 +109,12 @@ namespace virus else if(name == midiPacketName(MidiPacketType::MultiDump)) parseMulti(_msg, data, parameterValues); else if(name == midiPacketName(MidiPacketType::ParameterChange)) - parseParamChange(data); + { + // TI DSP sends parameter changes back as sysex, unsure why. Ignore them as it stops + // host automation because the host thinks we "edit" the parameter + if(_source != synthLib::MidiEventSource::Plugin) + parseParamChange(data); + } else { LOG("Controller: Begin unhandled SysEx! --");