瀏覽器節拍器的精準度取決於一個簡單公式:60 除以 BPM,得到每次點擊的秒數,再加上瀏覽器排程器所產生的計時抖動。60 BPM 時,間隔正好是 1 秒;120 BPM 時,間隔是 0.5 秒;240 BPM 時,間隔是 0.25 秒。這些數字來自每分鐘節拍數的定義,因此任何誠實的工具所報告的長期速度,都會與您輸入的值相符。不同工具之間的差異,在於每次點擊能有多接近理論時間。背景分頁、忙碌的 CPU 執行緒、省電模式、Bluetooth 音訊路徑,或作業系統本身的時鐘,都可能讓排程的回呼延遲數毫秒。Online Metronome 透過 Web Audio API 排程每次點擊,因此比 JavaScript setInterval 計時器具有更嚴密的計時,但仍然是瀏覽器時鐘,而非取樣精準的錄音室時鐘。長期維持穩定平均速度,與精確定位每次即時點擊之間的差異,正是線上節拍器精準度的核心問題,也決定了這個工具是否足以應付眼前的演奏工作。

瀏覽器節拍器背後的數學原理
每個節拍器,無論實體或數位,都依據相同的算式計算間隔。1 分鐘有 60 秒,而 BPM 值會告訴您該分鐘內要容納多少節拍,因此以秒計的每個間隔,正好就是 60 除以 BPM。Online Metronome 直接執行這項除法。它會驗證 BPM 是否為 30 至 240 的整數,以 60 除以該值,再依據結果排程下一次回呼。由於計算方式與舞台節拍器或數位硬體裝置所使用的相同,經過多分鐘後,平均速度不會逐漸偏離您設定的值。
下表列出此公式在涵蓋工具完整 30–240 範圍的代表性 BPM 值下所產生的精確間隔。
| BPM | 間隔(秒) | 60 秒內的點擊次數 |
|---|---|---|
| 30 | 2.0000 | 30 |
| 40 | 1.5000 | 40 |
| 60 | 1.0000 | 60 |
| 90 | 0.6667 | 90 |
| 120 | 0.5000 | 120 |
| 160 | 0.3750 | 160 |
| 200 | 0.3000 | 200 |
| 240 | 0.2500 | 240 |
這些不是測量值,而是直接依公式計算所得。「60 秒內的點擊次數」欄只是用 60 除以間隔。表格無法呈現的是抖動,也就是每次點擊落在理想時間點附近時的細微變化。瀏覽器端的精準度,正是數學原理讓位給實際排程之處。
哪些因素會影響瀏覽器分頁的計時精準度
瀏覽器並非即時作業系統。當您要求它從現在起 0.5 秒後排程回呼時,底層排程器會設法遵循,但幾種常見情況會讓實際呼叫延後。
- 背景分頁。大多數瀏覽器會對未查看的分頁中的計時器進行節流,因此當您閱讀其他分頁時,節拍器可能遺失節拍或拉長間隔。
- 省電模式。使用電池的筆電、低耗電模式下的手機,以及部分桌上型電腦的電源設定檔,也會降低計時解析度。
- 忙碌的主執行緒。如果分頁正在解碼音訊、轉譯複雜頁面,或執行大量 JavaScript,下一次排程回呼可能會一直等到執行緒有餘裕時才執行。
- Bluetooth 與無線音訊。音訊路徑本身會增加延遲,而且延遲在每個封包之間並不完全穩定。
- 作業系統排程。macOS、Windows、Linux 及行動作業系統全都採用各自的時鐘校準機制,而瀏覽器會繼承這些機制。
- 音訊緩衝區大小。較小的緩衝區代表延遲較低,但 CPU 壓力較大;較大的緩衝區代表播放較穩定,但存在播放程式無法縮小的固定偏移。
對大多數練習工作而言,這些因素都不會造成問題。速度會維持在足夠接近您設定的 BPM,讓您能掌握樂曲、練習音階,或排練節奏練習。需要取樣精準地與其他裝置對齊時,這些因素就很重要,例如與同一部電腦上執行的 DAW、硬體合成器,或您匯入的伴奏音軌對齊。這些工作流程需要瀏覽器無法提供的共用時鐘。
Online Metronome 如何產生每次點擊
Online Metronome 完全在目前的瀏覽器分頁中執行。它不會上傳音訊、要求麥克風權限,也不會為了發出聲音而連線至伺服器。每次點擊都是新建立的振盪器,搭配短促的增益包絡,並透過 Web Audio API 的 AudioContext 進行排程。每小節的第 1 拍以 1320 Hz 播放,其餘拍以 880 Hz 播放,因此點擊本身具有內建重音,讓耳朵能夠辨識,而無須變更任何設定。這些頻率是說明產品提示的線索,用來指出哪一拍是第 1 拍,並不代表標準音高、音符名稱、調音系統或理想的練習聲音。
增益從保守的 0.2 開始,並在 50 毫秒內以指數方式衰減至 0.001;振盪器會在 60 毫秒後停止,避免舊節點累積在記憶體中。視覺計數器會依所選的小節長度安全地循環,因此顯示的拍數永遠符合實際聲響。間隔會依驗證過的 BPM 計算 1 次,再依該間隔排程下一次 JavaScript 回呼。依 W3C 的 Web Audio API 規格所述,Web Audio 排程比一般的 setInterval 計時器更嚴密,但仍會受到上述相同的節流與延遲情況影響。依 OscillatorNode 的 MDN 文件所述,每次點擊都是全新的節點,當其包絡結束時,音訊情境會自動將其清除。
設定 Online Metronome,進行穩定練習
- 請在練習期間會維持於前景的瀏覽器分頁中開啟 Online Metronome。
- 在 BPM 欄位中輸入 30 至 240 的整數速度。不要加入小數、正負號、空格或單位;只接受 30 至 240、未去除前後空白的整數。
- 從 1 至 12 中選擇每小節拍數,使其符合您正在練習的拍號。
- 按下 Start。瀏覽器會建立或重複使用 AudioContext,並立即排程第 1 次點擊。
- 聆聽第 1 拍較高的音高,接著讓小節中的其餘拍以較低音高點擊。
- 開始演奏。如果戴著耳機,請先維持分頁於前景,並將裝置音量調低。
- 完成後,請在離開頁面前按下 Stop。Stop 會關閉音訊情境、清除下一次已排程的點擊、重設視覺拍數計數器,並讓工具返回停止狀態。
在按下 Start 後編輯任一值,會在新值生效前停止播放,如此可避免顯示速度與使用中的計時器逐漸偏離。
在 60 秒內驗證點擊速度
如果想知道瀏覽器實際提供的速度,請進行 1 分鐘計數,並與牆上時鐘或手機碼錶比較。使用 120 BPM,計算就會很簡單。間隔為 60 除以 120,也就是每次點擊間隔 0.5 秒;而 60 除以 0.5 等於 1 分鐘內點擊 120 次。啟動節拍器,在第 1 次可聽見的點擊時啟動碼錶,並持續計數直到碼錶顯示 60.0 秒。計數會直接告訴您實際傳送的速度:120 次點擊代表 120 BPM,118 次點擊代表工具速度約慢 1.7 百分比,122 次點擊則代表速度約快 1.7 百分比。
請在分頁維持於前景且不開啟其他內容的情況下執行測試,以取得最純粹的讀數。若在背景分頁中重複測試,計數很可能會減少,因為瀏覽器正在節流計時器。以 60 BPM(每秒點擊 1 次)執行 1 次,再以 180 BPM(每次點擊間隔 0.333 秒)重複執行,即可實際了解瀏覽器、裝置與音訊路徑如何處理穩定速度的工作。
線上節拍器無法取代什麼
線上節拍器很清楚自己的定位。Online Metronome 適合一般練習、音階、節奏練習、視奏,以及概略的速度參考。它不是聽力防護裝置、經校準的聲壓來源、醫療裝置或臨床計時儀器。它不宣稱具備 DAW 同步、MIDI 時鐘輸出、點擊速度分析、延遲校準、細分模式、搖擺、複節奏或錄音對齊功能。背景分頁、省電模式、忙碌的主執行緒、Bluetooth 延遲、瀏覽器政策及作業系統排程,全都可能延遲可聽見的點擊。如果您的工作需要與 DAW 時間軸進行取樣精準的對齊,請改用 DAW 內建的點擊功能。如果您只需要以已知 BPM 取得穩定脈衝來練習,Online Metronome 是低門檻的解決方案,無須安裝軟體或上傳音訊。