Local MCP server, eight music tools: OMR, transcription, theory and notation checks, convert.
Runs on your machine from its package; the steps are below.
At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y xiange-mcp
MCP client config
{
"mcpServers": {
"xiange-music-mcp": {
"command": "npx",
"args": [
"-y",
"xiange-mcp"
]
}
}
}乐正线·一级
原作者:ZhongQuinnKing(主号署名) 许可:MIT,见 LICENSE.md 商用与合作:请先联系 hello@xinchuan.dev(标题注明【商用授权】或【改编授权】);也可走本仓库 issue
给主流 AI 用的音乐能力包。姊妹篇:采诗读互联网、拾级陪人、玉尺量文章、弦歌弄音乐。
能力验证:一个真实的钢琴编配项目全程走通(选曲/取源/转谱/出谱),产出全部归本包。 项目本身不是成果,这套可复用的流程与工具才是。
任何输入(糊图/截图/哼唱/一句话/数字文件)
→ 认曲:低质输入只是"线索",不硬做(docs/01)
→
├─ 【数字源直通线】用户持有数字文件(自打/正版/下载)
│ → 验证三件套 → 直用(最快最准)
└─ 【搜索线】没有数字源
→ 采诗换源:全网搜高质量谱——弹琴吧/B站链/平台矩阵(docs/02)
→ 源择优:数字源 > 印刷高清 > 印刷普通;手写不用
→ 转谱(引擎链+多引擎共识,docs/03)
→
符号层:从原谱图读取回填(连音/力度/踏板/指法)
→ 精排(Dorico)→ 出谱
每一步都带来源与置信标注。 出库闸:核过的才许标"已验证",没核的一律标"待核对"(报"已验证"须附标准报告卡,口径见 docs/06)。
环境:Python 3.11(参考环境用 conda env music-transcribe)。依赖按工具分档,零依赖件装包即用:
一键安装:
bash install.sh core # 按档装:core / render / browser / vision / all
bash install.sh all # 四档全装
五分钟上手:
python3 tools/xiange.py doctor # 环境自检(缺什么直接给修复命令)
python3 tools/xiange.py check 谱.musicxml # 记谱体检(零依赖,立即可跑)
python3 tools/xiange.py selfcheck # 判据级自测全列(一遍看全)
(route/fix/export 同壳入口;装不上看 docs/12-故障排查)
自测(判据级二十一套,与 CI 同款):
for f in tools/tests/test_*.py; do python3 "$f"; done
外部引擎(SMT/Audiveris 等)非 pip 依赖,接入见 docs/03;统一入口 tools/engine_runner.py(引擎注册表与 run.json 留痕)。
常用一条命令:
python3 tools/notation_check.py 谱.musicxmlpython3 tools/score_doctor.py inspect 谱.musicxmlpython3 tools/工具_谱种路由.py 谱图.png,一张图先判谱种(五线谱/六线谱/简谱等),再走对应引擎与工序python3 tools/theory_check.py 谱.musicxml(声部交叉/平行五八度/跨度上限可调/密度骤降/时值)python3 tools/export_pack.py 谱.musicxml --out 目录 --title 曲名(五线谱三件+mxl/mid+简谱三件+试听+成品卡+zip)python3 tools/yuchi_score_check.py 谱.musicxml(谱面规范查对:小节对账/附点越界/连音线闭合/变音记号;只诊断不改谱,与记谱体检分工见规则档)知识线:直接按 知识/90-音乐问答协议.md 的三层路径执行,零安装。
源获取(复刻线):依赖外部通道(采诗,开源公开:github.com/ZhongQuinnKing/caishi;各站边界见 docs/02)。没有该通道时的降级路径:只处理本机已有文件,或用公开搜索自行找谱(弹琴吧/B站等直达页面),按 docs/02 的源分级与各站边界走;不静默降级、不虚构来源。
| 工具 | 用途 | 依赖档 | 备注 |
|---|---|---|---|
| notation_check.py | 记谱规范检器(符杠/符干/休止/谱表) | 零依赖 | |
| yuchi_score_check.py | 谱面规范查对(小节对账/附点/连音线/变音记号;只诊断) | 零依赖 | 与记谱体检分工见 docstring |
| notation_fix.py | 记谱规范后处理(幂等) | 零依赖 | |
| omr_eval.py | 统一评价引擎(四级度量+标准报告卡) | 核心 | 口径见 docs/06 |
| theory_check.py | 乐理错检器(声部交叉/平行五八度/跨度/密度/时值) | 核心 | 跨度上限可调 |
| score_doctor.py | 谱面体检与修整(inspect/fix) | 核心 | fix 自带 .orig 备份 |
| triage.py | 待裁闭环(发现环+机械裁+三色报) | 核心 | |
| verify.py | 数字源验证三件套 | 核心 | 教程见 docs/08 |
| verify_vs_audio.py | 机器与谱面音频对拍 | 核心 | 下界指标 |
| consensus.py | 多引擎共识融合 | 核心 | |
| consensus2.py | 共识 v2(质量加权+闸门分流) | 核心 | |
| consensus2_note.py | 音符级对比试算 | 核心 | |
| remeasure.py | 一键重测(机器×手工一致度) | 核心 | |
| music_check.py | 知识库定时质检 | 核心 | |
| vv_render.py | 交付主链:MusicXML 到 SVG/PNG/PDF | 渲染 | A4 版式与批量 |
| render_v4.py | v4 渲染(自查对照用) | 渲染 | |
| bekern_fix.py | kern 语系骨架归一渲染 | 渲染 | |
| deliver_dolce.py | 简谱腿:MusicXML 到简谱 PDF/PNG+123 文本 | 浏览器 | 单声部 |
| export_pack.py | 成品导出层:MusicXML 到整包(八件+试听件) | 核心+渲染+浏览器 | 字体 OFL 闸/可容忍模式 |
| 工具_谱种路由.py | 谱种路由入口(先判谱种再进链) | 输入路由 | |
| bili_extract.py | B站提页(翻页式谱视频提取谱页) | 输入路由 | |
| 树转换器_v3.py | 古琴减字树转换(数据加工;需 GUQINMM_BASE/AUTODAPU_CSV) | — | 训练类 |
| 驱动_甲路_训练.py | 古琴自训驱动(需 JIALU_SELF) | — | 训练类 |
| 复测_四页分类隔离.py | 分类层隔离复测(需 JIALU_SELF/JIALU_GEN 与 --pages) | — | 评估件 |
| engine_runner.py | 统一引擎入口(图入 MusicXML 出;run.json 留痕) | 零依赖(引擎另装) | 引擎面 |
| gen_bench.py | 基准样例生成(合成谱例十一首) | 核心 | |
| bench_run.py | 基准样例跑批(过三检器出对照;防退化闸) | 核心 | |
| xiange.py | 统一 CLI 壳(route/check/fix/export/doctor/selfcheck) | 零依赖 | 入口件 |
| doc_check.py | 文档与实况对账(防数字漂移,CI 挂载) | 零依赖 | |
| kb_todo_scan.py | 知识库待办核销扫描([?] 台账工具化) | 零依赖 | |
| m21_cache.py | music21 解析缓存层(单流程只解析一次) | 核心 | 库件 |
| 工具_移调.py | MusicXML 整体移调(任意调) | 零依赖 | 移宫线 |
| 工具_定调.py | 歌者音域到建议调与推荐命令 | 零依赖 | 移宫线 |
| 工具_骨架表.py | 设计数据到一页缩谱(骨架表) | 零依赖 | 云韶线 |
| 工具_张力账.py | 分段三量表(织体密度/音区重心/和声张力) | 零依赖 | 云韶线 |
python3 tools/bench_run.py)。样例全部自造,验「流程可复现」,不承诺准确率数字已验证:
在办(边界如实):