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;
|
||||
}
|
||||
|
||||
bool sfz::Region::parseOpcode(const Opcode& opcode)
|
||||
bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
|
||||
{
|
||||
const Opcode opcode = rawOpcode.cleanUp(kOpcodeScopeRegion);
|
||||
|
||||
switch (opcode.lettersOnlyHash) {
|
||||
// Sound source: sample playback
|
||||
case hash("sample"):
|
||||
|
|
@ -66,6 +68,7 @@ bool sfz::Region::parseOpcode(const Opcode& opcode)
|
|||
setValueFromOpcode(opcode, offsetRandom, Default::offsetRange);
|
||||
break;
|
||||
case hash("offset_cc&"):
|
||||
case hash("offset_oncc&"):
|
||||
if (opcode.parameters.back() > config::numCCs)
|
||||
return false;
|
||||
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";
|
||||
|
||||
|
|
@ -252,6 +252,11 @@ void sfz::Synth::handleEffectOpcodes(const std::vector<Opcode>& members)
|
|||
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) {
|
||||
switch (opcode.lettersOnlyHash) {
|
||||
case hash("bus"):
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue