介於 30 到 240 BPM 之間的整數 tempo,以及介於 1 到 12 之間的每小節拍數,是啟動 線上節拍器 唯一需要的兩個輸入值,任何其他輸入都會在排程任何一次點擊之前就通過不了驗證。在練習過程中出現的大部分錯誤並不是大聲、戲劇化的失敗;它們是在輸入框被靜靜地拒絕,或是螢幕上的數字與房間裡的點擊聲出現微妙的偏差。有些使用者輸入「120.5」並期望系統會將其無條件捨去為 120,結果卻什麼都聽不到。有些使用者在點擊聲仍在播放時編輯 tempo 框,看著拍子計數器在小節中間凍結。還有一些人在手機上載入頁面,切換到其他應用程式後再切回來,結果點擊聲變成每隔幾秒響一次,而不是每四分之一秒響一次。這些情況各自都有其在節拍器建構方式上的明確成因,而不是一般的當機問題,而且每一種情況也都有不需要重新載入頁面或隨意猜測的明確解決方法。

輸入框中的驗證規則之所以嚴格,是因為靜默地進行四捨五入或上限截斷會掩蓋使用者的錯誤,讓練習時間變得不可靠。在編輯時以及離開頁面時的清理行為是有意設計的,因為在使用者離開後仍持續運作的音訊環境會產生幽靈點擊聲,並浪費排程的工作。了解這些規則後,「節拍器突然停了」就會變成「我在播放中途編輯了一個值,這導致音訊環境被關閉並重設了視覺計數器」。本文的其餘部分將逐步說明哪些輸入會啟動節拍器、哪些會失敗及其原因、如何毫無意外地輸入數值、為什麼編輯會停止播放、重音如何讓小節邊界變得可聽見、在真實的瀏覽器中是什麼因素讓點擊變慢,以及 Stop 如何在離開頁面之前完成清理。

how do i avoid mistakes when i use online metronome
使用線上節拍器時如何避免錯誤

會啟動點擊的輸入與會失敗的輸入

輸入框看起來無害,但它是最常出現錯誤的第一個地方。Tempo 和每小節拍數會以未去除空白的完整十進位整數進行驗證,簡單來說就是「輸入整數,不要加任何裝飾」。以下簡短的範例清單顯示驗證器接受哪些輸入,以及直接拒絕哪些輸入。

輸入結果
120接受,從 120 BPM 開始
60接受,每秒一次點擊
240接受,每 0.25 秒一次點擊
30接受,每 2 秒一次點擊
120.0拒絕,包含小數點
120 BPM拒絕,結尾帶有單位文字
1.2e2拒絕,指數記號
+120拒絕,帶前置正負號
" 120"拒絕,帶前置空格
29拒絕,低於 30 BPM
241拒絕,高於 240 BPM
(空白)拒絕,缺少數值
0拒絕,低於 30 BPM

同樣的規則也適用於每小節拍數框,只是接受的範圍是 1 到 12,而不是 30 到 240。輸入 4 會被接受,輸入 0 會被拒絕,輸入 13 會被拒絕,輸入 3.5 也會被拒絕。這是最容易避免的錯誤:在按下 Start 之前先回頭檢查輸入的值,而如果在按下 Start 之後頁面仍然沒有聲音,輸入框就是第一個該檢查的地方。

正確無誤地設定 Tempo 與拍數

  1. 在目前的瀏覽器分頁中開啟線上節拍器,以確保 Web Audio API 可用,且該分頁並未被切換到背景執行。
  2. 輸入一個介於 30 到 240 BPM 之間的整數 tempo,不要包含空格、正負號、小數點或結尾文字。
  3. 以相同的嚴謹態度輸入一個介於 1 到 12 之間的整數作為每小節拍數。
  4. 選擇 Start。工具會關閉任何舊的音訊環境,建立一個新的環境,並依據計算出的間隔排程第一個點擊。
  5. 聆聽第一拍上較高的重音,以及其餘拍子上較低的音高,兩者共同標示出小節的邊界。
  6. 只有在選擇 Stop 之後才能編輯任一欄位。在播放進行中編輯值會先停止點擊,因此下一次 Start 會從乾淨的狀態使用新的值。
  7. 在離開頁面之前選擇 Stop,以便關閉音訊環境,並避免在分頁被切到背景後產生幽靈點擊聲。

這個流程就是單一練習段落所需的完整程序。應避免的錯誤是在變更 tempo 之前跳過 Stop 步驟,這將在下一節中說明。

為什麼編輯值會停止播放

第二個常見的錯誤是在點擊進行中編輯 tempo 或小節框。該工具將對任一欄位的編輯視為停止事件:它會清除已排程的計時器、關閉音訊環境,並重設視覺拍子計數器。從使用者的角度來看,點擊就是突然停止,而且頁面看起來像是忘了自己在做什麼。

其原因在於,排程下一次點擊的計時器是在 Start 時根據已驗證的 tempo 所建構的。如果 tempo 框在播放進行中仍可編輯,顯示可能會顯示 120 BPM,但計時器仍以舊的 90 BPM 間隔觸發,導致可見的數字與可聽的 tempo 產生偏差。同樣的邏輯也適用於每小節拍數框:整數計數器會依目前的小節長度進行循環,因此在播放中途變更長度會讓循環點與重音位置在使用者腳下產生錯位。

實際的結果是,編輯動作扮演了安全停止的角色。需要在中途變更 tempo 的使用者應採用「停止、編輯、啟動」的節奏。將編輯框視為即時生效雖然感覺更順暢,但這正是該工具刻意設計來防止的錯誤。

第一拍重音與小節邊界

第三類錯誤與聆聽有關,而不是與輸入有關。第一拍使用 1320 Hz 的點擊聲,其餘拍子則使用 880 Hz。這個對比是有意設計的:一個四拍的小節會有一個較高的點擊聲,後面接著三個較低的點擊聲,因此即使不盯著視覺計數器,也能聽出小節之間的邊界。

使用者有時會反映「節拍器聽起來很平淡」或「我聽不出第一拍在哪裡」。這通常是喇叭、耳機或裝置等化器將 1320 Hz 與 880 Hz 之間的差異壓平所造成的徵兆。這兩個音高是固定的產品提示,而不是對標準 A440 調音的宣稱,因此如果等化把 1 kHz 以上的頻率全部消除,重音就會消失。如果在某個房間中難以聽出小節邊界,下一步可以閱讀有關 線上節拍器的重音與點擊頻率 的深入指南。

點擊時序與讓它變慢的因素

第四個錯誤是把點擊當作取樣級精度的錄音室時鐘。瀏覽器會根據計算出的間隔排程下一次 JavaScript 回呼,但分頁在背景執行、省電模式、繁忙的主執行緒、藍牙音訊連線以及作業系統的排程,都可能延遲實際可聽見的點擊。在 60 BPM、間隔一秒的情況下,這種延遲幾乎難以察覺;但在 240 BPM、間隔四分之一秒的情況下,同樣的延遲可能會讓一個拍子在聽覺上被拉長。關於 線上節拍器在瀏覽器分頁中的時序 的深入說明,涵蓋了在實務中造成漂移的各種條件。

這個節拍器適用於音階、節奏練習、視奏以及粗略的 tempo 參考,但它不是 DAW 同步來源、MIDI 時脈,也不是 tap-tempo 分析工具。間隔是由 60 除以 BPM 所固定,下表即為該換算結果。

BPM間隔(秒)備註
302.000可接受的最慢 tempo
601.000每秒一次點擊
900.667常見的中等練習 tempo
1200.500常見的快速練習 tempo
1800.333快板範圍
2400.250可接受的最快 tempo

以 120 BPM 搭配 4 拍小節為例:點擊間隔為 60 除以 120 等於 0.5 秒,因此一個完整的小節從一個第一拍重音到下一個第一拍重音共歷時 4 × 0.5 = 2 秒。這個數字直接來自公式,並非四捨五入後的估計值。每個 振盪器節點 都會以 60 毫秒的停止時間建立,並具備一個在 50 毫秒內從 0.2 衰減至 0.001 的增益包絡,因此即使在 BPM 範圍的最高端,舊節點也不會累積。

停止點擊與清理音訊環境

第五個錯誤是在關閉分頁時讓點擊繼續執行。Stop 控制項會關閉音訊環境並取消下一次已排程的點擊,而當元件卸載時也會執行相同的清理。在大多數瀏覽器中,未按下 Stop 就離開頁面並不會產生明顯的爆音,但它可能會留下一個已排程的回呼,該回呼會在一個已不再連接到喇叭的環境中觸發,這對該分頁來說是浪費的工作。

在離開頁面之前、編輯欄位之前、長時間切換到其他瀏覽器分頁之前,以及在闔上筆電之前按下 Stop,是支援的標準做法。同步的播放守衛也會防止重複啟動,因此連按兩次 Start 並不會排程兩個重疊的點擊串流。如果 Web Audio 無法使用或啟動被拒絕,畫面上會顯示錯誤,且不會留下任何殘留的播放狀態。Web Audio API 規範描述了任何瀏覽器內建音訊來源的相同生命週期。

Stop 是最小且最一致的習慣,卻能防止最長的「為什麼我的瀏覽器分頁一直發出聲音」這類錯誤。