我在iOS音频应用程序中遇到IIRFilter问题。
我在滑块更改时使用了setCoefficients方法,但是当我移动滑块时,我发出噼啪声,然后应用程序冻结,我得到了Juce Assertion Failure。
这是我改变系数以对应频率滑块的地方:
Changing filter coefficient on sliderValueChanged
但我不知道它是如何失败的。我在这里的MainContentComponenet构造函数中将lpfSlider的范围设置为20到20k:
Setting range for Frequency slider
根据我的理解,来自麦克风的iOS音频数据以44.1 kHz采样。
这是我在prepareToPlay()中定义全局采样率fs的地方:
那么为什么这个断言失败了?
任何人都知道这里发生了什么?
谢谢!
答案 0 :(得分:0)
我在屏幕截图中搜索了断言,找到了cpp文件和断言。
jassert (frequency > 0.0 && frequency <= sampleRate * 0.5);
您对采样率的假设是错误的,或者您的滑块允许频率超出奈奎斯特或低于0.
噼啪声是突然改变滤波器系数的自然副作用。