关于 Scoreproof
Scoreproof 为音乐人、编曲者和乐谱工作流提供数字乐谱转换与检查。它支持多种乐谱格式,可生成可打印乐谱并逐音符报告转换变化,也能把演奏的 MIDI 转成可读乐谱。
主要功能
- 01转换 MusicXML、MIDI、ABC、MEI 和 Humdrum
- 02逐音符验证转换结果
- 03将乐谱渲染为 PDF、PNG 或 SVG
- 04检查、比较、移调和提取乐谱
- 05将演奏的 MIDI 转为可读乐谱
适用场景
- 01转换乐谱并查看内容损失报告
- 02从 MIDI 制作可打印乐谱
- 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 | 逐小节比较两个版本的变化,即使格式不同也可以 |
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/,五首由人演奏的乐曲,包含人类演奏时序):
| 仅使用 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。