Update tests and connect all cc opcodes
This commit is contained in:
parent
f07000dd88
commit
fd8b00b9a1
3 changed files with 34 additions and 16 deletions
|
|
@ -579,7 +579,7 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
|
||||||
setValueFromOpcode(opcode, filters[filterIndex].resonance, Default::filterResonanceRange);
|
setValueFromOpcode(opcode, filters[filterIndex].resonance, Default::filterResonanceRange);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case hash("cutoff&_oncc&"): // also cutoff_oncc&, cutoff_cc&, cutoff&_cc&
|
case_any_ccN("cutoff&"): // also cutoff_oncc&, cutoff_cc&, cutoff&_cc&
|
||||||
{
|
{
|
||||||
const auto filterIndex = opcode.parameters.front() - 1;
|
const auto filterIndex = opcode.parameters.front() - 1;
|
||||||
if (!extendIfNecessary(filters, filterIndex + 1, Default::numFilters))
|
if (!extendIfNecessary(filters, filterIndex + 1, Default::numFilters))
|
||||||
|
|
@ -588,7 +588,7 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
|
||||||
processGenericCc(opcode, Default::filterCutoffModRange, ModKey::createNXYZ(ModId::FilCutoff, id, filterIndex));
|
processGenericCc(opcode, Default::filterCutoffModRange, ModKey::createNXYZ(ModId::FilCutoff, id, filterIndex));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case hash("resonance&_oncc&"): // also resonance_oncc&, resonance_cc&, resonance&_cc&
|
case_any_ccN("resonance&"): // also resonance_oncc&, resonance_cc&, resonance&_cc&
|
||||||
{
|
{
|
||||||
const auto filterIndex = opcode.parameters.front() - 1;
|
const auto filterIndex = opcode.parameters.front() - 1;
|
||||||
if (!extendIfNecessary(filters, filterIndex + 1, Default::numFilters))
|
if (!extendIfNecessary(filters, filterIndex + 1, Default::numFilters))
|
||||||
|
|
@ -642,7 +642,7 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
|
||||||
setValueFromOpcode(opcode, filters[filterIndex].gain, Default::filterGainRange);
|
setValueFromOpcode(opcode, filters[filterIndex].gain, Default::filterGainRange);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case hash("fil&_gain_oncc&"): // also fil_gain_oncc&
|
case_any_ccN("fil&_gain"): // also fil_gain_oncc&
|
||||||
{
|
{
|
||||||
const auto filterIndex = opcode.parameters.front() - 1;
|
const auto filterIndex = opcode.parameters.front() - 1;
|
||||||
if (!extendIfNecessary(filters, filterIndex + 1, Default::numFilters))
|
if (!extendIfNecessary(filters, filterIndex + 1, Default::numFilters))
|
||||||
|
|
@ -678,7 +678,7 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
|
||||||
setValueFromOpcode(opcode, equalizers[eqIndex].bandwidth, Default::eqBandwidthRange);
|
setValueFromOpcode(opcode, equalizers[eqIndex].bandwidth, Default::eqBandwidthRange);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case hash("eq&_bw_oncc&"): // also eq&_bwcc&
|
case_any_ccN("eq&_bw"): // also eq&_bwcc&
|
||||||
{
|
{
|
||||||
const auto eqIndex = opcode.parameters.front() - 1;
|
const auto eqIndex = opcode.parameters.front() - 1;
|
||||||
if (!extendIfNecessary(equalizers, eqIndex + 1, Default::numEQs))
|
if (!extendIfNecessary(equalizers, eqIndex + 1, Default::numEQs))
|
||||||
|
|
@ -695,7 +695,7 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
|
||||||
setValueFromOpcode(opcode, equalizers[eqIndex].frequency, Default::eqFrequencyRange);
|
setValueFromOpcode(opcode, equalizers[eqIndex].frequency, Default::eqFrequencyRange);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case hash("eq&_freq_oncc&"): // also eq&_freqcc&
|
case_any_ccN("eq&_freq"): // also eq&_freqcc&
|
||||||
{
|
{
|
||||||
const auto eqIndex = opcode.parameters.front() - 1;
|
const auto eqIndex = opcode.parameters.front() - 1;
|
||||||
if (!extendIfNecessary(equalizers, eqIndex + 1, Default::numEQs))
|
if (!extendIfNecessary(equalizers, eqIndex + 1, Default::numEQs))
|
||||||
|
|
@ -723,7 +723,7 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
|
||||||
setValueFromOpcode(opcode, equalizers[eqIndex].gain, Default::eqGainRange);
|
setValueFromOpcode(opcode, equalizers[eqIndex].gain, Default::eqGainRange);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case hash("eq&_gain_oncc&"): // also eq&_gaincc&
|
case_any_ccN("eq&_gain"): // also eq&_gaincc&
|
||||||
{
|
{
|
||||||
const auto eqIndex = opcode.parameters.front() - 1;
|
const auto eqIndex = opcode.parameters.front() - 1;
|
||||||
if (!extendIfNecessary(equalizers, eqIndex + 1, Default::numEQs))
|
if (!extendIfNecessary(equalizers, eqIndex + 1, Default::numEQs))
|
||||||
|
|
|
||||||
|
|
@ -88,17 +88,17 @@ std::string ModKey::toString() const
|
||||||
case ModId::Volume:
|
case ModId::Volume:
|
||||||
return absl::StrCat("Volume {", region_.number(), "}");
|
return absl::StrCat("Volume {", region_.number(), "}");
|
||||||
case ModId::FilGain:
|
case ModId::FilGain:
|
||||||
return absl::StrCat("FilterGain {", region_.number(), "N=", params_.N, "}");
|
return absl::StrCat("FilterGain {", region_.number(), ", N=", params_.N, "}");
|
||||||
case ModId::FilCutoff:
|
case ModId::FilCutoff:
|
||||||
return absl::StrCat("FilterCutoff {", region_.number(), "N=", params_.N, "}");
|
return absl::StrCat("FilterCutoff {", region_.number(), ", N=", params_.N, "}");
|
||||||
case ModId::FilResonance:
|
case ModId::FilResonance:
|
||||||
return absl::StrCat("FilterResonance {", region_.number(), "N=", params_.N, "}");
|
return absl::StrCat("FilterResonance {", region_.number(), ", N=", params_.N, "}");
|
||||||
case ModId::EqGain:
|
case ModId::EqGain:
|
||||||
return absl::StrCat("EqGain {", region_.number(), "N=", params_.N, "}");
|
return absl::StrCat("EqGain {", region_.number(), ", N=", params_.N, "}");
|
||||||
case ModId::EqFrequency:
|
case ModId::EqFrequency:
|
||||||
return absl::StrCat("EqFrequency {", region_.number(), "N=", params_.N, "}");
|
return absl::StrCat("EqFrequency {", region_.number(), ", N=", params_.N, "}");
|
||||||
case ModId::EqBandwidth:
|
case ModId::EqBandwidth:
|
||||||
return absl::StrCat("EqBandwitdth {", region_.number(), "N=", params_.N, "}");
|
return absl::StrCat("EqBandwidth {", region_.number(), ", N=", params_.N, "}");
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return {};
|
return {};
|
||||||
|
|
|
||||||
|
|
@ -107,13 +107,31 @@ TEST_CASE("[Modulations] Filter CC connections")
|
||||||
<region> sample=*sine
|
<region> sample=*sine
|
||||||
cutoff=100 fil1_gain_oncc3=5 fil1_gain_stepcc3=0.5
|
cutoff=100 fil1_gain_oncc3=5 fil1_gain_stepcc3=0.5
|
||||||
cutoff2=300 cutoff2_cc2=100 cutoff2_curvecc2=2
|
cutoff2=300 cutoff2_cc2=100 cutoff2_curvecc2=2
|
||||||
resonance2=-1 resonance2_oncc1=2 resonance2_smoothcc1=10
|
resonance3=-1 resonance3_oncc1=2 resonance3_smoothcc1=10
|
||||||
)");
|
)");
|
||||||
|
|
||||||
const std::string graph = synth.getResources().modMatrix.toDotGraph();
|
const std::string graph = synth.getResources().modMatrix.toDotGraph();
|
||||||
REQUIRE(graph == createReferenceGraph({
|
REQUIRE(graph == createReferenceGraph({
|
||||||
R"("Controller 1 {curve=0, smooth=10, value=2, step=0}" -> "FilResonance")",
|
R"("Controller 1 {curve=0, smooth=10, value=2, step=0}" -> "FilterResonance {0, N=2}")",
|
||||||
R"("Controller 2 {curve=2, smooth=0, value=100, step=0}" -> "FilCutoff")",
|
R"("Controller 2 {curve=2, smooth=0, value=100, step=0}" -> "FilterCutoff {0, N=1}")",
|
||||||
R"("Controller 3 {curve=0, smooth=0, value=5, step=0.5}" -> "FilGain")",
|
R"("Controller 3 {curve=0, smooth=0, value=5, step=0.5}" -> "FilterGain {0, N=0}")",
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("[Modulations] EQ CC connections")
|
||||||
|
{
|
||||||
|
sfz::Synth synth;
|
||||||
|
synth.loadSfzString("/modulation.sfz", R"(
|
||||||
|
<region> sample=*sine
|
||||||
|
eq1_gain_oncc2=5 eq1_gain_stepcc2=0.5
|
||||||
|
eq2_freq_oncc3=300 eq2_freq_curvecc3=3
|
||||||
|
eq3_bw_oncc1=2 eq3_bw_smoothcc1=10
|
||||||
|
)");
|
||||||
|
|
||||||
|
const std::string graph = synth.getResources().modMatrix.toDotGraph();
|
||||||
|
REQUIRE(graph == createReferenceGraph({
|
||||||
|
R"("Controller 1 {curve=0, smooth=10, value=2, step=0}" -> "EqBandwidth {0, N=2}")",
|
||||||
|
R"("Controller 2 {curve=0, smooth=0, value=5, step=0.5}" -> "EqGain {0, N=0}")",
|
||||||
|
R"("Controller 3 {curve=3, smooth=0, value=300, step=0}" -> "EqFrequency {0, N=1}")",
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue