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:
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;