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より要約)

  1. 現代のブラウザ(Chrome推奨)でアプリを開く。
  2. 音声ファイルをアップロードし、分析方法(STFTまたはCQT)を選択(利用可能ならGPUを有効化)。
  3. オプションの自動ステップを実行:ビート検出 → ハーモニック除去 → キー検出。
  4. 「AI変換」ボタン(「人工智障扒谱」)を押して初期音符マップを生成。
  5. 手動で結果を調整:ビートにスナップ、バーを結合、トラックをロックなど。
  6. 最終結果をMIDIファイル(楽譜用に定量化)としてエクスポート、または後で編集できるプロジェクトとして保存。

技術的ハイライト

  • WebGPUアクセラレートCQT – 統合GPUでも高速な定数Q変換を実現。
  • ブラウザ内ONNX Runtime – サーバーなしで2つの事前学習済みニューラルネットを実行し、ピッチ変換と楽器分離を実現。
  • 非負最小二乗法(NNLS) – ハーモニック成分を減算し、基本周波数を強調する古典的最適化手法。
  • 純JSアーキテクチャ – React/Vueなどは使用せず、すべてのUIコンポーネントは手作業でJSクラスで実装。バンドルサイズを最小限に抑える。

誰が使うべきか

  • 記録から音符を素早く抽出したいミュージシャン。
  • ブラウザ上で音声信号処理を実験する教育者や学生。
  • クライアントサイドスペクトログラム可視化、WebGPUベースCQT、またはJavaScriptでのONNX推論の参考実装を探している開発者。

試してみる場所


上記のすべての情報はリポジトリのREADMEから直接引用;追加機能は推測されていない。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch
  • Dispatch