Parse filter/eq modulation targets
This commit is contained in:
parent
8c625d1e04
commit
4e58a945a8
4 changed files with 37 additions and 0 deletions
|
|
@ -585,6 +585,7 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
|
|||
if (!extendIfNecessary(filters, filterIndex + 1, Default::numFilters))
|
||||
return false;
|
||||
|
||||
processGenericCc(opcode, Default::filterCutoffModRange, ModKey::createNXYZ(ModId::FilCutoff, id, filterIndex));
|
||||
setValueFromOpcode(
|
||||
opcode,
|
||||
filters[filterIndex].cutoffCC[opcode.parameters.back()],
|
||||
|
|
@ -598,6 +599,7 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
|
|||
if (!extendIfNecessary(filters, filterIndex + 1, Default::numFilters))
|
||||
return false;
|
||||
|
||||
processGenericCc(opcode, Default::filterResonanceModRange, ModKey::createNXYZ(ModId::FilResonance, id, filterIndex));
|
||||
setValueFromOpcode(
|
||||
opcode,
|
||||
filters[filterIndex].resonanceCC[opcode.parameters.back()],
|
||||
|
|
@ -656,6 +658,7 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
|
|||
if (!extendIfNecessary(filters, filterIndex + 1, Default::numFilters))
|
||||
return false;
|
||||
|
||||
processGenericCc(opcode, Default::filterGainModRange, ModKey::createNXYZ(ModId::FilGain, id, filterIndex));
|
||||
setValueFromOpcode(
|
||||
opcode,
|
||||
filters[filterIndex].gainCC[opcode.parameters.back()],
|
||||
|
|
@ -688,6 +691,7 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
|
|||
return false;
|
||||
if (!extendIfNecessary(equalizers, eqNumber, Default::numEQs))
|
||||
return false;
|
||||
|
||||
setValueFromOpcode(opcode, equalizers[eqNumber - 1].bandwidth, Default::eqBandwidthRange);
|
||||
}
|
||||
break;
|
||||
|
|
@ -699,6 +703,7 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
|
|||
if (!extendIfNecessary(equalizers, eqNumber, Default::numEQs))
|
||||
return false;
|
||||
|
||||
processGenericCc(opcode, Default::eqBandwidthModRange, ModKey::createNXYZ(ModId::EqBandwidth, id, eqNumber));
|
||||
setValueFromOpcode(opcode, equalizers[eqNumber - 1].bandwidthCC[opcode.parameters.back()], Default::eqBandwidthModRange);
|
||||
}
|
||||
break;
|
||||
|
|
@ -720,6 +725,7 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
|
|||
if (!extendIfNecessary(equalizers, eqNumber, Default::numEQs))
|
||||
return false;
|
||||
|
||||
processGenericCc(opcode, Default::eqFrequencyModRange, ModKey::createNXYZ(ModId::EqFrequency, id, eqNumber));
|
||||
setValueFromOpcode(opcode, equalizers[eqNumber - 1].frequencyCC[opcode.parameters.back()], Default::eqFrequencyModRange);
|
||||
}
|
||||
break;
|
||||
|
|
@ -754,6 +760,7 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
|
|||
if (!extendIfNecessary(equalizers, eqNumber, Default::numEQs))
|
||||
return false;
|
||||
|
||||
processGenericCc(opcode, Default::eqGainModRange, ModKey::createNXYZ(ModId::EqGain, id, eqNumber));
|
||||
setValueFromOpcode(opcode, equalizers[eqNumber - 1].gainCC[opcode.parameters.back()], Default::eqGainModRange);
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -44,6 +44,18 @@ int ModIds::flags(ModId id) noexcept
|
|||
return kModIsPerVoice|kModIsAdditive;
|
||||
case ModId::Volume:
|
||||
return kModIsPerVoice|kModIsAdditive;
|
||||
case ModId::FilGain:
|
||||
return kModIsPerVoice|kModIsAdditive;
|
||||
case ModId::FilCutoff:
|
||||
return kModIsPerVoice|kModIsAdditive;
|
||||
case ModId::FilResonance:
|
||||
return kModIsPerVoice|kModIsMultiplicative;
|
||||
case ModId::EqGain:
|
||||
return kModIsPerVoice|kModIsAdditive;
|
||||
case ModId::EqFrequency:
|
||||
return kModIsPerVoice|kModIsAdditive;
|
||||
case ModId::EqBandwidth:
|
||||
return kModIsPerVoice|kModIsAdditive;
|
||||
|
||||
// unknown
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -37,6 +37,12 @@ enum class ModId : int {
|
|||
Position,
|
||||
Pitch,
|
||||
Volume,
|
||||
FilGain,
|
||||
FilCutoff,
|
||||
FilResonance,
|
||||
EqGain,
|
||||
EqFrequency,
|
||||
EqBandwidth,
|
||||
|
||||
_TargetsEnd,
|
||||
// [/targets] --------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -87,6 +87,18 @@ std::string ModKey::toString() const
|
|||
return absl::StrCat("Pitch {", region_.number(), "}");
|
||||
case ModId::Volume:
|
||||
return absl::StrCat("Volume {", region_.number(), "}");
|
||||
case ModId::FilGain:
|
||||
return absl::StrCat("FilterGain {", region_.number(), "N=", params_.N, "}");
|
||||
case ModId::FilCutoff:
|
||||
return absl::StrCat("FilterCutoff {", region_.number(), "N=", params_.N, "}");
|
||||
case ModId::FilResonance:
|
||||
return absl::StrCat("FilterResonance {", region_.number(), "N=", params_.N, "}");
|
||||
case ModId::EqGain:
|
||||
return absl::StrCat("EqGain {", region_.number(), "N=", params_.N, "}");
|
||||
case ModId::EqFrequency:
|
||||
return absl::StrCat("EqFrequency {", region_.number(), "N=", params_.N, "}");
|
||||
case ModId::EqBandwidth:
|
||||
return absl::StrCat("EqBandwitdth {", region_.number(), "N=", params_.N, "}");
|
||||
|
||||
default:
|
||||
return {};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue