我正在尝试用C#编写音频应用程序并需要实现一个实时卷积混响处理器。我目前使用的方法是在使用长度超过~16,000个样本(44.1kHz)的脉冲响应时发生故障。我需要能够使用至少2秒或88,200个样本的脉冲响应。这是我尝试绘制我正在使用的方法的最佳尝试:
我使用的块大小是2048个样本。我正在使用NAudio库进行FFT,并且在负载时预先计算脉冲响应的FFT。
我的方法有什么问题?我知道我所追求的是可能的,因为我已经使用了大量的音频应用来实现它。
编辑:原来有两个问题:我使用的FFT库速度不够快,而且,对于这种类型的应用程序,C#通常不够快。切换到非托管代码(C ++)和更好的FFT库(FFTW)后,问题得到了解决。