- 工作内容及进展:2023 年开始用 C++/JUCE 制作混响插件,并不断添加内容。今日将讨论基于延迟的算法混响(如插件中的“Freeverb”算法),还会包括 Max/MSP 版本的混响,后续将讨论 C++/JUCE 代码及其他 cool 算法。
混响的分类及原理:
- 分类:有卷积和算法两种主要的数字混响,今日讨论算法混响,它基于延迟或“回声”网络,单个延迟对应墙壁或物体的声音反射,网络连接模拟反射的交互。
延迟类型:
- 前馈延迟:是最基本的延迟形式,复制输入音频信号,延迟一定时间后与原始信号组合,可调整比例,通常称为“前馈”延迟。
- 反馈延迟:输入信号在进入延迟前与延迟的反馈输出相加,反馈输出的增益为负,输出是输入和反馈的和。
- 全通滤波器:将前馈延迟和具有负反馈增益的反馈延迟组合,使频率响应中的峰值和谷值抵消,呈现“平坦”频率响应,但时间响应更复杂,可使单个脉冲在时间上被延迟和“涂抹”,产生多个脉冲叠加的效果,用于创建平滑密集的混响。
经典 Schroeder 混响器:
- 串联全通滤波器:Manfred Schroeder 在 1961 年的两篇论文中介绍了全通滤波器和用于混响器的想法,寻求基于延迟的混响器的六个特征,包括平坦频率响应等。通过反馈梳状滤波器演示了不同延迟时间产生的效果,提出用一串全通滤波器来解决问题,但此算法调谐较难,不太通用。
- 并行梳状滤波器进入串联全通滤波器:Schroeder 提出将反馈梳状滤波器并行组合,再进入串联全通滤波器的算法,可改善频率响应和避免“颤动”效果,达到“自然”的混响效果,如“Freeverb”算法,其延迟以样本表示,还有一阶低通滤波器在梳状滤波器的反馈回路中,使高频更快衰减,此外还有左右声道延迟差异模拟不同环境,以及 LFO 调制全通滤波器延迟产生合唱效果。
- 最终说明:计划后续写关于全通滤波器环的系列帖子,如基于 Lexicon 224 和 480 混响单元的板混响算法,下次再见。
文中注释:
- 此符号来自 Z 变换的概念。↩︎
- 注意三角形符号是标准 DSP 放大器符号,b 和 a 常用于前馈/反馈系数,但不太一致。↩︎
- M. R. Schroeder 和 B. F. Logan,“‘Colorless’ artificial reverberation”,IRE Transactions on Audio,vol. AU-9,no. 6,pp. 209–214,Nov. 1961,doi: 10.1109/TAU.1961.1166351。↩︎
- M. R. Schroeder,“Natural sounding artificial reverberation”,in Audio Engineering Society Convention 13,Audio Engineering Society,1961。Accessed: Dec. 29, 2024. [Online]. Available: https://www.aes.org/e-lib/download.cfm?ID=343 ↩︎
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。