madderscientist/noteDigger

在线前端频谱分析扒谱 front-end music transcription

noteDigger – 前端音訊轉MIDI工具

功能說明

  • 一個純JavaScript網頁應用,支援上傳音訊(或影片)檔案,可視化其頻譜圖,並手動或自動提取音樂音符。
  • 提取的音符可透過豐富的滑鼠/鍵盤快速鍵進行編輯,然後匯出為標準MIDI檔案,或儲存為可後續繼續編輯的自訂二進位「.nd」專案檔案。

為何重要

  • 多數音訊轉MIDI工具是重量級桌面程式或雲端服務。noteDigger 完全在瀏覽器中執行,無需外部函式庫或框架,因此體積極小(僅幾MB),但仍提供高階功能,如GPU加速的STFT/CQT、基於神經網路的轉錄、以及諧波去除。
  • 透過將整個工作流程保留在客戶端,保護使用者隱私(音訊從不離開本機),並在初始頁面載入後支援離線使用。

核心功能(詳見README)

功能 工作方式 / 提供內容
音訊匯入 支援拖曳或檔案選單上傳MP3、WAV,甚至影片檔案(MP4、MOV等)。
頻譜圖分析 實時STFT;可選CQT(恆Q變換),可透過WebGPU實現GPU加速。
自動處理 • 使用NNLS(非負最小平方法)進行諧波去除,以增強基頻。
• 使用傳統訊號處理演算法進行節拍追蹤與速度檢測。
• 使用兩個ONNX模型進行AI輔助轉錄:basicamt(與樂器無關的音高轉錄)和 septimbre(樂器分離轉錄)。
手動編輯 可在時間-頻率畫布上直接繪製音符;支援移動、拉伸、複製/貼上、刪除、鎖定軌道。所有常見快捷鍵(Ctrl-Z/Y、Ctrl-C/X/V等)均受支援。
量化與對齊 兩種匯出模式:(1) 保留原始音符位置(秒)以實現「邊聽邊畫」工作流程;(2) 根據使用者設定的精確度x量化到音樂節拍單位,支援按小節設定BPM變更。
MIDI匯入/匯出 可匯出為標準MIDI(類型1,多軌),支援自訂速度與量化。可匯入現有MIDI檔案;音符將映射至軌道,速度預設為127。
專案儲存 二進位「.nd」檔案儲存頻譜圖、音符、軌道和小節資訊,便於後續重新開啟。
使用者介面 現代化、無框架UI,支援軌道拖曳、右鍵上下文選單、鋼琴卷軸檢視,以及頂部工具列用於切換工具(如節拍對齊、小節對齊)。
效能優化技巧 降低重繪頻率,使用者任意操作後統一刷新,以及使用「tinySynth」JavaScript合成器即時播放編輯後的音符。

典型工作流程(來自README摘要)

  1. 在現代瀏覽器(推薦Chrome)中開啟應用。
  2. 上傳音訊檔案並選擇分析方式(STFT或CQT;如有GPU則啟用)。
  3. 運行可選自動步驟:節拍檢測 → 諧波去除 → 調性檢測。
  4. 點擊「AI轉錄」按鈕(「人工智障扒譜」)生成初始音符圖譜。
  5. 手動優化結果:將音符對齊節拍、合併小節、鎖定軌道等。
  6. 將最終結果匯出為MIDI檔案(量化用於樂譜)或儲存專案以供後續編輯。

技術亮點

  • WebGPU加速CQT – 即使在整合式顯示卡上也能顯著提升恆Q變換速度。
  • 瀏覽器內ONNX Runtime – 無需伺服器即可執行兩個預訓練神經網路,實現音高轉錄與樂器分離。
  • 非負最小平方法(NNLS) – 經典優化方法,用於減去諧波成分並突出基頻。
  • 純JS架構 – 無React/Vue等框架;所有UI元件均為手寫JS類別,保持打包體積極小。

適用對象

  • 希望快速、私密地從錄音中提取音符的音樂人。
  • 在瀏覽器中探索音訊訊號處理的教育者或學生。
  • 尋找客戶端頻譜圖可視化、基於WebGPU的CQT或JavaScript中ONNX推理參考實作的開發者。

試用方式


以上所有資訊均直接來自倉儲的README;未推斷任何額外功能。

相關

  • 專案
  • 專案
  • 專案
  • Dispatch
  • Dispatch