在线节拍器

浏览器里的稳定节拍器,支持跟拍测速和强弱拍,点击声排在音频时钟上,节拍不会越走越偏。

120BPM

点击声是排在音频时钟上的,不是用定时器触发的,所以页面再忙节拍也不会飘。每小节第一拍有重音。

节拍器 怎么用

  1. 1用滑块、预设,或者跟着你想要的节拍点几下来设定速度。
  2. 2选每小节几拍。每小节第一拍的音会高一些。
  3. 3点开始。运行中改速度会立刻跟上。

在线节拍器通常为什么会飘,这个为什么不会

这是"能用的网页节拍器"和"让人上火的网页节拍器"之间唯一的区别,值得搞明白。

最直觉的做法是用 setInterval,每 60/BPM 秒响一声。这行不通。setInterval 是一个请求,不是承诺: 回调要等主线程下一次有空才跑,在任何真实页面负载下这就意味着晚几毫秒。而下一声又是相对"上一声实际 响的时刻"来排的,误差于是不断累积。一分钟之内节拍就明显偏了,而页面只要干点什么(一次渲染、一次 垃圾回收),你就能听见它绊一下。

解法是别把主线程当时钟。Web Audio 有它自己的时钟,由音频硬件驱动、精确到采样。所以这里不是"定时器 一响就播一声",而是提前把点击声按精确时刻排到那个时钟上。一个循环每 50 毫秒醒一次,往前看四分 之一秒,把这个窗口内该响的都预约掉。主线程晚不晚已经不重要了,因为它只负责预约,不负责准点。

听起来的结果就是:速度就是那个数字说的速度,一直如此。

节拍器 跟拍测速、每小节拍数和重音

每小节第一拍的音比其余的高,这样你能听出小节从哪儿开始,不用靠数来保持方位感。

把"每小节拍数"设成你的拍号:4/4 用 4,圆舞曲用 3,6/8 的感觉用 6,进行曲用 2,需要细分时用 8。 你按四拍演奏却设成 2 也照样能用,只是重音出现得频繁一倍。

配着画面用

如果你在按音乐剪片子,速度就是你的剪切点该落上去的那张网格。把曲子的 BPM 找出来设在这里,划时间 线的时候就有一个能听见的参照,往往比数帧快。

这几个算术值得记住:120 BPM 时一拍是 0.5 秒,在 24fps 下是 12 帧,30fps 下是 15 帧;四拍一小节在 24fps 下是 48 帧。按小节剪而不是按拍剪,才是让一段剪辑显得"有结构"而不只是"有节奏"的原因。

音量,以及关于点击声的一句提醒

音量从中等开始。这个点击声是一段很短的方波脉冲,刻意做得尖,为的是能穿透乐器的声音;而这也让它在 大音量下、长时间练习中相当伤耳朵。

不安装任何东西,也不录任何东西。这个工具完整地存在于这个页面里。

常见问题

为什么有些网页节拍器会越走越偏,这个不会?
因为定时器不是时钟。setInterval 是主线程空下来才触发,只要页面有点负载它每次都会晚几毫秒,而这些误差会累积。这里的做法是提前把每一声排到音频时钟上,那个时钟精确到采样,不受页面负载影响。
重音是干什么的?
它把每小节第一拍的音调高,让你不用数也能听出小节从哪儿开始。把"每小节拍数"设成你的拍号:4/4 用 4,圆舞曲用 3,复合拍用 6。
我切到别的标签页还能用吗?
标签页在后台时声音会继续,但浏览器会限制隐藏标签页里的定时器,排程可能变得不均匀。真的要跟着练琴,就让这个标签页保持可见。
跟拍测速需要点很多下吗?
最少三下,越多越准。超过中位间隔两倍的离群值会被丢掉,所以偶尔晚点一下不会把结果带偏。停几秒不点就会重新开始计。

更多免费工具