← reverse-engineer-song video-prompt-spec →

03 analyze-song — 楽曲定量分析

音源から BPM/キー/コード進行/メロディ輪郭/音域/phrase_repetition を数値抽出し、features.json + 楽譜PNG/PDF + report.md を出力。定性(reverse-engineer-song)とは完全独立の定量分析専用。


できること

音源(YouTube URL / ローカル MP3)から以下を数値で抽出:

トリガー

「楽曲分析して」「曲を定量分析」「BPM/コード抽出」「名曲っぽさ分析」「/analyze-song」

分析パイプライン(Phase 1a)

音源(yt-dlp/ローカル)
 → librosa(BPM/duration)
 → basic_pitch(MP3→MIDI・onnxruntime)
 → music21(キー/コード/メロディ/phrase_repetition/structure)
 → MuseScore(楽譜PNG/PDF)
 → features.json + report.md

7モジュール構成・CLI で一括実行。

出力(analysis/ 配下)

Phase 1a の既知制限(改善予定)

実測で判明した3つの制限。Phase 1b(Demucs音源分離導入)で改善対象。

BPM 精度: librosa 推定限界で、生成指定BPMと乖離する場合あり(例: 指定85→推定112・4/3倍誤差)。

phrase_repetition 精度: basic_pitch 生MIDIのノイズ(ボーカル+バック+ノイズ混入)で一致率が低くなる。メロディ単離(Phase1b Demucs)で改善。

楽譜PNG: MuseScore AppImage が WSL 環境依存で segfault する場合あり(features.json は正常生成)。

ロードマップ

連携