各行は先頭のトラック文字(A〜P)で始めます。コマンドは大文字・小文字を区別します(Accent モード時の音符を除く)。
複数の大文字トラック文字をスペースなしで並べると、その全チャンネルに同じ内容を適用できます(複数チャンネル同時記述)。
ABCDE L16 ; A〜E チャンネルすべてに L16 を設定
AB c4 d4 e4 ; A と B の両方で c4 d4 e4 を演奏
- チャンネル指定は
A〜P
- 文字の直後にスペースが必要(
AB4 と書くと A チャンネルでノート B4 になる)
音程・オクターブ
| 記法 |
意味 |
C D E F G A B |
自然音(ド〜シ) |
C+ または C# |
半音上(シャープ) |
C- |
半音下(フラット) |
C= |
ナチュラル(その音符だけ調号を無視) |
On |
オクターブ指定(n = 0〜8、デフォルト: 4) |
< |
オクターブを 1 下げる |
> |
オクターブを 1 上げる |
音名とオクターブ指定は 大文字・小文字どちらでも有効 です(c = C、o3 = 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&c4 を c2 のように長さ結合(再発音なし) |
音量・ベロシティ
| 記法 |
意味 |
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 の場合:
- 大文字音符(
C〜B)→ V で設定したアクセントベロシティ
- 小文字音符(
c〜b)→ v で設定した非アクセントベロシティ
トランスポーズ(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 モードでは無視) |
; コメント |
; 以降、行末までコメント(無視される) |
# ヘッダ |
# で始まる行は無視される |