JUCE断言失败 - iOS上的IIRFilter

时间:2017-12-14 01:20:42

标签: c++ ios audio juce

我在iOS音频应用程序中遇到IIRFilter问题。

我在滑块更改时使用了setCoefficients方法,但是当我移动滑块时,我发出噼啪声,然后应用程序冻结,我得到了Juce Assertion Failure。

IIRFilter Assertion Error

这是我改变系数以对应频率滑块的地方:

Changing filter coefficient on sliderValueChanged

但我不知道它是如何失败的。我在这里的MainContentComponenet构造函数中将lpfSlider的范围设置为20到20k:

Setting range for Frequency slider

根据我的理解,来自麦克风的iOS音频数据以44.1 kHz采样。

这是我在prepareToPlay()中定义全局采样率fs的地方:

Setting global sample rate

那么为什么这个断言失败了?

任何人都知道这里发生了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

我在屏幕截图中搜索了断言,找到了cpp文件和断言。

jassert (frequency > 0.0 && frequency <= sampleRate * 0.5);

您对采样率的假设是错误的,或者您的滑块允许频率超出奈奎斯特或低于0.

噼啪声是突然改变滤波器系数的自然副作用。