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 e77ead5cc3f2ed1f965f35812308e0286df2227a
parent 2057f4ab5a04d924e1a93808882c97044e7f72ac
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Thu, 24 Feb 2022 00:31:49 +0100

fix play mode not correctly updated when loading presets

Diffstat:
Msource/virusLib/microcontroller.cpp | 8+++++---
1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/source/virusLib/microcontroller.cpp b/source/virusLib/microcontroller.cpp @@ -515,15 +515,12 @@ bool Microcontroller::sendSysex(const std::vector<uint8_t>& _data, bool _cancelI { case PlayModeSingle: { - m_globalSettings[PLAY_MODE] = playMode; - LOG("Switch to Single mode"); return writeSingle(BankNumber::EditBuffer, SINGLE, m_singleEditBuffer); } case PlayModeMultiSingle: case PlayModeMulti: { - m_globalSettings[PLAY_MODE] = PlayModeMulti; writeMulti(BankNumber::EditBuffer, 0, m_multiEditBuffer); for(uint8_t i=0; i<16; ++i) writeSingle(BankNumber::EditBuffer, i, m_singleEditBuffers[i]); @@ -691,6 +688,9 @@ bool Microcontroller::writeSingle(BankNumber _bank, uint8_t _program, const TPre LOG("Loading Single " << ROMFile::getSingleName(_data) << " to part " << (int)_program); + if(_program == SINGLE) + m_globalSettings[PLAY_MODE] = PlayModeSingle; + // Send to DSP return sendPreset(_program, presetToDSPWords(_data), false); } @@ -707,6 +707,8 @@ bool Microcontroller::writeMulti(BankNumber _bank, uint8_t _program, const TPres LOG("Loading Multi " << ROMFile::getMultiName(_data)); + m_globalSettings[PLAY_MODE] = PlayModeMulti; + // Convert array of uint8_t to vector of 24bit TWord return sendPreset(_program, presetToDSPWords(_data), true); }