Merge pull request #1103 from paulfd/eg-lfo-target

Add LFO frequency as an EG target
This commit is contained in:
Paul Ferrand 2022-07-21 01:44:02 +02:00 committed by GitHub
commit 03dda271dd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 0 deletions

View file

@ -1657,6 +1657,19 @@ bool sfz::Region::parseEGOpcodeV2(const Opcode& opcode)
break; break;
} }
case hash("eg&_freq_lfo&"):
if (lfos.size() < opcode.parameters[1] - 1)
return false;
EG_target(ModKey::createNXYZ(ModId::LFOFrequency, id, opcode.parameters[1] - 1), Default::lfoFreqMod);
break;
case_any_ccN("eg&_freq_lfo&"):
if (lfos.size() < opcode.parameters[1] - 1)
return false;
EG_target_cc(ModKey::createNXYZ(ModId::LFOFrequency, id, opcode.parameters[1] - 1), Default::lfoFreqMod);
break;
default: default:
return false; return false;
} }

View file

@ -150,6 +150,8 @@ int ModIds::flags(ModId id) noexcept
return kModIsPerVoice|kModIsAdditive; return kModIsPerVoice|kModIsAdditive;
case ModId::EGEqBandwidthDepth: case ModId::EGEqBandwidthDepth:
return kModIsPerVoice|kModIsAdditive; return kModIsPerVoice|kModIsAdditive;
case ModId::EGLFOFreqDepth:
return kModIsPerVoice|kModIsAdditive;
// unknown // unknown
default: default:

View file

@ -89,6 +89,7 @@ enum class ModId : int {
EGEqGainDepth, EGEqGainDepth,
EGEqFrequencyDepth, EGEqFrequencyDepth,
EGEqBandwidthDepth, EGEqBandwidthDepth,
EGLFOFreqDepth,
_TargetsEnd, _TargetsEnd,
// [/targets] -------------------------------------------------------------- // [/targets] --------------------------------------------------------------

View file

@ -220,6 +220,8 @@ std::string ModKey::toString() const
return absl::StrCat("EGEqFrequencyDepth {", region_.number(), ", N=", 1 + params_.N, ", X=", 1 + params_.X, "}"); return absl::StrCat("EGEqFrequencyDepth {", region_.number(), ", N=", 1 + params_.N, ", X=", 1 + params_.X, "}");
case ModId::EGEqBandwidthDepth: case ModId::EGEqBandwidthDepth:
return absl::StrCat("EGEqBandwidthDepth {", region_.number(), ", N=", 1 + params_.N, ", X=", 1 + params_.X, "}"); return absl::StrCat("EGEqBandwidthDepth {", region_.number(), ", N=", 1 + params_.N, ", X=", 1 + params_.X, "}");
case ModId::EGLFOFreqDepth:
return absl::StrCat("EGLFOFreqDepth {", region_.number(), ", N=", 1 + params_.N, ", X=", 1 + params_.X, "}");
default: default:
return {}; return {};
@ -334,6 +336,8 @@ ModKey ModKey::getSourceDepthKey(ModKey source, ModKey target)
return ModKey::createNXYZ(ModId::EGEqFrequencyDepth, region, tp.N, tp.X); return ModKey::createNXYZ(ModId::EGEqFrequencyDepth, region, tp.N, tp.X);
case ModId::EqBandwidth: case ModId::EqBandwidth:
return ModKey::createNXYZ(ModId::EGEqBandwidthDepth, region, tp.N, tp.X); return ModKey::createNXYZ(ModId::EGEqBandwidthDepth, region, tp.N, tp.X);
case ModId:: LFOFrequency:
return ModKey::createNXYZ(ModId::EGLFOFreqDepth, region, tp.N, tp.X);
default: default:
break; break;
} }