用苹果 Accelerate 跑双精度 PEQ
最早的均衡引擎是用 Swift 手写的逐样本双二阶滤波级联。精度没问题,但 192 kHz 立体声、16 段滤波要吃掉一个 CPU 核心的 10%。现在整条级联交给 Accelerate 的 vDSP_biquadD,每次调用处理最多 1,024 帧。
单精度版本一样快,却不能用:高 Q 的低频滤波器极点离单位圆太近,Float 系数放不准,而耳机预设里恰恰全是这种滤波器。所以运算坚持用 Double。音频线程上没有锁、没有内存分配;新预设通过一次原子交换送达,两组滤波器 20 ms 交叉淡化,改参数不会爆音。


