3. 信息字段
任何以 A-Z 或 a-z 范围内的字母开头并紧跟冒号(:)的行均为信息字段。信息字段用于记录作曲家、拍号等内容,实际上是所有非音乐类的信息。
信息字段也可通过方括号 [和] 内嵌到曲调主体中 —— 详见曲调主体中字段的使用。
目前许多信息字段标识符尚未被使用,因此为便于未来扩展信息字段数量,符合本标准的程序必须忽略未在此处定义的信息字段(但应输出非致命错误消息以提醒用户,以防字段标识符存在错误或不被支持)。
部分信息字段仅允许在文件头部或曲调头部使用,部分仅允许在曲调主体中使用,还有一些则在两处均可使用。为避免与音符符号、休止符和间隔符混淆,信息字段标识符 A-G、X-Z 及 a-g、x-z 不允许在主体中使用。
仅希望使用 ABC 记谱法转录(而非记录)曲调的用户可忽略大多数信息字段。为此,真正需要的字段仅有 X:(参考编号)、T:(标题)、M:(拍号)、L:(单位音符长度)和 K:(调号),必要时可加上 C:(作曲家)以及 w: 或 W:(歌词,分别用于曲调内或曲调后)。
新手建议:了解字段使用方法的一个好方式是查看示例文件、ABC 曲调样本(尤其是 English.abc),并尝试实践一些例子。
信息字段汇总于下表,并在信息字段说明及其他章节中详细讨论。该表展示了信息字段在曲调头部的使用方式,以及它们是否可在曲调主体(详见曲调主体中字段的使用)或文件头部(详见 ABC 文件结构)中使用。ABC 字段及其用法:
3.1 信息字段列表
3.2 信息字段说明
3.2.1 X: - 参考编号
X:(参考编号)字段用于为曲集中的每首曲调分配唯一参考编号(正整数),例如:X:23。
X: 字段还用于标识曲调的起始位置(即曲调头部的开始),因此所有曲调必须以 X: 字段开头,且每首曲调仅允许包含一个 X: 字段。
X: 字段可以为空,但不建议这样做。
开发者建议:生成 ABC 文件的软件应提供自动管理 X: 字段编号的功能。图形界面应用程序可向用户隐藏 X: 字段,但需始终允许用户访问原始 ABC 文件。
3.1.2 T: - 曲调标题
T:(标题)字段必须紧跟在 X: 字段之后,它是曲调的人工标识符(尽管可以为空)。
有些曲调有多个标题,因此每首曲调可多次使用 T: 字段以标识替代标题。
T: 字段也可在曲调内部用于命名曲调的段落 —— 此时它应位于任何调号或拍号变化之前。
有关标题及替代标题如何显示在印刷乐谱中的详情,请参见排版信息字段。
3.1.3 C: - 作曲家
C: 字段用于标识作曲家(可多人)。
有关作曲家信息如何显示在印刷乐谱中的详情,请参见排版信息字段。
3.1.4 O: - 起源地
O: 字段用于标识曲调的地理起源地(可多个)。
若可能,应按层级结构输入数据,例如:
O:Canada; Nova Scotia; Halifax.(加拿大;新斯科舍省;哈利法克斯)
O:England; Yorkshire; Bradford and Bingley.(英格兰;约克郡;布拉德福德和宾利)
建议:始终使用分号(;)作为分隔符,以便软件解析该字段。但 ABC 2.0 曾建议使用逗号,因此旧版文件可能无法在 ABC 2.1 中解析。
对于无已知作曲家的传统曲调,此字段尤为实用。
有关起源地信息如何显示在印刷乐谱中的详情,请参见排版信息字段。
3.1.5 A: - 地区
历史上,A: 字段用于包含地区信息(曲调起源的更具体细节)。但此字段现已弃用,建议将此类信息归入 O: 字段。
3.1.6 M: - 拍号
M: 字段用于标识拍号。除标准拍号(如 M:6/8 或 M:4/4)外,符号 M:C 和 M:C| 分别表示普通拍子(4/4)和切分拍子(2/2)。符号 M:none 表示无拍号(自由节拍)。
也可指定复杂拍号,例如 M:(2+3+2)/8,以明确标注重音位置。分子外的括号为可选。
上述示例在排版时将显示为:
plaintext
2 + 3 + 2
8
若未定义 M: 字段,则默认视为自由节拍(自由节拍中,小节线可任意放置)。
3.1.7 L: - 单位音符长度
L: 字段用于指定单位音符长度 —— 即 ABC 中单个字母所代表的音符长度,详情参见音符长度。
常用的单位音符长度值包括:L:1/4(四分音符)、L:1/8(八分音符)、L:1/16(十六分音符)。此外还有 L:1(全音符,等效于 L:1/1)、L:1/2(二分音符)、L:1/32(三十二分音符)、L:1/64、L:1/128、L:1/256、L:1/512,但 L:1/64 及更短的长度为可选值,并非所有软件都支持。
若未定义 L: 字段,单位音符长度将根据拍号字段 M: 自动设置默认值。默认值计算方式为:将拍号转换为小数,若小于 0.75,默认单位音符长度为十六分音符;若大于或等于 0.75,则为八分音符。例如,2/4 = 0.5,默认单位为十六分音符;而 4/4 = 1.0、6/8 = 0.75、3/4 = 0.75 时,默认单位为八分音符。对于 M:C(4/4)、M:C|(2/2)和 M:none(自由节拍),默认单位音符长度为 1/8。
曲调主体中的拍号变化不会改变单位音符长度。
3.1.8 Q: - 速度
Q: 字段用于以每分钟节拍数定义速度,例如 Q:1/2=120 表示每分钟 120 个二分音符节拍。
定义中最多可包含 4 个节拍,例如:
Q:1/4 3/8 1/4 3/8=40
这表示按 Q:5/4=40 的速度演奏,但乐谱中按用户指定的单独音符显示速度标记。
速度定义前后可附带可选文本字符串(用引号括起),例如:
Q: "Allegro" 1/4=120
Q: 3/8=50 "Slowly"
也可仅提供文本字符串而无明确速度值,例如:Q:"Andante"。
请注意,部分早期 Q: 字段语法现已弃用(参见过时信息字段语法)。
3.1.9 P: - 段落结构
注意:对于多声部音乐,P: 字段与 V: 字段的交互将在 ABC 2.2 版本针对多声部音乐的规范中明确。单声部音乐中 P: 字段的用法也将同时重新审视。
P: 字段可在曲调头部用于指定段落演奏顺序,例如 P:ABABCDCD;也可在曲调主体中标记各段落,例如 P:A 或 P:B(此处的 “段落” 指曲调的段落部分,而非多声部音乐中的声部)。
在曲调头部,可通过在段落后方添加数字表示重复,例如 P:A3 等效于 P:AAA;可使用括号表示序列重复,例如 P:(AB) 3 等效于 P:ABABAB。支持嵌套括号;为提高可读性,可在头部 P: 字段中任意位置添加点号,例如 P:((AB) 3.(CD) 3) 2,这些点号将被程序忽略。
有关 P: 符号的可能用途,参见变奏结尾和歌词。
播放程序应尽可能使用 P: 字段实现曲调的完整播放;排版程序应将 P: 字段值包含在印刷乐谱中。
有关段落信息如何显示在印刷乐谱中的详情,请参见排版信息字段。
3.1.10 Z: - 转录信息
通常,Z: 字段包含将曲调转录为 ABC 格式的人员姓名,可能还包含联系信息(如电子邮件地址或主页 URL)。
示例:简单转录说明Z:John Smith, j.s@mail.com
此外,由于 %% abc-copyright 和 %% abc-edited-by 已弃用(参见过时指令),Z: 字段已接管其功能。
示例:详细转录说明
Z:abc-transcription John Smith, j.s@mail.com, 1st Jan 2010
Z:abc-edited-by Fred Bloggs, f.b@mail.com, 31st Dec 2010
Z:abc-copyright © John Smith这种新用法可在多人协作编辑的曲集中记录更新历史。
注意:此字段内容无正式语法,但强烈建议用户保持格式一致。按惯例,Z:abc-copyright 指 ABC 转录版本的版权,而非曲调本身的版权。
有关转录信息如何显示在印刷乐谱中的详情,请参见排版信息字段。
备注:若需要,软件可选择解析特定 Z: 字符串,例如提取 Z:abc-copyright 后的内容并显示。
3.1.11 N: - 注释
包含一般性说明,例如相似曲调的参考、原始乐谱转换为 ABC 格式的细节等。
有关注释如何显示在印刷乐谱中的详情,请参见排版信息字段。
3.1.12 G: - 组别
数据库软件可使用此字段对曲调进行分组(例如按乐器)以方便索引。它也可用于创建联奏,但此用法尚未标准化。
3.1.13 H: - 历史背景
用于多行注释、故事和趣闻。
尽管 H: 字段通常不用于排版,但多行输入的正确用法是使用字段续接语法(+:),而非在后续每行开头重复 H:。这可帮助数据库应用区分不同的趣闻条目。
示例:
H:this is considered
+:as a single entry(视为一个条目)
H:this usage is considered as two entries
H:rather than one(视为两个条目而非一个)
H: 字段的原始用法(后续行无需字段标识)现已弃用(参见过时信息字段语法)。
有关历史背景如何显示在印刷乐谱中的详情,请参见排版信息字段。
3.1.14 K: - 调号
调号应使用大写字母(A-G)指定,字母后可分别跟随 #(升号)或 b(降号)。此外,还需指定调式(若未标明调式,则默认为大调)。
例如,K:C major(C 大调)、K:A minor(A 小调)、K:C ionian(C 伊奥尼亚调式)、K:A aeolian(A 爱奥利亚调式)、K:G mixolydian(G 米索利底亚调式)、K:D dorian(D 多利亚调式)、K:E phrygian(E 弗里几亚调式)、K:F lydian(F 利底亚调式)和 K:B locrian(B 洛克里亚调式)所生成的五线谱均无升降号。空格可省略,调式名称的大小写不影响解析,实际上程序仅解析每个调式的前三个字母,因此例如 K:F# mixolydian 与 K:F#Mix 甚至 K:F#MIX 等效。作为特例,“minor”(小调)可缩写为 “m”。
下表总结了相同调号的不同写法:
通过指定空的 K: 字段或 K:none,可以完全不使用调号。
调号可通过添加临时变音记号进行修改,格式为 K:<主音> < 调式 > < 变音记号 >。例如,K:D Phr ^f 会生成包含两个降号和一个升号的调号,这种调号对应 klezmer 音乐中非常常见的调式(Ahavoh Rabboh)以及阿拉伯音乐中的调式(Maqam Hedjaz)。同样,“K:D maj =c” 或 “K:D =c” 会生成包含升 F 和还原 C 的调号(即 D 米索利底亚调式)。需注意,可添加多个修饰性变音记号,彼此用空格分隔,每个变音记号均以变音符号(__、_、=、^ 或 ^^)开头,后跟音符字母。字母的大小写用于确定变音记号在五线谱中的位置。
可使用 K:<主音> exp < 变音记号 > 的格式来明确定义调号中的所有变音记号。因此 K:D Phr ^f 也可记为 K:D exp b e ^f,其中 “exp” 是 “explicit”(明确)的缩写。同样,字母的大小写用于确定变音记号在五线谱中的位置。
不支持明确调号的软件应在曲调的单个音符上标记适用的变音记号。
苏格兰高地风笛的典型音阶为 G A B ^c d e ^f g a,高地风笛音乐主要使用 D 大调与 A 米索利底亚调式(此外还有 B 小调与 E 多利亚调式)。因此,有两个专门用于记录高地风笛曲调的附加调号:K:HP 不在乐谱上标注调号,这与许多此类音乐的曲集习惯一致;而 K:Hp 会在五线谱上标记升 F、升 C 和还原 G。这两种调号均强制普通音符的符杠和符干向下,装饰音的符杠和符干向上。
默认情况下,ABC 曲调会以高音谱号排版。你可以在 K: 字段中添加特殊谱号说明符(无论是否带有调号),以更改谱号和其他五线谱属性(如移调)。例如,K: clef=bass 表示低音谱号。详情参见谱号与移调。
需注意,每首曲调中必须出现的首个 K: 字段标志着曲调头部的结束,后续所有行均被视为曲调主体的一部分。
3.1.15 R: - 节奏类型
该字段用于标识曲调的类型(例如:号笛舞曲、双人吉格舞、单人吉格舞、48 小节波尔卡等)。它为演奏者提供了曲调的演绎参考,同时也便于数据库应用进行分类(参见背景信息)。播放软件(尤其是 abcmus)也通过实验性地使用该字段,通过改变小节内特定音符的重音来实现更真实的播放效果。
有关节奏类型如何显示在印刷乐谱中的详情,请参见排版信息字段。
3.1.16 B:、D:、F:、S: - 背景信息
以下字段用于提供曲调的结构化背景信息,尤其适用于大型曲集(自 ABC 格式诞生以来常见于曲集整理):
B:book(乐谱来源,即印刷曲集)
D:discography(唱片信息,即能听到该曲调的 CD 或黑胶唱片)
F:file url(文件链接,即该 ABC 曲调或文件在网络上的位置)
S:source(采集背景,即曲调的采集或习得场景)
以及前文提到的 H:history(历史背景)、N:notes(注释)、O:origin(起源地)和 R:rhythm(节奏类型)。
如果系统地使用这些字段,ABC 数据库软件可基于特定字段进行排序、搜索和筛选(例如:按节奏类型排序,或筛选出某张 CD 中的所有曲调)。
ABC 标准未规定这些字段的具体使用方式,但通常建议为每个信息点单独使用一个同类型字段,而非在一个字段中包含多个信息点(示例可参见 English.abc)。
有关背景信息如何显示在印刷乐谱中的详情,请参见排版信息字段。
3.1.17 I: - 指令
I:(指令)字段用于一系列扩展指令,这些指令规定了 ABC 代码的解析方式。
I: 字段与样式表指令可互换使用,即任何 I:directive 都可写成 %% directive,反之亦然。但如需使用内嵌形式,必须采用 I: 版本。
尽管存在互换性,某些指令已被纳入标准(本文中以 I: 标识),符合本版本标准的软件必须实现这些指令;相反,样式表指令(本文中以 %% 标识)为可选实现。
备注:由于样式表指令为可选且未必能在不同程序间兼容,ABC 软件应对包含样式表指令的 I: 字段采取宽松处理,尤其是对未识别的 I: 字段应忽略。
下表列出了纳入 ABC 标准的 I: 字段指令及相关扩展信息链接:
通常,指令字段用于文件头部(设置文件默认值)或曲调头部(多数情况),而非曲调主体。曲调头部中的指令字段会覆盖文件头部的同名指令。
备注:从文件中提取单独曲调的 ABC 软件,必须将原始文件头部的字段插入提取出的曲调头部中,本节定义的字段也不例外。
字符集字段
I:abc-charset <value> 字段用于指定文本字符串的编码字符集。由于该字段影响文件的读取方式,应尽早出现在文件头部,且在文件中不可更改。
示例:
I:abc-charset utf-8
字符集字段的合法值包括:iso-8859-1 至 iso-8859-10、us-ascii 以及默认的 utf-8。
导出符合本标准的 ABC 曲调的软件,若使用 utf-8 以外的编码,必须包含字符集字段。所有符合标准的 ABC 软件都必须能处理 utf-8 和 us-ascii 编码的文本字符串,对其他字符集的支持为可选。
关于 UTF-8 和 ISO-8859 的详细信息可在维基百科中查询。
版本字段
所有符合本标准的 ABC 文件都应以以下行开头:
%abc-2.1
(参见 ABC 文件标识)。
但若需标识符合其他标准的曲调,可使用 I:abc-version <value> 字段,该字段可置于曲调头部(针对单个曲调)或文件头部。
示例:
I:abc-version 2.0
引入字段
I:abc-include <filename.abh> 用于导入独立的 ABC 头文件(.abh)中定义的内容,并将其插入文件头部或曲调头部。
示例:
I:abc-include mydefs.abh被引入的文件可包含信息字段、样式表指令和注释,但不可包含其他 ABC 结构。
若未找到头文件,I:abc-include 指令应被忽略,并输出非致命错误消息。
备注:若使用此结构并分发 ABC 文件,需确保同时分发相关的 .abh 文件。
创建者字段
I:abc-creator <value> 字段包含创建该 ABC 文件的程序名称及版本号。
示例:
I:abc-creator xml2abc-2.7导出符合本标准的 ABC 曲调的软件,必须包含创建者字段。
3.1.18 其他字段
关于 m: 参见宏定义(macros)。
关于 r: 参见注释与备注(comments and remarks)。
关于 s: 参见符号行(symbol lines)。
关于 U: 参见可重定义符号(redefinable symbols)。
关于 V: 参见多声部(multiple voices)。
关于 W: 和 w: 参见歌词(lyrics)。
3.3 曲调主体中字段的使用
在曲调中途更改调号(K)、拍号(M)或单位音符长度(L)是常见需求。这些字段以及其他大多数可在曲调主体中合法使用的信息字段,可通过将其置于音乐行的方括号内来指定为内嵌字段。
示例:以下两段摘录被视为等效,两种形式均可接受。
E2E EFE|E2E EFG|[M:9/8] A2G F2E D2|]
E2E EFE|E2E EFG|\
M:9/8
A2G F2E D2|]左括号、字段标识符和冒号之间不得有空格。一对括号内只能放置一个字段,但多个带括号的字段可以相邻放置。在适当情况下,内嵌字段(尤其是谱号变化)可用于连音线中间而不中断连音。
有关可出现在主体中的字段及可用于内嵌的字段列表,请参见信息字段表。
3.4 字段续接
若一个字段过长无法在一行内显示,可在后续行的开头添加 +: 来续接。对于字符串类型的信息字段(字符串类型字段列表参见信息字段表),续接部分会被视为在两行内容之间添加一个空格。
示例:以下两段摘录被视为等效。
w:Sa-ys my au-l' wan to your aul' wan,
+:will~ye come to the Wa-x-ies dar-gle?
w:Sa-ys my au-l' wan to your aul' wan, will~ye come to the Wa-x-ies dar-gle?备注:这在续接长文本的 w:(对齐歌词)和 H:(历史背景)字段时最为实用。此外,它还可用于防止邮件软件自动换行(参见输入行的续接)。
图形界面开发者建议:用户有时可能希望将大段文本粘贴到 ABC 文件中,尤其是在 H:(历史背景)字段中。建议图形界面开发者提供文本重格式化工具,例如将段落拆分为多行,每行以 +: 开头。
字段续接的次数没有限制,且注释和样式表指令可穿插在续接内容之间。
示例:以下是 w: 字段的合法续接方式,尽管不推荐这样使用(字体更改也可通过字体说明符实现 —— 参见字体指令)。
%%vocalfont Times-Roman 14
w:nor-mal
% 合法但不推荐
%%vocalfont Times-Italic
+:i-ta-lic
%%vocalfont Times-Roman
+:nor-mal备注:ABC 2.3 标准计划解决标记问题,并将寻求更简洁的方式实现上述功能。