abc 標準
以下、abc 標準 2.1 版(abcnotation.com) の部分訳である。 これより新しい標準の訳は abc 標準 2.2 を参照のこと。 訳注は marinkyo による。abcjs を使って実際の譜面も表示するようにした。
目次
abc music 記法 2.1 (2011 年 12 月)
目次
1. はじめに
1.1 この文書を読む方法
1.2 この文書を読まずに済ませる方法
1.3 abc チュートリアル
1.4 abc 拡張
1.5 情報を知りたい、変更を提案したい
1.6 文書の場所
2. abc ファイル、音、断片
2.1 abc ファイルの見分け方
2.2 abc ファイル構造
2.3 埋め込まれた abc と abc の断片
3. 情報フィールド
3.1 情報フィールドの定義
3.2 曲本体でのフィールド使用
3.3 フィールド継続
4. 曲
4.1 ピッチ
4.2 臨時記号
4.3 音符の長さ
4.4 リズム割(付点音符など)
4.5 休符
4.6 音部記号と移調
4.7 連桁
4.8 繰り返し記号
4.9 1カッコ、2カッコ
4.10 いろいろな終わり方
4.11 タイとスラー
4.12 装飾音符
4.13 連符
4.14 装飾
4.15 シンボル線
4.16 再定義可能な記号
4.17 コードとユニゾン
4.18 コード記号
4.19 注釈
4.20 abc 構成の順序
5. 歌詞
5.1 行揃え
5.2 連
5.3 番号付け
6. 組版、再生
6.1 組版
6.2 再生
7. 多声
7.1 声部のプロパティ
7.2 改行
7.3 インラインフィールド
7.4 声部の重ね書き
8. abc データフォーマット
8.1 曲本体
8.2 テキスト文字列
9. マクロ
9.1 静的マクロ
9.2 移調マクロ
10. 時代遅れのシンタックス
10.1 旧情報フィールド
10.2 旧方言
10.3 旧継続
10.4 旧ディレクティブ
10.5 旧ファイル構造
10.6 旧歌詞そろえ
10.7 その他の旧記法
11. スタイルシートディレクティブと疑似コメント
11.0 ディレクティブとは
11.1 声のグループ化
11.2 命令ディレクティブ
11.3 臨時記号ディレクティブ
11.4 フォーマットディレクティブ
11.5 アプリケーション固有ディレクティブ
11.6 ディレクティブに関する進んだ情報
12. 方言、ゆるい解釈、厳密な解釈
12.1 方言の違い
12.2 ゆるい解釈
12.3 厳密な解釈
13. abc 曲のサンプル
13.1 English.abc
13.2 Strspys.abc
13.3 Reels.abc
13.4 Canzonetta.abc
14. 付録
14.1 サポートしているアクセント
14.2 訂正
1. はじめに
abc はテキストベースの音楽記法であり、 人間にとってもコンピュータにとっても理解できるように設計されている。 abc の音楽は文字記号、すなわち、英文字、数字、句読点でで記述されていて、 紙やコンピュータファイルに入っている。 この文書は、abc 記法を理解したい人たちのために、そして abc のソフトウェアアプリケーションを実装したい人たちのために作成した。 例のいくつかはサンプルに入っている。
1.1 この文書を読む方法(How to read this document)
最初から読み始めて終わりまで読み通すこと。 他には、ハイライトを読む方法もある。読まずに済ませる方法を参照。
1.1.1 用語
下記用語は abc の標準で特別な意味をもっている。 便宜を図るため、定義にリンクを張っている。
- abc ファイル
- abc 断片
- abc 曲
- abc 曲集
- コード改行
- コメント
- 埋め込み
- 空の線
- ファイルヘッダ
- ファイルテキスト
- 情報フィールド
- inline field
- 音楽コード
- スコア改行
- スタイルシートディレクティブ
- テキスト文字列
- 曲本体
- 曲ヘッダ
- 組版テキスト
なお、http://www.ietf.org/rfc/rfc2119.txt も見よ。 ここではキーワード MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, OPTIONAL の厳密な意味が定義されている。
最後に、単語「変動要因」 // VOLATILE // とある項は、 現在活発に議論されていたり、今後標準の変更が予想されていたりすることを示している。
1.2 この文書を読まずに済ませる方法(How to avoid reading this document)
abc 標準は多くの情報を含んでいる。そのため初心者にとってはすぐには使いこなせないだろう。 それでも初心者は、 1. の「はじめに」にあるこの節はともかく、 2.2, 3.0, 3.1 (特に 3.1.1, 3.1.2, 3.1.6, 3.1.7, 3.1.14), 3.2, 4. (特に 4.1, 4.3, 4.7, 4.8) を読んでほしい。
初心者は 13章 と abc チュートリアルを読むことをすすめる。
そのあとで、興味に応じて下記を参照してほしい。
1.3 abc チュートリアル(Abc tutorials)
- http://abcnotation.com/learn 多くのチュートリアルへのリンクがここにある
- http://abcplus.sourceforge.net/#ABCGuide
- http://www.lesession.co.uk/abc/abc_notation.htm
- http://trillian.mit.edu/~jc/music/abc/doc/ABCtutorial.html
訳注:日本語で読める abc 記譜法について
- ABC言語 - テキストで「楽譜」を表現するための言語(abclanguage.for-our.info)
- 無料チュートリアル:音楽(tutorial.jp)
- 実用abc譜 www.asahi-net.or.jp
- 標準 ABC Ver. 2.0 (草稿 IV)(web.archive.org)
1.4 abc の拡張 (Abc extensions)
abc 記譜法システムは他の何ものにもよらず作られたので、 abc ソフトウェアパッケージが多く開発されている。 しかし、この標準ですべてを完全にフォローするのは難しい。 この文書のねらいは、アプリケーション間の互換性問題を解決すること、 少なくとも問題を減らすことにある。
いうまでもなく、 abc を使うときこのような拡張の有無に気をつけることは大事だ。 有名なパッケージでの拡張は下記リンクにある。
- - extensions implemented by [[http://abcnotation.com/software#abcm2ps|abcm2ps]](リンク切れ)
- - extensions implemented by [[http://abcnotation.com/software#abcMIDI|abc2midi]]
- - extensions implemented by [[http://abcnotation.com/software#BarFly|BarFly]]
- - extensions implemented by [[http://abcnotation.com/software#abctab2ps|abctab2ps]]
1.5 情報を知りたい、変更を提案したい (Further information and changes)
この標準について、また abc 一般について知りたい場合、 abc ユーザーズメーリングリストや abc 記譜法フォーラムを使えばいい。
- http://groups.yahoo.com/group/abcusers/ (abcusers - subscriptions and archive of posts)
- http://www.mail-archive.com/abcusers@argyll.wisemagic.com/ (abcユーザーズ - 以前の投稿のアーカイブ)
- http://abcnotation.com/forums/
標準の変更を提案したい場合は、ここを読むべし。
http://abcnotation.com/wiki/abc:standard:route-map - a route map of proposed changes to the standard plus instructions for proposing changes
1.6 文書の場所 (Document locations)
この文書(の英語オリジナル)はここにある。
http://abcnotation.com/wiki/abc:standard:v2.1
最新版だけでなく過去の版も知りたい時はこちらから。
http://abcnotation.com/wiki/abc:standard
2. abc ファイル、音、断片
2.1 abc ファイルの見分け方 (Abc file identification)
abc ファイルはすべて、 拡張子 ".abc" (すべて小文字) をどんなプラットフォームでももっている。
コメント: WEB サーバのなかには限られたファイルタイプしか拡張子をゆるさないものもある。 この場合は .txt 拡張子が最善の代替案である。
どんなabc ファイルでも文字列%abcで始まる。
同じ行にバージョン番号を入れてもよい。例:
%abc-2.1
2.1 またはそれ以上のバージョン番号は、 abc ファイルが abc 標準にしたがって厳格に解釈されることを表している。 もしバージョン番号がなければ、ファイルはゆるい解釈とみなされる。 バージョンフィールドは曲ごとに使ってもよい。
開発者への注釈: もしファイルの最初の文字にバイトオーダーマーク (BOM) (en.wikipedia.org)があれば、 ソフトウェアはそれを無視すべきである。
abc file がマルチパート電子メールに含まれるとき、 その MIME タイプは"text/vnd.abc" であるべきだ(IANA text/vnd.abc (www.iana.org) を見よ).
2.2 abc ファイル構造
- abc file
- abc ファイル
-
abc ファイルとは 1 つ以上の abc 曲 の記述(transcriptions) からなるファイルのことである。 abc ファイルには、任意で散在した注釈を付け加えることができる。この注釈となるテキストは、 自由テキスト と 組版テキストである。 また、abc ファイルは、ファイルへッダではじめることができる。 ファイルヘッダの利用は任意できる。 このヘッダはファイルを処理するための既定の方法を定めるためにある。
- abc tunebooks
- abc 曲集
-
1 つ以上の曲がある abc ファイルを abc 曲集という。
2.2.1 abc 曲
- abc tune
- abc 曲
- tune header
- 曲ヘッダ
-
**曲ヘッダ** は情報フィールド行から構成される。
- tune body
- 曲本体
-
曲本体とは、音楽コードを含み、すぐそのあとに続くものである。
- music code
- 音楽コード
-
abc の音楽コード行は曲本体にある行で、 音符や、小節線やほかの音楽記号を含むものである。
2.2.2 ファイルヘッダ
- file header
- ファイルヘッダ
ファイルはオプションとしてファイルヘッダから始めることができる (バージョンフィールドのすぐ後)。 このヘッダは、 連続する情報フィールドや スタイルシートディレクティブ、 あるいはその両方であり、空行で終わる。 ファイルヘッダはファイルにある曲に対して既定の値が定められている。
ファイルヘッダはファイルの先頭にのみ置くことができる。曲間には置けない。 (後略)
2.2.3 自由テキストと組版テキスト
- free text
- 自由テキスト
- 自由テキストとは今いった通りのものである。
- typeset text
- 組版テキスト
- 組版テキストとは、テキストディレクティブで指定されたテキストである。.
2.2.4 空行と改行
- Empty lines
- blank lines
- 空行
- ブランク行
-
空行(ブランク行)は abc 曲と フリーテキスト、ファイルヘッダを分けるために用いられる。 空行はabc ファイルの可読性向上に寄与する。
ホワイトスペース(スペース文字とタブ文字)からのみなる行は空行とみなされる。
改行(new lines, line feeds, carriage returns, end-of-lines, など) は abc ファイルで使われ可読性を向上させるとともに、 必要があれば長い入力を切るために使われる。入力行の継続を見よ。
より細かいことをいえば、音楽コード内の改行は、 abc 表示を構造化し、また、デフォルトでプリント音楽の改行を生成する。 さらに詳しくは、 組版改行を見よ。
2.2.5 コメントと注意
- %記号 (''%'')
-
% 記号から始まり、行末で終わる文字列は無視される。 コメントを付け加えたり、自身の権利を コメントラインで表明したりする。 % 記号を表示したい場合は、''\%'' とする。 テキスト文字列を見よ。
2.2.6 入力行の継続
abc ソフトウェアに対して、 abc ファイルにある入力行が次の物理的行に継続することを伝えることが、 必要になるときがある。つまり、二つ(以上)の行が一つにみなされるようにしたいということだ。 abc 2.0 では一般継続文字がこのために使われていた (時代遅れの継続を見よ)。しかし、 この方法は不必要で混乱を招くものということが決定された。
abc 2.1 では、4種類の入力タイプのどれでも継続する方法がある。このタイプとは、 音楽コードのほか、 情報フィールド、 コメント、 スタイルシートディレクティブである。
abc 音楽コードでは、デフォルトは、 コードの改行は組版スコア内の改行を生成する。そしてこれらはバックスラッシュを使うことで、 (または abc 組版ソフトウェアに、''I:linebreak $'' または ''I:linebreak <none>'' を使うことで改行を無視するよう伝えることで)抑制される。 詳しくは組版改行を見よ。
プログラマへのコメント: バックスラッシュは継続文字として音楽コードでは効果的に機能する。 しかしながら、他のコンピュータ言語の文脈で使われることを考えるとその仕様は abc 固有である。 特に音楽コード行を 情報フィールドやコメント、 スタイルシートディレクティブを通して使った場合はそうである。
音楽コードのほかには 3 種類の入力行タイプがある。
- 情報フィールド
- 情報フィールドとは、''+:'' から始まりそれに続く行である。 フィールド継続 を見よ。
- コメント
- コメントは、記号 ''%'' から始まりそれに続く行である。
- スタイルシートディレクティブ
- スタイルシートディレクティブのほとんどは非常に短いので継続シンタックスを必要としない。
2.3 埋め込まれた abc と abc の断片 (Embedded abc and abc fragments)
従来、abc は abc ファイルにより記述されてきた。しかし最近では、abc 曲を、そして断片でも含めるようないろいろな可能性が出てきた。 (中略) 例:ある HTML ドキュメントでは以下の曲が含まれうる。
<pre class="abc-tune"> X:1 T:Title K:C DEF FED:| </pre>
2.3.1 埋め込まれた abc 断片
- abc fragment
- abc 断片
-
abc 断片とは、部分的なabc 曲である。 部分的な 曲ヘッダはあるが曲本体をもたないかもしれないし、 曲本体オプションの曲ヘッダや 情報フィールドがあるかもしれない。
// 例 1: // 曲ヘッダがない断片
<div class="abc-fragment"> CDEF GABc| </div>
// 例 2: // 部分的な曲ヘッダがある断片
<div class="abc-fragment"> T:Major scale in D K:D DEFG ABcd| </div>
2.3.2 埋め込まれた abc 曲
2.3.3 埋め込まれたファイルヘッダ
2.3.4 埋め込まれた abc ファイル
3. 情報フィールド
abc フィールドと使い方
| フィールド名 | ファイルヘッダ | tune header | tune body | inline | type | 例と注釈 |
|---|---|---|---|---|---|---|
| A:area | yes | yes | string | A:Donegal, A:Bampton (deprecated) | ||
| B:book | yes | yes | string | B:O'Neills | ||
| C:composer | yes | yes | string | C:Robert Jones, C:Trad. | ||
| D:discography | yes | yes | string | D:Chieftains IV | ||
| F:file url | yes | yes | string | F:http://a.b.c/file.abc | ||
| G:group | yes | yes | string | G:flute | ||
| H:history | yes | yes | string | H:The story behind this tune … | ||
| I:instruction | yes | yes | yes | yes | instruction | I:papersize A4, I:newpage |
| K:key | last | yes | yes | instruction | K:G, K:Dm, K:AMix | |
| L:unit note length | yes | yes | yes | yes | instruction | L:1/4, L:1/8 |
| M:meter | yes | yes | yes | yes | instruction | M:3/4, M:4/4 |
| m:macro | yes | yes | yes | yes | instruction | m: ~G2 = {A}G{F}G |
| N:notes | yes | yes | yes | yes | string | N:see also O'Neills - 234 |
| O:origin | yes | yes | string | O:UK; Yorkshire; Bradford | ||
| P:parts | yes | yes | yes | instruction | P:A, P:ABAC, P:(A2B)3 | |
| Q:tempo | yes | yes | yes | instruction | Q:"allegro" 1/4=120 | |
| R:rhythm | yes | yes | yes | yes | string | R:R, R:reel |
| r:remark | yes | yes | yes | yes | - | r:I love abc |
| S:source | yes | yes | string | S:collected in Brittany | ||
| s:symbol line | yes | instruction | s: !pp! ** !f! | |||
| T:tune title | second | yes | string | T:Paddy O'Rafferty | ||
| U:user defined | yes | yes | yes | yes | instruction | U: T = !trill! |
| V:voice | yes | yes | yes | instruction | V:4 clef=bass | |
| W:words | yes | yes | string | W:lyrics printed after the end of the tune | ||
| w:words | yes | string | w:lyrics printed aligned with the notes of a tune | |||
| X:reference number | first | instruction | X:1, X:2 | |||
| Z:transcription | yes | yes | string | Z:John Smith, <j.s@mail.com> |
3.1 情報フィールドの記述 (Description of information fields)
3.1.1 X: 参照番号
''X:'' (参照番号) フィールドは 曲集のなかでそれぞれの曲に応じて一意に割り当てられた正の整数番号である。 例:''X:23''。
''X:'' フィールドは、曲の開始を示すために用いられる。 したがって、どの曲もすべて X で始まるし、 1つの曲につき X は1 つである。
''X:'' フィールドはなくても許されるが、推奨されない。
3.1.2 T: - 曲タイトル
''T:'' (タイトル) フィールドは ''X:'' フィールドの直後に記述される。 これは人間がその曲を識別するために使う(たとえ空であっても)。
曲のよっては1つ以上のタイトルをもつものもある。 したがって、1つの曲に対して1つ以上の代替タイトルを示すことが可能である。
''T:'' フィールドは1つの曲に対する各パートの名前をつけるときにも使われる。 この場合は調性や拍子の変化の前に置くべきである。
3.1.3 C: - 作曲者
''C:'' フィールドは作曲者を示す。
3.1.4 O: - 原作
''O:'' フィールドは曲の地理的発生源を示す。
可能であれば、次のようにデータを階層的に入れること。
O:Canada; Nova Scotia; Halifax.
O:England; Yorkshire; Bradford and Bingley.
// Recommendation: // セパレータとして必ず "'';''" (セミコロン)を使うことを推奨する。 こうしておけば、ソフトウェアがフィールドをパーシングできるようになる。 しかし、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'' は ビートのアクセントを明示していることを表す。分子のカッコはつけなくともよい。 このときの組版は次のようになる:
2 + 3 + 2
8
''M:'' フィールド指定がないときは、拍子なしが仮定される。この場合は, 小節線は好きなところに指定してよい。
3.1.7 L: - 音符の単位長さ
''L:'' フィールドで指定されるのは音符の単位長さである。 ここで単位長さとは、abc 記譜法で1つの文字が表す音符の長さの単位である。
よく使われる単位は ''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, であるから 既定値となる単位長さは十六分音符である。 一方 for 4/4 = 1.0, や 6/8 = 0.75, or 3/4= 0.75, では単位長さは八分音符である。 ''M:C'' (4/4) や ''M:C|'' (2/2) 、 ''M:none'' (自由拍子), の場合は、デフォルトとなる単位長さは八分音符である。
拍子が曲の途中で変わっても、単位音符の長さは変わらない。
3.1.8 Q: - テンポ
"Q:" フィールドは一分間のビートの数でテンポを定める。 例 ''Q:1/2=120'' は 1分あたり120回の8分音符を表す。
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: - パート
// 変動要因 // 1つ以上の声部がある音楽で、 ''P:'' と ''V:'' フィールドの相互作用がどうなるかはは、abc のバージョン 2.2 で記載する。 単一声部での ''P:'' の使用法についてもそのとき述べよう。
''P:'' フィールドは曲ヘッダで使われる。 これは、曲を繰り返す回数を定める。例:''P:A3'' は ''P:AAA'' に等しい。 カッコを使うこともできる。例: ''P:(AB)3'' は ''P:ABABAB'' に等しい。 カッコのネストも許される。 ドットはヘッダ''P:'' フィールドののどこに置いてもよい。これは可読性を高めるために使える。 例:''P:((AB)3.(CD)3)2''. これらのドットはコンピュータプログラムによって無視される。 ''P:'' 記法の使い方は、 さまざまな終わりかた と 歌詞を見よ。
曲の再生を完全に実行するなら、プログラムは可能であれば''P:'' フィールドを使うべきである。 組版プログラムは ''P:'' フィールドをプリントスコアに含めるべきである。 パート情報をプリントスコアに含める方法の詳細については、組版情報フィールドを見よ。
P:フィールドは、曲ヘッダで曲のパートを演奏する順序を決めるときに使われる。例:''P:ABABCDCD''、
またそのとき曲本体内部で各パートをマークするときに使われる。
例 ''P:A'' または ''P:B''. (この文脈ではパートは曲のセクションを指す。多声音楽の1つの声部を指すのではない。)
3.1.10 Z: - 記述
典型的には ''Z:'' フィールドは該当曲を abc に翻訳した人名を記す。
そしてできれば連絡先を記載する。例. 電子メールアドレス、ホームページ URL
一般的な注釈を含めて、同じ他の曲に対する参照のように、
その曲が abc にコンバートされた元の記法を記す。
組版情報フィールドを見よ。
参照が印刷スコアに組み込まれる方法が詳しく記載されている。
データベースソフトウェアはこのフィールドを使ってもよい。曲をグループにまとめるため
(たとえば、楽器によって)のインデックスを作る目的である。また、
メドレーを作るなどの目的に使われるかもしれない。しかし、この用法は標準化されていない。
複数段の参照、由来、小咄に用いられる。
''H:'' フィールドは典型的には組版に用いられることはない。
複数段入力のための正しい使用方法はフィールド継続シンタックス(''+:'')が使われる。
この結果、たとえば、データベースアプリケーションは二つの異なる小咄を区別できる。
// 例: // 簡単な記述
Z:John Smith, 3.1.11 N: - 参照
3.1.12 G: - グループ
3.1.13 H: - 履歴
// 例: // H:this is considered +:as a single entry H:this usage is considered as two entries H:rather than one
3.1.14 K: - キー
調性記号は大文字("A-G")に加え、必要に応じて"#"か"b"を添える。これらはそれぞれシャープとフラットに対応する。 モードを指定することができる。モードの指定があければ長調が仮定される。
例えば, ''K:C major'' のほか、 ''K:A minor'', ''K:C ionian'', ''K:A aeolian'', ''K:G mixolydian'', ''K:D dorian'', ''K:E phrygian'', ''K:F lydian'' , ''K:B locrian'' は、 シャープもフラットもない五線譜すべてである。 スペースは省いてもよく、モードでは大文字は無視されるし、また、実際にパーシングされるのは最初の3文字である。 その結果、次の例の通りとなる。 ''K:F# mixolydian'' ''K:F#Mix'' や ''K:F#MIX'' と同じである。 同様に、特別な例として, "minor" は "m" と略してもよい。
この表は同じキーがどのように違うように表記されるかを示している。
^ Mode ^ Ionian ^ Aeolian ^ Mixolydian^ Dorian ^ Phrygian ^ Lydian ^ Locrian ^ ^ Key Signature ^ Major ^ Minor ^ ^ ^ ^ ^ ^ | 7 sharps | ''C#'' | ''A#m'' | ''G#Mix'' | ''D#Dor'' | ''E#Phr'' | ''F#Lyd'' | ''B#Loc'' | | 6 sharps | ''F#'' | ''D#m'' | ''C#Mix'' | ''G#Dor'' | ''A#Phr'' | ''BLyd'' | ''E#Loc'' | | 5 sharps | ''B'' | ''G#m'' | ''F#Mix'' | ''C#Dor'' | ''D#Phr'' | ''ELyd'' | ''A#Loc'' | | 4 sharps | ''E'' | ''C#m'' | ''BMix'' | ''F#Dor'' | ''G#Phr'' | ''ALyd'' | ''D#Loc'' | | 3 sharps | ''A'' | ''F#m'' | ''EMix'' | ''BDor'' | ''C#Phr'' | ''DLyd'' | ''G#Loc'' | | 2 sharps | ''D'' | ''Bm'' | ''AMix'' | ''EDor'' | ''F#Phr'' | ''GLyd'' | ''C#Loc'' | | 1 sharp | ''G'' | ''Em'' | ''DMix'' | ''ADor'' | ''BPhr'' | ''CLyd'' | ''F#Loc'' | | 0 sharps/flats | ''C'' | ''Am'' | ''GMix'' | ''DDor'' | ''EPhr'' | ''FLyd'' | ''BLoc'' | | 1 flat | ''F'' | ''Dm'' | ''CMix'' | ''GDor'' | ''APhr'' | ''BbLyd'' | ''ELoc'' | | 2 flats | ''Bb'' | ''Gm'' | ''FMix'' | ''CDor'' | ''DPhr'' | ''EbLyd'' | ''ALoc'' | | 3 flats | ''Eb'' | ''Cm'' | ''BbMix'' | ''FDor'' | ''GPhr'' | ''AbLyd'' | ''DLoc'' | | 4 flats | ''Ab'' | ''Fm'' | ''EbMix'' | ''BbDor'' | ''CPhr'' | ''DbLyd'' | ''GLoc'' | | 5 flats | ''Db'' | ''Bbm'' | ''AbMix'' | ''EbDor'' | ''FPhr'' | ''GbLyd'' | ''CLoc'' | | 6 flats | ''Gb'' | ''Ebm'' | ''DbMix'' | ''AbDor'' | ''BbPhr'' | ''CbLyd'' | ''FLoc'' | | 7 flats | ''Cb'' | ''Abm'' | ''GbMix'' | ''DbDor'' | ''EbPhr'' | ''FbLyd'' | ''BbLoc'' |
"K:" フィールドが指定されないか、"K:none" という指定であれば、調性記号を全く使わないことができる。
3.1.15 R: - リズム
曲のタイプの指示を含む(例:ホーンパイプ、ダブルジーグ、シングルジーグ、48 小節ポルカ、など)。 この指示によって、演奏者は曲をどのように解釈するかヒントを得ることができる。 またこの指示はまたデータベースアプリケーションにとっても有用である (バックグラウンド情報を見よ)。 また、このフィールドは実験的に再生ソフトで使われている。特に、 abcmus では、 小節内で特定の音符にアクセントをつけることでよりリアルな再生を目指している。
印刷されたスコアに含まれるリズムの詳細は、 組版情報フィールドを見よ。
3.1.16 B:, D:, F:, S: - バックグラウンド情報
情報フィールド ''B:book'' (印刷された曲集), ''D:discography'' (すなわち CD や LP など聞く対象となる曲)や、 ''F:file url'' (すなわちabc 曲、 abc ファイル (WEB などにある) 、 ''S:source'' (すなわち集めたり学んだりした曲の環境)は、以前に述べたフィールド、 ''H:History''や''N:notes''、 ''O:origin、''R:rhythm''と同様、 曲についての構造的バックグラウンドを与える。
これらは特に大規模な曲の集合を扱うことを目的としている( abc が生まれた発端である)。そして、 システマティックに扱えるということは、abc ソフトウェアは整列をはじめとして、 検索、フィルタが使えればよい(たとえば、特定の CD にある曲をすべてリズム順に整列させたりフィルタで抽出したりする、など)。
abc 標準はこれらのフィールドがどのように使われるかを処方しはしない。しかし、複数情報が一つのフィールドに含まれるのではなく、 一つの情報がそれぞれ複数の同じ型のフィールドに含まれるのが典型的である。 English.abc に出てくる例を見よ。
バックグラウンド情報が印刷スコアに含まれる詳細については、組版情報フィールドを見よ。
3.1.17 I: - 指図
''I:''(指図) フィールドが使われるのは、指図ディレクティブの拡張集合としてであり、 abc コードの解釈に関わることである。
''I:'' フィールドは、 スタイルシートディレクティブと相互に置き換え可能である。 だから、どんな''I:directive''も''%%directive''に置き換えられるし、 その逆も同様である。 しかし、 インラインバージョンを使うのならば、 ''I:'' バージョンを使わなければならない。
このような相互交換性にもかかわらず、あるディレクティブは標準の一部として採用され(この文書でI:によって示される)、
そしてこれを標準とするようなソフトウェアにより実装されなければならない。逆に、
スタイルシートディレクティブ
(この文書で %% により示される)はオプションである。
コメント Since スタイルシートディレクティブはオプションであり、
あるプログラムから別のプログラムに移植できることは必要ではない。だから、この意味はI: フィールドが含むものは、
スタイルシートディレクティブ
は abc ソフトウェアで自由に扱うべきであり、
特に認識できない I: フィールドは無視されるべきである。
下記表が含む I: フィールドディレクティブのリストは abc 標準として採用されている。
さらなる情報はリンク先を参照。
| ディレクティブ | セクション |
|---|---|
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までの iso-8859
のほか、 us-ascii と utf-8 (デフォルト)である。
Software that exports abc tunes
conforming to this standard should include a charset field if an encoding other than utf-8 is used. All conforming abc software must be able to handle
text strings coded in utf-8 and us-ascii. Support for the other charsets is optional.
Extensive information about UTF-8 and ISO-8859 can be found on wikipedia.
バージョンフィールド
abc ファイルすべてがこの標準に適合するには、ファイルは次の文字列で始めるべきである。
%abc-2.1
abc ファイルの見分け方 を見よ。
However to indicate tunes conforming to a different standard it is possible to use the I:abc-version <value> field, either in the
tune header (for individual tunes) or in the
file header.
Example:
I:abc-version 2.0
インクルードフィールド
I:abc-include <filename.abh> は、分離された abc ヘッダファイル(.abh) で見つけられた定義をインポートする。また、
ファイルヘッダ や
曲ヘッダにこれらの定義を挿入する。
Example:
I:abc-include mydefs.abh
The included file may contain information fields, stylesheet directives and comments, but no other abc constructs.
If the header file cannot be found, the I:abc-include instruction should be ignored with a non-fatal error message.
Comment: If you use this construct and distribute your abc files, make sure that you distribute the .abh files with them.
クリエーターフィールド
I:abc-creator <value> フィールドが含むものは、プログラムの名前とバージョン番号であり、ここでプログラムとは、
abc ファイルを作ったプログラムのことである。
Example:
I:abc-creator xml2abc-2.7
Software that exports abc tunes conforming to this standard must include a creator field.
3.1.18 他の情報
- ''m:'' はマクロを参照せよ。
- ''r:'' はコメントと注意を参照せよ。
- ''s:'' はシンボルラインを参照せよ。
- ''U:'' は再定義可能なシンボルを参照せよ。
- ''V:'' は多声を参照せよ。
- ''W:'' と ''w:'' は歌詞を参照せよ。
3.2 曲本体の情報フィールドの使い方 (Use of fields within the tune body)
- inline field
- インラインフィールド
調性(''K'')や拍子(''M'')、単位音符長さ(''L'') を曲の途中で変えることは頻繁に生じる。 これらを始めとして、多くの 情報フィールドで、 曲本体のなかで当然使われるべきものは、 インラインフィールドとして定め、 角カッコの中に置く。
// 例: // The following two excerpts are considered equivalent - either variant is equally acceptable. E2E EFE|E2E EFG|[M:9/8] A2G F2E D2|] E2E EFE|E2E EFG|\ M:9/8 A2G F2E D2|]
最初の括弧、フィールド識別子およびコロンは、間にスペースを入れずに記述する必要がある。 括弧内には1つのフィールドしか配置できない。 ただし、複数の括弧で囲まれたフィールドを隣り合わせに配置することもできる。 必要に応じて、インラインフィールド(特に音部記号の変更)をビームの途中で使用することができる。
本文に表示されるフィールドとインラインで使用される可能性のあるフィールドを示す表の情報フィールドを参照のこと。
3.3 フィールド継続 (Field continuation)
1つの線が長すぎるフィールドは、継続する行の先頭に記号''+:''を使って継続することができる。 文字列タイプ情報フィールド (文字列タイプの情報フィールド一覧参照)に対して、継続は二つの半線の間のスペースで繋げられる。 文字列タイプ情報フィールドについては (情報フィールド文字列タイプフィールド一覧表を見よ)、 継続は二つのハーフライン間のスペースを付加することとして考えられている。
例:次の2つの断片は同等とみなせる
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?
4. 曲
4.1 ピッチ
次の文字がト音記号を使って表される音符となる:
ハ音記号を用いたとき、C が中央ド、次に D, E, F, G, A, B, c … となる。c 以上のオクターブ上は、c', d' となる。 C よりオクターブ下は C, となる。
同様の拡張は低い音符でも高い音符でも可能である。
低いオクターブはコンマを、高いオクターブはアポストロフィを使えばよい。 一つ特別なコンマ/アポストロフィを使うたびにオクターブを下げる/上げる.
プログラムは音符の後に出てくるどんな, や ' 記号のコンビネーションでも、
解釈できなければならない。たとえば、C,', (C コンマ アポストロフィ コンマ) は
C, (C コンマ) に等しい。また (大文字) C' (C アポストロフィ) は、
(小文字) c と同等である。
別の方法として、音楽コードのセクションを上げ下げするには
K: フィールドか V: フィールドの octaveが使えないといけない。
コメント: 英語の音符の名前は C-B, これらは abc システムで使われる。
他の言語で対応する音符名は do-si である。具体的には、
do=C, re=D, mi=E, fa=F,
sol=G, la=A, si=B.
4.2 臨時記号
^, =, _ はそれぞれシャープ、ナチュラル、フラットである。ダブルシャープ、ダブルフラットはそれぞれ ^^, __ となる。
4.3 音符の長さ
単位音符長さは、L: フィールドで規定されているとする。この数字に応じて長さを変える。 L: 1/8 のとき、a とあれば 8分音符であり。a2 であれば 4分音符である。a/2 は16分音符となる。
4.4 付点音符
付点音符は次のように記す。