YuE2 Studio 可编辑乐谱指南:ABC记谱法+五线谱+旋律编辑完全解析

原创2026-10-22 14:15:371,901 阅读

YuE2 Studio 可编辑乐谱指南:ABC记谱法+五线谱+旋律编辑完全解析

YuE2 Studio 是一个跑在你自己显卡上的本地 AI 歌曲生成器,它最独特的地方在于:模型写歌之前会先把乐谱写出来——用 ABC 记谱法生成带旋律、和弦的完整谱面,再由你自由编辑,最后才"唱"成一首带人声的完整歌曲。本文带你读懂这份可编辑乐谱:五线谱怎么渲染、ABC 文本怎么写、钢琴卷帘里怎么改旋律,以及如何把 MIDI 文件、和弦床等高级技巧用起来。

乐谱是怎么产生的:先写谱,再唱歌

YuE2 模型(M-A-P 出品的开源歌曲模型)的作曲流程和其他 AI 音乐工具不同:它不是直接吐出音频,而是先输出一份 ABC 乐谱,再由 yue2.cpp 推理引擎把它渲染成完整歌曲。

这个设计的价值在于:

  • 创作与演奏分离——乐谱是"作曲",音频是"演奏"。改完乐谱重新生成,曲式不变、声音可变
  • 乐谱随歌曲一起保存——每首成品歌都保留它被演唱时所用的乐谱,可以反复复用
  • 本地渲染五线谱——前端用 abcjs 把 ABC 文本实时雕版成五线谱,不请求任何外部服务

乐谱渲染的核心实现在 scoreEngraving.ts 和 ScoreView.tsx,ABC 方言的解析器在 Rust 端的 abc.rs。

YuE2 Studio 乐谱视图:同一份作品的五线谱与 ABC 文本双视图

五线谱与 ABC 文本:同一份作品的两种视图

打开歌曲详情,你会看到乐谱面板。它可以呈现为三种模式:旋律+和弦(Full)、仅旋律(Melody)、无乐谱,五线谱和 ABC 文本随时切换。

五线谱视图里,"Vocal"(人声)和"Ins"(伴奏乐器)两个声部会像音乐家阅读时那样分成独立的谱表。你还可以:

  • 点击播放:谱面用 Studio 自带的 MIDI 音色发声,播放时音符会高亮跟随、光标自动滚动
  • 八度移位:把人声整段上移或下移一个八度,界面上会提示音域是否在模型常见乐谱范围内
  • 点击定位:点某个音符即可从该处开始试听

成品歌曲页面:歌词与演唱所用乐谱一一对应,可直接复用

ABC 记谱法 3 分钟入门

YuE2 使用的是一种受限的双声部 ABC 方言(不是通用 ABC 读取器——方言之外的写法会被直接拒绝,保证"人能读"和"模型能读"完全一致)。一份典型的乐谱长这样(取自示例 cover-baikal-lake-jazz.json):

X:1
M:2/4
L:1/16
Q:1/4=60
V: Vocal clef=treble name="Vocal Melody" snm="Vocal"
V: Ins clef=treble name="Ins Melody" snm="Inst."
K:F
% intro
V: Vocal
Z2|"Gm"z8|"C"z8|
V: Ins
Z|z2def2c'2|b8|
% verse
V: Vocal
"Dm"z2DEF2c2|

不用紧张,只需要记住这几个符号:

符号 含义 例子
M: L: Q: K: 拍号、基本音符时值、速度(BPM)、调号 Q:1/4=60 表示四分音符=60 BPM
V: Vocal / V: Ins 切到人声声部 / 伴奏声部 人声与乐器分开写
c' d'' e 音名 + 高低八度标记('升八度,,降八度) c' 就是高音 Do
数字后缀 时值,单位是 L 时值 L:1/16 下 f2 = 32分音符×2
Z / z 休止:Z 整小节休止,z 带时值休止 z8 = 休止 8 个 1/16
"Gm" 音符前的和弦记号,支持 15 种和弦性质 "Am7" "Fmaj7"
% 段落注释,如 % verse % chorus 歌词段落对齐就靠它
^ _ = 升号、降号、还原 ^d = D#

这个方言支持 30 个标准调(15 大调 + 15 小调)和 15 种和弦性质(m、dim、7、maj7、m7b5、sus4 等),完整常量定义见 abc.rs。

打开钢琴卷帘编辑器:旋律编辑主战场

在创建表单里点"乐谱编辑器"(Score editor),会打开内嵌的 Signal MIDI 编辑器钢琴卷帘——这就是旋律编辑的主战场:

  • 绘制、移动、拉伸音符,像在任意 DAW 里操作钢琴卷帘一样
  • 设置和弦与段落标记(section markers),段落会写回 ABC 的 % 注释
  • 修改调号与速度
  • 支持 MIDI 键盘输入:接键盘弹奏或电脑键盘弹奏都能记录
  • 点 Apply(应用) 才会把改动写回 ABC 乐谱,在此之前表单内容不受影响

这个编辑器同时替换了旧版独立的乐谱编辑器:它既能打开普通 MIDI,也能打开 ABC 乐谱并把音符、和弦、段落应用回创建表单。编辑器与主程序的通信逻辑在 midiEditor.ts,界面文案见 score.ts。

MIDI 钢琴卷帘编辑器:和弦、段落标记与音符一览无余

编辑时的两个实用提示

编辑器会在音节与音符数量不匹配时主动提醒:

  • 音符比音节多:YuE2 可能在多出来的音符上"自己加词"
  • 音节比音符多:YuE2 可能挤音或漏词

改旋律时留意这两条提示,能帮你把副歌的咬字问题提前消灭在谱面上。

三个进阶乐谱技巧

1️⃣ Chord Bed(和弦床):跳过规划步骤

先定好 速度、调号、拍号,Studio 会一次性写出一张"和弦+休止符"的乐谱——每个歌词段落一个 section。模型随后只在这个和弦框架上填旋律与编配,规划步骤整个跳过。适合对和声走向有明确想法的创作。

和弦床:按你设定的速度、调号与拍号一次写出的和弦框架乐谱

2️⃣ 八度移位与纯器乐化

  • 人声整段移八度:vocal-octave 接口会把 Vocal 声部按整八度平移,并告诉你声部中音是否落在模型乐谱的常见音域内(scoreApi.ts)
  • Instrumental 模式:把所有人声音符移给乐器轨,人声轨只保留休止符与和弦——谱面秒变伴奏谱

3️⃣ 从乐谱续写整首歌

打开"Continue the song from this score",你哼写的一段开头会被模型接着往下写完整首歌——沿用它的调与拍号,开头还会变成全曲的 hook 反复出现。接口约定见 mcp-skill.md 中的 abc_continue。

把 MIDI 文件变成乐谱

这是新手最顺手的入口:任意 .mid / .midi / .kar / .rmi 文件都能变成乐谱。加载时 Studio 会做这些事:

  1. 自动分配声部——人声轨(优先看卡拉 OK 歌词落在哪条轨)、乐器轨、和弦轨(读取名为 Chords 的轨,读不到就从各轨合奏中推测)
  2. 显示每条音轨的"去向"——音符数、音域、用作人声/乐器/和弦,一目了然
  3. 自动修正——音域过高过低整段平移八度、不合网格的音符取整到最近十六分、变速度文件取平均 BPM
  4. 支持仅旋律(无和弦)与带和弦(Full 模式)两种导入方式,也可选择保留文件中的段落标记

读入逻辑由 import/mod.rs 实现,前端调用入口是 scoreFromMidi。

导出与复用:乐谱也是一等公民

  • 保存为 MIDI:人声、乐器、和弦各占独立音轨,速度、拍号、调号、段落一并写入(/v1/score/midi 接口,见 scoreApi.ts)
  • 保存为 ABC 文本:和引擎的 JSON/YAML 请求格式一样,可以在 Studio、yue2.cpp WebUI 与 yue-synth 之间自由搬运
  • 精确重渲染:每首歌都保存了请求参数与音频码,同一份乐谱随时可以换音色种子、换输出格式重新渲染,甚至逐比特复现原结果

把任意歌曲转成多乐器 MIDI 钢琴卷帘,与原版对照试听

核心文件索引

模块 路径 说明
ABC 方言解析 abc.rs YuE2 双声部 ABC 的完整读写规则
乐谱 API 路由 api.rs 五线谱数据、编辑、导出的后端入口
和弦与段落 chord_bed.rs、sections.rs 和弦床生成、歌词段落对齐
前端五线谱 ScoreView.tsx abcjs 雕版、点击播放、光标跟随
钢琴卷帘通信 midiEditor.ts Signal 编辑器与主程序的消息桥
示例乐谱 examples/ 110 个即点即用的风格/歌词/乐谱组合

小结

YuE2 Studio 的可编辑乐谱把"AI 作曲"变成了一件可控的事:模型负责写第一稿,你负责改到满意为止——ABC 文本、五线谱、钢琴卷帘三种视图随时切换,MIDI 导入、和弦床、八度移位、纯器乐化各管一段,最终改出来的谱面可以反复重渲染成不同声音的完整歌曲。上手顺序建议:先用示例乐谱熟悉面板 → 用 MIDI 文件当练习曲改几个音 → 最后尝试 Chord Bed 完整控制一首歌的和声。

登录后查看全文
YuE2-Studio