Apply opcode cleanups in the synth
This commit is contained in:
parent
3d508e9860
commit
b02236328d
2 changed files with 10 additions and 2 deletions
|
|
@ -31,8 +31,10 @@ bool extendIfNecessary(std::vector<T>& vec, unsigned size, unsigned defaultCapac
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool sfz::Region::parseOpcode(const Opcode& opcode)
|
bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
|
||||||
{
|
{
|
||||||
|
const Opcode opcode = rawOpcode.cleanUp(kOpcodeScopeRegion);
|
||||||
|
|
||||||
switch (opcode.lettersOnlyHash) {
|
switch (opcode.lettersOnlyHash) {
|
||||||
// Sound source: sample playback
|
// Sound source: sample playback
|
||||||
case hash("sample"):
|
case hash("sample"):
|
||||||
|
|
@ -66,6 +68,7 @@ bool sfz::Region::parseOpcode(const Opcode& opcode)
|
||||||
setValueFromOpcode(opcode, offsetRandom, Default::offsetRange);
|
setValueFromOpcode(opcode, offsetRandom, Default::offsetRange);
|
||||||
break;
|
break;
|
||||||
case hash("offset_cc&"):
|
case hash("offset_cc&"):
|
||||||
|
case hash("offset_oncc&"):
|
||||||
if (opcode.parameters.back() > config::numCCs)
|
if (opcode.parameters.back() > config::numCCs)
|
||||||
return false;
|
return false;
|
||||||
if (auto value = readOpcode(opcode.value, Default::offsetCCRange))
|
if (auto value = readOpcode(opcode.value, Default::offsetCCRange))
|
||||||
|
|
|
||||||
|
|
@ -236,7 +236,7 @@ void sfz::Synth::handleControlOpcodes(const std::vector<Opcode>& members)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void sfz::Synth::handleEffectOpcodes(const std::vector<Opcode>& members)
|
void sfz::Synth::handleEffectOpcodes(const std::vector<Opcode>& rawMembers)
|
||||||
{
|
{
|
||||||
absl::string_view busName = "main";
|
absl::string_view busName = "main";
|
||||||
|
|
||||||
|
|
@ -252,6 +252,11 @@ void sfz::Synth::handleEffectOpcodes(const std::vector<Opcode>& members)
|
||||||
return *bus;
|
return *bus;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
std::vector<Opcode> members;
|
||||||
|
members.reserve(rawMembers.size());
|
||||||
|
for (const Opcode& opcode : rawMembers)
|
||||||
|
members.push_back(opcode.cleanUp(kOpcodeScopeEffect));
|
||||||
|
|
||||||
for (const Opcode& opcode : members) {
|
for (const Opcode& opcode : members) {
|
||||||
switch (opcode.lettersOnlyHash) {
|
switch (opcode.lettersOnlyHash) {
|
||||||
case hash("bus"):
|
case hash("bus"):
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue