HandyTools Hub

节拍器

使用可视化音频节拍器保持完美节奏

120

BPM

20 300
拍号:

至少点击 4 次以设置速度

节拍指示器

第1拍

节拍器只有可信才有用。这个节拍器覆盖 20 到 300 BPM,提供 2/4、3/4、4/4 和 6/8 四种拍号并带重音首拍,还内置 Tap Tempo,可以靠耳朵找出录音的速度。它通过浏览器里的 Web Audio API 发声,并有视觉节拍指示,方便静音或关声练习。

如何使用

  1. 设定速度。 拖动滑块或用 + 和 - 按钮,在 20 到 300 之间调到任意整数 BPM。默认是 120。
  2. 选择拍号。 在 2/4、3/4、4/4 或 6/8 中挑选。指示行会按小节内的拍数重新绘制圆点。
  3. 按下播放。 每小节的第一拍带重音;当前拍以大一号的蓝色圆点高亮。
  4. 用 Tap Tempo 匹配录音。 跟着音乐节奏点击按钮若干次,取平均后的 BPM 会替换当前设置。
  5. 演奏中途改速度。 播放时拖动滑块或按 + / -,节拍会立即按新间隔重新开始。

速度换算:从 BPM 到毫秒

工具用一个公式把速度换算成点击间隔:interval = round(60000 / BPM) 毫秒。下表列出引擎实际生成的值。

BPM间隔典型场景
203000 ms缓慢的呼吸或冥想节奏
601000 ms每秒一拍;慢速抒情曲
90667 ms中等练习速度、进行曲
120500 ms流行与摇滚的常见默认值
180333 ms快速小提琴曲、朋克
300200 ms上限;细分节奏练习

由于间隔会四舍五入到整毫秒,极端速度并非绝对精确,但每拍的舍入误差保持在半毫秒以内。

实操示例:把一段乐句练到原速

假设一名学生能以 76 BPM 干净地演奏一段困难的经过句,再快就不行。在 76 BPM 下,点击每 round(60000 / 76) = 789 ms 响一次。她连弹五遍不出错,然后把滑块移到 80 BPM,间隔降到 round(60000 / 80) = 750 ms——每拍相差 39 ms,小到双手几乎察觉不到。她以 4 BPM 为一步重复爬升。当某一档出现两次错误时,她退回上一档,而不是硬冲过去,这样才能保持肌肉记忆干净。

点击声和重音是怎么生成的

每一拍都会创建一个短促的正弦振荡器,接入增益为 0.3 的增益节点,并在 100 ms 内指数衰减到 0.001,让点击结束时没有爆音。小节第一拍的音高为 1000 Hz,其余各拍为 800 Hz。拍计数器按每小节拍数取模递增,所以 4/4 小节循环 1-2-3-4,6/8 小节循环 1-2-3-4-5-6。

Tap Tempo 会存下每次点击的 Date.now() 时间戳,把列表裁剪到最近 8 条,计算相邻点击之间的间隔、取平均,再用同样的 60000 / 平均间隔 换算回 BPM。正是这个平均过程,让一次不太均匀的点击不至于把结果带偏。

乐谱上会见到的速度术语

印刷乐谱通常用意大利语而不是数字来命名速度。下表把常见标记映射到多数编者使用的 BPM 区间,方便你快速选一个起始速度。

标记大致 BPM感觉
Largo(广板)40-60宽广而缓慢
Adagio(柔板)66-76从容悠闲
Andante(行板)76-108行走般的步伐
Moderato(中板)108-120中等
Allegro(快板)120-168快速而明亮
Presto(急板)168-200非常快
Prestissimo(最急板)200 以上尽可能快

这些是惯例,不是铁律。指挥可能把一段快板处理成 130 或 150,取决于乐句,所以把标记当作起点,调整到音乐能呼吸为止。

练习方法与常见错误

  • 先慢后快。 从低于目标、能零错误演奏的速度开始,再小步爬升。
  • 数细分拍。 慢速时说”一和、二和”,让每一下点击对应两个音符。
  • 错位练习。 故意把音阶的某个音放在反拍上,检验你是真的锁在点击上,还是只在跟重音。
  • 长音保持。 用每小节一次点击(很慢的 2/4)来保持一个音,检查音高是否摇晃、身体是否紧张。

只有在出错之后才打开节拍器是个常见的坏习惯;这时点击变成了惩罚,而不是参照。请在开始演奏之前就设好,让你的内在脉搏和点击从第一个音起就一致。

两个真正的限制在于调度和标签页行为。拍子用 setInterval 排队,如果浏览器标签页被节流或主线程繁忙,某一拍可能迟到;工具没有采用预读式调度器。它也无法在 6/8 内给每个细分拍不同的重音,所以复合拍会被数成六个均等拍、只有一个重音,而不是传统的”强-弱-弱-强-弱-弱”模式。这些需求更适合用支持逐拍重音设置的专用节拍器应用。

相关工具

常见问题

Tap Tempo 需要点几次才会显示 BPM?

第二次点击后读数就会出现,因为测量一个间隔至少需要两个时间戳。工具保留你最近 8 次点击的滚动窗口,并对窗口内所有间隔取平均,所以数字会逐渐稳定,而不是每点一下就跳动。

为什么点击速度相同时,3/4 和 6/8 感觉不一样?

拍号改变的是重音模式,不是间隔。两者都用同样的 60000/BPM 毫秒间距,但 3/4 每三拍重音一次,而 6/8 每小节数六拍、只在第一拍重音,形成“两个三拍组”的律动。

长时间练习时,节拍会越走越偏吗?

每一拍用 setInterval 调度,而不是采样级精确的音频时钟,所以非常长的练习可能累积几毫秒的漂移,忙碌的标签页也可能让某一拍延迟。以分钟计、正常速度的练习中这点误差听不出来;重新停止再开始即可重新对齐。

某个 BPM 对应的毫秒间隔是多少?

用 60000 除以 BPM,再四舍五入到毫秒。60 BPM 是每拍 1000 ms,120 BPM 是 500 ms,300 BPM 是 200 ms。最低的 20 BPM 每拍间隔 3000 ms。

为什么第一拍有重音,是怎么做的?

小节的第一拍使用 1000 Hz 的振荡器,其余各拍使用 800 Hz;两者都是正弦波,并带一段短暂的指数衰减到接近无声。标记第一拍靠的是音高差异,而不是更大的音量。

提高 BPM 应该大幅跳,还是小步走?

小步走。在当前速度下连续几遍都干净后,提高 3-5 BPM 就足以挑战双手,又不会打乱动作;大幅跳跃通常会引入错误,而这些错误随后会被一起练进去。

由 HandyTools Hub 团队审校 · 最后更新