MMLの基礎


 MMLは、基本的にアルファベットを使って、音楽を表記していきます。
 MMLとは、MusicMacroLanguageの略で、パソコンが8ビットだった時代から音楽を簡単に表すために使われていました。そのため、基本は非常に簡潔です。
 そしてこのソフトサクラは、細かいニュアンスが表現できるように、MMLを拡張したものです。


・MMLの基本

ノート

ノート(音名)→ストトン表記では、ドレミファソラシ

ドレミファソラシをMMLでは、cdefgabと書きます。半音上(#)はノートのすぐ後ろに、+#。半音下(♭)は、-
cdefgab //=ドレミファソラシ
c+ d e f# g a b-

休符→ストトン表記では、ッン
休符は、rで表します。

ノート番号指定

特殊なノートにnがあります。これは、n番号と指定して、番号のノートナンバーを発音するという意味です。番号に指定できるのは、-1〜127までです。-1の時は、休符と同じ扱いになります。
n36 //o3c と同じ意味
n38 //o3d と同じ意味

音長

  1. 音長(音の長さ指定)→ストトン表記では、音符
    音の長さ(length)は、l(小文字のL)で指定するか、ノートのすぐ後で指定します。
    l8 cdef gfed //音符8 ドレミファ ソファミレ
    l4 cdef gfed //音符4 ドレミファ ソファミレ
    c8 d8 e4 d8 e8 f4 e8 f8 g4 //ノートのすぐ後で音長指定
    //ド8レ8ミ4レ8ミ8ファ4ミ8ファ8ソ4

    また、音の長さの表現には、二つの方法があります。
    n分音符指定:四分音符・八分音符などで指定する方法。
    ステップ指定:実際の長さを直接ステップ数で指定する方法。TimeBase(96)と指定すれば、四分音符を96ステップとして解釈します。

    変換規則
    ・n分音符指定から、ステップ指定モードに、ステップ指定からn分音符に、(音の長さ指定方法を)切り替えるときは、%を書きます。
    l4 cdef g2fe   //n分音符指定
    l%96 cdef g192fe //ステップ指定
    l%96 cdef c%4d%4e%4f%4

    ・ステップ指定の時、n分音符指定したいときは、数値の前に、!を書きます。または、Step(n分指定)という数値変換用の関数もあります。
    l%96 //これ以後、ステップ指定
    c192d48e48
    c!2 d!8e!8 //TimeBaseが96のとき、上と同じ意味


    付点音符を表現したいときは、l4. l2. のように、. をつけます。
    l4. ceg4 //付点四分音符
    l4 c.e.g //音長省略しても付点四分音符

    タイ指定(→ストトンでは)には、^ (日本語キーボードなら0の2つ右隣のキー)を使います。^音長^音長^音長...で同じ高さの音をつなぐのが目的ですが、実際は、一つ以上の音長指定を l2^4 のように、つなぐのに使います。音長は省略すると、音長指定lで指定した値が省略値となります。
    l4^4 // l2 と同じ意味
    c d8 e8
    f8^8 // f4 と同じ意味
    l8 cde^ fg^^ // l8cde4 fg4. と同じ意味

    または、音の長さの加算減算に+,-を使うことも出来ます。
    q100 d+%3e1-%3 f+%3g1-%3
    c1+1+1+1

ベロシティ

  1. ベロシティー(音の強さ)→ストトン表記では、音量
    音の強さを表すベロシティー(velocity)は、vで指定します。初期状態で、vの範囲は、0〜127です。
    l4 v100 cdef v70 cdef v120 cdef

    相対的に v を変えることもできます。
    v80 c v+10 c v+10 c v+10 c v+10 c //相対的に指定

    System.vAdd(10);//v++の値決定
    v80 c v++ c v++ c v++ c v++ c //省略指定
    v80 c v+++ c // = v+20
    v80 c v++++ c // = v+30

オクターブ

ゲートタイム

タイミング

タイミング
発音のタイミングをステップ値で t のように指定します。
微妙なニュアンスを表現したり、次の章で扱うオプションと組み合わせてシャッフルやグルーブの調整をします。
o4 l16 t0 c t8 d t0 c t8 e t0 c t8 g

和音

MMLで和音を表現する方法は、3つあります。
'ceg' シングルコーテーションで括る
c0e0g 音長さを、0にする
Sub{ c }Sub{ e } g Sub{ } を使うとタイムポインタを Subの前に戻します。

戻る次へ