跳到主要内容

词曲指令及其属性

所谓词曲指令,就是表示曲谱或歌词实质内容的指令,包括声部头中的这些:

命令头全称说明必须唯一内容属性
NNotes音符序列1N令牌化可选
NaNotesAccompany鼓点音符序列1N令牌化可选
NcNotesCompact紧凑音符序列1N令牌化可选
AAnnotation标记符号--令牌化可选

还有歌词行中的这些:

命令头全称说明必须唯一内容属性
LLyric歌词(手动分割)1L令牌化可选
LcLyricChar歌词(字基)1L令牌化可选
LwLyricWord歌词(词基)1L令牌化可选
NsNotesSubstitute替代小节--令牌化可选
AAnnotation标记符号--令牌化可选
LaLyricAnnotation标记型歌词-La令牌化-

本节具体说明属性的写法,并指出其内容应当是什么。

音符序列 N/Na 的属性

音符序列 N Na 指令可以有一个属性,也可以没有,如果有多个属性,只有第一个有效。属性代表当前声部的名称。名称有两类写法:

  • 不带下标的字符串:"V"
  • 带下表的字符串:"T1"_"2"

注意,字符串不能使用单引号 '

例如,这样就可以为声部添加名称:

添加名称后,名称而非序号将成为声部的唯一标识符。若同一个碎片中有两个名称完全一样的声部,后者会覆盖前者。

鼓点声部 Na 和其他类型的声部即使名称相同也会被认为是不同的声部。

将普通声部的 N 改成 Nc,当前位置将成为紧凑型声部。 最低版本:Sparks NMN 1.14.22

歌词的属性

歌词行 L Lw Lc 指令可以有零个一个或多个属性,代表歌词的迭代数(平常所说的段号或反复次数),格式为 <迭代数>.。例如,这样可以为第一遍和第二遍添加不同的歌词,而使第二遍和第三遍的歌词一致。

渲染时,迭代数会被显示在相应行第一个字符左侧一点的位置。

添加迭代数后,歌词行的所有迭代数构成的序列,而非序号,将成为其唯一标识符。

还可以在迭代数列表前添加一个双引号引起的字符串(不会显示),这时这个字符串会成为唯一标识符。

若渲染时会出现某行上有两个标识符不同,但是位置完全错开的歌词行,渲染器会自动将它们排在一起。

替代旋律 Ns 的属性

如果想在没有歌词的情况下使用替代旋律 Ns,那么可以在替代旋律行上添加迭代数使其能够显示。不过,为了使 Ns 有效,仍然需要一个空的歌词行(放心,渲染时这不会占据空间)。

替代旋律的内容

替代旋律除了曲谱外还需要指定替代位置,因此其格式是这样的:

其中替代位置指的是被替代小节在当前碎片中的序号,从 1 开始。

标记符号行的序号

通过渲染属性,可以根据标记行 A 在碎片中的序号为其指定不同的字体。然而有的时候,这并不是很方便,因此还可以通过属性给文本标记行强制指定使用哪一个字体,形如:

其中序号取值范围是 0-6。

例如,标记行 A[2]: <内容> 一定会使用渲染属性 font_annotation2 所指定的字体。

只有不同碎片中两个标记行在声部中的次序和字体序号都相同时,它们才被认为是同一个标记行。

小节

音符序列 N Na Ns 和标记 A La 具有非常类似的格式,称为小节序列

歌词

歌词序列 Lc Lw 后面跟的是歌词文本,支持自动划分,因此文本的样子会和歌词原文相差无几。

歌词序列 L 后面跟的是手动划分的歌词,其语法规范相当复杂,非极其特殊的情况不建议使用。