火曜日, 9月 12, 2006

「サクラ」でMML演習3(修正版)

昨日のMML演習3に使った関数 Chrmlo()がちょっと不満だったので、今日は別の方法でMMLを書いてみる。

昨日の方法は、関数 Chrmlo()で、3度と5度下の音を作ってPlay文で演奏させていたのだが、せっかく和音(#F、#G、#Am)を定義したのだから、これをそのまま使って、文字列マクロ(#Chrmlo)を定義してみた。この方が、やっぱりすっきりします。

もう一つ、「サクラ」ではMMLの記述に日本語が使える。「ドレミーレド ドレミレドレ~♪」がイメージしやすいように音名をカタカナ表記にしてみた。

//---------- ここから ----------

#Chrmla={l8ドレ l2.ミ l8レド l4r l8ドレ l12ミレド l1レ}
#F={'ド"ラ"ファ'}
#G={'レ"シ"ソ'}
#Am={'ミド"ラ'}
#SP={l1r2}
#Chrmlo={o5 l8#F #G l2.#Am l8#G #F r4 l8#F #G l12#Am #G #F l1#G}

Tempo(96) @(GrandPiano)

o5 #Chrmla #SP
l1 #F #G #Am #SP
#Chrmlo #SP
#Chrmlo r-2. [16 o(RandomSelect(5,6,7)) l12 ソ] #SP
#Chrmlo r-2. l48 o5 レミファソラシ>ドレミファソラシ>ドレミファソラ #SP
#Chrmlo r-2. Int N=NoteNo(o7シ) While(N>=NoteNo(o5シ)){N-- n(N)32} #SP
o6 l1 q100 ド^

//---------- ここまで ----------



MP3ファイルの方は、パソコンの内蔵音源ではなく、Soundfont を使って演奏させたものを掲載しますす。