目次
ＭＭＬによる作曲の手引き

１．はじめに

２．ＭＭＬってなに？

３．超入門編　－その１－

４．超入門編　－その2－

５． 入門編 　－その１－

６． 入門編 　－その2－

７． 初級編 　－その１－


はじめに

      ＦＰＤ９７は大変有用なソフトですが、作曲に使ったりと言う人は意外に少ないようです。又、どうやって打ち込んだら良いのか？という人も結構居るようですので、超初心者の人にも解るように解説し、簡単な曲程度なら作曲出来るくらいまでのノウハウを詰め込んだつもりと思っておりますので、気長に最後までお付き合い下さい。


ＭＭＬってなに？

      ＦＰＤ９７で曲を書くにはＭＩＤＩのシーケンサで作った曲をコンバートするか、ＭＭＬと呼ばれるテキストを書いて行くかの２通りの方法がありますが、ここではＭＭＬでの打ち込みを説明する事になります。ＭＭＬとはミュージックマクロランゲージの略で、エディタやワープロソフトのいずれかがあれば、書く事ができます。慣れてしまえばシーケンサソフトよりもずっと打ち込みがしやすく、速いのですが、覚える事が沢山有り、とっつき難いのも事実です。そこで初心者にも解りやすいようにまとめて見ました。

  では始めましょう。


超入門編　－その１－　音を出して見よう！

    　まず、下の枠内をエディタ等で打ち込み「frog.mml」の名前でセーブした後、ＦＰＤ９７で変換し、聞いて見て下さい。エラー等が出た場合はもう一度、正しいかどうかの確認をして見て下さい。

;

!蛙の歌

V 1,03piano1

T120,192

A @1 v120 o4 K0 Npiano

A c4d4e4f4e4d4c2e4f4g4a4g4f4e2

A c2c2c2c2c8c8d8d8e8e8f8f8e4d4c4

;

    　できましたか？ＭＭＬは、基本的に、上の方から実行して行くので、上にある命令から解説していくことにします。

    ・!蛙の歌

    　これは曲にタイトルを付けています。特に設定する必要は有りませんが、無いと寂しいです(^^)。

    　・曲にタイトルを付ける

    　　書式：!ｎ

    　　　　－ｎ：曲のタイトル(半角６６文字迄)

    ・V 1,03piano1

    　音を鳴らすには音色を決めないといけないのですが、これは「03piano1」という音色名に１番という番号を付けると言う意味です。この番号は後に使うので、覚えやすい数字にしましょう。

    　・音色に番号を付ける

    　　書式：V n1,n2

    　　　　－n1：音色番号(0-255)、n2：拡張子無しの音色名

    ・T120,192

    　音楽にはテンポというのがあって、１分間に４分音符が何個鳴るか？という単位で表されます。それを設定する物です。

    　・テンポを決める

    　　書式：Tn1,n2

    　　　　－n1：テンポ(1-255)、n2：「192」 に設定しておいて下さい。

    ・A @1 v120 o4 K0 Npiano

    　ここから何やらややこしそうですが、気楽に行きましょう。最初の「Ａ」は今は「おまじない」だと思っておいて下さい。

    ・@1

    　これは、先程設定した音色番号１番をここで使用するという意味です。

    　・音を選ぶ

    　　書式：@ｎ

    　　　　－ｎ：使いたい音色の音色番号(0-255)

    ・v120

    　これは、ここで使用する音色のボリュームを決めます。

    　・ボリュームを決める

    　　書式：vｎ

    　　　　－ｎ：ボリューム(0-135)

    ・o4

    　キーボード等を見れば解りますが、ドレミには高い音程のドレミと、低い音程のドレミがあります。その高さの事をオクターブと呼ぶのですが、これはそのオクターブを決める命令です。

    　・オクターブの設定をする

    　　書式：oｎ

    　　　　－ｎ：オクターブ(1-8)

    ・K0

    　ＦＰＤ９７は鍵盤表示が出来るのですが、どの鍵盤に表示するかの設定です。特に指定する必要は有りません。

    　・鍵盤を決める

    　　書式：Kｎ

    　　　　－ｎ：鍵盤の場所(0-16)

    ・Npiano

    　鍵盤に名前を付ける命令です。これも特に指定する必要は有りません。

    　・鍵盤に名前をつける

    　　書式：Nｎ

    　　　　－ｎ：鍵盤の名前(半角６６文字迄)

    　次にやっと音を鳴らせる話です。普段言われている「ドレミファソラシ」は、ＦＰＤでは「cdefgab」 で表されます。これを念頭に以下の表を覚えてしまって下さい。

    　　　　　　　　　・－－－－－－－－－・－－－－－・

    　　　　　　　　　｜種類　　　　　	｜例	｜

    　　　　　　　　　・－－－－－－－－－・－－－－－・

    　　　　　　　　　｜４分音符　　　	｜ c4	｜

    　　　　　　　　　｜１６分音符　　	｜ d16	｜

    　　　　　　　　　｜全音符　　　　	｜ e1	｜

    　　　　　　　　　｜符点８分音符　	｜ f8.	｜

    　　　　　　　　　｜８分＋２分音符	｜ g8^2｜

    　　　　　　　　　｜シャープ　　　	｜ a+2	｜

    　　　　　　　　　｜フラット　　　	｜ b-1	｜

    　　　　　　　　　｜休符　　　　　	｜ r8	｜

    　　　　　　　　　｜オクターブを上げる	｜ > 	｜

    　　　　　　　　　｜オクターブを下げる	｜ < 	｜

    　　　　　　　　　・－－－－－－－－－・－－－－－・

    　ちなみに音長に関しては１９２の約数を使う事になります。又、知らない人に書いておくと、音長は数字が大きいほど短くなり、その長さは数字に反比例します。

    　以上の事を覚えてしまえば、取り敢えず遊ぶ事くらいは出来るので、色々いじって見て下さい。


超入門編　－その２－

    　取り敢えず。慣れないうちは、打ち込むのも結構かったるい物です。そこで、ＦＰＤ９７には幾つか楽に打ち込む為のコマンドが用意されています。先ず、先程のＭＭＬを抜粋します。

;

A c4d4e4f4e4d4c2e4f4g4a4g4f4e2

A c2c2c2c2c8c8d8d8e8e8f8f8e4d4c4

;

    　こういう部分がありますね？半分は４分音符なのに省略出来ないの？って思った貴方。大正解です。実は以下のようなコマンドがあります。

    　・音長省略時の音長の設定

    　　　書式：lｎ

    　　　　　－ｎ：音長

    　これを使用する事によって、上のＭＭＬは以下のようになります。

;

A l4cdefedc2efgagfe2

A c2c2c2c2c8c8d8d8e8e8f8f8edc

;

    　又、８分音符、２分音符の部分にも使用する事によって更に短くなります。

;

A l4cdefedc2efgagfl2e

A ccccl8ccddeeffl4edc

;

    　結構短くなりましたね。しかし、更に短くする方法が有るのです。

    　・繰り返し

    　　　書式：[n1]n2

    　　　　　－n1：繰り返したいＭＭＬ、n2：繰り返す回数(0-255)

    　今回の場合は、これを使ってもあまり短くはなりませんが、場合によってはかなり短くなるので、有効に使って行きましょう。

;

A l4cdefedc2efgagfl2e

A [c]4l8ccddeeffl4edc

;

    　どうです？最初の半分くらいになったでしょう？こんな感じで、どんどんＭＭ

    Ｌに慣れて行きましょう。


入門編　－その１－

    　次に再び以下の枠内を打ち込んで聞いてもらいましょう。

;

!ネコ踏んじゃった

T190,192

V 1,03piano1

A @1 v120 o4 K0 Npiano

B @1 v120 o4 K0

C @1 v120 o4 K0

A  [e-8d-8r4 g-8r8g-4]2

B <[r8 r8 r4 b-8r8b-4]2

C <[r8 r8 g-4.]2

A e-8d-8r4 g-4r4

B r8 r8 r4 b-4r4

C r8 r8 g-2   e-4

A g-4r4f8r8f4

B b-4r4b8r8b4

C r4 d-2.

A [e-8d-8r4 f8r8f4]2

B [r8 r8 r4 b8r8b4]2

C [r8 r8 d-2.]2

A e-8d-8r4 f4r4

B r8 r8 r4 b4r4

C r8 r8 d-2  e-4

A f4r4 g-8r8g-4

B b4r4 b-8r8b-4>

C r4g-2.>

;

    　「ネコ踏んじゃった」のショート版の割には一気に長くなってしまいましたが、頑張って行きましょう。今回は前回と違う部分だけ説明します。

    　今回パット見で違うと解るのは、先程に述べた「おまじない」が３つに増えてる事ですね。これは何故かというと「蛙の歌」が常に音が１つしか鳴ってなかったのに対して「ネコ踏んじゃった」では３つ同時に音がなっていたりするのです。そこで「おまじない」が３つ必要になったのです。この「おまじない」は実はパートと呼ばれ、それぞれのパートは常に１つしか音を鳴らせないのです。このパートは歌っている人間だと思ってもらっても結構です。人間も同時にいくつもの音を発声する事は出来ませんからね。先程、基本的に、上の方から実行すると書きましたが、それぞれのパートはそれぞれ同時進行して行くと言うことを頭に入れておいて下さい。


入門編　－その２－

    　さて、恒例の短縮化です(^^)。今回はそんなに短くはなりませんが、行って見ましょう。

;

A @1 v120 o4 K0 Npiano

B @1 v120 o4 K0

C @1 v120 o4 K0

;

    　ＭＭＬをぱっと見ると、この部分が無駄な事をしているような感じがしますよね。実はこれはまとめてしまえるのです。

;

ABC @1 v120 o4 K0 Npiano

;

    　このようにまとめてしまえるのです。この場合、Ｂ、Ｃにも「Npiano」が書かれた事になってしまいますが、問題の無い部分なのでよしとしましょう。

    　後、これだけ打っても一回だけしか再生してくれないのはさみしいし、ゲームミュージックなんかだと、ずーっと繰り返してますよね？それを再現するのが以下のコマンドです。

    　・ループさせる為のループポイントを設定する。

    　　　書式：L

    　これをループさせたい場所に書けば良いのです。又、今まで使用した事のある総てのパートというワイルドカード的なパートとして「？」があります。これも併用して使ってしまいましょう。例えば、この曲の場合は曲の頭から再び再生してくれればいいので、以下の所に書きます。

;

ABC @1 v120 o4 K0 Npiano

? L

A  [e-8d-8r4 g-8r8g-4]2

B <[r8 r8 r4 b-8r8b-4]2

C <[r8 r8 g-4.]2

;

    　ですね。だんだんと出来る事も増えて来て、そろそろ楽譜を見ながらの打ち込み位なら、ある程度出来るくらいのレベルには達していると思います。次のコーナーは打ち込む書式の基本の様な物から行きたいと思います。


初級編　－その１－

    　取り敢えず、今回も例によって曲を打ち込む事から始めてもらいます。

;

!(今回は皆さんが曲名を付けて下さい)

T150,192

V 1,03piano1

A @1 v120 o4 K0 Npiano

A g4.a8b-2.a4>c4d4e-4.d8<a1^2>c2^8<b-8a8g8g-~32>e-~32d~32c4<g-4g1

;

    　出来ましたか？さて本題に入ります。

    　先ず。皆さんが始めて見る命令から解説に入りましょう。最後の行に「＾」っていうのがありますね？例えば、４分音符の長さに１６分音符の長さを足した長さの音を出したい時はどうしたら良いのでしょうか？今まで習った事だけでは出来ませんね。そこで「＾」の登場です。

    　みなさんは今回のこのＭＭＬを見てどう思いましたか？「ネコ踏んじゃった」等に比べて、最後の行が非常に見にくいですよね？気にならない人も居ると思いますが、このような書き方をしていると、例えば、非常に長い曲を書いたりしていると、何処が何処だか解らなくなってしまう事があったりして、修正したりする時には、逆に面倒くさいのです。そこで、見易くする為にはどうしたら良いのか？幸いな事に、音楽には小節(*1)というのがあって、それを１つの単位にして行けば見易くなると言う訳ですね。では、早速最後の行を小節単位に書き直して見ましょう。

    　*1．４拍子の曲は１小節が４拍。３拍子なら１小節が３拍ということですね。

;

A g4.a8b-2^

A 4a4>c4d4

A e-4.d8<a2^

A 1>

A c2^8<b-8a8g8

A g-~32>e-~32d~32c4<g-4

A g1

;

    　こういう風にする事によって、全体の見通しが良くなる訳ですね。で、こういう風に直している時に見慣れない命令が出て来ましたね。「~」 という奴がそれですが、これはどういう意味なのでしょう？音楽をやっている方は御存じかもしれませんが、実は音楽には３連符等といって、例えば４分音符の長さを丁度３で割った長さの音が使いたい！って言う時があるのです。それを再現するのがこのコマンドです。皆さんがテンポを決めた時に、２つめのパラメータとして今は１９２が与えられている筈ですが、この１９２というのが実は１小節の長さで「~」コマンドでは、その長さを直接与える事によって３連符等を再現しているのです。

    　　 例 　　　　　　　　　　　　絶対音長　　　　　　　　　　~ の値

    　 全音符 　+----------------------------------------------+　 192

    　４分音符　+----------++----------++----------++----------+　  48

    　８分音符　+----++----++----++----++----++----++----++----+　  24

    　８分３連　+--++--++--++--++--++--++--++--++--++--++--++--+　  16

    　上の図はテンポの２つめのパラメータを１９２に設定した時の話で、それ以外

    の場合は、別の値になります。

    　・絶対音長の指定

    　　　書式：n1~n2

    　　　　　－n1：鳴らしたい音程、n2：絶対音長

    　さて、先程打ち込んだ物を良く聞いて見ると、なんかピアノにしては物足りないなぁ・・・という気がしませんか？これは、ピアノの余韻が鳴り響く間に、他の音に切り替わってしまって、余韻の部分が生かされない為です。これの対策には、パートを２つ使用し、交互に音を鳴らす事により、一応は解決します。

;

AB @1 v120 o4 K0 Npiano

A g4.r8b-2^

B r4.a8r2^

A 4r4>c4r4

B 4a4>r4d4

A e-4.r8<a2^

B r4.d8<r2^

A 1>

B 1>

A r2^8<b-8r8g8

B c2^8<r8a8r8

A r~32>e-~32r~32c4<r4

B g-~32>r~32d~32r4<g-4

A g1

B r1

;

    　そろそろ、リズムも鳴らしたい頃かと思うので、ドラムをちょこっと入れて見ましょう。

;

!(曲名はもう付けましたか？)

T150,192

V 1,03piano1

V 2,m3snare2

V 3,03d36

AB @1 v120 o4 K0 Npiano

C  @2 v120 o4 K1 Ndrums

D  @3 v120 o4 K1

A g4.r8b-2^

B r4.a8r2^

C l4rcrc

D l4crc8c8r

A 4r4>c4r4

B 4a4>r4d4

C rcrc

D cr8ccr8

A e-4.r8<a2^

B r4.d8<r2^

C rcrc

D crc8c8r

A 1>

B 1>

C rcrc

D cr8ccr8

A r2^8<b-8r8g8

B c2^8<r8a8r8

C rcrc

D crc8c8r

A r~32>e-~32r~32c4<r4

B g-~32>r~32d~32r4<g-4

C rcrc

D cr8ccr8

A g1^

B r1^

C rcrc

D crc8c8r

A 1

B 1

C rccc

D cr8ccc8

;

    　リズムは基本的にはオクターブは４にして、ｃを鳴らすのが基本です。ただ、音程を変えたいと思った際は、その限りでは有りません。

    　しかし、リズムも鳴り始めたと言うのに、何故かこうパッとしませんね。何故でしょうか？実はこれは、ベースが鳴ってないからなんですね。ベースというのは、音楽をやっていない人からは、案外軽く見られがちなのですが、実は、かなり重要なファクターを占めているのです。では、ベースも入力して見ましょう。

;

!(早く付けないと私が付けでしまいますよ(^^))

T150,192

V 1,03piano1

V 2,m3snare2

V 3,03d36

V 4,m3rnbass

AB @1 v120 o4 K0 Npiano

C  @2 v120 o4 K1 Ndrums

D  @3 v120 o4 K1

E  @4 v120 o3 K2 Nbass

A g4.r8b-2^

B r4.a8r2^

C l4rcrc

D l4crc8c8r

E l8[g]5fgb-

A 4r4>c4r4

B 4a4>r4d4

C rcrc

D cr8ccr8

E [g]5fgb-

A e-4.r8<a2^

B r4.d8<r2^

C rcrc

D crc8c8r

E >[c]5<b-gb->

A 1>

B 1>

C rcrc

D cr8ccr8

E [c]5de-c

A r2^8<b-8r8g8

B c2^8<r8a8r8

C rcrc

D crc8c8r

E [d]5c<a>c

A r~32>e-~32r~32c4<r4

B g-~32>r~32d~32r4<g-4

C rcrc

D cr8ccr8

E [d]5e-dc

A g1^

B r1^

C rcrc

D crc8c8r

E <[g]5fgb-

A 1

B 1

C rccc

D cr8ccc8

E [g]8

;