火曜日, 10月 31, 2006

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

今日は、昨日やった「尺八のための2声のインベンション NO.2」の右側の方の尺八を1オクターブ下げてみる。2尺4寸管の低音の尺八と合奏しているようで、なかなかいい感じになる。

//_ 尺八のための2声のインベンション NO.2

Function Compose1(Int NoN, Array LoN){
 Array Scale=({レ},{レ#},{ファ},{ソ},{ソ#},{`ド},{`レ},{ファ},{`ソ},{`ソ#},{``ド},{``レ#})
 Str ML={} Int N=0 Int M
 [(NoN) N++ M=12 If (N<40) m="6}">160) {M=7}
  ML=ML+Scale(Random(0,M))+RandomSelect(LoN)
 ] Result=ML
}
TR(1) P(64-50) V(120) v.Random(60) REV(100) q080 音色(Shakuhachi) o4
TR(2) P(64+50) V(080) v.Random(60) REV(100) q080 音色(Shakuhachi) o3

#Part1=Compose1(200,(4,4,8))
#Part2=Compose1(200,(4,4,8))

Tempo(112)

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

//_______ ここまで _______________



昨日録音したGMセットのSoundFontの尺八の音がちょっとこもった音なので、今日は尺八単独のSoundFontを使って演奏させてみた。


 

月曜日, 10月 30, 2006

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

今日は、昨日やった「尺八のための2声のインベンション」のスケール定義を変えて演奏させてみる。使う音域の範囲も、前半、中間、後半と3段階に変えてみた。

//_ 尺八のための2声のインベンション NO.2

Function Compose1(Int NoN, Array LoN){
 Array Scale=({レ},{レ#},{ファ},{ソ},{ソ#},{`ドレ},{`レ},{ファ},{`ソ},{`ソ#},{``ド},{``レ#})
 Str ML={} Int N=0 Int M
 [(NoN) N++ M=12 If (N<40) m="6}">160) {M=7}
  ML=ML+Scale(Random(0,M))+RandomSelect(LoN)
 ] Result=ML
}
TR(1) P(64-50) V(100) v.Random(60) REV(100) q080 音色(Shakuhachi)
TR(2) P(64+50) V(100) v.Random(60) REV(100) q080 音色(Shakuhachi)

#Part1=Compose1(200,(4,4,8))
#Part2=Compose1(200,(4,4,8))

Tempo(112)

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

//_______ ここまで _______________




 

日曜日, 10月 29, 2006

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

今日は、「サクラ」でアルゴリズム作曲シリーズ7とほぼ同じものを、二本の尺八でやってみる。題して「尺八のための2声のインベンション」だ。

尺八のほぼ全音域の音をランダムに120音生成してみる。最初の方は、高音の音を使わないようにして変化を作ってみた。尺八の音は、GM音源に標準で入っている。

//_ 尺八のための2声のインベンション NO.1

Function Compose1(Int NoN, Array LoN){
 Array Scale=({レ},{ファ},{ソ},{ラ},{`ド},{`レ},{`ファ},{`ソ},{`ソ#},{`ラ},{``ド},{``レ})
 Str ML={} Int N=0 Int M
 [(NoN) N++ If (N<40) m="6}" m="12}
  ML=ML+Scale(Random(0,M))+RandomSelect(LoN)
 ] Result=ML
}

TR(1) P(64-50) V(080) v.Random(60) REV(100) q080 音色(Shakuhachi)
TR(2) P(64+50) V(080) v.Random(60) REV(100) q080 音色(Shakuhachi)

#Part1=Compose1(120,(4,4,8))
#Part2=Compose1(120,(4,4,8))

Tempo(112)

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

//_______ ここまで _______________

_



参考:「ドリトル」版の「尺八のための2声のインベンション NO.1」 http://mugen-blog.blogspot.com/2006/04/oom09-no1.html
  

土曜日, 10月 28, 2006

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

今日は、昨日やった「笛と太鼓による官能的な神楽」をちょっとアレンジしてみた。

一つは、太鼓を2台にして左右に配置してみる。もう一つは、笛の音の音程を微妙にずらして、笛っぽい感じを出してみる。

//_ 笛と太鼓による官能的な神楽

Function Compose1(Int NoN, Array LoN){
Array Scale=({``レ},{p%-200``ミ},{``ファ},{p%-200``ラ},{``シ},{```レ},{p%-20```ミ})
 Str ML={}[(NoN) ML=ML+Scale(Random(0,7))+RandomSelect(LoN)] Result=ML
}
Function Compose2(Int NoN, Array LoN){
Array Scale=({ド},{ミ},{ソ})
 Str ML={}[(NoN) ML=ML+Scale(Random(0,3))+RandomSelect(LoN)] Result=ML
}

TR(1) P(64-10) V(080) v.Random(60) REV(100) q080 音色(Piccolo)
TR(2) P(64+10) V(080) v.Random(60) REV(100) q080 音色(Piccolo)
TR(3) P(64-50) V(120) v.Random(60) REV(100) q080 音色(TaikoDrum)
TR(4) P(64+50) V(120) v.Random(60) REV(100) q080 音色(TaikoDrum)

#Part1=Compose1(120,(2,4))
#Part2=Compose1(120,(2,4))
#Part3=Compose2(240,(4,8))
#Part4=Compose2(240,(4,8))

Tempo(240)

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

//_______ ここまで _______________




 

金曜日, 10月 27, 2006

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

今日は、「サクラ」でアルゴリズム作曲シリーズ7とほぼ同じものを、笛と太鼓でやってみる。題して「笛と太鼓による官能的な神楽」だ。

笛の感じは、ピッコロの高域の音で表現してみた。太鼓の音はGM音源に入っている。

//_ 笛と太鼓による官能的な神楽

Function Compose1(Int NoN, Array LoN){
Array Scale=({``レ},{``ミ},{``ファ},{``ラ},{``シ},{```レ},{```ミ})
 Str ML={}[(NoN) ML=ML+Scale(Random(0,7))+RandomSelect(LoN)] Result=ML
}
Function Compose2(Int NoN, Array LoN){
Array Scale=({ド},{ミ},{ソ})
 Str ML={}[(NoN) ML=ML+Scale(Random(0,3))+RandomSelect(LoN)] Result=ML
}

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

#Part1=Compose1(120,(2,4))
#Part2=Compose1(120,(2,4))
#Part3=Compose2(240,(4,8))

Tempo(220)

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

//_______ ここまで _______________





参考:「ドリトル」版の「笛と太鼓による官能的な神楽」
http://mugen-blog.blogspot.com/2006/04/oom08.html
 

木曜日, 10月 26, 2006

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

昨日やった「三弦と鼓による風雅2006」、鼓の音がGM音源にないのでSynthDrumで代用している。

そこで、SoundFontに鼓の音がないかを探してみたら、これが簡単に見つかった。ということで、今日は鼓のSoundFont版を作ってみた。

//_ 三弦と鼓による風雅2006

Function Compose1(Int NoN, Array LoN){
Array Scale=({"シ},{レ},{ミ},{ファ},{ラ},{シ},{`レ},{`ミ})
 Str ML={}[(NoN) ML=ML+Scale(Random(0,8))+RandomSelect(LoN)] Result=ML
}
Function Compose2(Int NoN, Array LoN){
Array Scale=({""ソ},{""ソ},{""ファ#}) // for asia_ethnic.sf2
 Str ML={}[(NoN) ML=ML+Scale(Random(0,3))+RandomSelect(LoN)] Result=ML
}

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

#Part1=Compose1(120,(2,4)) #Part2=Compose1(120,(2,4))
#Part3=Compose2(060,(1,2))

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

//_______ ここまで _______________




 

水曜日, 10月 25, 2006

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

今日は、「サクラ」でアルゴリズム作曲シリーズ6をちょっと変更して三味線と鼓で演奏させてみる。

鼓は日本の伝統的な楽器のひとつで、砂時計型の胴の両面に皮を張った打楽器だ。


http://ja.wikipedia.org/wiki/%E9%BC%93

鼓は、胴の両面に皮を張っている緒を締めたりめたりゆるめたりすることで、音色を変えることができる。この感じを、GM音源のSynthDrumを使って表現してみる。

//_ 三弦と鼓による風雅2006

Function Compose1(Int NoN, Array LoN){
Array Scale=({"シ},{レ},{ミ},{ファ},{ラ},{シ},{`レ},{`ミ})
 Str ML={}[(NoN) ML=ML+Scale(Random(0,8))+RandomSelect(LoN)] Result=ML
}
Function Compose2(Int NoN, Array LoN){
Array Scale=({``ミ-},{``ラ-},{``シ-})
 Str ML={}[(NoN) ML=ML+Scale(Random(0,3))+RandomSelect(LoN)] Result=ML
}

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

#Part1=Compose1(120,(2,4)) #Part2=Compose1(120,(2,4))
#Part3=Compose2(060,(1,2))

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

//_______ ここまで _______________





参考:「ドリトル」版の「三弦と鼓による風雅2006」
http://mugen-blog.blogspot.com/2006/04/oom07.html
 

火曜日, 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] ]
]

//_______ ここまで _______________




 

月曜日, 10月 23, 2006

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

今日は、「二面の箏による即興的断章」のパートの一つを十七弦にしてみる。箏というのは、普通は十三弦で、昨日までのスケールの定義も実際の十三弦の平調子に設定してある。


http://ja.wikipedia.org/wiki/%E7%AD%9D

今日は向かって右の方から出しているパートの音を1オクターブ下にすることで、低音パートを受け持つ十七弦の感じを出してみる。

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

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) o5
TR(2) P(64-30) V(100) v.Random(60) REV(100) q080 音色(Koto) o5
TR(3) P(64+30) V(100) v.Random(60) REV(100) q080 音色(Koto) o4

//_一章
#Part1=Compose(50,(1,2,4)) #Part2=Compose(50,(1,2,4))
#Part3=Compose(50,(1,2,4))
Tempo(096)
TR(1) #Part1 TR(2) #Part2 TR(3) #Part3
INT Pos=Time INT N=0 [3 N++ TR(N) Time(Pos) [4 r1] ]

//_二章
#Part1=Compose(100,(1,2,4)) #Part2=Compose(100,(1,2,4))
#Part3=Compose(100,(1,2,4))
Tempo(240)
TR(1) #Part1 TR(2) #Part2 TR(3) #Part3

//_______ ここまで _______________




 

日曜日, 10月 22, 2006

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

昨日作った「二面の箏による即興的断章」では、箏の各パートは同時に一つの音だけを出している。

実際の琴の演奏では、主に親指、人差し指、中指の3本(この3本には爪を使う)を使って演奏する。現代邦楽では、爪を使っていない指も含めて5本全部を使うなんていうこともある。

そこで、昨日の作品をちょっと変更して、一つのパートに二つの音を割りあててみた。ちょっと難しい曲の感じになって、より現代邦楽作品っぽくなる。

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

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)

//_一章
#Part1=Compose(50,(1,2,4)) #Part2=Compose(50,(1,2,4))
#Part3=Compose(50,(1,2,4)) #Part4=Compose(50,(1,2,4))
Tempo(096)
TR(1) #Part1 TR(2) #Part2 TR(3) #Part3 TR(4) #Part4
INT Pos=Time INT N=0 [4 N++ TR(N) Time(Pos) [4 r1] ]

//_二章
#Part1=Compose(100,(1,2,4)) #Part2=Compose(100,(1,2,4))
#Part3=Compose(100,(1,2,4)) #Part4=Compose(100,(1,2,4))
Tempo(240)
TR(1) #Part1 TR(2) #Part2 TR(3) #Part3 TR(4) #Part4

//_______ ここまで _______________



土曜日, 10月 21, 2006

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

サクラ」でアルゴリズム作曲シリーズの4と5のアルゴリズムはとても簡単なもので、定義した音階の中からランダムに音を選ぶという方法だ。今日は、この音階の定義を日本の「平調子」という音階にしてみる。

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

この平調子というのは、琴の曲などにもよく使われる音階なので、今日は音色を琴にして演奏させてみる。題して、「二面の箏による即興的断章」。1章と2章の構成にして、2章の方のテンポを早めに設定してみた。

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

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)

//_一章
#Part1=Compose(50,(1,2,4)) #Part2=Compose(50,(1,2,4))
Tempo(096)
TR(1) #Part1 TR(2) #Part2
INT Pos=Time TR(1) Time(Pos) [4 r1] TR(2) Time(Pos) [4 r1]

//_二章
#Part1=Compose(100,(1,2,4)) #Part2=Compose(100,(1,2,4))
Tempo(240)
TR(1) #Part1 TR(2) #Part2

//_______ ここまで _______________






参考:「ドリトル」版の「二面の箏による即興的断章」
http://mugen-blog.blogspot.com/2006/04/oom06.html
 

金曜日, 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

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




 

木曜日, 10月 19, 2006

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

昨日やった「3本の金管楽器ののための Fantasia」だが、全部の金管楽器の音を12音階でランダムに作ると、ちょっとごちゃごちゃした感じになってしまう。

そこで、Tromboneの音を土台に、FrenchHornの音を3度上の音、Trumpetの音を5度上の音になるように関数Compose()を変更してみた。これで、かなりファンファーレっぽい音楽が生成される。

//_ 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+7)+{)}+NL
  ML2=ML2+{n(}+(NN+4)+{)}+NL
  ML3=ML3+{n(}+(NN+0)+{)}+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

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





 

水曜日, 10月 18, 2006

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

「ドリア旋法による古風な愛の歌」で使ったアルゴリズムは、定義した音階の中からランダムに音を選ぶという方法なので、この音階を変えれば色々と応用ができる。

今日は、音階をミクソリディア旋法にして、金管楽器で演奏させてみる。題して「3本の金管楽器ののための Fantasia」だ。

ミクソリディア旋法
http://www.mab.jpn.org/lib/exp/cmodes/char.html#Mixolydian-mode

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

Function Compose(Int NoN, Array LoN){
Array Scale=({"ソ},{"ラ},{"シ},{ド},{レ},{ミ},{ファ},{ソ})
 Str ML={}
 [(NoN)
  ML=ML+Scale(Random(0,8))+RandomSelect(LoN)
 ]
 Result=ML
}

#Part1=Compose(48,(1,2,4))
#Part2=Compose(48,(1,2,4))
#Part3=Compose(48,(1,2,4))

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

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





参考:「ドリトル」版の「3本の金管楽器ののための Fantasia」
http://mugen-blog.blogspot.com/2006/04/oom05-fantasia.html
 

火曜日, 10月 17, 2006

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

今日は、「ドリア旋法による古風な愛の歌」をVocalとHarpのSoundFontを使って演奏させてみる。また、違った感じにできあがる。




 

月曜日, 10月 16, 2006

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

昨日やってみた「ドリア旋法による古風な愛の歌」、あんなに単純なアルゴリズムなのに、なかなか雰囲気のある曲ができたような気がする。

今日は、昨日と同じものを楽器を変えてやってみたい。歌の部分をイングリッシュホルン、伴奏の部分をギターにしてみた。伴奏の部分のみギターっぽくするため、パートを一つ増やしてみた。

//_ ドリア旋法による古風な愛の歌

Function Compose(Int NoN, Array LoN){
Array Scale=({レ},{ミ},{ファ},{ソ},{ラ},{シ},{`ド},{`レ})
 Str ML={}
 [(NoN)
  ML=ML+Scale(Random(0,8))+RandomSelect(LoN)
 ]
 Result=ML
}

#Oboe=Compose(68,(1,2,4))
#Harp1=Compose(68,(1,2,4))
#Harp2=Compose(68,(1,2,4))
#Harp3=Compose(68,(1,2,4))

Tempo(112)

TR(1) P(64+30) V(120) v.Random(60) REV(100) q080 音色(EnglishHorn)
TR(2) P(64-30) V(060) v.Random(60) REV(100) q080 音色(SteelcGuitar)
TR(3) P(64-40) V(060) v.Random(60) REV(100) q080 音色(NylonGuitar)
TR(4) P(64-50) V(060) v.Random(60) REV(100) q080 音色(NylonGuitar)

TR(1) #Oboe TR(2) #Harp1 TR(3) #Harp2 TR(4) #Harp3

//_______ ここまで _______________




 

日曜日, 10月 15, 2006

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

今日は 「サクラ」でアルゴリズム作曲シリーズの4曲目をやってみる。題して、「ドリア旋法による古風な愛の歌」だ。

ドリア旋法というのは、教会旋法の中の一つで、単調に近い音階ということもあって、なかなか哀愁のあるメロディーができる。

リア旋法
http://www.mab.jpn.org/lib/exp/cmodes/char.html#Dorian-mode

アルゴリズム作曲の部分はとても単純だ。ドリア旋法の音階を配列に入れ、この中から音をランダムに選び出すという方法だ。

楽器は、旋律に相当するパートをオーボエ、伴奏にあたるパートをハープにしてみた。

//_ ドリア旋法による古風な愛の歌

Function Compose(Int NoN, Array LoN){
Array Scale=({レ},{ミ},{ファ},{ソ},{ラ},{シ},{`ド},{`レ})
 Str ML={}
 [(NoN)
  ML=ML+Scale(Random(0,8))+RandomSelect(LoN)
 ]
 Result=ML
}

#Oboe=Compose(68,(1,2,4))
#Harp1=Compose(68,(1,2,4))
#Harp2=Compose(68,(1,2,4))

Tempo(112)

TR(1) P(64+30) V(120) v.Random(60) REV(100) q080 音色(Oboe)
TR(2) P(64-30) V(060) v.Random(60) REV(100) q080 音色(OrchestralHarp)
TR(3) P(64-40) V(060) v.Random(60) REV(100) q080 音色(OrchestralHarp)

TR(1) #Oboe TR(2) #Harp1 TR(3) #Harp2

//_______ ここまで _______________







参考:「ドリトル」版の「ドリア旋法による古風な愛の歌」
http://mugen-blog.blogspot.com/2006/04/oom04.html
 

土曜日, 10月 14, 2006

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

昨日は、サキソフォンの四重奏をやってみたのだが、四重奏といえばやっぱり弦楽四重奏だ。今日は、昨日の作品をちょっとアレンジして、全く同じアルゴリズムで弦楽四重奏版を作ってみる。

弦楽四重奏には、バイオリン2台、ビオラ、チェロが使われることが多い。バイオリン、ビオラ、チェロは、4本の弦があり、バイオリンが下の方から、o4ソ・o5レ・o5ラ・o6ミ、チェロが下の方から、o3ド・o3ソ・o4レ・o4ラ、ビオラがチェロの1オクターブ上、というよに調弦されている。

音域の指定を、下限を一番低い弦、上限を一番高い弦の1オクターブ上の音までに設定してみる。

//_ 弦楽四重奏のためのエレジー

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
}

#Violin1=Compose({o4ソ},{o7ミ},100,(1,2,4,8))
#Violin2=Compose({o4ソ},{o7ミ},100,(1,2,4,8))
#Viola=Compose({o4ド},{o6ラ},100,(1,2,4,8))
#Cello=Compose({o3ド},{o5ラ},100,(1,2,4,8))


TR(1) P(64-50) V(120) v.Random(60) REV(100) q080 音色(Violin)
TR(2) P(64-15) V(120) v.Random(60) REV(100) q080 音色(Violin)
TR(3) P(64+15) V(120) v.Random(60) REV(100) q080 音色(Viola)
TR(4) P(64+50) V(120) v.Random(60) REV(100) q080 音色(Cello)

TR(1) #Violin1 TR(2) #Violin2 TR(3) #Viola TR(4) #Cello

//_______ ここまで _______________




 

金曜日, 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
 

木曜日, 10月 12, 2006

「サクラ」でMML演習6(続き4)

昨日は、左手の音も右手の音もランダムな音にしてみたのだが、今日は、右手の音のみをランダムにしたり、左手の音のみをランダムにしたらどうなるかをやってみる。

//_______ ここから _______________

Function Lnote(){Result=n(Random(NoteNo(o3ミ),NoteNo(o4ラ)))}
Function Rnote(){Result=n(Random(NoteNo(o4ソ),NoteNo(o6レ)))}
#L1={l4 "a "g# "g "f# "f "e "d "c}
#L2={< "b "a "g "f l1 "e}
#R1={l12 rca rdb re`c r`ce r`da r`cg rbf rae}
#R2={rde rcd r"bc r"a"b r"g#"a"bcd l4 eb }

Tempo(60)

TR(1) q120 v.Random(60) 音色(Vibraphone)
TR(2) q100 v.Random(60) 音色(Vibraphone)

[2
TR(1) o5 #L1 #L2
TR(2) [12 l12 r [2 Rnote()]] [1 r [5 Rnote()] l4 [2 Rnote()]]
]
[2
TR(1) [12 l4 Lnote()] [1 l1 Lnote()]
TR(2) o5 #R1 #R2
]

//_______ ここまで _______________



音源は、パソコン内蔵の Microsoft GS Wavetable SW Synth だ。


 

水曜日, 10月 11, 2006

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

今日は、素敵な即興演奏講座6で使っているフレーズの「三連符」の音を、プログラムでランダムに作ったら面白い作品ができるのではないかと考え、プログラムを作成してみた。

今日のポイントは、指定の音域の音をランダムに作るという方法だ。

関数NoteNoは、引数で指定されたMMLの音を数値にして返す。例えば、次のようにすれば、中央「ド」の下の「ラ」から、その1オクターブ下の「ミ」までの音がランダムに作られる。

n(Random(NoteNo(o3ミ),NoteNo(o4ラ)))

下のプログラムには、左手のための音を作る関数Lnote()と、右手の音を作る関数Rnote()を定義してある。

//_______ ここから _______________

Function Lnote(){Result=n(Random(NoteNo(o3ミ),NoteNo(o4ラ)))}
Function Rnote(){Result=n(Random(NoteNo(o4ソ),NoteNo(o6レ)))}

Tempo(60)

TR(1) q120 v.Random(60) 音色(Vibraphone)
TR(2) q100 v.Random(60) 音色(Vibraphone)

[4
TR(1) [12 l4 Lnote()] [1 l1 Lnote()]
TR(2) [12 l12 r [2 Rnote()]] [1 r [5 Rnote()] l4 [2 Rnote()]]
]

//_______ ここまで _______________



音源は、昨日と同じSynth1を使っている。

火曜日, 10月 10, 2006

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

昨日、「音源のチェックにも便利かもしれない」と書いたのだが、早速、ソフトシンセの音を、このフレーズでチェックしてみた。

VSTiとして使えるソフトシンセで、Synth1という有名なフリーソフトがある。Synth1をインストールすると、BANK0には、GM互換の音色がセットされる。

この音がどんな音なのかを聴いてみることにする。「サクラ」のプログラムは、昨日と同じだ。




 

月曜日, 10月 09, 2006

「サクラ」でMML演習6(続き1)

今日は、素敵な即興演奏講座6のフレーズをピアノ以外の楽器でやってみる。音色が変わるとまた別の雰囲気が味わえる。

楽器の切り替えの例として、MusicBox、TubularBells、Marimba、Vibraphoneでやってみる。

SWITCH~CASE文で楽器を切り替えているので、プログラムを適当に変えて、いろんな楽器を試して欲しい。

//_______ ここから _______________

#L1={l4 "a "g# "g "f# "f "e "d "c}
#L2={< "b "a "g "f l1 "e}
#R1={l12 rca rdb re`c r`ce r`da r`cg rbf rae}
#R2={rde rcd r"bc r"a"b r"g#"a"bcd l4 eb }

Tempo(60)

TR(1) q120 v.Random(60)
TR(2) q100 v.Random(60)

INT Inst INT N=0 [4 N++
 SWITCH(N){
  CASE(4){Inst=(Vibraphone)}
  CASE(3){Inst=(Marimba)}
  CASE(2){Inst=(TubularBells)}
  CASE(1){Inst=(MusicBox)}
 }
 TR(1) @(Inst) o5 #L1 #L2 TR(2) @(Inst) o5 #R1 #R2
]

//_______ ここまで _______________





こういうフレーズをパーツ化しておけば、音源のチェックにも便利かもしれない。
 

日曜日, 10月 08, 2006

「サクラ」でMML演習6(グラフィック譜)

素敵な即興演奏講座6には、実はピアノのためのグラフィック譜というのが付いている。丸い雫が右手・その下波模様が左手だという。



「サクラ」で演奏させたものを下のプレーヤーで聴きながら、この画像を鑑賞?して欲しい。


 

土曜日, 10月 07, 2006

「サクラ」でMML演習6(修正版)

昨日やってみた素敵な即興演奏講座6で、一部まちがっている部分があるという鋭い指摘が作者のpocpruさんからあった。ということで、今日は修正版を掲載します。

それと、後半の2回の繰り返しの微妙に音量をづらした部分の値を少し上げて、効果のかかり具合を大きくしてある。

//_______ ここから _______________

Int Pos
#L1={l4 "a "g# "g "f# "f "e "d "c}
#L2={< "b "a "g "f l1 "e}
#R1={l12 rca rdb re`c r`ce r`da r`cg rbf rae}
#R2={rde rcd r"bc r"a"b r"g#"a"bcd l4 eb }

Tempo(60)

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

TR(1) o5 #L1 #L2 #R1 #R2

Pos=Time TR(1) Time(Pos) TR(2) Time(Pos)

[2
TR(1) o5 #L1 #L2
TR(2) o5 #R1 #R2
]

[2
TR(1) v.Random(60) o5 #L1 #L2
TR(2) v.Random(60) o5 #R1 #R2
]

//_______ ここまで _______________



録音の方は、sfz+SoundFontを使ってやってみた。


 

金曜日, 10月 06, 2006

「サクラ」でMML演習6

今日は久しぶりに、picoruさんのピアノのための「素敵な即興演奏講座」を題材にしてみる。

====== 素敵な即興演奏講座6 ======

今回、左手は4分の4拍子で1拍ずつ弾きます。
4分の4拍子は、学校で習うはずなので分かりますね?
右手は3連符の3つの内、最初はお休みして後ろの2つだけを弾きます。
3連符とは、1拍の長さを3つに分割した時に発生する3つの音符を言います。

では左手から、真ん中のドからド→シ→ラと左へ音を下がってください。
その「ラ」の音から始めます。
まずラ→♭ラ→ソ→♭ソと、白鍵と黒鍵を交互に半音ずつ左方向、低い音域へ音を下がって弾いていきましょう。
次はファ→ミ→レ→ドと白鍵を順番に下がります。ここまでで1フレーズです。
更にシ→ラ→ソ→ファと下がり、最後、→ミの音を4拍のばします。

NEXT右手、真ん中のドから。ずっと白鍵です。
少し指を開いて「ド」に親指と、そこからレミファソラと右方向へ上がった「ラ」の音に小指を置きます。その手の形で最初は固定してください。
まず「ッドラ」「ッレシ」「ッミド」と3連符の後ろ2拍を、下から上へ順番に弾きます。最後4拍目は「ッドミ」と3拍目の音を逆に下がってください。
次は少し手の間隔を縮めて、先ほどの「ッドミ」のドの1つ上レの音から「ッレラ」「ッドソ」「ッシファ」「ッラミ」と左方向へ同じ手の形で下がっていきます。ここまでで1フレーズです。
更に手の感覚を縮めて隣同士の音に指を置き、先ほどの「ッラミ」のミの1つ下レの音から「ッレミ」「ッドレ」「ッシド」「ッラシ」と、同じ手の形で下がっていきます。
右手は最後が難しいです。先ほどの「ッラシ」のラの半音下♯ソの音から、「ッ♯ソラシドレ」と狭く上がった後は、1拍ずつ「ミ」「シ」と上へ少し広く上がって弾きます。

さて両手を合わせて弾いてみましょう。
お尻まで行ったら最初に戻ります(適当に繰り返して終わってね)。
今回のテーマは「雨」です。しっとりとゆっくり弾いてください。
覚えれば初心者でも簡単に弾ける曲のハズ。。。

======= ==================== ======

さて、今日のポイントは三連符だ。いままで、三連符はやっていなかったような気がする。

「サクラ」で音符の長さを指定するには、l(n)というコマンドを使う。ここでの n の値は、1小節を n 分割するという意味だ。だから、n=2 というのは1小節を2分割するということで2部音符になる。n=8 は、1小節を8分割するから8部音符ということになる。

今回使う三連符は4部音符を3分割するわけだから、1小節に換算すると12分割すると同じ長さになる。ということで、4部音符1拍に相当する三連符の指定はn=12になるので、l12 というのが長さの指定になる。

今日は、もう一つ、音量をランダムに変えるというのをやってみる。人間が楽器を演奏する場合は、キーと指の関係が音程により微妙に異なるから、同じ強さで弾いているつもりでも音量が全く同じになるということはない。この辺が、コンピュータで演奏させると機械的な音になってしまう原因だ。

そこで、この機械的な音量を、わざと微妙にランダムにずらしてしまえば、人が弾く演奏に近くなるのではないかということで、これをやってみることにする。

両手の演奏のフレーズを4回繰り返すことにして、最初の2回の繰り返しを同じ音量、後の2回の繰り返しを微妙に音量をづらして見る。

//_______ ここから _______________

Int Pos
#L1={l4 "a "g# "g "f# "f "e "d "c}
#L2={< "b "a "g "f l1 "e}
#R1={l12 rca rdb re`c r`ce rda rcg r"bf r"ae}
#R2={rde rcd r"bc r"a"b r"g#"a"bcd l4 eb }

Tempo(60)

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

TR(1) o5 #L1 #L2 #R1 #R2

Pos=Time TR(1) Time(Pos) TR(2) Time(Pos)

[2
TR(1) o5 #L1 #L2
TR(2) o5 #R1 #R2
]
[2
TR(1) v.Random(40) o5 #L1 #L2
TR(2) v.Random(40) o5 #R1 #R2
]

//_______ ここまで _______________



演奏モニターを見ているとわかるのだが、音量をRandomにした後半の部分は確かにベロシティの値が微妙に変化する。


 

木曜日, 10月 05, 2006

「サクラ」の音にSavihostでVSTエフェクトをかける

昨日は、AudacityでVSTプラグイン(Classic Reverb)を使ってエフェクトをかけてみたのだが、どうやら全てのVSTプラグインが上手く動くとは限らないらしい。

Hexalineというフリーで使えるVSTプラグインがある。このHexalineは、アンビエント・コーラス/エンハンサー/ステレオ・エキスパンダーといった効果をかけることができる、かなりかっこいいプラグインだ。

Hexaline
http://bigtick.pastnotecut.org/index.php?action=PROD&pcode=300

AudacityでこのHexalineを試してみたのだが、なんか上手く動かなかった。

ということで、こんな方法でエフェクトをかけてみた。

・Savihostでスタンドアロン化したHexalineを立ち上げておく

・MP3を再生できるソフトでエフェクトのかかっていない音を鳴らす

・Audacityで入力ソースをStereo Mixにして録音する

こうすれば、パソコンから出ているエフェクトのかかった音を録音できる。



実際にHexalineでエフェクトをかけた音を聞いてみてください。

(内蔵音源 Hexalineなし)


(内蔵音源 Hexalineあり)

 

水曜日, 10月 04, 2006

「サクラ」の音にAudacityでVSTエフェクトをかける

Audacityでは、VSTイネーブラー(vst-bridge.dll)というPlug-inを入れると、AudacityでVSTプラグインを使えるようになる。

VSTプラグインって何?
http://allabout.co.jp/entertainment/dtm/closeup/CU20030222/index.htm

フリーで使えるVSTプラグイン、The Classic SeriesのClassic Reverbを試してみた。

The Classic Series
http://www.kjaerhusaudio.com/classic-series.php

Classic Reverb
http://www.kjaerhusaudio.com/classic-reverb.php

VSTをSavihostでスタンドアロンアプリとして使う場合は、下のようなかっこいいGUI画面になる。



Audacityで使うときは、パラメータをこんな感じのスライダー画面で入力するのだが、なんかこっちの方が入力しやすい。



実際にReverbをかけた音を聞いて効果を確認して欲しい。

(内蔵音源 Reverbなし)


(内蔵音源 Reverbあり)


 

火曜日, 10月 03, 2006

「サクラ」の音にAudacityで残響をかける

昨日は「サクラ」の音をAudacityで録音し、簡単にMP3にできることについて書いたのだが、このAudacity、録音した音に残響を付けたり、音圧を変えたりと様々に音を加工することもできるのだ。

SoundFontには、サンプリングした音自体に残響が付いているものもあるし、GMのセット音源などもsfzを使えば、「サクラ」のReverbコマンドで残響を付けることができる。

ところが、パソコン内蔵のMIDI音源はReverbコマンドでは残響がかからない。そこで、Audacityを使ってどんな感じで残響がかけられるかを試してみた。

Audacityをインストールすると付いてくるGVerbというのを試してみた。



(内蔵音源 残響なし)

(内蔵音源 残響あり)


この効果をかけるだけでも、音に広がりが出てかなり聴きやすくなる。
 

月曜日, 10月 02, 2006

「サクラ」の音をAudacityで簡単録音

サクラ」でアルゴリズム作曲シリーズでは、昨日書いたような方法でソフト音源を鳴らしたものをMP3にして添付しているのだが、今日は、このMP3ファイルをどうやって作っているのかを説明する。

パソコンでデジタル録音するフリーのソフトは結構あるのだが、なんと言っても応用範囲が広く多機能なのが、オープンソースの Audacity だ。

Audacity
http://audacity.sourceforge.net/

Audacityでは、入力ソースを「ステレオミキサー」に設定すれば、難しい設定をしなくても、とりあえずはパソコンから出ている音を簡単に録音することができる。



パソコンで録音したファイルは、多くのソフトがWindowの標準のWAVファイルとして書き出すようになっているのだが、Audacityでは、LAME MP3エンコーダー(lame_enc.dll)をインストールすることで、直接MP3形式のファイルを作成することが可能だ。

LAME MP3エンコーダー
http://audacity.sourceforge.net/help/faq?s=install&item=lame-mp3

Audacityで直接MP3ファイルを作成する場合は、ファイルメニューから「MP3書き出し」を選ぶ。一番最初だけ、LAME MP3エンコーダーの場所を尋ねられるので、lame_enc.dllを保存してあるフォルダを指定すればよい。

MP3書き出しの場合は、下の画像のようなIDタグ編集画面が出るので、Audacityで直接MP3ファイルを作るときは、ここでIDタグを入力してしまうことも可能だ。


 

日曜日, 10月 01, 2006

「サクラ」で複数のソフト音源を使う

今日は、「サクラ」で複数のソフト音源を使う方法を説明してみる。これができれば、昨日やったように複数のSoundFontを同時に使うこともできるのだ。

まず最初にやることは、「サクラ」のMIDI出力をソフト音源に渡すための設定だ。ソフト音源は外部音源のようにMIDIケーブルで接続することができないので、仮想MIDIドライバ(MIDI Yoke Junction)を使ってソフト音源と接続する。

MIDI Yoke Junction
http://www.midiox.com/index.htm?http://www.midiox.com/myoke.htm

「サクラ」側の設定はメニューから、設定→マルチメディアの設定で、MIDIの出力先をMIDI Yokeに変更する。



そして、ソフトシンセの方のMIDIの入力を、MIDI Yoke の出力に合うように設定する。これで、「サクラ」からのMIDI信号でとソフト音源の音が出るようになる。



こんな感じで複数のMIDI音源の設定を同じようにしていけば、立ち上げたすべてのソフト音源で「サクラ」の音が出るのだが、これでは、すべてのトラックの音がどのソフト音源からも出てしまうのだ。

昨日やったように、楽器を別々の音源で鳴らしたい(トラック毎に音源を分けたい)という場合は、ソフト音源の方で受信するチャンネルを制限すれば良い。

「サクラ」の標準では、Track(1)→Channel(1)、Track(2)→Channel(2)、・・・・のようにチャンネルが対応するので、ソフト音源のFilter設定(メニューからEffect→Filtersで出る)の画面で、下の画像のように受信したくないチャンネルにチェックを入れればよい。



例えば、フルートの音源の場合は、ピアノのパートのChannelの2と3にチェックを入れて、ピアノのパートを受信しないように設定する。