MewMMLPad

MML リファレンス - 全コマンド仕様

各行は先頭のトラック文字(AP)で始めます。コマンドは大文字・小文字を区別します(Accent モード時の音符を除く)。

複数の大文字トラック文字をスペースなしで並べると、その全チャンネルに同じ内容を適用できます(複数チャンネル同時記述)。

ABCDE  L16        ; A〜E チャンネルすべてに L16 を設定
AB     c4 d4 e4   ; A と B の両方で c4 d4 e4 を演奏
  • チャンネル指定は AP
  • 文字の直後にスペースが必要(AB4 と書くと A チャンネルでノート B4 になる)

音程・オクターブ

記法 意味
C D E F G A B 自然音(ド〜シ)
C+ または C# 半音上(シャープ)
C- 半音下(フラット)
C= ナチュラル(その音符だけ調号を無視)
On オクターブ指定(n = 0〜8、デフォルト: 4)
< オクターブを 1 下げる
> オクターブを 1 上げる

音名とオクターブ指定は 大文字・小文字どちらでも有効 です(c = Co3 = O3)。ただし $Accent=On(アクセントモード)が有効なときに限り、大文字はアクセントベロシティ(V)、小文字は非アクセントベロシティ(v)として区別されます。アクセントモードを使わない通常の書き方では、好みで大小を混ぜて構いません。

ナチュラル指定は長さ指定とも併用可能です。

{-eab} c=4    ; 調号 E♭ でも C はナチュラルのまま
c=4.          ; 付点 4 分音符のナチュラル C

音符の長さ

記法 意味
Ln デフォルト長さを設定(1 = 全音符, 2 = 2 分, 4 = 4 分, 8 = 8 分, 16 = 16 分, 32 = 32 分。デフォルト: 4)
Ln. 付点(×1.5) 例: L4. = 付点 4 分音符
Ln.. 二重付点(×1.75) 例: L4.. = 二重付点 4 分音符
Ln... 三重付点(×1.875) 例: L4...
C4 4 分音符のド(音符の直後に長さを指定)
C4. 付点 4 分音符のド
C4.. 二重付点 4 分音符のド
C4-32 4 分音符から 32 分音符を引いた長さ(= 7/32 拍)
C4+8. 4 分音符に付点 8 分音符を加えた長さ(= 7/16 拍)

加減算は連続指定可能です:C1-4-8 など。

特殊な音符

記法 意味
R または R4 休符(長さ指定可)
N60 MIDI ノート番号で直接指定(0〜127)
X または X4 直前と同じ音程で再発音(長さは変更可)
C4&C4 同音程タイ($SameNoteSlur に従って処理)
a8&b8 異音程タイ($TieMode に従って処理)
a^b スラー:a を Q=8(フルゲート)で演奏し b に続ける
g^g 同音スラーも g&g と同じ扱い。動作は $SameNoteSlur に従う(後述)

タイの動作モード

設定 動作
$TieMode=Slur(デフォルト) 前のノートをフルゲートで伸ばし、次の音を通常発音。連鎖可能(c&d&e&c
$TieMode=Bend 再アタックなしで次の音のタイミングでピッチベンドが変化。$BendRange の設定が必要
$BendRange=12 異音程タイ・ピッチベンドのベンドレンジ(デフォルト: 2)。|音程差| > BendRange の場合はクリップ
$SameNoteSlur=FullGate(デフォルト) c4&c4 を Q=8 で伸ばして次音を再発音
$SameNoteSlur=Combine c4&c4c2 のように長さ結合(再発音なし)

音量・ベロシティ

記法 意味
Vn アクセントベロシティ設定(0〜127、デフォルト: 100)
vn 非アクセントベロシティ設定(Accent モード使用時)
) ベロシティを lv 分上げる
( ベロシティを lv 分下げる
lvn ) / ( の増減量を設定(デフォルト: 8)

テンポ・クォンタイズ

記法 意味
Tn スタンドアローン再生時に BPM スライダを変更(DAW モードでは無視)
Qn ゲート長を全長に対する割合で指定(1〜8、デフォルト: 8)。8 = 100% ゲート、4 = 50% ゲート
qn リリースを n ticks 短縮(192-per-bar、Q と独立)。例: q4 → リリースを 4 ticks だけ早める(1 拍 = 48 ticks なので 1 拍未満のごく短い時間)

アクセントモード

記法 意味
$Accent=On アクセントモード有効
$Accent=Off アクセントモード無効(デフォルト)

アクセントモード On の場合:

  • 大文字音符(CB)→ V で設定したアクセントベロシティ
  • 小文字音符(cb)→ v で設定した非アクセントベロシティ
V100 v50  CEcegCEceg

トランスポーズ(K コマンド)

記法 意味
Kn 以降の音符を n 半音シフト(例: K7 = 完全 5 度上)
K-2 2 半音下げ
K0 リセット(0 に戻す)
K) 相対 +1 半音
K( 相対 -1 半音
K)2 相対 +2 半音(数値指定可)
  • 範囲: -127〜+127
  • UI のトランスポーズスライダの値と加算されます
  • チャンネルモニタの括弧付き数値(例: (+3))で現在値を確認できます

調号(キーシグネチャ)

記法 意味
{-eab} E, A, B にフラットを設定(例: C マイナー調)
{+f} F にシャープを設定
{=eab} E, A, B をナチュラルに戻す
{=*} 全ての調号をリセット(C メジャー)
  • 個別ノートの臨時記号(C+ / C- / C=)は調号を上書きします
    • 例: {-e} e- → E♭(調号と個別 - は重ねず、個別指定で確定)
    • 例: {-e} c= → C ナチュラル(その音だけ調号を無視)
  • 複数回の {-e}{-a} は累積します。{=e} で個別リセット

パン(定位)

記法 意味
P64 絶対値指定(0〜127、64 = センター)
PL32 センターから 32 ステップ左(= P32
PR32 センターから 32 ステップ右(= P96
PC センターに戻す(= P64

0〜127 の範囲を超えた値はクランプされます。

ピッチベンド

構文:

起点音(遅延) _ (遷移時間) 目標音(全体長)

カッコ部分は省略可能で、それぞれデフォルト挙動が異なります。

省略箇所 デフォルト
遅延 遅延ゼロ(即ベンド開始)
遷移時間 全体長 − 遅延 の時間でベンド(残り全部)
全体長 L の長さが全体長

全体長省略(全体長 = L)

記法 動作
a_b a から b へ L の時間かけてベンド
a_16b L の間に 1/16 かけて b へベンドし、残りは b を保持

全体長指定

記法 動作
a_b4 即ベンド開始。全体 = 4 分音符
a_16b4 即ベンド開始。1/16 かけてベンド。全体 = 4 分音符
a8_b4 8 分音符分保持 → 残り時間かけて b へベンド。全体 = 4 分
a8_16b4 8 分音符分保持 → 1/16 かけて b へベンド。全体 = 4 分

その他

a8_16>b4         ; > などのオクターブコマンドを目標音の前に使用可
g4 ~32 >c2_8d1   ; グリッサンドとの組み合わせ可能

ピッチベンド関連の設定

設定 説明
$BendRange=12 ホスト音源のピッチベンドレンジ(デフォルト: 2)。異音程タイ(Bend モード)にも共通適用
$PitchBendOrigin=Default 目標音でノートオン、起点音は中間ベンドで提示(既定)
$PitchBendOrigin=Target Default と同じ
$PitchBendOrigin=Source 起点音でノートオン、目標音方向にベンド

グリッサンド

記法 動作
g~b1 g から B1(1 オクターブ目の B)へグリッサンド
g~16b1 ステップサイズ 1/16 音符でグリッサンド
$Glissando=16 デフォルトのステップサイズを設定(デフォルト: 32)
  • 起点音(g)は独立して発音されません
  • 指定した時間内にクロマティックに補間されます

タプレット(連符)

記法 動作
{gac}4 3 音を 4 分音符の時間に均等割り(3 連符)
{ga>cef#gb<}2 2 分音符の時間に 7 音(7 連符)
  • { } 内では < > O V Q & ^ _ が使用可能
  • & タイ・^ スラーは連符内でも機能し、$TieMode に従って処理される
  • オクターブ変更は { } をまたいで持続します
  • 休符 R もスロットとしてカウントされます

繰り返し

記法 動作
[CDEF]4 4 回繰り返す
[C [EG]2 A]3 入れ子のリピートも可能

エイリアス(マクロ)

記法 動作
% Name cdef “Name” という名前でコンテンツ “cdef” を定義
A %Name トラック A で “cdef” を展開
% Chord CEG 任意の MML コマンドをエイリアスにできる
  • エイリアス名は英数字で構成します
  • 展開中の演奏位置カーソルはエイリアス呼び出し位置に固定されます

変数

記法 動作
!X{abc} 変数 X に “abc” を定義(1 文字の名前)
!X 変数 X を展開
A !X{D} !X 同一行でインライン定義して即使用可能

変数はチャンネルごとに独立しています(A と B で同じ名前でも別の値)。

プログラムチェンジ

記法 動作
@n プログラムチェンジを送信(0〜127)。n が 128 以上の場合は自動的に Bank LSB + Program に分割(bank = n / 128、slot = n % 128)
@bank:slot Bank と Slot を明示指定(例: @3:120 → Bank 3, Slot 120)
  • 同 PPQ で Bank Select → Program Change の順を保証して送出
  • 同一 PC の連続送出は自動的に dedupe される(チャンネルごと)

プログラムチェンジの送信モード

設定 動作
$ProgramChange=Default Program Change を MIDI 規格通りに送信(デフォルト)
$ProgramChange=CC<num> Program Change の代わりに CC<num> でスロット番号を送信。例: $ProgramChange=CC102。Cubase など VST3 で PC が processBlock に届かないホスト用(Bank Select は CC 0/32 のまま送られます)

その他

記法 動作
Tn スタンドアローン再生時に BPM スライダを変更(DAW モードでは無視)
; コメント ; 以降、行末までコメント(無視される)
# ヘッダ # で始まる行は無視される