Voice节
本节记录了音符、小节线等所有基本符号,以及弧线、技法、房子这些常见附属符号。它们构成了乐谱的基础和骨干。目前本节仅能记录单声部音乐。
本节记录的基本符号有如下类型:
- 音符(Note)
- 小节线(Barline)
- 拍号(Meter)
- 伴奏记号(AccompMarker)
- 标准文字(Text)
- 段落标记(Return)
本节记录的附属符号有如下类型:
- 弧线(Arc)
- 技法(Articulation)
- 房子(FangZi)
其中技法和弧线是作为音符的组成部分来记录的,房子是作为小节线的组成部分来记录的。
本节由若干行构成,每行包含了若干符号,各符号内部不允许有任何空格,但是音符之间的空格是可选的,而音符与非音符之间,以及非音符与非音符之间则必须有空格。程序在解析本节时,首先分解为行,然后每行内部通过空格分解为若干部分,每一部分再设法解析出若干符号。
音符(Note)
音符的abc代码依次由7个部分构成:
名称 | 含义 | 备注 |
---|---|---|
ArcStartings(弧线开始) | 由若干左圆括号构成,其数量代表从该音符出发的弧线的数量。 | 可选 |
Articulations(技法) | 使用拼音字母来代表技法符号,两端必须有大括号。例如{BoYin,YanYin}代表波音和延音。 | 可选 |
Grace(倚音) | 将若干Pitch连在一起形成Pitches(中间无任何间隔符),两端用大括号括起来。例如{6,2}代表低音6和中音2的16分音符的前倚音。 | 可选 |
Pitches(音高) | 单个Pitch依次由变音/数字/8度三部分构成: | 必需 |
Duration(时值) | 使用下划线_代表减时线,下划线的数量代表了减时线的数量; | 可选 |
ControlOptions(控制选项) | 两端必须是大括号,内部以C:开头。然后由3部分构成(相互之间用逗号分隔): | 可选 |
ArcEndings(弧线结束) | 仅由若干右圆括号构成,其数量代表以该音符结束的弧线的数量。 | 可选 |
举例:
高音2,升半音,8分附点 #2'_.
倍低音4,带有2条增时线(2分附点),带有技法符号-波音 {BoYin}4,,--
锣鼓经,字符为“台”,16分 X台__
低音5,4分,带有16分前倚音音符低音3和低音4 {3,4,}5,
和弦,由低音5、中音1、中音3(有降号)、中音5组成,8分 [5,1b35]_
中音2,4分,有2条弧线从此音符出发,有1条弧线结束于此音符 ((2)
中音2,16分,有1条3连音弧线从此音符出发 {(3}2__
小节线(Barline)
小节线的abc代码依次由3部分构成:
名称 | 含义 | 备注 |
---|---|---|
PureBarline(小节线本身) | 使用如下符号来代表各种小节线: | 必需 |
ControlOptions(控制选项) | 参见音符的控制选项。 | 可选 |
FangZi(附带的房子) | 以左中括号[开头,后跟代表房子内部文字的文字。 | 可选 |
举例:
普通小节线,有房子从此小节线出发,房子内部文字为1.2. |[1.2.
拍号(Meter)
拍号的abc代码依次由2部分构成:
名称 | 含义 | 备注 |
---|---|---|
PureMeter(拍号本身) | 拍号的分子与分母之间使用/分隔 | 必需 |
ControlOptions(控制选项) | 参见音符的控制选项。 | 可选 |
举例:
7/8拍. 7/8
伴奏记号(AccompMarker)
伴奏记号的abc代码依次由2部分构成:
名称 | 含义 | 备注 |
---|---|---|
PureAccompMarker(伴奏记号本身) | 分别使用左右圆括号代表伴奏开始和伴奏结束。 | 必需 |
ControlOptions(控制选项) | 参见音符的控制选项。 | 可选 |
标准文字(Text)
标准文字的abc代码依次由2部分构成:
名称 | 含义 | 备注 |
---|---|---|
PureText (标准文字本身) | 两端使用双引号,内部为文字。 | 必需 |
ControlOptions(控制选项) | 参见音符的控制选项。 | 可选 |
举例:
"此处省略4小节,转{1=bD,3/4}"
段落标记(Return)
段落标记的abc代码依次由2部分构成:
名称 | 含义 | 备注 |
---|---|---|
PureReturn (段落标记本身) | 就是$ | 必需 |
Options(选项) | 依次由5部分构成: | 可选 |
举例:
$(False,0.00,1.00,False,False)
$
$(True)