日曜日, 9月 10, 2006

「サクラ」でMML演習2

昨日書いた「素敵な即興演奏講座1」を使ったMML演習1が、けっこう上手くできたので、今日は「素敵な即興演奏講座2」をMMLで書いてみることにする。

====== 素敵な即興演奏講座2 ======

今回は黒鍵のみを使って、エキゾチックなペンタトニックの演奏をしてみましょう。

ペンタトニックとはスコットランド民謡などに見られる5音音階のことで、基音から完全5度上にずっと音を採っていくとできあがります。ピアノではこのペンタトニックを簡単に演奏することができます。

「素敵な即興演奏講座1」で使用した3つ並んだ黒鍵の、最初の音に親指を置いてみましょう。そして順に3つの音を弾き、そのまま隣にある2つ並んだ黒鍵を弾きましょう。
するとアラ不思議、素敵なペンタトニックができあがります。この5つ黒鍵が並んだペンタトニックの形(音列)を仮にPとします。

次は両手を鍵盤の上に乗せ、それぞれの手をPの音列の上にのせます。左手の小指を最初の音に置き、そして薬指で2つめの音の上に置いて小指と薬指の音を一緒に弾いてみましょう。するとジャーンと和音が響きます(2つ以上の音が同時に鳴らすことを「和音」と言います)。
この和音を仮にAとします。Aを鳴らしたまま、右手でPの音を適当にパラパラ弾いてみましょう。なんと伴奏つきペンタトニック演奏のできあがりです。

今度は左手の中指を離し、人差し指下にある4つめの音と小指の音を同時に弾いてみましょう(仮にBとします)。Bを鳴らしたまま同様に右手をパラパラ弾きます。すると更にエキゾチックっぽい伴奏つきペンタトニック演奏になるではありませんか。

ここでポイントです。今度は左手の1つめ(小指)と5つめ(親指)を同時に弾きましょう。この和音をCとします。
まずBを弾き右手をパラパラ→次にCを弾きパラパラ→またBを弾きパラ…→今度はAを弾きパ…→そしてBを弾き。。。
と繰り返すと、和音の性格から流れのある演奏になります。

====== ==================== ======

せっかく、AとかBとかを指定してくれているので、これを変数名にして、ほぼ指定通りの方法で「サクラ」のプログラムを作ってみた。

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

Array PE=({f#},{g#},{a#},{`c#},{`d#}) STR PTone

#P={f#g#a#`c#`d#^^^}
#A={'"f#"g#'}
#B={'"f#c#'}
#C={'"f#d#'}

#P1={ペダル Sub{[4 l16 #P]} l1 #?1^ 放す}
#P2={ペダル Sub{l16 #P}l2 #?1 放す}
#P3={ペダル Sub{l16 [8 PTone=PE(Random(1,5)) PTone]}l2 #?1 放す}

Tempo(88) @(GrandPiano)

#P
#P1(#A) #P1(#B)
[2 #P2(#B) #P2(#C) #P2(#B) #P2(#A)]
[4 #P3(#B) #P3(#C) #P3(#B) #P3(#A)]

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



引数付き文字列マクロを使うと、こんなにすっきりとプログラムが書ける。うーん。これは本当にプログラムの演習のいい教材になります。