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 09236ccd2695d52925078e845211e72070cfbf54
parent a940f72302f826918176c097d0a2461af06db0bc
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Sat, 23 Nov 2024 17:37:50 +0100

add support for Virus B/Classic demo song

Diffstat:
Msource/virusLib/demoplayback.cpp | 14+++++++++-----
Msource/virusLib/midiFileToRomData.cpp | 1+
2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/source/virusLib/demoplayback.cpp b/source/virusLib/demoplayback.cpp @@ -17,8 +17,9 @@ namespace virusLib { - constexpr auto g_timeScale_C = 57; // C OS 6.6 - constexpr auto g_timeScale_A = 54; // A OS 2.8 + constexpr auto g_timeScale_A = 54.0f; // A OS 2.8 + constexpr auto g_timeScale_B = 52.5f; // B OS 4.9 + constexpr auto g_timeScale_C = 57.0f; // C OS 6.6 bool DemoPlayback::loadFile(const std::string& _filename) { @@ -137,6 +138,9 @@ namespace virusLib case 0xeaed: m_timeScale = g_timeScale_A; break; + case 0x90ee: + m_timeScale = g_timeScale_B; + break; default: m_timeScale = g_timeScale_C; break; @@ -165,11 +169,11 @@ namespace virusLib memcpy(&e.data.front(), _data, _count); #if 0 // demo presets extraction - if(_count - 6 >= ROMFile::getSinglePresetSize()) + if(_count - 6 >= ROMFile::getSinglePresetSize(DeviceModel::ABC)) { int foo=0; ROMFile::TPreset data; - memcpy(&data[0], &e.data[6], ROMFile::getSinglePresetSize()); + memcpy(data.data(), &e.data[6], ROMFile::getSinglePresetSize(DeviceModel::ABC)); const auto isMulti = _data[3] == 0x11; const uint8_t program = _data[4]; @@ -189,7 +193,7 @@ namespace virusLib } auto& s = responses.front().sysex; - memcpy(&s[9], &data[0], data.size()); + memcpy(&s[9], data.data(), data.size()); // checksum needs to be updated s.pop_back(); diff --git a/source/virusLib/midiFileToRomData.cpp b/source/virusLib/midiFileToRomData.cpp @@ -56,6 +56,7 @@ namespace virusLib case 0x55: // Virus B Demo case 0x57: // Virus C case 0x58: // Virus Rack XL (C) + case 0x59: // Virus Classic Demo { const auto msb = _packet[6]; // packet number MSB const auto lsb = _packet[7]; // packet number LSB