MMLの基本書式
- MMLは、複数のコマンドを繋いで表現する。
- コマンドは、識別文字とパラメータからなる。
ほとんどのコマンドは先頭1文字が識別文字となっており、その次から可能な限りパラメータとして判断する。いくつかのコマンドは例外で、それぞれに定められた終了条件に適合した時点でパラメータとして扱うことを止める。
どちらの場合も、最後のパラメータの直後から次のコマンドとして扱う。
- コマンド識別文字やパラメータは、それぞれの間にホワイトスペース(半角スペース,タブ,改行)を挟むことができる。原則としてこれらは存在しないものとして扱われるが、 / ; コマンドは識別文字の直後から行末までをパラメータとして扱うという特殊なルーリングであるため、これらのコマンドと見なされる間はホワイトスペースではなくパラメータの一部として扱われる。
- コマンドやパラメータは原則として半角文字のみで記述する必要がある。ただし、文字列がパラメータであるときはこの限りではない。
- コマンド識別文字は大文字と小文字を区別しない。
- 数値をパラメータとするものは、特に断りのない限り整数のみである。また、有効範囲が限定されていない場合でも32bit量の限界範囲(-2147483648~+2147483647)を超えると正常に動作しない。
- 音長指定以外の整数値は & を前置することで16進数、 . を前置することで2進数として解釈される。符号(+ -)と併用する場合は、符号よりも前に記述しなければならない。
[補足]
16進数指定はA~Fを数字として扱うため、直後に音符コマンドのA~Fが並ぶとそれまで数字と解釈されてしまう。これを回避するにはホワイトスペースや他のコマンドを挟む必要がある。
当ドキュメントの説明上での書式
- コマンド識別文字は太字且つ大きくしている。
- 識別文字以外の英文字列はパラメータの名称で、実際にはパラメータとして使う数値や文字列などが記述される。
- [ ]で括ってある部分は省略可能。省略した際の動作はパラメータ毎にそれぞれ決められている。
- ±は + か - を記述する。単なる数値の符号とは違い、省略不可。正の数でも必ず + を前置すること。
- ... は同様の書式でいくつも続けることができることを示す。
- コマンド書式の下には "パラメータ名称=範囲" という形式で有効なパラメータの範囲が書かれているものがある。
[表紙]