土曜日, 9月 23, 2006

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

今日は、ピアノのための「素敵な即興演奏講座5」を「サクラ」のMMLで通しでやってみる。

ほとんど今までのものと同じなのだが、微妙に変えたところもあります。「素敵な即興演奏講座5」の内容については、20日のエントリーを参照してください。

//_______ ここから _______________

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

Function SwingS(DF){
 STR ML={} [2
  ML=ML+O5(0+DF)+{4.}+O5(1+DF)+{8}+O5(2+DF)+{4.}+O5(3+DF)+{8}
  ML=ML+O5(4+DF)+{4.}+O5(3+DF)+{8}+O5(2+DF)+{4.}+O5(1+DF)+{8}
 ] ML=ML+O5(0+DF)+{1}
 Result=ML
}

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
}

TR(1) @(GrandPiano) q120
TR(2) @(GrandPiano) q120

//_ Part 1

#ML={} N=0 [4 #ML=#ML+O5(N)+{2} N++] #ML=#ML+O5(4)+{1}
TR(1) [1 #ML] // ☆
#ML={} N=4 [4 #ML=#ML+O5(N)+{2} N--] #ML=#ML+O5(0)+{1}
TR(1) [1 #ML] // ★

#ML=SwingS(0)
TR(1) P(PanR) [1 #ML]

#ML=SwingR(0)
TR(1) P(PanR) [1 #ML]

//_ Part 2

Pos=Time TR(2) Time(Pos)

#ML1=SwingS(0) #ML2=SwingS(1)
TR(1) P(PanR) o5 [1 #ML1]
TR(2) P(PanL) o4 [1 #ML2]

SwingR(1)
TR(1) P(PanR) o5 [1 #ML1]
TR(2) P(PanL) o4 [1 #ML2]

#ML1=SwingS(0) #ML2=SwingS(3)
TR(1) P(PanR) o5 [1 #ML1]
TR(2) P(PanL) o3 [1 #ML2]

SwingR(3)
TR(1) P(PanR) o5 [1 #ML1]
TR(2) P(PanL) o3 [1 #ML2]

//_ Part 3

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

Pos=Time TR(2) Time(Pos)

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

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

#ML1=SwingR(0)
#ML2={'}+O5(0)+O5(1)+O5(2)+O5(3)+O5(4)+{'}
TR(1) P(PanR) o6
[1 ペダル #ML1 放す]
TR(2) P(PanR) o5
[1 ペダル 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 放す

//_______ ここまで _______________



あえて、ロジックで書いたのでプログラムがちょっと長くなってしまいましたが、聞いてみてください。