声学原理与算法
1. 为什么拧琴钮能改变音高
由梅森定律(Mersenne's Laws),弦振动的基频 f 由三个物理量决定:
f =
12L
√Tμ
T(张力):旋紧琴钮 → 张力增大 → 音高升高
L(弦长):按住品格 → 有效弦长变短 → 音高升高
μ(线密度):琴弦越粗越重 → 音高越低(所以低音弦总是最粗)
2. 音分(Cents)是什么
音分是度量音高微小差异的对数单位。十二平均律中一个八度=1200 音分,相邻半音相差 100 音分:
n = 1200 · log2
f实测f目标
人耳对音高差异的分辨极限约 5–10 音分,专业录音要求常在 ±3 音分内。本调音器默认容差 ±5 音分,可在设置中调整。
3. 泛音列与音色
拨动琴弦时,它不只整体振动(基频 f1),还同时在二分之一、三分之一处分段振动,产生整数倍频率:
fn = n · f1
频谱页中最左的强峰通常是基频,其后等间距的小峰就是泛音。各泛音的强弱比例造就了不同乐器的独特音色 —— 这也是调音器不能简单取「最强峰」作为音高的原因:某些乐器的二次泛音甚至强于基频。
4. 本调音器用什么算法
采用 McLeod Pitch Method(MPM):先用 FFT 快速计算自相关,再归一化为 NSDF 函数,取「第一个达到全局最高峰 88% 的峰」作为基频周期,最后用抛物线插值把分辨率提升到远小于一个采样点。
相比朴素自相关,MPM 能正确区分基频与八度倍频,低音弦不会跳成高八度
输入端串联 22 Hz 高通 + 2.2 kHz 低通,滤掉环境隆隆声与高频噪声
精度可达 ±0.1 音分量级,实际稳定度取决于麦克风与环境噪声
5. 律制:为什么有那么多种
十二平均律把八度均分 12 份,任何调都同样「略微不准但可用」,代价是除八度外没有一个音程是纯的。纯律用简单整数比(3:2、5:4)让和弦极其干净,但一转调就走音。历史上的中庸全音律、Werckmeister、Kirnberger 等「良律」是两者之间的妥协。
无品乐器(提琴、二胡、人声、合唱)实际演奏常自发趋向纯律
演奏巴洛克作品时,可试试 Werckmeister III + A4=415 Hz
中国传统的三分损益律与西方五度相生律(Pythagorean)算法同源
6. 八度拉伸(钢琴调律)
真实琴弦有刚度,泛音并非严格整数倍,而是略偏高(弦的不谐性)。因此钢琴调律师会把高音区调得略高、低音区略低,使各八度的泛音相互吻合,这就是 Railsback 曲线。设置页的「八度拉伸」可模拟这一做法。
7. 键盘快捷键
空格 开启 / 暂停麦克风
1–6 锁定第 N 根弦(按弦序)
0 取消锁定,回到自动识别
A 播放 A4 参考长音 M 启停节拍器
← → 节拍器速度 ±1
8. 使用建议
安静环境下先点「一键采样环境底噪」,读数会明显更稳
拨弦后等待约 0.3 秒再看读数:起振瞬间泛音混乱,基频尚未稳定
调音时始终从低于目标的方向拧上去,让弦轴受力方向一致,音高更不易回落
换新弦后需反复调 2–3 轮,因为琴弦会持续伸长
调完低音弦后琴颈受力变化,高音弦会轻微跑音,建议整体再校一遍