The eq number did not act like the filter index
This commit is contained in:
parent
f145481160
commit
9aceecaa54
1 changed files with 31 additions and 49 deletions
|
|
@ -686,111 +686,93 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
|
||||||
// Performance parameters: EQ
|
// Performance parameters: EQ
|
||||||
case hash("eq&_bw"):
|
case hash("eq&_bw"):
|
||||||
{
|
{
|
||||||
const auto eqNumber = opcode.parameters.front();
|
const auto eqIndex = opcode.parameters.front() - 1;
|
||||||
if (eqNumber == 0)
|
if (!extendIfNecessary(equalizers, eqIndex + 1, Default::numEQs))
|
||||||
return false;
|
|
||||||
if (!extendIfNecessary(equalizers, eqNumber, Default::numEQs))
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
setValueFromOpcode(opcode, equalizers[eqNumber - 1].bandwidth, Default::eqBandwidthRange);
|
setValueFromOpcode(opcode, equalizers[eqIndex].bandwidth, Default::eqBandwidthRange);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case hash("eq&_bw_oncc&"): // also eq&_bwcc&
|
case hash("eq&_bw_oncc&"): // also eq&_bwcc&
|
||||||
{
|
{
|
||||||
const auto eqNumber = opcode.parameters.front();
|
const auto eqIndex = opcode.parameters.front() - 1;
|
||||||
if (eqNumber == 0)
|
if (!extendIfNecessary(equalizers, eqIndex + 1, Default::numEQs))
|
||||||
return false;
|
|
||||||
if (!extendIfNecessary(equalizers, eqNumber, Default::numEQs))
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
processGenericCc(opcode, Default::eqBandwidthModRange, ModKey::createNXYZ(ModId::EqBandwidth, id, eqNumber));
|
processGenericCc(opcode, Default::eqBandwidthModRange, ModKey::createNXYZ(ModId::EqBandwidth, id, eqIndex));
|
||||||
setValueFromOpcode(opcode, equalizers[eqNumber - 1].bandwidthCC[opcode.parameters.back()], Default::eqBandwidthModRange);
|
setValueFromOpcode(opcode, equalizers[eqIndex].bandwidthCC[opcode.parameters.back()], Default::eqBandwidthModRange);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case hash("eq&_freq"):
|
case hash("eq&_freq"):
|
||||||
{
|
{
|
||||||
const auto eqNumber = opcode.parameters.front();
|
const auto eqIndex = opcode.parameters.front() - 1;
|
||||||
if (eqNumber == 0)
|
if (!extendIfNecessary(equalizers, eqIndex + 1, Default::numEQs))
|
||||||
return false;
|
return false;
|
||||||
if (!extendIfNecessary(equalizers, eqNumber, Default::numEQs))
|
setValueFromOpcode(opcode, equalizers[eqIndex].frequency, Default::eqFrequencyRange);
|
||||||
return false;
|
|
||||||
setValueFromOpcode(opcode, equalizers[eqNumber - 1].frequency, Default::eqFrequencyRange);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case hash("eq&_freq_oncc&"): // also eq&_freqcc&
|
case hash("eq&_freq_oncc&"): // also eq&_freqcc&
|
||||||
{
|
{
|
||||||
const auto eqNumber = opcode.parameters.front();
|
const auto eqIndex = opcode.parameters.front() - 1;
|
||||||
if (eqNumber == 0)
|
if (!extendIfNecessary(equalizers, eqIndex + 1, Default::numEQs))
|
||||||
return false;
|
|
||||||
if (!extendIfNecessary(equalizers, eqNumber, Default::numEQs))
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
processGenericCc(opcode, Default::eqFrequencyModRange, ModKey::createNXYZ(ModId::EqFrequency, id, eqNumber));
|
processGenericCc(opcode, Default::eqFrequencyModRange, ModKey::createNXYZ(ModId::EqFrequency, id, eqIndex));
|
||||||
setValueFromOpcode(opcode, equalizers[eqNumber - 1].frequencyCC[opcode.parameters.back()], Default::eqFrequencyModRange);
|
setValueFromOpcode(opcode, equalizers[eqIndex].frequencyCC[opcode.parameters.back()], Default::eqFrequencyModRange);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case hash("eq&_vel&freq"):
|
case hash("eq&_vel&freq"):
|
||||||
{
|
{
|
||||||
const auto eqNumber = opcode.parameters.front();
|
const auto eqIndex = opcode.parameters.front() - 1;
|
||||||
if (eqNumber == 0)
|
|
||||||
return false;
|
|
||||||
if (opcode.parameters[1] != 2)
|
if (opcode.parameters[1] != 2)
|
||||||
return false; // was eqN_vel3freq or something else than eqN_vel2freq
|
return false; // was eqN_vel3freq or something else than eqN_vel2freq
|
||||||
if (!extendIfNecessary(equalizers, eqNumber, Default::numEQs))
|
if (!extendIfNecessary(equalizers, eqIndex + 1, Default::numEQs))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
setValueFromOpcode(opcode, equalizers[eqNumber - 1].vel2frequency, Default::eqFrequencyModRange);
|
setValueFromOpcode(opcode, equalizers[eqIndex].vel2frequency, Default::eqFrequencyModRange);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case hash("eq&_gain"):
|
case hash("eq&_gain"):
|
||||||
{
|
{
|
||||||
const auto eqNumber = opcode.parameters.front();
|
const auto eqIndex = opcode.parameters.front() - 1;
|
||||||
if (eqNumber == 0)
|
if (!extendIfNecessary(equalizers, eqIndex + 1, Default::numEQs))
|
||||||
return false;
|
return false;
|
||||||
if (!extendIfNecessary(equalizers, eqNumber, Default::numEQs))
|
setValueFromOpcode(opcode, equalizers[eqIndex].gain, Default::eqGainRange);
|
||||||
return false;
|
|
||||||
setValueFromOpcode(opcode, equalizers[eqNumber - 1].gain, Default::eqGainRange);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case hash("eq&_gain_oncc&"): // also eq&_gaincc&
|
case hash("eq&_gain_oncc&"): // also eq&_gaincc&
|
||||||
{
|
{
|
||||||
const auto eqNumber = opcode.parameters.front();
|
const auto eqIndex = opcode.parameters.front() - 1;
|
||||||
if (eqNumber == 0)
|
if (!extendIfNecessary(equalizers, eqIndex + 1, Default::numEQs))
|
||||||
return false;
|
|
||||||
if (!extendIfNecessary(equalizers, eqNumber, Default::numEQs))
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
processGenericCc(opcode, Default::eqGainModRange, ModKey::createNXYZ(ModId::EqGain, id, eqNumber));
|
processGenericCc(opcode, Default::eqGainModRange, ModKey::createNXYZ(ModId::EqGain, id, eqIndex));
|
||||||
setValueFromOpcode(opcode, equalizers[eqNumber - 1].gainCC[opcode.parameters.back()], Default::eqGainModRange);
|
setValueFromOpcode(opcode, equalizers[eqIndex].gainCC[opcode.parameters.back()], Default::eqGainModRange);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case hash("eq&_vel&gain"):
|
case hash("eq&_vel&gain"):
|
||||||
{
|
{
|
||||||
const auto eqNumber = opcode.parameters.front();
|
const auto eqIndex = opcode.parameters.front() - 1;
|
||||||
if (eqNumber == 0)
|
|
||||||
return false;
|
|
||||||
if (opcode.parameters[1] != 2)
|
if (opcode.parameters[1] != 2)
|
||||||
return false; // was eqN_vel3gain or something else than eqN_vel2gain
|
return false; // was eqN_vel3gain or something else than eqN_vel2gain
|
||||||
if (!extendIfNecessary(equalizers, eqNumber, Default::numEQs))
|
if (!extendIfNecessary(equalizers, eqIndex + 1, Default::numEQs))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
setValueFromOpcode(opcode, equalizers[eqNumber - 1].vel2gain, Default::eqGainModRange);
|
setValueFromOpcode(opcode, equalizers[eqIndex].vel2gain, Default::eqGainModRange);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case hash("eq&_type"):
|
case hash("eq&_type"):
|
||||||
{
|
{
|
||||||
const auto eqNumber = opcode.parameters.front();
|
const auto eqIndex = opcode.parameters.front() - 1;
|
||||||
if (eqNumber == 0)
|
if (!extendIfNecessary(equalizers, eqIndex + 1, Default::numEQs))
|
||||||
return false;
|
|
||||||
if (!extendIfNecessary(equalizers, eqNumber, Default::numEQs))
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
absl::optional<EqType> ftype = FilterEq::typeFromName(opcode.value);
|
absl::optional<EqType> ftype = FilterEq::typeFromName(opcode.value);
|
||||||
|
|
||||||
if (ftype)
|
if (ftype)
|
||||||
equalizers[eqNumber - 1].type = *ftype;
|
equalizers[eqIndex].type = *ftype;
|
||||||
else {
|
else {
|
||||||
equalizers[eqNumber - 1].type = EqType::kEqNone;
|
equalizers[eqIndex].type = EqType::kEqNone;
|
||||||
DBG("Unknown EQ type: " << opcode.value);
|
DBG("Unknown EQ type: " << opcode.value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue