madderscientist/noteDigger
在线前端频谱分析扒谱 front-end music transcription
noteDigger – フロントエンド音声からMIDIへの変換ツール
何ができるか
- 音声(または動画)ファイルをアップロードし、スペクトログラムを可視化して、手動または自動で音符を抽出できる純JavaScriptのウェブアプリ。
- 抽出された音符は、豊富なマウス/キーボードショートカットで編集でき、標準MIDIファイルまたは後で再開できるカスタムバイナリ「.nd」プロジェクトファイルとしてエクスポート可能。
なぜ重要か
- 多くの音声からMIDIへの変換ツールは重いデスクトップアプリやクラウドサービスである。noteDiggerは完全にブラウザ内で動作し、外部ライブラリやフレームワークを必要とせず、わずか数MBの軽量サイズで、GPUアクセラレートされたSTFT/CQT、ニューラルネットベースの変換、ハーモニック除去といった高度な機能を提供する。
- クライアントサイドでのワークフローを維持することで、ユーザーのプライバシーを尊重(音声は機械から離れることなく)し、初期ページ読み込み後はオフラインでも動作する。
主な機能(READMEに記載)
| 機能 | 動作方法 / 提供される機能 |
|---|---|
| 音声インポート | ドラッグ&ドロップまたはファイルメニューによるMP3、WAV、あるいは動画ファイル(MP4、MOVなど)のアップロード。 |
| スペクトログラム分析 | 実時間STFT;WebGPUを介してGPUアクセラレート可能なオプションのCQT(定数Q変換)。 |
| 自動処理 | • NNLS(非負最小二乗法)によるハーモニック除去で基本周波数を強調。 • ビートトラッキングとテンポ検出(従来の信号処理アルゴリズム)。 • 2つのONNXモデル(basicamt:機器に依存しないピッチ変換、septimbre:楽器分離変換)を用いたAI支援変換。 |
| 手動編集 | 時間-周波数キャンバス上に直接音符を描画;移動、伸縮、コピー/ペースト、削除、トラックのロック。すべての一般的なショートカット(Ctrl-Z/Y、Ctrl-C/X/Vなど)をサポート。 |
| 定量化と同期 | エクスポートモード2種類:(1) 音符の正確な位置(秒単位)を保持する「聴きながら描く」ワークフロー用;(2) ユーザーが設定した精度xに基づく音楽的分割単位への定量化、バーレベルのBPM変更もオプション。 |
| MIDIインポート/エクスポート | カスタムテンポと定量化を設定可能な標準MIDI(タイプ1、マルチトラック)にエクスポート。既存のMIDIファイルをインポート;音符はトラックにマッピングされ、速度はデフォルトで127に設定。 |
| プロジェクト保存 | バイナリ「.nd」ファイルはスペクトログラム、音符、トラック、バーデータを保存し、後で再開可能。 |
| UI | ドラッグ可能なトラック、右クリックコンテキストメニュー、ピアノロールビュー、ツール切り替え(例:ビートスナップ、バー スナップ)のための上部ツールバーを備えたモダンでフレームワークフリーなUI。 |
| パフォーマンステクニック | 再描画頻度の低減、ユーザー操作時の統一リフレッシュ、編集音符のリアルタイム再生用の「tinySynth」JavaScriptシンセ。 |
一般的なワークフロー(READMEより要約)
- 現代のブラウザ(Chrome推奨)でアプリを開く。
- 音声ファイルをアップロードし、分析方法(STFTまたはCQT)を選択(利用可能ならGPUを有効化)。
- オプションの自動ステップを実行:ビート検出 → ハーモニック除去 → キー検出。
- 「AI変換」ボタン(「人工智障扒谱」)を押して初期音符マップを生成。
- 手動で結果を調整:ビートにスナップ、バーを結合、トラックをロックなど。
- 最終結果をMIDIファイル(楽譜用に定量化)としてエクスポート、または後で編集できるプロジェクトとして保存。
技術的ハイライト
- WebGPUアクセラレートCQT – 統合GPUでも高速な定数Q変換を実現。
- ブラウザ内ONNX Runtime – サーバーなしで2つの事前学習済みニューラルネットを実行し、ピッチ変換と楽器分離を実現。
- 非負最小二乗法(NNLS) – ハーモニック成分を減算し、基本周波数を強調する古典的最適化手法。
- 純JSアーキテクチャ – React/Vueなどは使用せず、すべてのUIコンポーネントは手作業でJSクラスで実装。バンドルサイズを最小限に抑える。
誰が使うべきか
- 記録から音符を素早く抽出したいミュージシャン。
- ブラウザ上で音声信号処理を実験する教育者や学生。
- クライアントサイドスペクトログラム可視化、WebGPUベースCQT、またはJavaScriptでのONNX推論の参考実装を探している開発者。
試してみる場所
- ライブデモ: https://maddersscientist.github.io/noteDigger/
- 動画チュートリアル(中国語): https://www.bilibili.com/video/BV1LFRmBcEEU
上記のすべての情報はリポジトリのREADMEから直接引用;追加機能は推測されていない。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch
- Dispatch