我在这个网站上做了一些搜索,但令人惊讶的是,我没有找到太多相关信息,而且我对 DSP 的了解非常有限。
我的目标很简单:我想用 C++ 编写一个算法混响,听起来真的很棒。或者更准确地说,最好的选择是让最终用户在质量和 CPU 使用率之间进行权衡。
到目前为止,我发现,要创建混响,您必须将干信号输入到早期反射算法中,然后再输入到后期反射算法中。它是否正确 ?
现在,我找到了一篇关于后期反射部分的广泛文章,使用反馈延迟网络(使用时变反馈延迟网络减少人工混响要求)。从我读到的内容来看,FDN 是一种模拟后期反射的高质量、不太扩展(cpu 方面)的方法。此外,我想您可以通过更改延迟线的数量来控制质量/cpu 费用的权衡。
但是我完全不知道如何对早期反射算法进行编程(记住?我对 DSP 领域一无所知)。
对我来说,使用一种多延迟听起来是合乎逻辑的,它的优点是易于编程且计算成本低廉。但这听起来太简单了,不可能是真的。
此外,我的直觉告诉我,信号路径中的某处必须包含一个或多个滤波器。
有人可以为我澄清一下这个话题吗?
两个注意事项:
- 我根本不追求卷积混响。我并不真正关心混响的真实性,而是我想要一个好的声音,可调整的,而不是 CPU 饥饿的混响。
- 另外,编码部分不是我担心的,否则我会在stackoverflow上问。这真的是 DSP 部分,只是我所追求的那部分 :)