EzGraph : Eazy Graphic Library

概要 チュートリアル 機能一覧 関数名一覧 機能別一覧 色見本 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. とします.

音量(V, @V)

V0 〜 V15 まで音量を調節します.V0 は無音で,V15 は最大音量です. デフォルトは V8 です.また,@V0 〜 @V127 を使用することによりより 細かく音量調節ができます.V15 と @V127 は同じ音量です. V15(又は@V127)を超える音量を指定した場合は音が割れる可能性があります.

音量の相対設定(@n)

音量を相対的に設定します.n が省略された場合は 1 です.

音の長さ(L)

音の長さを指定します.音程の長さを省略した場合の長さに使用されます.

音の長さの割合(Q)

音の長さの割合 を 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 です.

オクターブ(O)

O1 〜 O8 を用いてオクターブを指定します.デフォルトは O4 です.

オクターブの上げ下げ(<, >)

> はオクターブを 1 つ上げます.< はオクターブを 1 つ下げます.

休符(R)

休符を指定します.長さの指定の仕方は音程と同じです.

テンポ(T)

テンポを指定します.デフォルトは T120 です.

Nコマンド(N)

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 を 解釈できません.どの様な動作をするかは未定です.

エンベロープ周期(M)

エンベロープ周期を設定します.デフォルトは M256 です.M で指定する 数値 x は,エンベロープ周期を t(秒) とした場合,以下の式で計算でき ます.

x = fclock * t / 256, (fclock = 1996800Hz)

エンベロープパターン(S)

エンベロープパターンを設定します.デフォルトは 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附属ドキュメントより抜粋
Takahiro SASAKI
E-mail: sasaki at arch.info.mie-u.ac.jp