designFIRLowpassHalfBandEquirippleMethod fails for large transition width

I’ve found that calling juce::dsp::FilterDesign::designFIRLowpassHalfBandEquirippleMethod() with normalisedTransitionWidth greater than about 0.36 fails. Depending on the value of ‘amplitudeDb’, it fails in different places but this:

juce::dsp::FilterDesign::designFIRLowpassHalfBandEquirippleMethod(0.4f, -90.0f);

fails because the ‘om01’ variable is NaN.

I think that it should be possible to design a half band filter with transition width up to 0.5, and that’s what the assert in the function checks for. Am I doing something wrong or is this a bug?

1 Like