音符・休符・オクターブ・音長¶
音符と休符¶
c d e f g a b 音符 (ドレミファソラシ)
c+ f+ 半音上げ (c+ = C#、f+ = F#)。# でも書ける (c# f#)
r 休符
- 大文字と小文字は区別されません。
c+の+は#でも書けます。- 音符には、
~<N>で 音程テーブルの列 (variant) を選べます (c~1)。省略したcは~0と全く同じです。書かなくて構いません。
~ (variant) の効き方¶
各半音には、微妙に高さの違う 3 つの値 (~0 ~1 ~2) があります。どれを選んでも、半音そのものは変わらず、数セント〜数十セントだけ音程が動きます。効くかどうかは、音源で決まります。
| 音源 | ~0 (省略時) |
~1 |
~2 |
|---|---|---|---|
| FM (OPNA / OPM) | 平均律 | 平均律 | 平均律 (値は無視される) |
| OPLL (FM・リズム) | 約 -28 セント | 約 -10 セント | 約 +6 セント (平均律にもっとも近い) |
| PSG / SSG | 約 -17 セント | 約 -1 セント (平均律にもっとも近い) | 約 +16 セント |
- FM (OPNA / OPM) だけの曲では、
~はなくて構いません。 - OPLL や PSG で、省略 (
~0) のままにすると、音が少し低くなります。実機のデータを再現したい曲では、この「少し低い」音程が、そのまま使われます。 - OPLL では
~2、PSG では~1が、平均律にもっとも近い音程です。
曲全体の既定の variant ; default_variant=N¶
全部の音符に ~2 を書くのは大変なので、曲のヘッダに ; default_variant=N (N は 0〜2) と書くと、~ を書いていない音符が、自動的に ~N になります。
; default_variant=2
CH4: @1 v12 o3 L4 c d e f~0 g
上の例の c d e g は ~2 になり、明示した f~0 は ~0 のままです。
- 明示した
~Nは、常に優先されます。 - リズムのチャンネル (CH9〜CH11、または
role=でリズムを指定したチャンネル) は、ドラムの音色が変わってしまうので、対象外です。 - FM (OPNA / OPM) では
~が無視されるので、音は変わりません。 - OPLL を FM と重ねるときは
2、PSG を重ねるときは1が、平均律にもっとも近い値です。OPLL と PSG を両方使う曲では、どちらかを既定にして、もう一方のチャンネルに~1(または~2) を明示してください。 - ヘッダは、ファイルのどこに書いても有効です。範囲外の値 (3 以上、負の数、数字以外) は無視されます。
- RetroFMEditor独自方言の MML だけが対象です。MXDRV 方言には
~がありません。
音符の後ろに音長は書けません
MDX のような c4 d8. という書き方はできません。音長は、前に書いた L または l() が、後続の音符と休符すべてに効きます。
e と d の直後に数字を続けない
e3 は音符 E ではなく エンベロープ 3 (E3)、d12 は音符 D ではなく デチューン 12 (D12) として読まれます。音符の e d に variant を付けるときは、e~1 d~0 のように ~ を使ってください。
オクターブ¶
| コマンド | 意味 |
|---|---|
o<N> |
オクターブを N に設定 |
o> |
オクターブを 1 つ上げる |
o< |
オクターブを 1 つ下げる |
初期値は o7 です。
> と < だけでは効きません
MDX や PMD のような単独の > < は、読み飛ばされます。必ず o> o< と書いてください。
音長¶
| コマンド | 意味 |
|---|---|
L<分母> |
全音符 = 192 tick を分母で割った長さ。L4 = 48、L8 = 24、L16 = 12 |
L<分母>. |
付点。ドットは複数書けます (L8. = 36、L8.. = 42) |
l(<n>) |
tick 数を直接指定 (例: l(23)) |
どちらも、次に別の指定をするまで、あとに続く音符と休符すべてに効きます。
L8 c d e f 8 分音符 4 つ
L4. c 付点 4 分音符
l(40) c 40 tick の音符
L は大文字だけ、l は括弧つきだけ
小文字の l4 は音長として読まれません。分母で指定するときは大文字の L4、tick で指定するときは l(48) と書いてください。
L コマンドは、ループの [L8] ([LOOP 8] の短縮形) とは別のものです。角括弧がないものが音長です。
tick と時間¶
tick の長さはテンポで決まります。何も指定しない曲では、1 秒が 60 tick です (ループ・テンポ)。したがって L4 (48 tick) は 0.8 秒です。[TB] や [BPM] でテンポを変えると、同じ l(n) でも実際の時間が変わります。
ゲート (音の切れ方)¶
音符の長さと、実際に鳴っている長さは、ロールによって異なります。
| ロール | 鳴っている長さ |
|---|---|
PSG_A |
音符の 1/6 (残りは無音) |
PSG_B |
音符の 3/4 |
PSG_C |
音符の全長 |
| リズム | 音符の 7/8 |
FM (FM_0〜FM_5、OPM_0〜OPM_7) |
ゲートファクタ [F2]〜[F9] で決まる |
FM のゲートファクタは、[F2] が 0 で、[F9] が 7 です。
無音の長さ = ファクタ × 音符の tick / 8
鳴っている長さ = 音符の tick - 無音の長さ
ファクタが 0 ([F2]) のとき、無音の長さはなく、音符の全長が鳴ります。
; full_gate_channels=<ch,...>を書いたチャンネルは、ロールに関係なく、常に音符の全長が鳴ります。- スラー (
&) の途中の音符と、[EV]でエンベロープを割り当てた音符も、常に全長が鳴ります。
トランスポーズ¶
| コマンド | 意味 |
|---|---|
[TRANS n] |
チャンネルの移調量を設定します |