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 67b001ae1655c6a10b37289ecd8d91447d1479bf
parent d64abad05b931fabd36c404a7c25615d55370690
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Tue, 27 Aug 2024 22:29:22 +0200

add sendMultiParameter helper function

Diffstat:
Msource/xtLib/xtMidiTypes.h | 1-
Msource/xtLib/xtState.cpp | 9+++++++++
Msource/xtLib/xtState.h | 1+
3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/source/xtLib/xtMidiTypes.h b/source/xtLib/xtMidiTypes.h @@ -208,5 +208,4 @@ namespace xt return _index < g_tableCount; } } - } diff --git a/source/xtLib/xtState.cpp b/source/xtLib/xtState.cpp @@ -622,6 +622,15 @@ namespace xt static_cast<uint8_t>(p >> 7), static_cast<uint8_t>(p & 0x7f), _value, 0xf7}); } + void State::sendMultiParameter(const uint8_t _instrument, MultiParameter _param, const uint8_t _value) + { + const SysEx sysex{0xf0, wLib::IdWaldorf, IdMw2, wLib::IdDeviceOmni, static_cast<uint8_t>(SysexCommand::MultiParameterChange), + _instrument, static_cast<uint8_t>(static_cast<uint8_t>(_param) - static_cast<uint8_t>(MultiParameter::Inst0First)), _value, 0xf7}; + + Responses responses; + receive(responses, sysex, Origin::External); + } + void State::sendSysex(const std::initializer_list<uint8_t>& _data) const { synthLib::SMidiEvent e(synthLib::MidiEventSource::Internal); diff --git a/source/xtLib/xtState.h b/source/xtLib/xtState.h @@ -173,6 +173,7 @@ namespace xt void requestMulti(LocationH _buf, uint8_t _location) const; void sendMulti(const std::vector<uint8_t>& _multiData) const; void sendGlobalParameter(GlobalParameter _param, uint8_t _value); + void sendMultiParameter(uint8_t _instrument, MultiParameter _param, uint8_t _value); void sendSysex(const std::initializer_list<uint8_t>& _data) const; void sendSysex(const SysEx& _data) const;