Rebased on the new parser
This commit is contained in:
parent
9ce32c636c
commit
09cca79ab0
2 changed files with 16 additions and 22 deletions
|
|
@ -733,17 +733,17 @@ bool sfz::Region::parseOpcode(const Opcode& opcode)
|
||||||
setCCPairFromOpcode(opcode, amplitudeEG.ccSustain, Default::egOnCCPercentRange);
|
setCCPairFromOpcode(opcode, amplitudeEG.ccSustain, Default::egOnCCPercentRange);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case hash("effect"): // effect&
|
case hash("effect&"):
|
||||||
{
|
{
|
||||||
const auto effectNumber = opcode.backParameter();
|
const auto effectNumber = opcode.parameters.back();
|
||||||
if (!effectNumber || *effectNumber < 1 || *effectNumber > config::maxEffectBuses)
|
if (!effectNumber || effectNumber < 1 || effectNumber > config::maxEffectBuses)
|
||||||
break;
|
break;
|
||||||
auto value = readOpcode<float>(opcode.value, { 0, 100 });
|
auto value = readOpcode<float>(opcode.value, { 0, 100 });
|
||||||
if (!value)
|
if (!value)
|
||||||
break;
|
break;
|
||||||
if (static_cast<size_t>(*effectNumber + 1) > gainToEffect.size())
|
if (static_cast<size_t>(effectNumber + 1) > gainToEffect.size())
|
||||||
gainToEffect.resize(*effectNumber + 1);
|
gainToEffect.resize(effectNumber + 1);
|
||||||
gainToEffect[*effectNumber] = *value / 100;
|
gainToEffect[effectNumber] = *value / 100;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -223,24 +223,18 @@ void sfz::Synth::handleEffectOpcodes(const std::vector<Opcode>& members)
|
||||||
getOrCreateBus(0).setGainToMain(*valueOpt / 100);
|
getOrCreateBus(0).setGainToMain(*valueOpt / 100);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case hash("fxtomain"): // fx&tomain
|
case hash("fx&tomain"): // fx&tomain
|
||||||
if (auto numberOpt = opcode.firstParameter()) {
|
if (opcode.parameters.front() < 1 || opcode.parameters.front() > config::maxEffectBuses)
|
||||||
unsigned number = *numberOpt;
|
break;
|
||||||
if (number < 1 || number > config::maxEffectBuses)
|
if (auto valueOpt = readOpcode<float>(opcode.value, { 0, 100 }))
|
||||||
break;
|
getOrCreateBus(opcode.parameters.front()).setGainToMain(*valueOpt / 100);
|
||||||
if (auto valueOpt = readOpcode<float>(opcode.value, { 0, 100 }))
|
|
||||||
getOrCreateBus(number).setGainToMain(*valueOpt / 100);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case hash("fxtomix"): // fx&tomix
|
case hash("fx&tomix"): // fx&tomix
|
||||||
if (auto numberOpt = opcode.firstParameter()) {
|
if (opcode.parameters.front() < 1 || opcode.parameters.front() > config::maxEffectBuses)
|
||||||
unsigned number = *numberOpt;
|
break;
|
||||||
if (number < 1 || number > config::maxEffectBuses)
|
if (auto valueOpt = readOpcode<float>(opcode.value, { 0, 100 }))
|
||||||
break;
|
getOrCreateBus(opcode.parameters.front()).setGainToMix(*valueOpt / 100);
|
||||||
if (auto valueOpt = readOpcode<float>(opcode.value, { 0, 100 }))
|
|
||||||
getOrCreateBus(number).setGainToMix(*valueOpt / 100);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue