Added aliases for Cakewalk and RGC loop_oncc opcodes
This commit is contained in:
parent
53277dae3c
commit
825d558a4c
4 changed files with 949 additions and 672 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -192,6 +192,21 @@ end_region_oncc:
|
||||||
goto end_region;
|
goto end_region;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
"loop_startcc" (number) END {
|
||||||
|
opcode = absl::StrCat("loop_start_oncc", group(1));
|
||||||
|
goto end_region;
|
||||||
|
}
|
||||||
|
|
||||||
|
"loop_lengthcc" (number) END {
|
||||||
|
opcode = absl::StrCat("loop_end_oncc", group(1));
|
||||||
|
goto end_region;
|
||||||
|
}
|
||||||
|
|
||||||
|
"loop_length_oncc" (number) END {
|
||||||
|
opcode = absl::StrCat("loop_end_oncc", group(1));
|
||||||
|
goto end_region;
|
||||||
|
}
|
||||||
|
|
||||||
* {
|
* {
|
||||||
goto end_region;
|
goto end_region;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -128,13 +128,13 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode, bool cleanOpcode)
|
||||||
case hash("loop_start"): // also loopstart
|
case hash("loop_start"): // also loopstart
|
||||||
loopRange.setStart(opcode.read(Default::loopStart));
|
loopRange.setStart(opcode.read(Default::loopStart));
|
||||||
break;
|
break;
|
||||||
case hash("loop_start_oncc&"): // also loop_start_cc&
|
case hash("loop_start_oncc&"): // also loop_start_cc&, loop_startcc&
|
||||||
if (opcode.parameters.back() > config::numCCs)
|
if (opcode.parameters.back() > config::numCCs)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
loopStartCC[opcode.parameters.back()] = opcode.read(Default::loopMod);
|
loopStartCC[opcode.parameters.back()] = opcode.read(Default::loopMod);
|
||||||
break;
|
break;
|
||||||
case hash("loop_end_oncc&"): // also loop_end_cc&
|
case hash("loop_end_oncc&"): // also loop_end_cc&, loop_lengthcc&, loop_length_oncc&, loop_length_cc&
|
||||||
if (opcode.parameters.back() > config::numCCs)
|
if (opcode.parameters.back() > config::numCCs)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -356,6 +356,9 @@ TEST_CASE("[Values] Loop range")
|
||||||
<region> sample=kick.wav
|
<region> sample=kick.wav
|
||||||
<region> sample=kick.wav loop_start_cc12=10 loop_end_cc14=-100
|
<region> sample=kick.wav loop_start_cc12=10 loop_end_cc14=-100
|
||||||
<region> sample=kick.wav loop_start_oncc12=-10 loop_end_oncc14=100
|
<region> sample=kick.wav loop_start_oncc12=-10 loop_end_oncc14=100
|
||||||
|
<region> sample=kick.wav loop_startcc12=-10 loop_lengthcc14=100
|
||||||
|
<region> sample=kick.wav loop_length_oncc14=100
|
||||||
|
<region> sample=kick.wav loop_length_cc14=100
|
||||||
)");
|
)");
|
||||||
synth.dispatchMessage(client, 0, "/region0/loop_start_cc12", "", nullptr);
|
synth.dispatchMessage(client, 0, "/region0/loop_start_cc12", "", nullptr);
|
||||||
synth.dispatchMessage(client, 0, "/region0/loop_end_cc14", "", nullptr);
|
synth.dispatchMessage(client, 0, "/region0/loop_end_cc14", "", nullptr);
|
||||||
|
|
@ -363,6 +366,10 @@ TEST_CASE("[Values] Loop range")
|
||||||
synth.dispatchMessage(client, 0, "/region1/loop_end_cc14", "", nullptr);
|
synth.dispatchMessage(client, 0, "/region1/loop_end_cc14", "", nullptr);
|
||||||
synth.dispatchMessage(client, 0, "/region2/loop_start_cc12", "", nullptr);
|
synth.dispatchMessage(client, 0, "/region2/loop_start_cc12", "", nullptr);
|
||||||
synth.dispatchMessage(client, 0, "/region2/loop_end_cc14", "", nullptr);
|
synth.dispatchMessage(client, 0, "/region2/loop_end_cc14", "", nullptr);
|
||||||
|
synth.dispatchMessage(client, 0, "/region3/loop_start_cc12", "", nullptr);
|
||||||
|
synth.dispatchMessage(client, 0, "/region3/loop_end_cc14", "", nullptr);
|
||||||
|
synth.dispatchMessage(client, 0, "/region4/loop_end_cc14", "", nullptr);
|
||||||
|
synth.dispatchMessage(client, 0, "/region5/loop_end_cc14", "", nullptr);
|
||||||
std::vector<std::string> expected {
|
std::vector<std::string> expected {
|
||||||
"/region0/loop_start_cc12,h : { 0 }",
|
"/region0/loop_start_cc12,h : { 0 }",
|
||||||
"/region0/loop_end_cc14,h : { 0 }",
|
"/region0/loop_end_cc14,h : { 0 }",
|
||||||
|
|
@ -370,6 +377,10 @@ TEST_CASE("[Values] Loop range")
|
||||||
"/region1/loop_end_cc14,h : { -100 }",
|
"/region1/loop_end_cc14,h : { -100 }",
|
||||||
"/region2/loop_start_cc12,h : { -10 }",
|
"/region2/loop_start_cc12,h : { -10 }",
|
||||||
"/region2/loop_end_cc14,h : { 100 }",
|
"/region2/loop_end_cc14,h : { 100 }",
|
||||||
|
"/region3/loop_start_cc12,h : { -10 }",
|
||||||
|
"/region3/loop_end_cc14,h : { 100 }",
|
||||||
|
"/region4/loop_end_cc14,h : { 100 }",
|
||||||
|
"/region5/loop_end_cc14,h : { 100 }",
|
||||||
};
|
};
|
||||||
REQUIRE(messageList == expected);
|
REQUIRE(messageList == expected);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue