Scoreproof について
Scoreproofは、音楽家や編曲者、楽譜制作のワークフロー向けに、デジタル楽譜を変換・検証するツールです。複数形式に対応し、印刷用楽譜を作成するほか、変換時の変更を音符単位で報告し、演奏したMIDIを読める楽譜にできます。
主な機能
- 01MusicXML、MIDI、ABC、MEI、Humdrumの変換
- 02音符単位での変換結果検証
- 03PDF、PNG、SVGでの楽譜レンダリング
- 04楽譜の調査、比較、移調、抽出
- 05演奏したMIDIから読める楽譜を作成
活用シーン
- 01楽譜を変換して欠落レポートを確認
- 02MIDIから印刷用の楽譜を作成
- 03形式をまたいで楽譜の版を比較
- 04パート譜の抽出や楽譜の移調
MCP 対応
MCPサーバーは、楽譜ファイルの変換、バッチ処理、調査、検証、比較、移調、抽出、レンダリングのツールを公開します。ローカル実行とホスト型コネクターの両方で利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://scoreproof-fkkuctjokq-uc.a.run.app/mcpclaude mcp add --transport http asampat3090-scoreproof https://scoreproof-fkkuctjokq-uc.a.run.app/mcp{"mcpServers":{"asampat3090-scoreproof":{"type":"http","url":"https://scoreproof-fkkuctjokq-uc.a.run.app/mcp"}}}Cursor で開く{"servers":{"asampat3090-scoreproof":{"type":"http","url":"https://scoreproof-fkkuctjokq-uc.a.run.app/mcp"}}}VS Code で開く{"mcpServers":{"asampat3090-scoreproof":{"type":"http","url":"https://scoreproof-fkkuctjokq-uc.a.run.app/mcp"}}}{"mcpServers":{"asampat3090-scoreproof":{"serverUrl":"https://scoreproof-fkkuctjokq-uc.a.run.app/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
9| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| to | string | はい | 変換先の形式:musicxml、mxl、midi、abc、mei、humdrum、pdf/png/svg(楽譜)、または wav(オーディオ) |
| input | string | はい | 音楽ファイルの絶対パス |
| output | any | いいえ | 出力ファイルまたはフォルダー(デフォルト:入力ファイルと同じ場所) |
詳細
scoreproof
あらゆる楽譜を変換。失われたものがないことを証明します。
Scoreproof は、MusicXML、MIDI、ABC、MEI、Humdrum の間で音楽ファイルを変換し、印刷・再生できる楽譜(PDF、PNG)を作成します。さらに、実際の記譜アプリ(Sibelius、Dorico、Finale、MuseScore、Guitar Pro など)からの書き出しに見られる癖を修正し、変換のたびに音符単位で確認して、保持されたものと失われたものを正確に報告します。
DAW やキーボードで演奏した MIDI も、読みやすい楽譜になります。Scoreproof は拍を検出し(クリックなしでも対応)、リズムを16分音符や三連符にそろえ、音価を整え、ピアノ譜を左右の手に分け、正しい調に合わせて音符を表記します。
MCP に対応した AI ツール(Claude、Cursor、VS Code、Gemini CLI、Codex など)、コマンドライン、Python から利用できます。
claude.ai、Claude アプリ、または ChatGPT で使う
インストールは不要です。次のアドレスをカスタムコネクターとして追加してください。
https://scoreproof-fkkuctjokq-uc.a.run.app/mcp
- Claude(ウェブ、デスクトップ、モバイル):Settings → Connectors → Add custom connector。
- ChatGPT:Settings → Connectors → Create(開発者モード)。
追加したら、「短いワルツを書いて、楽譜を作って」と頼んでみてください。手元のファイルを使う場合は、Scoreproof のページにファイルをドロップし、表示されたリンクをチャットに貼り付けてください。同じページで、ワンクリックでファイルを変換することもできます。
ホスト型サービスは無料で、アドレスごとの利用回数制限と10 MBのファイルサイズ制限があります。すべてのファイルは24時間後に削除されます。
AI ツールから使う
Scoreproof はローカルで動作し、コンピューター上のファイルを扱えます。uv が必要です(brew install uv または pip install uv)。
Claude Code
/plugin install scoreproof --marketplace asampat3090/scoreproof
または、サーバーを直接追加します:claude mcp add scoreproof -- uvx scoreproof mcp
Claude Desktop、Cursor、Gemini CLI:claude_desktop_config.json、~/.cursor/mcp.json、または ~/.gemini/settings.json に次の内容を追加します。
{
"mcpServers": {
"scoreproof": { "command": "uvx", "args": ["scoreproof", "mcp"] }
}
}
VS Code(.vscode/mcp.json):
{
"servers": {
"scoreproof": { "type": "stdio", "command": "uvx", "args": ["scoreproof", "mcp"] }
}
}
Codex(~/.codex/config.toml):
[mcp_servers.scoreproof]
command = "uvx"
args = ["scoreproof", "mcp"]
次のように頼んでみてください。
- 「~/Music/take-3.mid を印刷できる楽譜にして。」
- 「~/Music/song.mid を MusicXML に変換して、失われたものを教えて。」
- 「リードシートを Bb に移調して、楽譜を表示して。」
- 「この楽譜を演奏者ごとのパートに分けて。」
- 「draft-1.musicxml と draft-2.musicxml の違いは?」
- 「写譜師に送る前に、この Sibelius の書き出しを確認して。」
ツール
| ツール | 内容 |
|---|---|
convert | ファイルを変換し、結果を音符単位で検証します。または PDF/PNG を作成します |
batch_convert | 複数のファイルまたはフォルダー全体を変換します |
inspect | 概要(パート、音域、調、拍子、テンポ)と、指定した小節の ABC 抜粋を表示します |
validate | 拍数が合わない小節、音域外の音符、修正された書き出し時の癖を見つけます |
compare | 形式が異なる場合も含め、2つのバージョンの小節ごとの差分を確認します |
transpose | 音程による移調、調への移調、または実音と記譜音の変換を行います |
extract | パートや小節を抜き出すか、演奏者ごとにファイルを作成します |
render | 印刷・表示用の楽譜(PDF、PNG、SVG;Letter または A4)または試聴用音声(WAV)を作成します |
list_formats | 対応形式と、それぞれで保持できない情報を表示します |
結果は入力ファイルの隣に、新しい名前で保存されます。出力先を正確に指定しない限り、Scoreproof が既存のファイルを上書きすることはありません。
コマンドラインから使う
uvx scoreproof convert song.musicxml song.mid
uvx scoreproof convert take-3.mid --to pdf # played MIDI to sheet music
uvx scoreproof inspect song.musicxml --bars 1-8
uvx scoreproof transpose song.musicxml --key "Bb major"
uvx scoreproof extract score.mxl --each-part
uvx scoreproof render song.musicxml --to png --page-size a4
uvx scoreproof --help
どのコマンドにも --json を追加すると、機械可読形式で出力できます。
Python から使う
from scoreproof import convert
result = convert("song.musicxml", "song.mid")
result.confidence # "exact", "high", "medium" or "low"
result.expected_losses # what MIDI cannot hold: lyrics, chord symbols, ...
result.fixes # exporter quirks repaired on the way in
精度について
11 種類の記譜アプリから実際にエクスポートした 430 件(benchmarks/score_corpus/)での結果:
| music21 のみ | scoreproof | |
|---|---|---|
| 読み込み可能なファイル | 96.0% | 100% |
| 正確に読み取れたファイル(パート、小節、音符、長さ) | 87.9% | 95.6% |
DAW で再生した MIDI(benchmarks/played_midi/、人間の演奏タイミングで演奏した 5 曲):
| music21 のみ | scoreproof | |
|---|---|---|
| クリック音ありで、正しい拍にある音符 | 64% | 99% |
| クリック音なしで、正しい拍にある音符 | 6–21% | 81–82% |
変換のたびに、出力を再度読み込み、ソースと比較します。形式が何かを保持できない場合(MIDI にはコード記号や歌詞のレイアウトがなく、ABC と MEI のエクスポートでは移調楽器が実音で記録されます)は、黙って失敗するのではなく、その旨をレポートに記載します。
未対応:Sibelius、Dorico、Finale、MuseScore のネイティブファイルです。まずアプリから MusicXML をエクスポートしてください。
開発
pip install -e ".[dev]"
pytest --cov=scoreproof # coverage is kept at 100%
black src tests benchmarks
flake8 src tests benchmarks
計画とマイルストーンは docs/plan.md にあります。MIT ライセンスです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。