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 9fefc36a3ef013b51cc29d5daac50a7415333126
parent b088b732f2a0318a7e39b03db249924ca9d509d4
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Wed,  1 May 2024 13:48:05 +0200

add ability to read rom from midi file in memory

Diffstat:
Msource/wLib/wRom.cpp | 9+++++++--
Msource/wLib/wRom.h | 3++-
2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/source/wLib/wRom.cpp b/source/wLib/wRom.cpp @@ -43,6 +43,11 @@ namespace wLib return loadFromSysExBuffer(_buffer, data); } + bool ROM::loadFromMidiData(std::vector<uint8_t>& _buffer, const std::vector<uint8_t>& _midiData) + { + return loadFromSysExBuffer(_buffer, _midiData, true); + } + bool ROM::loadFromSysExFile(std::vector<uint8_t>& _buffer, const std::string& _filename) { _buffer.clear(); @@ -53,12 +58,12 @@ namespace wLib return loadFromSysExBuffer(_buffer, buf); } - bool ROM::loadFromSysExBuffer(std::vector<unsigned char>& _buffer, const std::vector<uint8_t>& _sysex) + bool ROM::loadFromSysExBuffer(std::vector<unsigned char>& _buffer, const std::vector<uint8_t>& _sysex, bool _isMidiFileData/* = false*/) { _buffer.reserve(_sysex.size()); std::vector<std::vector<uint8_t>> messages; - synthLib::MidiToSysex::splitMultipleSysex(messages, _sysex); + synthLib::MidiToSysex::splitMultipleSysex(messages, _sysex, _isMidiFileData); uint16_t expectedCounter = 1; diff --git a/source/wLib/wRom.h b/source/wLib/wRom.h @@ -23,8 +23,9 @@ namespace wLib virtual uint32_t getSize() const = 0; static bool loadFromMidi(std::vector<uint8_t>& _buffer, const std::string& _filename); + static bool loadFromMidiData(std::vector<uint8_t>& _buffer, const std::vector<uint8_t>& _midiData); static bool loadFromSysExFile(std::vector<uint8_t>& _buffer, const std::string& _filename); - static bool loadFromSysExBuffer(std::vector<uint8_t> &_buffer, const std::vector<uint8_t> &_sysex); + static bool loadFromSysExBuffer(std::vector<uint8_t> &_buffer, const std::vector<uint8_t> &_sysex, bool _isMidiFileData = false); private: bool loadFromFile(const std::string& _filename, uint32_t _expectedSize);