金曜日, 10月 13, 2006

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

ちょっと間があいてしまったが、今日は 「サクラ」でアルゴリズム作曲シリーズの3曲目をやってみる。

題して、「サキソフォン四重奏のためのエレジー」だ。

サキソフォンには、5度づつ音域が違う、ソプラノ、アルト、テナー、バリトンの4つの種類がある。

サキソフォンの種類
http://kou-sa.xrea.jp/music/wood/saxophone/saxophone.html

GM音源にも、この4種類のサキソフォンの音色が定義されており、各々の楽器と同じ音域で音を出せば、より楽器に近い音を出すことができる。

MML演習6で、音域を指定して音をランダムに作る関数を作ったので、これを応用して、前回使ったアルゴリズム作曲の関数(Compose)をちょっと変更してみた。

関数 Compose(B_N,R_N,NoN,LoN)

L_N・・・・音域の下限を指定
U_N・・・・音域の上限を指定
NoN・・・・音をいくつ作るかを指定
LoN・・・・音符の種類(セット)を指定


//_ サキソフォン四重奏のためのエレジー

Function Compose(STR L_N, STR U_N, INT NoN, Array LoN){
 STR ML={}
 [(NoN)
  ML=ML+{n(}+Random(NoteNo(L_N),NoteNo(U_N))+{)}+RandomSelect(LoN)
 ]
 Result=ML
}

#Part1=Compose({o4ラ-},{o7ミ-},100,(1,2,4,8)) // SopranoSax
#Part2=Compose({o4レ-},{o6ラ-},100,(1,2,4,8)) // AltoSax
#Part3=Compose({o3ラ-},{o6ミ-},100,(1,2,4,8)) // TenorSax
#Part4=Compose({o3レ-},{o5ラ-},100,(1,2,4,8)) // BaritoneSax


TR(1) P(64-40) V(120) v.Random(60) REV(100) q080 音色(SopranoSax)
TR(2) P(64-10) V(100) v.Random(60) REV(100) q080 音色(AltoSax)
TR(3) P(64+10) V(120) v.Random(60) REV(100) q080 音色(TenorSax)
TR(4) P(64+40) V(100) v.Random(60) REV(100) q080 音色(BaritoneSax)

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

//_______ ここまで _______________






参考:「ドリトル」版の「サキソフォン四重奏のためのエレジー」
http://mugen-blog.blogspot.com/2006/04/oom03.html