專為打草稿設計的線上鼓機,通常不會設計來匯出、錄音、加入 swing,或同步 MIDI,而 線上鼓機 在 Lizely 上也不例外,它的範圍僅限於一個直接的 16 步合成 kick、snare 和 hi-hat 循環。這個工具完全在瀏覽器中使用 Web Audio 執行,在播放時即時產生每個聲音,並只公開一組刻意精簡的互動:輸入整數 BPM、切換儲存格、設定點 Play、設定點 Stop,以及設定點 Clear pattern。沒有存檔功能、沒有 WAV 渲染按鈕、沒有錄音層、沒有 swing 滑桿、沒有每一步力度,也沒有 MIDI 輸入或輸出。在開啟頁面之前,將這個工具視為快速打草稿的平台而非成品工具,是對其期望最誠實的定位方式,因為所有能讓循環離開瀏覽器或與外部設備通訊的功能,都被刻意省略了。提早知道這一點能省下時間,因為它會告訴你何時該把這個節奏點子搬到專門的音樂應用程式中,而不是去尋找一個永遠不會出現的按鈕。

can i export record add swing or connect midi when i use online drum machine
線上鼓機:匯出、錄音、MIDI 與 Swing 的限制

線上鼓機的設計目的

對 Lizely 上的線上鼓機而言,這個問題的答案全面是否定的。該頁面自我描述為一個完全在瀏覽器中運作的精簡 16 步節奏音序器,光是這一句話就定義了它存在的全部理由。它的目的是幫助你勾勒一個直接的十六分音符點子、瞭解步進音序如何在格子上鋪出節拍,或測試一個基本脈搏在某個選定 BPM 下感覺是否正確。

三個音軌被公開,kick、snare 和 closed hi-hat,橫跨一個固定的十六步格子,代表四個四分音符再細分為十六分音符子步。每個聲音都在播放時即時合成,所以 kick 是一個短暫的正弦振盪器,其音高與增益快速衰減;snare 是一個新產生的噪音緩衝區,經由高通濾波器塑形;hi-hat 則是一段更短、更安靜的噪音爆破,帶有更高的截止頻率。這些音色都不是實體鼓的錄音,過程中也沒有下載或上傳任何音色庫。

由於這個工具完全存在於瀏覽器分頁中,並圍繞 Web Audio 建構,介面範圍刻意保持精簡。沒有專案檔、沒有 stem 匯出、沒有 take 錄音,也沒有向 DAW 傳送時脈訊號。重點在於一鍵即可就緒,無需註冊、無需安裝,除了頁面本身之外也沒有任何網路擷取。

為何匯出、錄音、Swing 和 MIDI 不在範圍內

問題中提到的每一項功能,都會把這個工具從打草稿平台變成一個小型錄音室,而線上鼓機背後的設計契約明確地將它們排除在外。錄音和匯出需要擷取即時的 AudioContext 輸出到可下載的檔案,這表示必須在記憶體中保留一個長時間運作的緩衝區,並編寫 WAV 編碼器。這些工作被刻意跳過,以保持頁面輕盈,並讓循環引擎專注於單一排程迴圈。

Swing 之所以缺失有結構性的原因。在步進音序器中,Swing 是透過將每隔一個十六分音符拉長超出嚴格格子來實作的,通常以百分比位移延遲偶數步。線上鼓機的格子固定為每個四分音符四個十六分音符步,且沒有每步的時間變數,而排程窗口的建立假設每一步的長度恰好為 60 除以 BPM 再除以 4 秒。新增 swing 將意味著重寫步進運算與共享排程函式,這會破壞工具所測試的確定性步數、時間戳記與作用中音軌快照。

MIDI 同步同樣不在範圍內。Web Audio API 公開了 AudioContext 時鐘,但這個工具不傳送或接收 MIDI 訊息、不路由 MIDI clock,也不鎖定外部節奏來源。沒有 Web MIDI 銜接、沒有虛擬連接埠,也沒有辦法將音序器從屬於硬體控制器,或將 Transport 訊息推送到 DAW。將事件擺放到 AudioContext 時間軸上的 look-ahead 排程器僅供內部使用。

結果就是一個其功能可以用一行列完的工具。任何尋找成品後製、跨裝置的取樣精準同步,或已存檔專案的人,應該計畫將節奏點子在別處重建,而不是去等那些按鈕出現。

如何在線上鼓機中建立節拍

以下是這個工具實際支援的完整工作流程,依照你從空白分頁開始使用的順序排列。

  1. 在最新版的瀏覽器中開啟線上鼓機。開始前不需要帳號、上傳,也無需下載音色。
  2. 在 BPM 欄位中輸入整數 BPM,數值範圍為 40 到 240 BPM 之間。該欄位會拒絕空白的輸入、小數、符號、科學記號、單位文字,以及超出範圍的值,因此輸入受到嚴格限制。
  3. 在十六步格子上切換 kick、snare 和 hi-hat 儲存格以建立你的節奏。每次點擊會在對應的十六分音符步上將該樂器開啟或關閉,格子永遠代表四個四分音符拍再細分為十六個等分子步。
  4. 設定點 Play 開始循環播放合成的節拍。AudioContext 只會在按下此按鈕後才建立,以符合瀏覽器在音訊啟動前需要使用者手勢的要求。移動中的步驟外框會在循環時顯示目前位置。
  5. 在播放時編輯節奏。切換的變更會被下一個排程窗口讀取,並在正確的格子位置上套用,無需重新開始。
  6. 設定點 Stop 釋放音訊。排程計時器會被清除,所有追蹤的 source 節點會被停止並中斷連接,AudioContext 也會被關閉。
  7. 設定點 Clear pattern 關閉全部 48 個儲存格。格子會回到無聲狀態,讓你無需重新載入頁面即可開始新的點子。

預設載入的節奏是一個四拍底板的範例:kick 在四分音符位置,snare 在第二拍與第四拍,closed hi-hat 在八分音符位置。這只是一個起點,並非限制,你可以一次替換任何一個儲存格。

每一步背後的 BPM 運算

這個工具中的 BPM 指的是每分鐘四分音符數,這與 MusicXML 用於 tempo 的慣例相同,其中 sound 元素設定每分鐘四分音符的數量。因此一個四分音符持續 60 除以 BPM 秒,而每個十六分音符步持續其四分之一,即可得到公式:每步 60 除以 BPM 再除以 4 秒。

120 BPM 的計算範例:

  • 四分音符持續時間:60 除以 120 = 0.5 秒。
  • 十六分音符步:0.5 除以 4 = 0.125 秒。
  • 完整 16 步小節:0.125 乘以 16 = 2 秒。

下表列出邊界與中間 BPM 下的步與小節持續時間。這些直接來自公式,四個端點與工具本身 BPM 錨點所揭露的數值一致。

BPM步持續時間 (60 / BPM / 4)16 步小節
400.375 s6.000 s
600.250 s4.000 s
1200.125 s2.000 s
1800.0833 s1.333 s
2400.0625 s1.000 s

從這個運算會衍生出兩個實際結果。首先,播放時變更 BPM 會停止當前的執行並釋放 AudioContext,因為讓一個 BPM 下的已排程事件與新的排程器重疊,會混合兩個時鐘。輸入介於 40 到 240 之間的有效整數,然後再次設定點 Play,即可從第一步乾淨地重新開始。其次,BPM 範圍是一項刻意的可用性與排程保護措施,並非對音樂所能達到之事的聲明。如果你需要的 BPM 超出該範圍,這個工具就不是適合那些功能的打草稿平台。

播放期間可以與不能變更的內容

可編輯與固定的界線很窄,因此明確列出會有所幫助。播放期間,你可以切換任何 kick、snare 或 hi-hat 儲存格,排程窗口會在擺放下一批事件之前讀取新的作用中音軌快照,因此編輯會精確落在格子上。移動中的步驟外框僅保留顏色與外框,當請求減少動效時,顏色過渡會被停用,這使得可見狀態在每個裝置上都可預測。

你無法在不停下的情況下變更 BPM。輸入新值會停止播放、釋放 AudioContext,並等待下一次設定點 Play。你無法變更拍號,因為格子固定為四個四分音符。你無法新增每步力度或重音,因為每次觸發都使用相同的包絡形狀。你無法啟用 swing、三連音,或每軌音量。你無法錄製你聽到的內容,也無法匯出 WAV 檔案。你無法路由 MIDI 輸入或輸出,也沒有背景分頁的保證,因為被節流的分頁可能會降低排程精度。

如果 Play 因瀏覽器阻擋音訊初始化而失敗,工具會顯示一則可恢復的訊息,並讓你重試,而不是假裝播放成功。Stop、重新開始、播放錯誤以及元件卸載,都會清除計時器、停止並中斷連接已追蹤的 source 節點,並關閉 AudioContext,因此頁面在多次嘗試之間不會洩漏音訊資源。

何時將節奏搬到專門的音樂應用程式

當草稿變成你想保留的東西時,線上鼓機就是用來被留在身後的工具。它的輸出是你腦中的點子加上你在格子上留下的節奏,而不是已存檔的檔案。在完整的音樂應用程式中重建那個節奏,才是延伸這項工作的支援方式,而相同的步驟與 BPM 方法可以直接轉移。

若要在沒有節拍的情況下進行背景計數,搭配的 線上節拍器 提供從 30 到 240 BPM、每小節一到十二拍的重音點擊,這在你判斷新的 BPM 範圍是否真的需要時,是很實用的參考。若需更深入的排程細節與步進時機背後的運算,BPM 運算與排程指南 會更深入地解釋相同的 60 除以 BPM 再除以 4 的關係。關於 tempo 的正式定義,W3C MusicXML 4.0 sound 元素 是本工具所遵循的規格,而 W3C Web Audio API 1.1 文件則定義了產生合成音色所用的振盪器與噪音節點。

誠實的定位是:輕量級的線上鼓機是打草稿的平台,而非編曲工具。匯出、錄音、swing、力度、效果,以及 MIDI 同步,都屬於下一步的工作,而提早轉向專門的應用程式,才能讓草稿保持誠實。

若需更深入的瞭解,請參閱 線上鼓機:鼓聲如何在瀏覽器中產生。