
最近在做一个音频插件
事情要从上个月说起。
混完一首歌,在耳机里听着挺好,低频温暖、人声靠前、混响恰到好处。导出来放车上听——低音像一堵墙,人声被埋在墙后面,混响完全听不到。那一刻的感受就是:我到底混了什么。
回头切到监听音箱又听了一遍,发现音箱版和耳机版根本是两个世界。问题是,我大部分时间只能戴耳机干活,深夜混音总不能开箱子扰民。
于是我开始研究一个东西:能不能做一个插件,让耳机的声音更接近监听音箱?
OpenMix Room

在logic pro中的演示
这个想法慢慢就变成了 OpenMix Room——一个耳机监听校准插件。原理不复杂:每款耳机的频响曲线都不一样,同一个频段有的耳机突出、有的凹陷。如果你能知道自己的耳机在哪个频率偏高、哪个偏低,就可以在信号进入耳机之前做反向修正,让听到的声音尽量平直。
说人话就是:加载你耳机的频响曲线,插件帮你"掰直"它。
比如你的耳机在 800Hz 附近有个 4dB 的坑,插件就在 800Hz 补偿 4dB 回来。这样你在耳机里听到的声音就更接近真实的监听状态,不至于混完发现低频全跑偏。
目前内置了 10 个常见耳机型号的校准数据,也支持自己导入曲线。格式是 VST3 和 AU,macOS 上用。
踩坑小记
做 DSP 插件最大的感受是:数学不会骗你,但算错了也不会告诉你。
混响模块用了 FDN(反馈延迟网络),8 路延迟线加一个 Hadamard 矩阵做反馈混合。写完第一版,拉上耳机一听——混响尾巴怎么不到 200 毫秒就没了?按理说 Room Size 设成 Medium 应该有七八百毫秒的衰减。
Debug 了一整天,最后发现是阻尼系数的公式少了一个 1-。对,就是小学数学级别的疏漏。
exp(-2π·fc/fs)写成了阻尼系数,但实际上应该是1 - exp(-2π·fc/fs)。
这一个字符的误差,导致截止频率偏移了将近 3 倍,高频衰减得极其激进,尾音直接被闷死。
还有一次更离谱。改了阻尼滤波器的结构之后,信号一进来直接爆表——输出电平冲到 +40dB,耳机差点没被炸聋。查了半天发现是低通和高通的输出被叠加了两次,环路增益凭空多了近 2 倍。最后把高通拆掉,纯用低通阻尼才稳住。
这些 bug 修完,跑了一轮回归测试,31 个用例全绿。那一刻的成就感,比混好一首歌还爽。
现在到哪了
目前是 v0.5.0 beta,基础功能跑通了,也在 GitHub 上发了 Release。但还有很多想打磨的地方——混响模块的 Small Room 模式低频密度不够,听起来有点"金属罐"味;UI 也还有很多要调的细节。

放出来讲真的,最近听说vibe coding很火,都想全交给它了,不过吧,基于创作人本身,我想它更多只能给我做个辅助啥的。
总之,插件还在打磨,离自己满意的状态还有距离。什么时候正式发?先不说死,保持节奏慢慢来。

依旧放张背景在这~
at广州
乒铃乓狼
夜雨聆风