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 409e3395db6d1b6c2a21c6f5294097adf368d2b3
parent b982b55ccf3ac2404c0f7a75715284324d2e912d
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Tue, 27 Aug 2024 21:34:02 +0200

validate performance dumps before saving/loading to prevent that we cannot load them anymore

Diffstat:
Mdoc/changelog.txt | 1+
Msource/nord/n2x/n2xJucePlugin/n2xController.cpp | 3++-
Msource/nord/n2x/n2xLib/n2xstate.cpp | 2+-
3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/doc/changelog.txt b/doc/changelog.txt @@ -12,6 +12,7 @@ NodalRed2x: - [Fix] Synth lost state of previously loaded DAW preset after switching the active part - [Fix] Negative VM MAP values were displayed as maximum positive values after loading a patch or DAW state +- [Fix] Performances saved via "Store" button couldn't be loaded 1.3.19 diff --git a/source/nord/n2x/n2xJucePlugin/n2xController.cpp b/source/nord/n2x/n2xJucePlugin/n2xController.cpp @@ -320,6 +320,7 @@ namespace n2xJucePlugin const auto multi = m_state.updateAndGetMulti(); std::vector<uint8_t> result(multi.begin(), multi.end()); + result = n2x::State::validateDump(result); result[n2x::SysexIndex::IdxMsgType] = _bank; result[n2x::SysexIndex::IdxMsgSpec] = _program; @@ -343,7 +344,7 @@ namespace n2xJucePlugin d[n2x::SysexIndex::IdxMsgType] = isSingle ? n2x::SysexByte::SingleDumpBankEditBuffer : n2x::SysexByte::MultiDumpBankEditBuffer; d[n2x::SysexIndex::IdxMsgSpec] = static_cast<uint8_t>(isMulti ? 0 : _part); - pluginLib::Controller::sendSysEx(d); + pluginLib::Controller::sendSysEx(n2x::State::validateDump(d)); if(isSingle) requestDump(n2x::SysexByte::SingleRequestBankEditBuffer, static_cast<uint8_t>(_part)); diff --git a/source/nord/n2x/n2xLib/n2xstate.cpp b/source/nord/n2x/n2xLib/n2xstate.cpp @@ -244,7 +244,7 @@ namespace n2x return true; } - if(sysex.size() == g_multiDumpSize) + if(isMultiDump(sysex)) { if(bank != SysexByte::MultiDumpBankEditBuffer) return false;