zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit d131a39e27e2f623e42b068250ebc86d7e90e6e7
parent 4961a4500bfe7800c8f37814a84a496edf4c18ba
Author: fundamental <mark.d.mccurry@gmail.com>
Date:   Mon, 16 Nov 2015 22:39:01 -0500

Fix Bank Load

Diffstat:
Msrc/Nio/InMgr.cpp | 10+++++++---
Msrc/UI/BankView.cpp | 7++++++-
2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/Nio/InMgr.cpp b/src/Nio/InMgr.cpp @@ -88,11 +88,15 @@ void InMgr::flush(unsigned frameStart, unsigned frameStop) break; case M_CONTROLLER: - if(ev.num == C_bankselectmsb) // Change current bank + if(ev.num == C_bankselectmsb) { // Change current bank + middleware->spawnMaster()->bToU->write("/forward", ""); middleware->spawnMaster()->bToU->write("/bank/msb", "i", ev.value); - else if(ev.num == C_bankselectlsb) // Change current bank (LSB) + middleware->spawnMaster()->bToU->write("/bank/bank_select", "i", ev.value); + + } else if(ev.num == C_bankselectlsb) {// Change current bank (LSB) + middleware->spawnMaster()->bToU->write("/forward", ""); middleware->spawnMaster()->bToU->write("/bank/lsb", "i", ev.value); - else + } else master->setController(ev.channel, ev.num, ev.value); break; diff --git a/src/UI/BankView.cpp b/src/UI/BankView.cpp @@ -34,7 +34,12 @@ void BankList::OSC_raw(const char *msg) this->add(path); } if(!strcmp(msg, "/bank/bank_select")&& !strcmp(rtosc_argument_string(msg),"i")) { - value(rtosc_argument(msg, 0).i); + int val = rtosc_argument(msg, 0).i; + if(value() != val) { + value(val); + for(int i=0; i<160; ++i) + osc->write("/bank/slot"+to_s(i), ""); + } } }