修炼者
修炼者
发布于 2025-08-06 / 50 阅读
0
0

用ABC记谱法记录五线谱

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 信息字段列表

名称

文件头部

曲调头部

曲调主体

内嵌

类型

示例和说明

A:area(地区)

字符串

A:Donegal(多尼戈尔)、A:Bampton(班普顿,已弃用)

B:book(书籍)

字符串

B:O'Neills(奥尼尔作品集)

C:composer(作曲家)

字符串

C:Robert Jones(罗伯特・琼斯)、C:Trad.(传统)

D:discography(唱片目录)

字符串

D:Chieftains IV(酋长乐队第四张专辑)

F:file url(文件链接)

字符串

F:http://a.b.c/file.abc

G:group(乐器组)

字符串

G:flute(长笛)

H:history(历史背景)

字符串

H:The story behind this tune …(此曲调背后的故事……)

I:instruction(指令)

指令

I:papersize A4(纸张尺寸 A4)、I:newpage(新页面)

K:key(调号)

最后

指令

K:G(G 大调)、K:Dm(D 小调)、K:AMix(A 米索利底亚调式)

L:unit note length(单位音符长度)

指令

L:1/4(四分音符)、L:1/8(八分音符)

M:meter(拍号)

指令

M:3/4(四三拍)、M:4/4(四四拍)

m:macro(宏定义)

指令

m: ~G2 = {A}G{F}G

N:notes(注释)

字符串

N:see also O'Neills - 234(另见奥尼尔作品集 - 234 页)

O:origin(起源地)

字符串

O:UK; Yorkshire; Bradford(英国;约克郡;布拉德福德)

P:parts(段落结构)

指令

P:A(A 段)、P:ABAC(A-B-A-C 结构)、P:(A2B) 3((A²B) 重复 3 次)

Q:tempo(速度)

指令

Q:"allegro" 1/4=120(“快板” 四分音符 = 120 拍)

R:rhythm(节奏类型)

字符串

R:R、R:reel(里尔舞曲)

r:remark(备注)

-

r:I love abc

S:source(来源)

字符串

S:collected in Brittany(采集于布列塔尼)

s:symbol line(符号行)

指令

s: !pp! **!f!(强弱符号行)

T:tune title(曲调标题)

第二

字符串

T:Paddy O'Rafferty(帕迪・奥拉菲蒂)

U:user defined(用户自定义)

指令

U: T = !trill!(颤音标记定义)

V:voice(声部)

指令

V:4 clef=bass(第 4 声部,低音谱号)

W:words(歌词)

字符串

W:lyrics printed after the end of the tune(曲调结尾后附歌词)

w:words(同步歌词)

字符串

w:lyrics printed aligned with the notes of a tune(与曲调音符对齐的歌词)

X:reference number(参考编号)

第一

指令

X:1(编号 1)、X:2(编号 2)

Z:transcription(转录者)

字符串

Z:John Smith, j.s@mail.com(约翰・史密斯,邮箱:j.s@mail.com)

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”。


下表总结了相同调号的不同写法:

调式

伊奥尼亚(Ionian)

爱奥利亚(Aeolian)

米索利底亚(Mixolydian)

多利亚(Dorian)

弗里几亚(Phrygian)

利底亚(Lydian)

洛克里亚(Locrian)

调号

大调

小调

7 个升号

C# 大调

A# 小调

G# 米索利底亚

D# 多利亚

E# 弗里几亚

F# 利底亚

B# 洛克里亚

6 个升号

F# 大调

D# 小调

C# 米索利底亚

G# 多利亚

A# 弗里几亚

B 利底亚

E# 洛克里亚

5 个升号

B 大调

G# 小调

F# 米索利底亚

C# 多利亚

D# 弗里几亚

E 利底亚

A# 洛克里亚

4 个升号

E 大调

C# 小调

B 米索利底亚

F# 多利亚

G# 弗里几亚

A 利底亚

D# 洛克里亚

3 个升号

A 大调

F# 小调

E 米索利底亚

B 多利亚

C# 弗里几亚

D 利底亚

G# 洛克里亚

2 个升号

D 大调

B 小调

A 米索利底亚

E 多利亚

F# 弗里几亚

G 利底亚

C# 洛克里亚

1 个升号

G 大调

E 小调

D 米索利底亚

A 多利亚

B 弗里几亚

C 利底亚

F# 洛克里亚

无升降号

C 大调

A 小调

G 米索利底亚

D 多利亚

E 弗里几亚

F 利底亚

B 洛克里亚

1 个降号

F 大调

D 小调

C 米索利底亚

G 多利亚

A 弗里几亚

B♭利底亚

E 洛克里亚

2 个降号

B♭大调

G 小调

F 米索利底亚

C 多利亚

D 弗里几亚

E♭利底亚

A 洛克里亚

3 个降号

E♭大调

C 小调

B♭米索利底亚

F 多利亚

G 弗里几亚

A♭利底亚

D 洛克里亚

4 个降号

A♭大调

F 小调

E♭米索利底亚

B♭多利亚

C 弗里几亚

D♭利底亚

G 洛克里亚

5 个降号

D♭大调

B♭小调

A♭米索利底亚

E♭多利亚

F 弗里几亚

G♭利底亚

C 洛克里亚

6 个降号

G♭大调

E♭小调

D♭米索利底亚

A♭多利亚

B♭弗里几亚

C♭利底亚

F 洛克里亚

7 个降号

C♭大调

A♭小调

G♭米索利底亚

D♭多利亚

E♭弗里几亚

F♭利底亚

B♭洛克里亚

通过指定空的 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: 字段指令及相关扩展信息链接:

指令

对应章节

I:abc-charset

字符集字段

I:abc-version

版本字段

I:abc-include

引入字段

I:abc-creator

创建者字段

I:linebreak

排版换行

I:decoration

装饰音方言

通常,指令字段用于文件头部(设置文件默认值)或曲调头部(多数情况),而非曲调主体。曲调头部中的指令字段会覆盖文件头部的同名指令。

备注:从文件中提取单独曲调的 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 标准计划解决标记问题,并将寻求更简洁的方式实现上述功能。


评论