diff --git a/src/sfizz/Region.cpp b/src/sfizz/Region.cpp index 23b83dcf..09f24573 100644 --- a/src/sfizz/Region.cpp +++ b/src/sfizz/Region.cpp @@ -209,12 +209,7 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode, bool cleanOpcode) break; // Region logic: key mapping case hash("lokey"): - { - absl::optional optValue = opcode.readOptional(Default::loKey); - triggerOnNote = optValue != absl::nullopt; - uint8_t value = optValue.value_or(Default::loKey); - keyRange.setStart(value); - } + keyRange.setStart(opcode.read(Default::loKey)); break; case hash("hikey"): { diff --git a/tests/RegionValuesT.cpp b/tests/RegionValuesT.cpp index 592ecee5..b1e7032e 100644 --- a/tests/RegionValuesT.cpp +++ b/tests/RegionValuesT.cpp @@ -636,6 +636,7 @@ TEST_CASE("[Values] Triggers on note") sample=kick.wav key=-1 sample=kick.wav hikey=-1 lokey=12 sample=kick.wav hikey=-1 lokey=-1 + sample=kick.wav hikey=0 lokey=12 )"); synth.dispatchMessage(client, 0, "/region0/trigger_on_note", "", nullptr); synth.dispatchMessage(client, 0, "/region1/trigger_on_note", "", nullptr); @@ -643,12 +644,14 @@ TEST_CASE("[Values] Triggers on note") // TODO: Double check with Sforzando/rgc synth.dispatchMessage(client, 0, "/region3/trigger_on_note", "", nullptr); synth.dispatchMessage(client, 0, "/region4/trigger_on_note", "", nullptr); + synth.dispatchMessage(client, 0, "/region5/trigger_on_note", "", nullptr); std::vector expected { "/region0/trigger_on_note,T : { }", "/region1/trigger_on_note,F : { }", "/region2/trigger_on_note,F : { }", - "/region3/trigger_on_note,T : { }", + "/region3/trigger_on_note,F : { }", "/region4/trigger_on_note,F : { }", + "/region5/trigger_on_note,T : { }", }; REQUIRE(messageList == expected); }