MMLコマンド仕様
パート本体([partN] / [pcmPartX])に記載する演奏コマンド
の一覧です。コマンドは大文字小文字を区別しません。空白・タブ・改行は自由に入れて構いません(解析時
に除去されます)。
コンダクターパートコマンド [conductorPart]専用
| コマンド | 書式 | 説明 |
|---|---|---|
T | T120 | テンポを指定値に変更(小数点は無視)。 |
R | R1 R4. | 休符(経過時間)。数字は
音符長(2=2分音符)、.で付点、3連符は6/12/24。 |
J | J | ループ時のジャンプポイント(1曲1個のみ有効)。 |
[conductor]
[conductorPart]
R1 R1 J
T120 R4 T115 R4 T110 R4
T80
[conductorPartEnd]
詳しい設置ルールはMMLファイル構成仕様を参照。
FM / PCM(long)パート 共通コマンド
FM音色パート([partN])と、PCM音色パートのうち partType: long
([pcmPartX])は同じコマンド体系を使用します。
| コマンド | 書式 | 説明 |
|---|---|---|
C D E F G A B | C4 | ドレミファソラシの各ノート。 |
R | R4 | 休符(レスト)。 |
| 数字(長さ) | C4 C4. C6 C12 |
ノート/休符の後につけ、音の長さを表す。2=2分音符、4=4分音符など。.で付点(長さを
1.5倍)。3連符は6・12・24で指定。 |
# + - | C#4 C+4 C-4 | 直前の
ノートの半音上げ下げ。#と+は同じ意味(シャープ)、-はフラット。 |
[ ] | [C4E4G4] | コード(和音)。[と
]内にはノートとオクターブ指定のみ記載可(他のコマンドは無視)。和音内で異なるオクター
ブを混在させる場合は各ノートの前にOを個別指定します。 |
O | O4 | オクターブ指定。以降のノートは指定オクター ブで発音します。 |
> | > | 1オクターブ下げる(以降のノートに適用)。 |
< | < | 1オクターブ上げる(以降のノートに適用)。 |
L | L4 | デフォルト音符長の指定。数字省略時は4。以降、
長さ指定のないノート/休符はこの長さで発音(例: L4 CDRE は C4D4R4E4と同義)。 |
Q | Q2 | 音符長に対する発音長(スタッカート)指定。数字 省略時は4。1=25%、2=50%、3=75%、4=100%。以降のノートに適用。 |
V | V100 | ベロシティ指定。数字省略時は64。以降のノート に適用。 |
P | P-7 | パート内でのパン定位変更。[partSetting]
と同じ -16(左)〜16(右)のスケール。 |
@ | @2 | 音色IDの切り替え。以降のノートは指定音色で 発音。 |
& | C1&C1&C1 | 同音ノート同士の連結(タイ)。
アタックは最初の1回のみで、指定した音符すべての長さ分持続音になります。異なるノート同士を&
で連結した場合は無視されます。 |
|: :| | |: L4 C D E :|*2 | パターン繰り返し。
|:〜:|で囲んだコマンド列を、末尾の*n回数分繰り返します
(*n省略時は1回のみ)。囲い内には他コマンドを自由に記載可。 |
# | # コメント | 行頭が#の行はコメント
行として無視されます(先頭の空白は無視)。 |
O3 C4D4E4F#4
G8A8B8
O4 C16C#16D16e16 F2R4G8
ポルタメント(音程スライド) long専用
ノートとノートの間に&&を記載すると、前後のノートをポルタメント(滑らかな
音程移動)で接続します。&&の後ろにポルタメントの長さ(音符長)を指定できます。
L2 C &&4 E
[C E G]
&&
[D F G B]
| ルール | 説明 |
|---|---|
| 発動タイミング | 後ノートの発音タイミングでポルタメントが開始します。 |
| 長さ指定 | &&4のように音符長を指定可能。未指定
(&&のみ)、または後ノートの音符長を超える等の無効値の場合は、後ノートの長さ
の50%がポルタメント長になります。 |
| 前ノートのスタッカート | 前ノートにスタッカート(Q)が設定されていても、
ポルタメントを行うために無効化されます。 |
| 休符を挟む場合 | 前ノートと後ノートの間に休符があるとポルタメントは無効になります。 |
| 単音⇔和音の組み合わせ | 単音→和音、和音→単音のどちらの組み合わせもポルタメントは 無効です。 |
| 和音→和音 | 有効です。和音の先頭ノート同士の音程差分を、和音を構成する各ノートにそれ ぞれ適用してポルタメントします(構成数や音程が異なっていても同様)。 |
| 対応パート | FM音色パート、PCM音色パート(partType: long)でのみ使用可
能。PCM oneShotパートでは使用できません。 |
ピッチベンド long専用
ノートの直前・直後に記号を付けることで、発音開始時/発音終了直前にピッチベンドをかけられます。 ピッチ変化は単純な線形変化です。
| 記法 | 意味 | 差分音数 | ベンド音符長 |
|---|---|---|---|
_/note | 発音開始時ピッチベンドアップ(低い音から発音し、指定音 程まで上げる) | _の後ろに指定(1=半音、2=全音…) | /の後ろに
指定 |
_\note | 発音開始時ピッチベンドダウン(高い音から発音し、指定音程 まで下げる) | _の後ろに指定 | \の後ろに指定 |
note/_ | 発音終了時ピッチベンドアップ(発音し、終了直前に指定音程 まで上げる) | /の後ろに指定 | _の後ろに指定 |
note\_ | 発音終了時ピッチベンドダウン(発音し、終了直前に指定音程 まで下げる) | \の後ろに指定 | _の後ろに指定 |
記載例
# 発音開始時: 半音2つ分低い音から始まり、4分音符かけてCの音程へ上げる(全体は2分音符)
L2 _2/4 C2
# 発音終了時: 全2分音符のうち、まずCを4分音符分発音し、残り4分音符でピッチベンドダウン
C2\2_4
# 差分音数・ベンド音符長を省略(デフォルト: 差分1半音、ベンド長は対象ノートの50%)
L1 _/[C E G]
| ルール | 説明 |
|---|---|
| 差分音数・ベンド音符長の省略 | 省略時のデフォルトは、差分音数=1(半音)、ベンド音符長 =対象ノートの音符長の50%。 |
| スタッカートとの併用 | 対象ノートにスタッカート設定がある場合、ベンド音符長もスタッカ ート後の実発音時間に合わせて短くなります。 |
| 和音への適用 | 対象ノートが和音(コード)であってもピッチベンド可能です。 |
| 対応パート | FM音色パート、PCM音色パート(partType: long)でのみ使用可能。
PCM oneShotパートでは使用できません。 |
PCM(oneShot)パート コマンド [pcmPartX] partType: oneShot専用
ワンショットタイプの音色は、音色に割り当てたノート(サンプル)ごとに個別のMMLコマンド列を
{ }で囲んで記載します。1パート内に複数のノート定義ブロックを記載できます。
| コマンド | 書式 | 説明 |
|---|---|---|
X | X | このノートに割り当てられたワンショットサンプル を発音します。基本はWAV波形の最後まで再生されますが、再生完了前に同じサンプルの次の発音が来た場合 は、先の発音を止めて後発の発音を優先します。 |
R | R4 | 休符。 |
| 数字(長さ) | X4 X4. | 音符/休符の後につけ、長さを
表す(2=2分音符等)。.で付点。 |
L | L4 | デフォルト音符長の指定(省略時4)。 |
V | V100 | ベロシティ指定(省略時64)。以降のノートに 適用。 |
oneShotパートでは無効なコマンド:
@、[ ](コード)、
# + -(臨時記号)、O・<・>(オクターブ系)、
Q(スタッカート)、P(パン)は、oneShotパートでは使用できません
(記載しても無視されます)。これらはノート=どのサンプルを鳴らすかの選択に使われるため、音程系の
コマンドとは意味が両立しません。C1 {
V100 L4 X R X8 X8 X
X R X8 X8 X
}
E1 {
V100 L4 R X R X
R X R X8 X8 X
}
F#1 {
L8 V70 X V50 X X X V70 X V50 X X X
V70 X V50 X X X V70 X V50 X X X
X
}
上の例では C1・E1・F#1の各ノート(=PCM音色
YAML側のvoiceSettingで割り当てたサンプル)ごとに、独立したリズムパターンを記述してい
ます。ノート名はPCM音色設定ファイルのvoiceSetting[].noteと一致させます。