概要 | チュートリアル | 機能一覧 | 関数名一覧 | 機能別一覧 | 色見本 | MMLの書き方 |
C, D, E, F, G, A, B はそれぞれ ドレミファソラシを表します.また, C4 のように音程のすぐ後に数字で音の長さを指定します.音の長さが 省略された場合は L コマンドの値が使用されます.デフォルトの 長さは 4 です.
C D E F G A B ド レ ミ ファ ソ ラ シ 1 2 4 8 16 32 64 全音符 2分音符 4分音符 8分音符 16分音符 32分音符 64分音符
前後の音をつなぎます. 以下の場合は前の音を Q8 コマンドで指定した場合と同じです.
音を半音上げます.B+ は,同じオクターブ上の C 音で定義されます. # は + と全く同じです.
音を半音下げます.C- は,同じオクターブ上の B 音で定義されます.
音を元の音程で鳴らします.
(~音符記号(#,+,-,/))音符記号=アルファベットのA〜G このコマンド以後、指定した音符記号で調合の付いていないもの全てに ついて自動的に指定した調合が付加されます。 / はナチュラルで,元に戻します.
音の長さを 1.5 倍にします(符点音符).例えば,符点4分音符は C4. とします.
V0 〜 V15 まで音量を調節します.V0 は無音で,V15 は最大音量です. デフォルトは V8 です.また,@V0 〜 @V127 を使用することによりより 細かく音量調節ができます.V15 と @V127 は同じ音量です. V15(又は@V127)を超える音量を指定した場合は音が割れる可能性があります.
音量を相対的に設定します.n が省略された場合は 1 です.
音の長さを指定します.音程の長さを省略した場合の長さに使用されます.
音の長さの割合 を Q1 〜 Q8 を用いて指定します.割合は以下の通りです.
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 1/8 2/8 3/8 4/8 5/8 6/8 7/8 8/8デフォルトは Q8 です.
O1 〜 O8 を用いてオクターブを指定します.デフォルトは O4 です.
> はオクターブを 1 つ上げます.< はオクターブを 1 つ下げます.
休符を指定します.長さの指定の仕方は音程と同じです.
テンポを指定します.デフォルトは T120 です.
N36 とすると定義されている音の一番下から 36 番目の音を発生します. 音程との対応を以下の表に示します.
O1 O2 O3 O4 O5 O6 O7 O8 C 0 12 24 36 48 60 72 84 C+(D-) 1 13 25 37 49 61 73 85 D 2 14 26 38 50 62 74 86 D+(E-) 3 15 27 39 51 63 75 87 E 4 16 28 40 52 64 76 88 F 5 17 29 41 53 65 77 89 F+(G-) 6 18 30 42 54 66 78 90 G 7 19 31 43 55 67 79 91 G+(A-) 8 20 32 44 56 68 80 92 A 9 21 33 45 57 69 81 93 A+(B-) 10 22 34 46 58 70 82 94 B 11 23 35 47 59 71 83 95
@0 〜 @5 を用いて音色を設定します.デフォルトは @0 です.この音色は 実際の MML で定義されたものとは異ります.@4 はノイズ音です.@5 は 金属を叩いた様な太鼓の音で,この音色は,音程やエンベロープを設定する ことはできません.
|: と :| で囲まれた領域を繰り返します.|: のすぐ後に数字を書けば その回数だけ繰り返します. 例:
|:CEG:| CEG を 2回繰り返します. |:5CEG:| CEG を 5回繰り返します.|: の個数より :| の個数が多いとエラーとなります.
{音程}x は { と } で囲まれた領域を x 分の長さで等分割して 演奏します. 例:
{CEG}4 4 分の長さを3 等分して CEG を演奏します. 注意:
{ }内で使用可能なコマンドは,音程命令の他に +, #, -, O, <, >, N, |:, :| です.それ例外のコマンドを指定した場合は,正しく MML を 解釈できません.どの様な動作をするかは未定です.
エンベロープ周期を設定します.デフォルトは M256 です.M で指定する 数値 x は,エンベロープ周期を t(秒) とした場合,以下の式で計算でき ます.
x = fclock * t / 256, (fclock = 1996800Hz)
エンベロープパターンを設定します.デフォルトは S13 です. 「?? S1 だったかな?」 エンベロープパターンは以下の形が定義できます.
S0, S1, S2, S3, S9: \ \ \_________________ S4, S5, S6, S7, S15: /| / | / |________________ S8: \ |\ |\ |\ |\ \ | \ | \ | \ | \ \| \| \| \| \ S10: \ /\ /\ / \ / \ / \ / \/ \/ \/ S11: ________________ \ | \ | \| S12: /| /| /| /| /| / | / | / | / | / | / |/ |/ |/ |/ | S13: __________________ / / / S14: /\ /\ /\ /\ / \ / \ / \ / \ / \/ \/ \/ \
MMLでは大文字と小文字は区別されません.
% から改行まではコメントとして扱われ,入力がスキップされます.
改行の直前に \ があると,次の行とつながっているものと解釈されます. 数字の途中を除いて,どこにでもスペース(またはタブ)を挿入することが できます.
チャネルの区切りはカンマです.
和音を多く重ねると音が割れます.この場合,各パートの音量を下げて 演奏して下さい.
1行にあまり多くのコードを記述すると,メモリが足らなくなる恐れが あります.
音を出す場合は他人の迷惑のならないように,周りに気を使いながら 演奏しましょう.
以下にサンプルを示します.
S0M10000,S0M10000L8O3 GEE2FDD2,CGEGCGEGDGFGDGFG CDEFGGG2,CGEGCGEGCGEGCGEG GEEEFDD2,CGEGCGEGDGFGDGFG CEGGEEE2,CGEGCGEGCGEGCGEG DDDDDEF2,DGFGDGFGDGFGDGFG EEEEEFG2,CGEGCGEGCGEGCGEG GEEEFDD2,CGEGCGEGDGFGDGFG CEGGEEE2,CGEGCGEGCGEGCGEG※ mmlp-1.2附属ドキュメントより抜粋