返回编辑

ScoreMD 帮助

什么是 ScoreMD

ScoreMD(简称 SMD)是靠谱使用的纯文本乐谱格式。它像 Markdown 一样简洁,只用普通文本就能表达完整的曲谱信息。当前语法版本为 0.6.0,本页所有示例均可直接复制使用。

1. 元信息头

文件开头用 YAML 格式描述歌曲基本信息,放在两行 --- 之间,分为 SMD(格式信息)和 song(歌曲信息)两节。

---
SMD:
  version: "0.6.0"
song:
  title: 晴天
  artist: 周杰伦
  key: G
  bpm: 69
  time: 4/4
  capo: 0
---

2. 段落

# 开头表示一个段落。段落标题下面的所有小节都属于这个段落,直到出现下一个段落标题。段落名后可加 xN 表示该段落重复 N 次。

# 前奏
| G D | Em C |
| | |

# 主歌
| G             | D             |
| 故事的小黄花  | 从出生那年就飘着 |

# 副歌 x2
| G       D       | Em      C       |
| 吹着前奏 望着天空 | 我想起花瓣 试着掉落 |

如果文件开头没有写段落标题,则前面的小节会归为一个匿名段落,渲染时不显示段落名。

3. 小节线与对齐

| 为小节线,所有小节行都必须包含小节线。段落内以空行划分对齐组:连续的小节行为一组,组内各行的小节线数量必须一致;不同组的小节数可以不同。

| G D | Em | C |
| 故事的小黄花 | 从出生那年就飘着 | |

| G | D | Em | C |
| 为你翘课的那一天 | 花落的那一天 | 教室的那一间 | |

小节内用空格拉开距离只是为了好看,解析只认小节线,空格多少不影响对齐。

4. 和弦与歌词(轨道)

基本写法由和弦行歌词行配对组成。每个和弦行后面必须紧跟一行歌词行,两行小节数量相同。没有歌词的小节用空的 | 占位。

| G             | D             |
| 故事的小黄花  | 从出生那年就飘着 |

| Em | C |
| | |

和弦写法与常见吉他谱一致,例如 GEmF#mCmaj7,详见第 8 节。

❌ 错误示例

只有和弦行、没有歌词行的写法,语法检查会报错(纯演奏段落也要补一行空歌词行):

| G | D |

这两行本质上是两条轨道:和弦行即演奏轨、歌词行即歌词轨,上面只是省略了轨道标识的简写。完整写法在行首加标识:类型关键字 演奏play)或 歌词lyrics),可再跟自定义名称,以第一根 | 与内容分界。同一类型的自定义名称全文件唯一,跨段落复用同一名字即视为同一条轨道。需要多轨并行时(如节奏吉他加主音 Solo)就必须写出标识0.6+

演奏 节奏吉他| C | G | Am | F |
演奏 主音Solo| : 3e 5e | : 7e 8e | : 3B 5B | : 7B 8B |
歌词| 吹着前奏 | 望着天空 | 想起花瓣 | 试着掉落 |

同一对齐组内同一轨道不得重复出现;如需再次使用同一轨道,先用空行另起一组。写出标识后各轨道相互独立,没有内容的轨道可直接省略——纯演奏段落(如间奏)只写演奏轨:

# 间奏

演奏 节奏吉他| G | D | Em | C |

注意区分两种写法的约束:简写必须成对出现(纯演奏段用空歌词行占位);写出标识后各轨道独立、可自由省略。一个文件内两种写法只能选其一,混用为语法错误:

❌ 错误示例

| G | D |
歌词| 故事的小黄花 | 从出生那年就飘着 |

5. 节奏值0.2+

和弦名后加 [n] 表示持续拍数,n 为整数或分数(如 C[2]G[3/2])。[n] 前面没有内容表示休止 n 拍;_[n] 表示延续上一小节的和弦或音 n 拍。

| G[2] [1] D[1] |
| 故[2] [1] 事[1] |

| G[2] _[2] | D[4] |
| 故事的小黄花 | 从出生那年就飘着 |

歌词的节奏值写在字后面,表示该字及前面未分配的字共占 n 拍:

| G[4] |
| 故[2] 事 的[1] 小 黄 花[1] |

歌词中需要输入方括号本身时,用 \[\] 转义。小节内一旦标注了节奏值,所有 [n] 之和必须等于该小节总拍数(由拍号决定)。

❌ 错误示例

4/4 拍下节奏值之和只有 3 拍,保存时会报「拍数不匹配」:

| G[2] D[1] |
| 故[2] 事[1] |

6. 分解和弦与 Solo0.3+

和弦名后加冒号 : 开启和弦保持段,后面按顺序写弹奏动作。动作用「品+弦」表示:0e = e 弦空弦,2G = G 弦 2 品。6 根弦从粗到细为 E A D G B e(1 弦用小写 e)。多个音连写表示同时弹奏。

| Am: 0e 2G 1B 2G 0e |
| 故事的小黄花 |

| Am: e G B e |
| 故事的小黄花 |

| Am: 2e1B 2G 0e1B |
| 故事的小黄花 |

Solo 或旋律线用单独的 : 开启空和弦保持段,此时动作必须显式写品位。左手技巧直接写在音符上:击弦 h、勾弦 p(前缀,不再拨弦),揉弦 ~(后缀)0.4+

| : 3e[1/2] h5e[1/2] p3e[1] 5e~[2] |
| |

读法:e 弦 3 品弹响半拍 → 击弦至 5 品半拍 → 勾弦回 3 品 1 拍 → 5 品揉弦 2 拍。

7. 扫弦0.3+

和弦名后加 :,后面写扫弦方向:(或 d)下扫、(或 u)上扫,每个方向默认占一拍,可加 [n] 标注拍数。扫弦必须指明和弦。

| C: ↓ ↓↑ ↓↑ |
| 故事的小黄花 |

| C: d du du |
| 故事的小黄花 |

方向后紧跟弦名表示只扫这些弦(不标注默认扫全部 6 根)0.5+;连续弦区可用区间写法 首弦-尾弦

| C: ↓EAD ↑GBe ↓↑ ↓↑ |
| 故事的小黄花 |

| C: ↓E-D ↑G-e ↓↑ ↓↑ |
| 故事的小黄花 |

↓EAD:下扫只扫 6、5、4 弦(低音区);↑GBe:上扫只扫 3、2、1 弦(高音区)。

8. 和弦名写法

和弦名按固定顺序拼接:根音 [性质后缀] [/低音] [@指法],中间不允许有空格。

常见非法写法:C5(不支持强力和弦)、Csus(须写 sus2/sus4)、CM7(大小写不符)、C/E/G(多个 /)、C@A3/E(@ 须写在最后)。

9. 完整示例

---
SMD:
  version: "0.6.0"
song:
  title: 晴天
  artist: 周杰伦
  key: G
  bpm: 69
  time: 4/4
---

# 前奏

| G[2] D[2] | Em[2] C[2] |
| | |

# 主歌 1(带节奏值)

| G[2] D[2] | Em[4] |
| 故事的小黄花 | 从出生那年就飘着 |

| Em[4] | C[4] |
| 童年的荡秋千 | 随记忆一直晃到现在 |

# 副歌(扫弦节奏型)

| C: ↓ ↓↑ ↓↑ | G: ↓ ↓↑ ↓↑ | Am: ↓ ↓↑ ↓↑ | F: ↓ ↓↑ ↓↑ |
| 吹着前奏望着天空 | 我想起花瓣 | 试着掉落 | |

# 间奏(分解和弦)

| G: 3e 2B 0G 0D 3A 3E | D | Em | C |
| | | | |

# 尾奏(Solo 技巧)

| : 3e[1/2] h5e[1/2] p3e[1] 5e~[2] |
| |

| G | D | Em | C |
| | | | |

10. 版本历史

版本 新增内容
0.1基础文件结构与核心语法(元信息、段落、小节线、和弦歌词配对)
0.2节奏值、休止、延续音及拍数校验
0.3分解和弦 : 标记与和弦保持段、扫弦
0.4弹奏技巧:击弦 h、勾弦 p、揉弦 ~
0.5扫弦弦集合(↓EAD↓E-D
0.6轨道标识与多轨并行、对齐组