金曜日, 10月 20, 2006

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

昨日は、Tromboneの音を土台に、FrenchHornの音を3度上の音、Trumpetの音を5度上の音になるように関数Compose()を変更してみたのだが、今度は逆にちょっと単調になってしまった。

そこで今日は、3つパートの音の長さは同じにして、音程を基準になる音から3度と5度と2度(ちょっと味付け)の音をランダムに選ぶように変更してみた。

//_ 3本の金管楽器ののための Fantasia

Array Scale=({"ソ},{"ラ},{"シ},{ド},{レ},{ミ},{ファ},{ソ})
Str ML1={} Str ML2={} Str ML3={} Int NN Int NL Str NM

Function Compose(Int NoN, Array LoN){
 [(NoN)
  NM=Scale(Random(0,8))
  NN=NoteNo(NM)
  NL=RandomSelect(LoN)
  ML1=ML1+{n(}+(NN+RandomSelect(0,2,4,7))+{)}+NL
  ML2=ML2+{n(}+(NN+RandomSelect(0,2,4,7))+{)}+NL
  ML3=ML3+{n(}+(NN+RandomSelect(0,2,4,7))+{)}+NL
 ]
}
Compose(48,(1,2,4,4))

#Part1=ML1
#Part2=ML2
#Part3=ML3

Tempo(112)

TR(1) P(64-30) V(100) v.Random(60) REV(100) q080 音色(Trumpet)
TR(2) P(64-00) V(100) v.Random(60) REV(100) q080 音色(FrenchHorn)
TR(3) P(64+30) V(100) v.Random(60) REV(100) q080 音色(Trombone)

TR(1) #Part1 TR(2) #Part2 TR(3) #Part3

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