audio-analyzer について
audio-analyzer は、純粋な Rust で実装された MCP サーバーで、キー、テンポ、ラウドネス、ステレオ定位、楽曲構造を生の音声から分析して Claude に伝えます。数値データに基づいて楽曲を検討したい制作者や研究者に向けられています。
主な機能
- 01mp3、wav、flac、ogg、aac のデコード
- 02スペクトル、ハーモニー、リズムの分析
- 03EBU R128 準拠の LUFS ラウドネスとトゥルーピーク
- 04ステレオ定位と位相相関の分析
- 05セクション境界の検出
- 062 曲の A/B 比較
活用シーン
- 01ミックスのラウドネスとダイナミックレンジの確認
- 022 つのミックスのスペクトルとステレオ差の比較
- 03楽曲のセクション構成を把握してから部分的に分析
MCP 対応
Claude Code と Claude Desktop 向けのローカル stdio MCP サーバーで、audio_info、full_analysis、compare などのツールを公開し、ローカルファイルシステムの音声ファイルを読み込んで分析します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
audio_visualizer_rs
Claude が音楽を聴けるようにする MCP サーバーです。
任意の音声ファイルを Claude に渡すと、キー、テンポ、ダイナミクス、音色、打楽器の特徴、ステレオ音場、構成上のセクション、時間の経過に伴う音楽の変化を、すべて生の音声分析から教えてくれます。画像は使わず、推測もせず、コンテキストウィンドウの使用量は 1%未満です。
2 曲を並べて比較できます。イントロ、ヴァース、コーラス、ブリッジなど、音楽の構成が変化する箇所を検出し、重要な部分を拡大して分析できます。
これは何ですか?
LLM は視覚(画像)やテキストを扱えますが、音を聴くことはできません。このプロジェクトは、音楽情報検索の研究で使われるものと同じ DSP 技術を用いて実際の音声分析を行い、Claude が推論に使える構造化された数値データを返すことで、そのギャップを埋めます。
これは、Claude が必要に応じて呼び出せるツールとして音声分析を提供する MCP サーバーです。Claude に曲の分析を依頼すると、音声をデコードして、スペクトル、調和、リズム、打楽器の分析を実行し、結果を簡潔なテキストで返します。スペクトログラムも画像もなく、トークンを無駄にしません。
60 秒のトラック全体の分析は、2 秒以内に完了します(音源分離を含む)。純粋な Rust で実装されています。Python、FFmpeg、システム依存関係は不要です。
機能
- 音声デコード — Symphonia による mp3、wav、flac、ogg、aac のデコード(純粋な Rust)
- スペクトル分析 — セントロイド(明るさ)、帯域幅(豊かさ)、ロールオフ、フラットネス(調性)
- 周波数帯域エネルギー — 標準的な 7 つのプロデューサー帯域(サブベースからブリリアンスまで)の RMS エネルギーを使ったミックス診断
- スペクトルコントラスト — 各帯域のピークと谷の差を dB で示し、明瞭さと濁りを判別
- ダイナミックレンジ — クレストファクター、ラウドネスレンジ(95 パーセンタイル値と 5 パーセンタイル値の差)、ピーク dBFS
- LUFS ラウドネス — EBU R128 統合ラウドネス(ITU-R BS.1770-4 ステレオチャンネル合算)、トゥルーピーク(dBTP)、ラウドネスレンジ(LRA)、ストリーミングプラットフォームの目標値。FabFilter Pro-L 2 と 0.0 dB の誤差で検証済みです。
- ステレオ音場分析 — 位相相関(モノラル互換性)、ステレオ幅(ミッド/サイド比)、L/R バランス、モノラル互換性スコア。フレームごとの時系列データで、位相の問題が発生する箇所を特定できます。
- 時間的特徴量 — RMS エネルギー(ラウドネス)、ゼロ交差率(テクスチャ)
- 音色 — 13 個の MFCC(メル周波数ケプストラム係数)
- 調和分析 — クロマグラム、キー検出(Krumhansl-Schmuckler アルゴリズム)、トーンネット
- リズム分析 — テンポ推定、ビートトラッキング、オンセット検出、テンポの安定性
- 打楽器の特徴 — 調和・打楽器音源分離(HPSS)、アタックの鋭さ、オンセット密度
- セクション境界検出 — 複数の特徴量によるノベルティ分析で、エネルギー、スペクトル、調和、テクスチャの変化から構成上の変化を検出します。「概要→ズーム」のワークフローが可能です。まず全体像を把握し、気になる箇所を詳しく分析できます。
- A/B 比較 — 2 曲を並べて分析し、ラウドネス、ダイナミクス、スペクトルバランス、ステレオ音場、キー、テンポの違いを示す簡潔な比較表を取得
- 時系列データ — 選択可能な解像度で、すべての特徴量の時間的な変化を追跡
- トークン効率 — コンテキストウィンドウに余裕をもって収まるように調整されたダウンサンプリング出力
動作例
Claude が 1 回のセッションで 4 曲を分析する様子を見る — ピアノとブラスによるオリジナル曲、セクション境界を示した Bohemian Rhapsody の全体構成、制作アドバイス付きの A/B ミックス比較、そして音楽の指標を「意味がない」ものと「物理的に実在する」ものに選別する雷雨のフィールドレコーディングです。4 つの分析はすべて、1 つのコンテキストウィンドウに収まります。
インストール
Claude Desktop — ワンクリックインストール
お使いのプラットフォーム用の .mcpb バンドルを GitHub Releases からダウンロードして開きます。あとは Claude Desktop が処理するため、設定ファイルもターミナルもセットアップも不要です。
| プラットフォーム | ファイル |
|---|---|
| macOS(Apple Silicon) | audio-analyzer-darwin-arm64.mcpb |
| macOS(Intel) | audio-analyzer-darwin-x64.mcpb |
| Windows | audio-analyzer-win32-x64.mcpb |
| Linux | audio-analyzer-linux-x64.mcpb |
Claude Code — Homebrew(macOS)
brew tap JuzzyDee/tap
brew install audio-analyzer
claude mcp add --scope user audio-analyzer -- $(which audio-analyzer-mcp)
Claude Code — 手動(全プラットフォーム)
お使いのプラットフォーム用の mcp-server バイナリを GitHub Releases からダウンロードしてから、次を実行します。
claude mcp add --scope user audio-analyzer -- /path/to/mcp-server
ソースからビルド
git clone https://github.com/JuzzyDee/audio-analyzer-rs.git
cd audio-analyzer-rs
cargo build --release
claude mcp add --scope user audio-analyzer -- target/release/mcp-server
Claude Desktop を再起動します。音声分析ツールが会話で利用できるようになります。
注:これは stdio トランスポートを使用するローカル MCP サーバーのため、Claude Code または Claude Desktop が必要です。ブラウザーやモバイルアプリの claude.ai では動作しません。
使い方
重要:このツールはローカルマシン上のファイルを分析します。Claude にはファイルのフルパス(例:/Users/you/Music/song.mp3)を伝えてください。ファイルをチャットにアップロードしたり添付したりしないでください。Claude はディスクからファイルを直接読み込みます。
CLI(スタンドアロン)
cargo run --bin cli -- /path/to/song.mp3
cargo run --bin cli -- compare /path/to/mix_v1.mp3 /path/to/mix_v2.mp3
MCP ツール
設定が完了すると、Claude はこれらのツールを直接呼び出せます。
| ツール | 機能 |
|---|---|
audio_info | 基本的なファイル情報:長さ、サンプルレート、サンプル数 |
spectral_features | 明るさ、豊かさ、音量、テクスチャ、音色(MFCC)、周波数帯域エネルギー、スペクトルコントラスト、ダイナミックレンジ、LUFS 音量、ステレオフィールド |
harmonic_analysis | キー検出、ピッチクラス分布、トーンネット |
rhythm_analysis | テンポ(BPM)、拍の位置、テンポの安定性 |
full_analysis | 上記すべてを1回の呼び出しで実行し、さらにパーカッシブな特性(HPSS)、ステレオフィールド、セクション境界も返します。推奨ワークフロー:まず解像度を指定せずに呼び出して概要とセクションマップを取得し、その後 start_time/end_time を指定して、興味のあるセクションを高解像度で詳しく調べます |
compare | 2つのトラックを A/B 比較し、両方を分析して簡潔な差分テーブルを返します |
例:full_analysis の出力
60秒のジャズトリオのトラックに対して full_analysis を実行すると、次のような結果が返されます。
═══ Full Audio Analysis ═══
File: /music/jazz_trio.mp3
Duration: 60.62 sec | Sample rate: 48000 Hz | Samples: 2909952
Analysis completed in: 2.02s
── Spectral/Temporal Features ──
Centroid (brightness): 2812 Hz — moderate
Bandwidth (richness): 3933 Hz — complex
Rolloff (energy focus): 6489 Hz
Flatness (tonality): 0.0824 — strongly tonal
RMS Energy (loudness): 0.1160
Zero Crossing Rate: 0.0402 — mixed
MFCCs (timbre): [-141.3, 13.7, 0.9, 7.7, -2.5, 3.1, -1.7, 2.3, -0.9, 1.0, -0.5, 0.9, 0.6]
── Frequency Band Energy ──
Sub bass (20–60 Hz): 0.007803
Bass (60–250 Hz): 0.013043
Low-mid (250–500 Hz): 0.004906
Mid (500–2k Hz): 0.002165
Upper-mid (2k–4k Hz): 0.000203
Presence (4k–6k Hz): 0.000166
Brilliance(6k–20k Hz): 0.000089
── Spectral Contrast (peak–valley dB) ──
Sub bass (20–60 Hz): 10.4
Bass (60–250 Hz): 20.4
Low-mid (250–500 Hz): 26.0
Mid (500–2k Hz): 30.9
Upper-mid (2k–4k Hz): 19.4
Presence (4k–6k Hz): 16.6
Brilliance(6k–20k Hz): 55.2
── Harmonic Content ──
Estimated key: E minor (confidence: 0.538)
Top pitch classes:
1. G 0.627 ███████████████
2. E 0.561 ██████████████
3. C 0.512 ████████████
4. D# 0.495 ████████████
5. F# 0.487 ████████████
6. C# 0.459 ███████████
── Rhythm ──
Tempo: 84.0 BPM (confidence: 0.316)
Beats detected: 69
Mean tempo: 84.3 BPM | Median: 84.0 BPM
Stability: 0.951 (0=free, 1=locked)
── Percussive Character ──
Percussive ratio: 0.277 — harmony-dominated
Onset density: 7.0/sec — very dense
Peak attack sharp: 1.000
── Dynamic Range ──
Peak: -0.44 dBFS
Crest factor: 16.2 dB — very dynamic
Loudness range: 76.4 dB — very dynamic
Quiet sections: -87.5 dBFS | Loud sections: -11.1 dBFS
── Loudness (EBU R128) ──
Integrated: -12.1 LUFS
True peak: 0.0 dBTP
Loudness range: 3.7 LU
Spotify (-14): turned DOWN 1.9 dB | Apple (-16): turned DOWN 3.9 dB | YouTube (-14): turned DOWN 1.9 dB
── Stereo Field ──
Phase correlation: 0.257 avg, -0.822 min — some phase issues
Phase warnings: 20.6% of frames have negative correlation
Stereo width: 0.812 avg, 2.747 max — wide
Balance: -0.095 — slightly left
Mono compatibility: 0.620 avg, 0.117 min — significant mono loss
── Section Boundaries ──
Working BPM: 84 (confidence: 0.32)
Boundaries: 2
0:18.3s energy+spectral+texture (confidence: 0.85)
0:42.1s energy+harmonic (confidence: 0.67)
resolution: "medium" を指定すると、トラックの長さにわたって各特徴がどのように変化するかを示す時系列テーブルも出力に含まれます。これにより、Claude はイントロの盛り上がり、ダイナミックなソロセクション、静かなアウトロを把握できます。
時系列の解像度
すべての分析ツールでは、時系列出力を制御するオプションの resolution パラメーターを指定できます。
| プリセット | データポイント数/秒 | 用途 |
|---|---|---|
"low" | 約0.5/秒 | 全体像の把握。スペクトログラム画像から目視で確認する場合に相当 |
"medium" | 約1/秒 | ほとんどの分析タスクに適したデフォルト |
"high" | 約4/秒 | 短いパッセージやトランジションを詳しく確認する場合 |
カスタムレートには、数値を文字列で渡すこともできます(例:"20")。
resolution を指定しない場合、ツールは要約統計のみを返します(トラック全体の平均値)。指定すると、特徴の時間変化を示すコンパクトな TSV テーブルが返されます。セントロイド、RMS、ダイナミックレンジ、クロマ、オンセット強度、パーカッシブ比率、帯域エネルギー、スペクトルコントラストなどが、すべて同じ時間軸に揃えて表示されます。
プリセットはトークン効率を考慮して調整されています。3分のトラックを "medium" 解像度で処理すると、データはおよそ180行になります。コンテキストウィンドウを圧迫せずに、音楽の構成を把握するのに十分な量です。
アーキテクチャ
audio file
|
+---> load_audio() -- Symphonia decodes to mono f32 samples
| |
| v
| compute_spectrogram() -- STFT via rustfft, time-frequency matrix
| |
| +---> spectral.rs -- centroid, bandwidth, rolloff, flatness, MFCCs, band energy, contrast
| +---> temporal.rs -- RMS energy, zero crossing rate, dynamic range
| +---> harmonic.rs -- chromagram, key detection, tonnetz
| +---> rhythm.rs -- onset detection, tempo, beat tracking
| +---> percussive.rs -- HPSS (source separation), attack sharpness, onset density
| +---> sections.rs -- section boundary detection (multi-feature novelty)
|
+---> load_audio_stereo() -- preserves L/R channels
|
+---> stereo.rs -- phase correlation, width, balance, mono compatibility
+---> temporal.rs -- LUFS loudness (ITU-R BS.1770-4 stereo channel summing)
|
v
downsample.rs -- bin-average to target resolution, format as TSV
2つのバイナリが同じ分析ライブラリを共有します。
cli(src/main.rs) -- すべての分析を実行し、結果を出力しますmcp-server(src/mcp_server.rs) -- rmcp 経由の stdio JSON-RPC を使ってツールを公開します
主な依存関係:symphonia(音声デコード)、rustfft(FFT)、rmcp(MCP SDK)。
Changelog
See CHANGELOG.md for version history.
License
MIT License. See LICENSE for details.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。