Merge pull request #941 from paulfd/salamander
Passing lokey=-1 does not reactivate the note trigger
This commit is contained in:
commit
2be91453e8
2 changed files with 9 additions and 2 deletions
|
|
@ -208,8 +208,12 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode, bool cleanOpcode)
|
||||||
break;
|
break;
|
||||||
// Region logic: key mapping
|
// Region logic: key mapping
|
||||||
case hash("lokey"):
|
case hash("lokey"):
|
||||||
triggerOnNote = true;
|
{
|
||||||
keyRange.setStart(opcode.read(Default::loKey));
|
absl::optional<uint8_t> optValue = opcode.readOptional(Default::loKey);
|
||||||
|
triggerOnNote = optValue != absl::nullopt;
|
||||||
|
uint8_t value = optValue.value_or(Default::loKey);
|
||||||
|
keyRange.setStart(value);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case hash("hikey"):
|
case hash("hikey"):
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -566,17 +566,20 @@ TEST_CASE("[Values] Triggers on note")
|
||||||
<region> sample=kick.wav hikey=-1
|
<region> sample=kick.wav hikey=-1
|
||||||
<region> sample=kick.wav key=-1
|
<region> sample=kick.wav key=-1
|
||||||
<region> sample=kick.wav hikey=-1 lokey=12
|
<region> sample=kick.wav hikey=-1 lokey=12
|
||||||
|
<region> sample=kick.wav hikey=-1 lokey=-1
|
||||||
)");
|
)");
|
||||||
synth.dispatchMessage(client, 0, "/region0/trigger_on_note", "", nullptr);
|
synth.dispatchMessage(client, 0, "/region0/trigger_on_note", "", nullptr);
|
||||||
synth.dispatchMessage(client, 0, "/region1/trigger_on_note", "", nullptr);
|
synth.dispatchMessage(client, 0, "/region1/trigger_on_note", "", nullptr);
|
||||||
synth.dispatchMessage(client, 0, "/region2/trigger_on_note", "", nullptr);
|
synth.dispatchMessage(client, 0, "/region2/trigger_on_note", "", nullptr);
|
||||||
// TODO: Double check with Sforzando/rgc
|
// TODO: Double check with Sforzando/rgc
|
||||||
synth.dispatchMessage(client, 0, "/region3/trigger_on_note", "", nullptr);
|
synth.dispatchMessage(client, 0, "/region3/trigger_on_note", "", nullptr);
|
||||||
|
synth.dispatchMessage(client, 0, "/region4/trigger_on_note", "", nullptr);
|
||||||
std::vector<std::string> expected {
|
std::vector<std::string> expected {
|
||||||
"/region0/trigger_on_note,T : { }",
|
"/region0/trigger_on_note,T : { }",
|
||||||
"/region1/trigger_on_note,F : { }",
|
"/region1/trigger_on_note,F : { }",
|
||||||
"/region2/trigger_on_note,F : { }",
|
"/region2/trigger_on_note,F : { }",
|
||||||
"/region3/trigger_on_note,T : { }",
|
"/region3/trigger_on_note,T : { }",
|
||||||
|
"/region4/trigger_on_note,F : { }",
|
||||||
};
|
};
|
||||||
REQUIRE(messageList == expected);
|
REQUIRE(messageList == expected);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue