金曜日, 9月 22, 2006

「サクラ」でMML演習5(続き-2)

今日は、ピアノのための「素敵な即興演奏講座5」の最後の部分(それでも沖縄をピアノでオシャレに弾きたいときは・・・)を「サクラ」のMMLで書いてみる。「素敵な即興演奏講座5」の内容については、20日のエントリーを参照してください。

☆の音をランダムにパラパラと・・・という部分は、昨日つくったSwingR(DF)関数を使うことにする。

トラックのタイミングを合わせるのにTimeコマンドを使ってみた。

トラックのタイムポインタを指定する
http://oto.chu.jp/doc/command/26.htm

//_______ ここから _______________

Array O5 = ({ド},{ミ},{ファ},{ソ},{シ},{`ド},{`ミ},{`ファ})
Int N Int N1 Int N2 Int PanR=70 Int PanL=50 Int Pos

Function SwingR(DF){
 #ML1={} #ML2={}[8
 N1=Random(0,5) N2=Random(0,5)
 #ML1=#ML1+O5(N1)+{4.}+O5(N2)+{8}
 #ML2=#ML2+O5(N1+DF)+{4.}+O5(N2+DF)+{8}
 ]
 N=Random(0,5)
 #ML1=#ML1+O5(N)+{1} #ML2=#ML2+O5(N+DF)+{1}
 Result=#ML1
}

#ML1={} N=0 [5 #ML1=#ML1+O5(N) N++]
#ML2={} N=4 [5 #ML2=#ML2+O5(N) N--]
TR(1) P(PanR)
ペダル N=5 [4 o(N) l16 #ML1 N++] N=8 [4 o(N) l16 #ML2 N--] r1 放す

Pos=Time

#ML1=SwingR(0)
#ML2={'}+O5(0)+O5(1)+O5(2)+O5(3)+O5(4)+{'}
TR(1) P(PanR) o7
ペダル #ML1 放す
TR(2) P(PanR) o5 Time(Pos)
ペダル q127 l1 #ML2^^^^ 放す

#ML1=SwingR(0)
#ML2={'}+O5(3)+O5(4)+O5(5)+O5(6)+O5(7)+{'}
TR(1) P(PanR) o6
ペダル q127 l1 #ML2^^^^ 放す
TR(2) P(PanR) o5
ペダル #ML1 放す

#ML1=SwingR(0)
#ML2={'}+O5(0)+O5(1)+O5(2)+O5(3)+O5(4)+{'}
TR(1) P(PanR) o6
ペダル #ML1 放す
TR(2) P(PanR) o5
ペダル q127 l1 #ML2^^^^ 放す

#ML={} N=1 [4 #ML=#ML+O5(N)+{16} N++] #ML=#ML+O5(5)+{1}
TR(1) P(PanR) o6
ペダル r2 #ML r1 放す

//_______ ここまで _______________



明日は、もう一度全体を見直し、3つの部分を統合したものを載せてみたいと思います。時間があったらmp3にしたものもアップする予定です。

今回はピアノでやってみたのだが、メロディーを歌ってみるという部分もあるので、これも課題にしておきます。