piko piko kun MML spec できるだけ T'SoundSystem の MML http://www.toyoshima-house.net/classic/tss/manual.html のサブセットとなるように心がけました (が、ウソっぱちです)。 基本的なルール . 常に、アルファベットの大文字小文字を区別します。 . 行頭に '#' がある場合、制御コマンドを意味します。 . '{' ... '}' はどのような場所にあってもコメントを意味します。 コメントは入れ子にすることが可能です。 . '//' 以降行末までコメントとなります。 制御コマンド #END この行で MML コンパイル処理を終了します。 以降の行は無視されます。 #OCTAVE #OCTAVE NORMAL '<' でオクターブアップ、 '>' でオクターブダウン #OCTAVE REVERSE '>' でオクターブアップ、 '<' でオクターブダウン #VOLUME #VOLUME NORMAL '(' でボリュームアップ、 ')' でボリュームダウン #VOLUME REVERSE ')' でボリュームアップ、 '(' でボリュームダウン #MODE #MODE TSOUND @v 詳細な音量設定の範囲 [0,255] q ゲート比の範囲 [0,16] <> 相対オクターブ指定 NORMAL #MODE MDX @v 詳細な音量設定の範囲 [0,127] q ゲート比 (q) の範囲 [0,8] >< 相対オクターブ指定 REVERSE 行頭に [A-Z] がある場合、トラックの指定を意味します。 #[A-Z] トラック指定 MML コマンド 音長指定 - 1, 2, 4, 6 などの通常の音長指定 - '.' による付点指定 - '^' によるタイ指定 (音長をつなげる) - '%' による絶対音長指定 全音符を 192 とした音長指定。 内部的には /2 される (全音符が 96 扱い) ので、奇数は指定しないこと - どのような場合でも、全音符以上の音長指定はできないので注意 l<音長> デフォルト音長。音程および休符で音長が省略された際の値 付点、'^'、'%' 指定も使用可能 r[音長] 休符 abcdefg[+-][音長] 音程。'+' でシャープ。'-' でフラット o<オクターブ値> オクターブ。オクターブの範囲は [0,8] < > 相対オクターブ。#MODE, #OCTAVE によって動作が変わる。 & スラー (キーオフしない) t<テンポ> テンポ。1分間に演奏される4分音符の個数。 /:[n]~/~:/ n 回リピート。n が省略された場合は n = 2 となる。 最後の1回の時に '/' を処理した場合は ':/' まで飛ぶ。 [[n]~|~][n] /: ... / ... :/ と同様の動作を行う (MML 互換性用)。 ']' の後ろにリピート回数を記述することもできる。 v<音量> 音量設定。音量の範囲は [0,15] @v<音量> 詳細音量設定。音量の範囲は #MODE TSOUND の場合 [0,255]。#MODE MDX の場合 [0,127] ([音量] )[音量] 相対音量設定。直前の音量設定が 'v' の場合は 'v' の単位 で音量が増減する。'@v' の場合は詳細音量単位で増減する。 ~[音量] _[音量] 相対音量詳細設定。常に詳細音量での増減となる。 k[デチューン] デチューン値は符号付。64 で半音ずれる。 D[デチューン] k と同じ q<ゲートタイム比> 音長に対して、どの程度の割合でキーオフするかを指定する。 @<音色番号> 音色指定。範囲は [0,494]。o3 c で原音が出力される。 必ずしも o3 c が「ド」の音になるとは限らないので、 適宜 'n' コマンドを用いて補正すること。 n<シフト値> ノートシフト。符号付半音単位 @tA, @tD アタック、ディケイ時間設定 (サンプル時間単位) @rA, @rD, @rS, @rR アタック、ディケイ、サスティン、リリースレート設定 (1サンプルあたりの音量増減値) s<速度> リリースレート設定。@rR の別名 @tL LFO ディレイ設定 (サンプル時間単位) @rL LFO レート設定 (1サンプルあたりの増減値。符号付) @rW LFO デプス設定 (増減幅の絶対値 @rW10 なら [-10,+10] の範囲)