Skip to content

Commit

Permalink
[mesh2faust] Simplify mode frequency scaling
Browse files Browse the repository at this point in the history
  • Loading branch information
khiner authored and sletz committed Mar 2, 2025
1 parent 2f3e401 commit 441b7e9
Showing 1 changed file with 9 additions and 15 deletions.
24 changes: 9 additions & 15 deletions tools/physicalModeling/mesh2faust/src/mesh2faust.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down

0 comments on commit 441b7e9

Please sign in to comment.