From 441b7e95120baff8d13079ac20ce01ec33023b07 Mon Sep 17 00:00:00 2001 From: Karl Hiner Date: Sun, 2 Mar 2025 11:42:32 -0800 Subject: [PATCH] [mesh2faust] Simplify mode frequency scaling --- .../mesh2faust/src/mesh2faust.cpp | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/tools/physicalModeling/mesh2faust/src/mesh2faust.cpp b/tools/physicalModeling/mesh2faust/src/mesh2faust.cpp index bca1e5dc5c..50ea0a46a6 100644 --- a/tools/physicalModeling/mesh2faust/src/mesh2faust.cpp +++ b/tools/physicalModeling/mesh2faust/src/mesh2faust.cpp @@ -208,22 +208,16 @@ std::string m2f::modal2faust(const ModalModel &model, DspGenArguments args) { << "nModes = " << nModes << ";\n"; if (nExPos > 1) dsp << "nExPos = " << nExPos << ";\n"; - if (args.freqControl) { - dsp << "modeFreqRatios(n) = ba.take(n+1,("; - for (int mode = 0; mode < nModes; ++mode) { - dsp << freqs[mode] / freqs.front(); - if (mode < nModes - 1) dsp << ","; - } - dsp << "));\n" - << "modeFreqs(mode) = freq*modeFreqRatios(mode);\n"; - } else { - dsp << "modeFreqs(n) = ba.take(n+1,("; - for (int mode = 0; mode < nModes; ++mode) { - dsp << freqs[mode]; - if (mode < nModes - 1) dsp << ","; - } - dsp << "));\n"; + dsp << "modeFreqsUnscaled(n) = ba.take(n+1,("; + for (int mode = 0; mode < nModes; ++mode) { + dsp << freqs[mode]; + if (mode < nModes - 1) dsp << ","; } + dsp << "));\n"; + dsp << "modeFreqs(mode) = "; + if (args.freqControl) dsp << "freq*modeFreqsUnscaled(mode)/modeFreqsUnscaled(0)"; + else dsp << "modeFreqsUnscaled(mode)"; + dsp << ";\n"; dsp << "modesGains(p,n) = waveform{"; for (int exPos = 0; exPos < gains.size(); ++exPos) {