線上鼓機的正確做法,是一款 16 步瀏覽器音序器,接受 40 到 240 之間的整數 BPM,並在播放時合成大鼓、小鼓與 hi-hat 三種音色——這種工具能讓你勾勒節拍、學習步進編曲,或在不安裝軟體的情況下測試速度。格點永遠是四個四分音符拍,分成十六個相等的十六分音符步,每一步的時長為 60 ÷ BPM ÷ 4 秒。選擇正確的作法,代表把工具與工作對應起來:若是為了編曲製作、MIDI 同步、swing、錄音或匯出,正確的作法是把這個 pattern 構想轉移到專門的音樂應用程式。《線上鼓機》是為更狹窄的工作而打造——勾勒直接的十六分音符點子,並聽見它們循環播放,這就是為何它的範圍刻意維持精簡、控制器也刻意保持極少。接下來會提供一個具體的方法,告訴你這個作法是否符合你的目標、如何逐步操作這個工具,以及它實際提供與不提供哪些功能。

依目標選擇作法
「線上鼓機」這個詞涵蓋的工具有很大的範圍,正確的作法取決於你希望從它身上得到什麼。有些讀者只想要一個能快速塗鴉十六分音符點子的草稿區,有些想練習如何一拍一拍地建構節拍,有些則需要具備 sample 級精度的製作級渲染,並附帶效果與 stems。位於 /audio/drum-machine/ 的線上鼓機,是為了前兩種工作而打造。它是一款精簡的 16 步節奏音序器,全部在瀏覽器中執行,使用合成的大鼓、小鼓與 hi-hat 音色,不需要帳號、不需要上傳,也不需要外部音訊檔。由於既不下載、也不外送任何資料,只要開啟頁面就能開始切換格子並立即聽見結果。
如果你的目標包含錄音、渲染 stems、鎖 MIDI、套用 swing,或驅動現場演出,那這就不是正確的作法。這個工具不提供上述功能,正確的作法是把你的 pattern 構想交給專門的音樂應用程式,而不是繞著缺少的控制器硬幹。第一個有用的問題是:我需要的是草稿,還是完整的編曲?若是草稿,瀏覽器音序器是正確的選擇;若是完整編曲,即使是很好的草稿,也必須離開瀏覽器。
16 步音序器是正確作法的時機
線上鼓機的格點永遠是四個四分音符拍,分成十六個相等的十六分音符步。這個單一的設計選擇,恰好對應到數個實際的使用情境:一次一格地勾勒節拍、學習一個 pattern 如何被建構,或在錄製真鼓之前確認速度感覺是否合適。如果你從未寫過節拍,正確的起步作法是把預設的 four-on-the-floor 範例當作學習對象,而不是清空格點亂猜。初始 pattern 將大鼓放在四分音符位置、小鼓放在第二拍與第四拍、closed hi-hat 放在八分音符位置。從這個範本開始著手,是在逐步取代每個格子之前,聽見步進編輯如何改變律動感的正確方式。
瀏覽器音序器可能是正確作法的第二個原因,是它完全不使用 sample 檔。這個工具在播放時,使用 Web Audio 節點即時合成全部三種音色。大鼓是一個短促的正弦波振盪器,頻率會下降、增益會衰減;小鼓使用一段新產生的雜訊緩衝區,經過高通濾波器與增益包絡塑形;hi-hat 則是更短、更安靜的雜訊爆發,並使用更高的高通截止頻率。既不下載、也不上傳任何東西,因此這個頁面不依賴任何第三方 sample 主機,也不會繼承任何第三方 sample 授權。若你的目標是在不安裝軟體的情況下測試速度或 pattern,這個作法就是正確的。若你基於授權或頻寬考量而特別想避開 sample 包,無 sample 包的替代作法指南對這種無 sample 的作法有詳細說明。
用線上鼓機編寫並播放一段節拍
以下步驟示範從空白格點到播放循環的正確操作方式。每一步都對應到產品中已驗證的控制器。
- 在 BPM 欄位輸入整數速度。這個欄位只接受 40 到 240 之間的整數十進位值。空輸入、小數分數、正負號、科學記號、單位文字與超出範圍的值,都會顯示可復原的錯誤訊息。在預設的 120 BPM 下,每個十六分音符步的時長為 60 ÷ 120 ÷ 4 = 0.125 秒,整個 16 步小節的時長為 0.125 × 16 = 2 秒。
- 切換格點中的大鼓、小鼓與 hi-hat 格子,來建構一個 pattern。每一列代表一個樂器,每一行代表一個十六分音符步。點擊任一格即可開啟或關閉該步;該格的按下狀態與無障礙標籤會一併提供給螢幕閱讀器。
- 按下 Play 開始循環播放。AudioContext 只會在第一次使用者按下之後才建立,這符合那些要求必須先有使用者手勢才能啟動音訊的瀏覽器。移動中的步框會顯示目前位置,並隨著合成的節奏循環推進。當使用者啟用減少動效 (reduced-motion) 時,步框的顏色轉場會被關閉。
- 若你想修飾節拍,可在播放進行的同時編輯格子。Pattern 編輯在播放期間仍然可用,並會被下一個排程視窗讀取,因此播放中即時修改是安全的。
- 按下 Stop 可釋放音訊並清除排程計時器;或按下 Clear pattern 來關閉全部 48 格,從無聲開始。Stop 會關閉作用中的 AudioContext,並中斷追蹤中的音訊來源連接。
若在按下 Play 之後變更 BPM,目前的播放會停止,其音訊 context 也會被釋放。重新輸入有效值並按下 Play,會從第一步乾淨地重新開始。這能避免排程器同時夾雜兩種速度繼續運作;雖然感覺像是被打斷,但這才是正確的行為。按下 Play 之前請把音量保持在適中範圍,特別是使用耳機時,因為不同輸出系統上合成的暫態尖波可能聽起來較大聲。
讀懂格點,也讀懂速度
格點是 pattern 唯一的視覺契約。三列、十六行,每格一個布林值。純粹的排程邏輯會從這個紀錄建構出確定性的步數、時間戳與作用中音軌快照,因此你看見的內容,就是 Web Audio 事件實際代表的內容。編輯一格,就足以在下個排程視窗中改變唯一一個事件;除此之外,沒有任何東西會在你底下悄悄移動。
這裡的 BPM 遵循 MusicXML 所記錄的速度定義:每分鐘的四分音符數。由於格點將每個四分音符切成四個十六分音符步,每步的時長為 60 / BPM / 4 秒。下表顯示在邊界值與預設速度下的已記錄錨點。
| BPM | 步長 (60 / BPM / 4) | 整個 16 步小節 |
|---|---|---|
| 40 | 0.375 s | 6.000 s |
| 120 | 0.125 s | 2.000 s |
| 240 | 0.0625 s | 1.000 s |
這些錨點是已記錄的產品行為,而不是估算值——它們直接由速度公式與已驗證的步進格點推導出來。40 到 240 之間的任何值都遵循相同的規則,因此 100 BPM 的步長為 60 ÷ 100 ÷ 4 = 0.15 秒,小節為 0.15 × 16 = 2.4 秒;而 180 BPM 的步長為 60 ÷ 180 ÷ 4 ≈ 0.0833 秒,小節約為 1.333 秒。播放本身使用 look-ahead 排程器:一個輕量的瀏覽器計時器每 25 毫秒檢查一次,並在 AudioContext 時間軸上提前 100 毫秒安排接下來的事件,如 Web Audio API 規格所述。可聽見的音訊來源會使用它們精確排定的 Web Audio 起始時間,而不是把 JavaScript 計時器的回呼當作節拍時鐘,這能減少一般主執行緒的時序抖動。
MusicXML sound 元素將速度定義為每分鐘的四分音符數,這與本鼓機使用的慣例相同。這種共享的定義,正是瀏覽器中 120 BPM 的循環聽起來與任何其他遵循相同定義的音序器中 120 BPM 循環一致的原因。
了解線上鼓機不會做的事
選擇正確的作法,代表知道何時該停下來、換用其他工具。線上鼓機是為直接的十六分音符點子、學習步進編曲、與測試基本脈動而打造。它不支援 swing、三連音、力度 (velocity)、重音、單軌音量、效果、錄音、匯出、MIDI 同步、任意拍號,或背景分頁的播放保證。共用的排程函式已根據八個獨立計算出來的速度錨點、完整的 16 步循環、精確的事件位移,以及「三軌各十六個布林值恆存在」的結構不變式進行測試,但這些測試驗證的是已記錄的範圍,而不是一份功能許願清單。
由此衍生出兩個實際意涵。第一,如果你需要編曲製作、精確的跨裝置同步、渲染 stems 或延遲校正,正確的作法是把 pattern 概念交給專門的音樂應用程式,而不是與瀏覽器硬拚。第二,合成音色會因瀏覽器的音訊實作、輸出硬體、取樣率,以及每次小鼓或 hi-hat 觸發時隨機產生的雜訊,而略有不同;因此你在某部機器上聽到的內容,可能無法與另一部機器完全一致。這個工具也不是 AudioWorklet 引擎,並未承諾跨裝置達到 sample-identical 的渲染:瀏覽器嚴重節流、分頁暫停、裝置變更與高系統負載,都仍可能影響播放。這些與其說是缺陷,不如說是輕量瀏覽器音序器所能保證的界線。
挑選合適的起始節奏型與速度
合適的起始節奏型很少是一張空白格。預設的四拍底鼓範例是經過驗證、測試過的起點,清除它應該是有意識的選擇。一個實用的經驗法則是:先設定一個速度,聆聽預設循環,然後一次替換一個格子,直到節奏型符合你的想法。較低的速度(接近 40 BPM 邊界,每一步持續 0.375 秒)適合勾勒半拍的想法,或學習在一小節中底鼓和小鼓的位置。預設的 120 BPM 適合用來測試流行、搖滾與浩室節奏型,因為每一步是舒適的 0.125 秒。接近上邊界、靠近 240 BPM 的速度(每一步僅 0.0625 秒)適合用來處理快速的、密度高的十六分音符律動,不過編輯必須精確落點,因為可聽見的時間窗非常短。
初學者通常在 80 至 120 BPM 範圍內,搭配預設節奏型作為第一課,會有最好的表現。如果你想要為首次使用者準備的更引導式教學,專為初學者設計的節拍製作器逐步教學會從不同角度介紹同一個工具。格狀介面的設計,是要讓十六個步驟都能在狹窄螢幕上使用,而不會把觸控目標縮成難以辨識的小點;橫向捲動能在手機大小的視窗中保留步驟目標。選擇合適方法的關鍵,不在於找到最強大的工具,而是讓工具與任務對應。為了勾勒十六分音符循環、學習節拍如何組成,或是在不安裝軟體的情況下測試速度,線上鼓機就是合適的工具——而合適的做法是:從預設節奏型開始、一次編輯一個格子、維持在 40 到 240 BPM 範圍內,並把停止與清除節奏型視為兩個重置點,以保持排程的整潔。