火曜日, 10月 24, 2006

「サクラ」でアルゴリズム作曲 - 6.3 -

今日は、「二面の箏による即興的断章」のスケール定義を「古今調子」にして演奏させてみる。

古今調子というのは、江戸時代後期に吉沢検校が雅楽の盤渉調からヒントを得て考案された調弦法で、「千鳥の曲」という有名な曲がある。

生田流お琴教室 お箏の調弦法
http://www.shamisen.info/tyougen_koto/tyougen-koto.html

今日は、プログラムをちょっと変更して、一章と二章の演奏の部分を共通化して繰り返し構文にしてみた。各章で異なる部分は、Swtch~Caseコマンドで切り分けてある。

//_ 二面の箏による即興的断章

Function Compose(Int NoN, Array LoN){
Array Scale=({レ},{ソ},{"ラ},{ド},{レ},{レ#},{ソ},{ラ},{`ド},{`レ},{`レ#},{`ソ},{`ラ})
 Str ML={}
 [(NoN)
  ML=ML+Scale(Random(0,13))+RandomSelect(LoN)
 ]
 Result=ML
}

TR(1) P(64-30) V(100) v.Random(60) REV(100) q080 音色(Koto)
TR(2) P(64-30) V(100) v.Random(60) REV(100) q080 音色(Koto)
TR(3) P(64+30) V(100) v.Random(60) REV(100) q080 音色(Koto)
TR(4) P(64+30) V(100) v.Random(60) REV(100) q080 音色(Koto)

INT CN=0 INT Pos INT N INT NN
[2 CN++
 Switch (CN){
  Case (1){Tempo(096) NN=050} // 一章
  Case (2){Tempo(240) NN=100} // 二章
 }
 #Part1=Compose(NN,(1,2,4)) #Part2=Compose(NN,(1,2,4))
 #Part3=Compose(NN,(1,2,4)) #Part4=Compose(NN,(1,2,4))
 TR(1) #Part1 TR(2) #Part2 TR(3) #Part3 TR(4) #Part4
 Pos=Time N=0 [4 N++ TR(N) Time(Pos) [4 r1] ]
]

//_______ ここまで _______________