それでは、さっそくはじめましょう。まず、"kfmpad"を立ち上げてください。とりあえず、なにか鳴らしてみましょう。そうしたら、次のように打ち込んでみてください。
geer fddr cdef gggr |
それから、ツールバーのプレイボタンを押してください。
すると、ファイルのセーヴ場所を尋ねられますので、適当に名前をつけてください。保存が終了すれば、すぐに、音が鳴り始めるはずです。
どうですか?鳴りましたか?・・・鳴らない人は、MIDI環境のチェックをしてみてください。
(MIDIの出力デバイスの選択は、Windowsのコントロールパネルの中にある「マルチメディア」のMIDIで、変更できます。)
2回目以降、同じフレーズを聞く場合は、プレイボタン右側の赤い絵の「リプレイボタン」を押してください。
・楽譜とMMLの対応
楽譜とMMLは、上図のように対応しています。これは、少し音楽をかじった事のある人なら、すぐに覚えられますよね。音楽の音名、そのままですから。音楽に詳しくない人も、覚えておいて損はないです。コード理論でもよく使われます。
geer fddr cdef gggr |
さっきの、MMLを、上図と照らし合わせてみてください。おや、"r"がありませんね。そうです。"r"は休符(rest)を表わしているのです。
それでは、この曲の続きの部分を載せてみようと思います。
geer fddr cdef gggr geee fddd cegg eeer dddd defr eeee efgr geee fddd cegg eeer |
うーん、チープですね。なんで、こんな情けないこと・・・なんて思わないでください。いちいち打ち込んでもらうのもあれなんで、さっさと、コピー&ペーストで、エディタにMMLを貼り付ければ、楽ですよ。
・シャープ(#)とフラット(b)
さて、ハ長調の曲でしたら、いいですけど、(#)や(b)のある音符の場合、どうしたらいいでしょう?そんなときは、音符のすぐ後ろに、"+"と"-"の記号を書いてください。
例えば、ド#は、"c+"、ミbは、"e-"という具合です。
cc+dd+eff+gg+aa+br bb-aa-gg-fee-dd-cr |
・オクターブの"o"
さて、一口に「ド」と、申しましても、高い「ド」や、低い「ド」がありますよね。それを表わすのが、"o"コマンドです。これは、"o"の後ろにそのオクターブの高さを、"o4"とか"o6"などというように書くのです。
いろんな、オクターブの「ド」で、遊んでみましょう。
o4cc o5c o4c | o4cc o5c o6c | o4c o5c o4cc | o5c o4ccc |
マイルドな感じです。ところで、"|"の記号は、区切り線で、何の意味もありません。見やすくするために、使います。
それから、上の例を見てもらうと分かりますが、いちいち"o"を何度も書くのは、面倒ですよね。MMLは、簡潔簡略がテーマです。オクターブ変更の命令には、もう1種類あり、">"と"<"を使います。これは、相対的に、オクターブを変更するコマンドで、">"は、1オクターブ上げる、"<"は、1オクターブ下げるという意味があります。
o4 cc>c<c | cc>c>c<< | c>c<cc | >c<ccc |
これは、先ほどの例を、">"と"<"を使って書き直したものです。簡潔ですね。さらに、このように相対的にオクターブの上がり下がりを指定する方法を使っていれば、後になって、やっぱり、もう1オクターブ高くしたいなぁ、などと思ったときに、初めの"o4"を書き換えるだけで、事足りてしまいます。
これから、ボリュームやその他いろいろなコマンドが出てきますが、出来るだけ、それらの命令を相対的に指定するようにした方が、後から数値を変えたくなった場合に、楽ができます。
音楽の重要な要素の2つをあげるとすれば、「音程」と「リズム」です。ここまでで、音程はマスターしましたので、次は、リズムの表記方法を書こうと思います。
実際、MMLのリズム表記方法は非常に簡単です。音程の後ろに、"n音符"と書くだけです。
o4 a4a4b2 a4a4b2 a4b4>c4<b4 a4b8a8f2 e4c4e4f4 e4e8c8<b2> |
日本の心ですね。初めの方を見ると、"a4"、これは「ラ」の音を、4分音符で鳴らすという意味です。次の"b2"、これは「シ」の音を2分音符で鳴らすということです。
・レングスの"l"
あと、毎回リズム指定するのは、面倒なので、"l"コマンドというものが用意されていて、これは、リズムを省略したときの省略値を指定しておけます。"l"コマンドを使って上の例を書き直すと以下のように簡潔になります。
o4 l4 aab2 aab2 ab>c<b ab8a8f2 ecef ee8c8<b2> |
・付点音符
さて、楽譜を見ますと、他に、「付点音符」なんてのが出てきますよね。これは、"."を書きます。また怪しい曲ですが・・・
o4l4 e.d8cd eee2 ddd2
egg2 e.d8cd eee2 dde.d8 c1 |
こんな風に、"."をリズム指定の後に書くだけです。それから、この「n分音符指定」というのを、これから「音長指定」と呼ぶことにします。
・タイ "^"
それから、よく楽譜に出てくるのが、タイです。同じ高さの音を、そのまま伸ばしたいときに、使います。これは、"^"を使って、"b4^4"なんて、風に使います。もちろん、"^"の後ろの数字は、「音長指定」です。タイは、"c^4^4^8^16^16"というように、いくつでも繋げる事ができます。
そうそう、リズムと言えば、ベースです。マ○ケル・ジャク○ンのあの有名なフレーズをMMLで表わしてみます。
o2l4gb->cd-8<g8^8g8b->cd-< | gb->cd-8<g8^8g8b->cd- |
ピアノの音だとチープですね。このMMLの前に、"@38"を挿入してみてください。シンセベースの音になります。
ここまで来て、「おいら楽譜なんて読めねぇんだよぅ」なんて、弱気になった人もいるかと思いますが、大丈夫です。実際、私もMMLを使って音楽をはじめた頃は、楽譜なんて読めませんでしたから。とりあえず、いろいろ音の長さを試しているうちに、覚えてしまうものです。
( *** コラム *** ) ・細かい音符と全音符より長い音符の表記 ところで、n分音符という名前のない音符は、どうやって指定するんだ?ってことになります。例えば、全音符だとか、全音符の2倍の長さだとか、4分音符を3分割した3連符など。 一つずつ答えていきます。まず、全音符ですが、これは、"c1","e1"などと表わします。次に、その2倍の長さ、これは、MMLでは、タイを使って、"c1^1","e1^1"とします。 それから、4分音符の3連符の場合は、4に3を掛けた数字、"4X3=12"で、"c12e12g12"と、12を指定します。同様に、8分音符の3連符は、"8X3=24"で、24を指定するのです。 これは、「a分音符をbつに分けた長さはL」とすると、"a X b = L"という公式が成り立つことになります。 そうやって考えると、8分音符というのは、4分音符の2つに分けた長さ、つまり、"4X2=8"というふうにも、考えられます。この考え方でいけば、ずいぶんリズム指定が楽になります。 (例) 全音符を8つに分けた長さは、、、 "1X8=8"、、、8分音符 ここで注意! 4分音符を5つに分けた5連符、7つに分けた7連符などの特殊な連符を使う場合は、連符表現コマンド(DIV)を使用してください。
(理由は、ヘルプの「文法」−「数値表現」に書いてあります。興味のある方はご覧ください。) |
ここまで、やったことは、楽譜をMMLに直すことでした。が、実際、音楽の演奏を、コンピューターで表現する場合、楽譜の主な要素(音程)と(リズム)だけでは、音楽を上手く言い表わす事が出来ません。
"kfm"が出力するMIDIデータでは、音符1つに対し、(音程)、(リズム)の他に、その音の強さと、その音符をどれだけ伸ばすのか、という要素を加えます。
音の強さの事を、音楽世界共通言語では、「ベロシティー」と呼びます。それを"kfm"では、"v"を使って表わします。値の範囲は、0〜127の間です。(ちなみに、"kfm"のコマンドの大部分は、0〜127を値の範囲とします。)
ロケンロールの常套フレーズを初めは強く、次に弱く演奏してみます。
v120 o3l8ccec ccec ccecgcec | v100 ccec ccec ccecgcec |
"v"コマンドは、相対指定が可能です。相対指定は、"v+n","v-n"の形で書きます。相対指定を使って上の例を書き直すと、
v120 o3l8ccec ccec ccecgcec | v-20 ccec ccec ccecgcec |
と、なります。それから、上のフレーズをもう少し変化をつけて書いてみます。
v100 o3l8 cc v+20 e v-20 c | cc v+20 e v-20 c | cc v+20 e v-20 c | v+20 g v-20 c v+20 e v-20 c |
少し、フレーズが生きて来ましたが、何度も"v+n","v-n"を書くのが面倒です。そんなときのために一時的にベロシティを変化させるコマンド"!"があります。これは、"!"の後に現れる音符のベロシティーを一度だけ変えるという働きがあります。"!"を使って、上の例を書き換えてみます。
v100 o3l8 cc !+20 ec | cc !+20 ec | cc !+20 ec | !+20 gc !+20 ec |
かなり簡潔になりました。あと、"v"コマンドは、もう一つ特殊機能を備えているのですが、それは、のちほど、ヘルプを見て研究してみてください。
それでも、まだ面倒ですね。ここで、ver1.000から追加された、ベロシティーの先行指定コマンド "RV"について説明します。
・RV=ベロシティ(v)の先行指定コマンド RV(n1[ ,n2][ ,n3][ ,n4]...) RVは相対指定が可能です。RVでの指定は一時的な指定であり、その指定が終わると、先行指定以前の値に戻ります。 また、先行指定の予約解除命令は、RV_CLEAR です。 |
上の例を書き直してみますと、
v100 o3l8 RV(,,+20,,
,,+20,, ,,+20,, +20,,+20,) ccec |ccec |ccec |gc ec |
と、なります。いくつか先行指定の例をあげてみたいと思います。
v80 RV(|,,+40,, |,,+40,) cccc cccc
cccc ;(|は、区切り線で、何も処理しません。) v100q14 RV(|, ,+40,, |, ,+40,) cccc cccc ;RV_CLEARの使い方 v80l8q16 RV(+40,40,+30,70,+40,40,+30,120) |
それから、(音程)(リズム)(ベロシティー)と、もう一つの要素「音符をどれだけ伸ばすのか」を、この世界では「ゲートタイム」と呼びます。
しかし、"kfm"で指定するのは、ゲートタイムではなく、「ゲートレイト」です。なぜなら、時間を指定するのではなく、時間の割合を指定するからです。しかも、「16分のn」で、指定します。なぜ、覚えにくい16分のいくつなのかと、言われたら、困ってしまいますが、コンピューター音楽の世界では、コンピューターの影響から、よく16進法という表記法を使うためです。10分のいくつよりも、16分のいくつの方が、コンピューターにとって、きりがよいのです。
@0 v110 l4 o5 q16 cdefgfed q8 cdefgfed q4 cdefgfed q16 cegec1 |
今回のMMLは、ピアノの教則本の一番始めに必ず書いてあるフレーズです。でも、生のピアノでこのゲートレイト変化を精確に演奏するのは難しいでしょう。正確さでは、コンピューターの勝利です。(逆に言えば、精確に演奏するより、ちょっとずれていた方が、気持ち良いフレーズに聞こえるということです。)
ピアノでは、長さが、よく分からない場合、@の後の数字を、適当な数字、そうですね・・・73番のフルートにしてみては、どうでしょう?
(この何番が何の音色かというのは、各MIDI機器の説明書をご覧ください。ソフトシンセをご利用の場合も、ヘルプに一覧があったりします。Roland VSC-88の場合は、ヘルプの「内臓音色一覧」の項にありました。)
ゲートレイトの先行指定は、RQです。また、先行指定には、ノートの発音タイミングを変えるRNもあります。詳しくはヘルプをご覧ください。
ここまで、出来れば、もう基本は完璧です。あとは、蛇足です。
・和音の表記方法について。
普通MMLでは、和音を表現するのが面倒です。"kfm"では、和音を表現する場合、"/"で囲んで、"/ceg/"などというように表現します。和音の長さは、"/ ... /(音長)"で最後に指定します。
学校でよく聞いた滑稽なピアノの和音・・・思わず体が勝手に・・・
@0 l1 q16 o5 /ceg/ /dfgb/ /ceg/ |
また、和音表現 "CD_"というコマンドもあります。(詳しくは、ヘルプ「和音表現」をご覧ください。)
書式:CD_(音長 , ノート [ , ノート] [ , ノート] [ , ノート] ... ) |
@0 l1 q16 o5 CD_(1,c,e,g)CD_(1,d,f,g,b)CD_(1,c,e,g) |
(以前のバージョンとの互換のため、音長0として、"c0e0g"としても表現できます。)
・繰り返し"[ .. ]"について。
音楽には、同じフレーズの反復が多くあります。それをいちいち書いていくのは、かなり面倒です。そこで、繰り返しコマンドがあります。それが、"["と"]"です。繰り返したい部分を、この記号で囲ってください。
この例では、"cdefg2"を2回繰り返します。
@0 l8 o5 [ cdefg2 ] |
4回繰り返したい場合は、"["のすぐ後に、リピート回数を指定してください。
@0 l8 o5 [4 cdefg2 ] |
また、最後の1回だけ、他のフレーズにしたいという場合、"["と"]"の間に":"を書きます。
@0 l8 o5 [ cdef : g2 ] c2 |
とりあえず、次からは、実践編です。