音高检测 · 实测

调音器是怎么听音的

从拨响琴弦到屏幕上出现读数,中间发生了什么,这个读数有多接近真实值,逐个音实测给你看。

用大白话说

从琴弦到读数

  1. 在设备上听。麦克风信号进入页面里的一个小型 audio worklet,并且只留在那里:不录音,也不上传。
  2. 找出重复。调音器每秒约 30 次截取一个窗口,长度足够容纳你最低那根弦的四个完整周期,然后寻找声音重复自己的那个延迟(McLeod 音高法,一种用 FFT 计算的自相关)。
  3. 往深处走,却不拖慢速度。当琴弦低于 100 Hz 时,声音会先经过滤波,再降采样四倍,所以贝斯用的长窗口,计算量和吉他用的短窗口差不多。
  4. 核对八度。每个候选值都会和你定弦里的琴弦做比较,还会测试一半和两倍的周期,这样强的泛音就不会被错当成这个音。
  5. 稳定读数。刚拨下的弦音会偏高,所以拨弦后的头 150 ms 会被跳过。读数随后取最近五次读数的中位数,并配合一段 120 ms 的短时平均,一根弦要在窗口内持续 0.3 s,才算调准。

能有多准

  • ≤ 0.2 ¢纯净音上的最大误差,范围从 A0 到 E5 的任何位置
  • ≤ 1 ¢通过手机麦克风模型,E2 及以上
  • ≤ 2 ¢通过手机麦克风模型,在 A0(27.50 Hz)和 B0(30.87 Hz)这两个最深的低音上

打开调音器 →

在 48 kHz 下实测

精度,逐个音

每个音用三种测试信号,就是调音器自己的测试套件用的那几种:一种是带有明亮琴弦泛音成分的纯净音,一种是用物理建模做出来的拨弦(起音时音高偏高,和真实的拨弦一样),还有一种是把同一个音送过手机麦克风模型,那是一个把最低的音压低的高通滤波器,再加上真实琴弦的轻微刚性。最后一列显示这个滤波器让每个基音变轻了多少。

误差,单位音分(¢):读数与真实音高之间的距离,A4 = 440 Hz。一个音分是半音的百分之一。这些数字在每次构建网站时重新测量,所以它们始终描述的是你正在用的这个调音器。
音名Hz纯净音拨弦手机麦克风基音(dB)在哪里遇到
A027.500.010.021.92−22.5钢琴最低的琴键 · Drop A 的5弦贝斯
B030.870.020.051.76−20.55弦贝斯的低音 B
E141.200.020.031.34−15.5贝斯的低音 E
A155.000.030.040.92−10.8贝斯的 A 弦
E282.410.050.040.75−5.0吉他的低音 E
A2110.000.030.070.86−2.3吉他第5弦
D3146.830.110.100.80−0.8吉他第4弦
G3196.000.120.100.72−0.3吉他第3弦 · 小提琴 G
B3246.940.060.040.66−0.1吉他第2弦
E4329.630.040.020.700吉他第1弦
A4440.000.050.060.980小提琴 A · 标准音 A
E5659.260.110.120.510小提琴 E

低音

低音弦和手机麦克风

手机和笔记本电脑的麦克风是为人声设计的,在约 100 Hz 以下会衰减。在手机模型里,B0(30.87 Hz,5弦贝斯的低音弦)的基音弱 20.5 dB,钢琴最低的琴键 A0 则弱 22.5 dB。周期仍然存在于泛音里,所以调音器依然能找到它:上面的表格中,B0 的误差在 1.76 ¢ 以内,A0 在 1.92 ¢ 以内。

低音也需要时间。B0 的四个周期需要约 341 ms 的窗口,而吉他的低音 E 只需要 85 ms,所以给贝斯弦一秒钟来稳定。如果读数还是飘,就弹12品泛音并打开×2泛音模式,或者通过音频接口接入。

已调准

“调准”是什么意思

单个音上,大多数人听不出约 5 音分的差别;在和弦里,几个音分就已经会产生缓慢的颤动。所以调音器给了你三个窗口:宽松 ±5 ¢、正常 ±3 ¢ 和精确 ±1 ¢。一根弦一旦调准,就会一直保持“已调准”,直到它漂出窗口 2 ¢,所以 ✓ 不会闪烁。

读数本身比这些窗口精细得多:纯净音在 0.2 ¢ 以内,拨弦在 0.2 ¢ 以内,通过模拟手机麦克风,E2 以上的所有音在约 1 ¢ 以内(最低的贝斯音是 2 ¢)。

所有弦

扫一下,看见每根弦

在调音器底部的栏里(或在设置里)选择所有弦,扫一下所有空弦,让它们自然响着。每根弦都有自己的一条柱,像一排调音器的指针:中间那条线表示调准,上方的数字是偏差多少,下面的字写着调紧或调松。在琴弦还在响的时候拧一个弦钮,看它对应的柱怎么动。

它怎样同时听六个音:调音器知道你的定弦应该有哪些音。它在声音里寻找每根弦各自的那一排泛音,并把所有弦放在一起拟合,所以低音 E 的泛音不会被当成 B 弦。它每秒读取约十次,在页面的后台线程里运行,依然在你的设备上。

它的局限

  • 偏差很大:偏差超过约 60 ¢(比半个半音多一点)的弦,只会被标记出来,带一个箭头和大幅调紧或大幅调松。先点一下它的柱,单独把它调好。
  • 八度弦:比另一根弦高一两个八度、并且与它音准一致的弦,会藏在那根弦下面。它的柱这时只显示推测(≈ 和一个空心标记,没有时显示 ?),而推测永远不算调准:被闷住的弦看起来也会是同样的样子。点一下它,单独检查。
  • 成对的弦和重复的音:12弦吉他每一对的两根弦会一起读取,只有当它们的差别足够大时才分开显示。同一个音的两根弦各占一条柱,比如巴拉莱卡的两根 E 弦,会被读成一根:请点击每一根,单独调它。
  • 目前只在模拟的琴弦上测试过。安静的房间、有力的扫弦和能自然响着的空弦,帮助最大。

好习惯

读出干净的读数

  • 一次一根弦。 在“引导”和“自动”模式下,让其他弦停止振动,或者轻轻按住它们:两根弦同时响会混在一起。想把它们一起读,请用“所有弦”。
  • 拨弦,然后等一等。 在音响着的时候读,不要在起音的瞬间读。靠近琴颈处有力地拨弦,能得到强而稳的基音。
  • 用设备自带的麦克风。 蓝牙耳机为了通话会压缩声音;手机自带的麦克风或有线连接更干净。
  • 安静的房间有帮助。 风扇声、嗡嗡声和说话声会和琴弦争抢:噪音越少,读数稳定得越快。

隐私

你的声音留在你的设备上

这一切都在你的浏览器里运行。麦克风信号被实时分析,然后丢弃;不存储,不发送,网站加载完成后,即使完全没有网络也能使用。隐私页面里有详细说明。

打开调音器 →

常见问题

在线调音器有多准?

这取决于音高检测方法和麦克风,而不是取决于是不是在线。在 A0 到 E5 的纯净测试音上,TuneLit 的音高读取误差在 0.2 ¢ 以内;通过模拟手机麦克风,E2 以上的音在约 1 ¢ 以内。调音器默认在 ±3 ¢ 以内就判定一根弦已调准。

手机能调低音 B 弦吗?

通常可以。在我们的手机麦克风模型里,5弦贝斯的低音 B(30.87 Hz)要弱约 20 dB,但调音器能在泛音里找到它的周期:在手机麦克风测试中,它的读数误差在 1.76 ¢ 以内。如果读数还是飘,就用12品泛音配合×2泛音模式。

调音器能同时听到我所有的弦吗?

可以。选择“所有弦”,扫一下所有空弦,让它们自然响着:每根弦都有自己的一条柱。偏差很大的弦,或者与搭档音准一致的八度弦,最好单独检查。点一下它的柱,调音器就只听那一根弦。

为什么调音器有时会显示错的八度?

小麦克风对低音弦泛音的拾音,比对琴弦本身的拾音更好,而第二个泛音正好高一个八度。TuneLit 会把每个候选值和你定弦里的琴弦做比较,并测试一半和两倍的周期,所以它报告的是你正在调的那根弦,而不是它的泛音。