日曜日, 9月 24, 2006

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

今日は、ピアノのための「素敵な即興演奏講座5」の歌の部分を「サクラ」のMMLでやてみる。「素敵な即興演奏講座5」の内容については、20日のエントリーを参照してください。

実は、人の歌声をMIDIで再現するのはとても難しい。人間の声というのは非常に複雑で微妙なニュアンスがある。ということで、シンセで音を作るのも難しい。とりあえず、内蔵音源のSynthVoiceでやってみることにする。

「素敵な即興演奏講座5」で要求されている下記の部分をなんとか再現できるように「サクラ」のMMLを作ってみた。

====== ==================== ======
フレーズを。歌う時のポイントとしては、各音と音の間に
「ずり上がり」「ずり下がり」を入れてください。
次の音に移る時にはっきりと移動するのではなく、経過的に滑らかに上下してください。
そして伸ばした音には「ふるえ」を入れてください。
====== ==================== ======

まず、「ずり上がり」「ずり下がり」については、記号「&」を使ってスラー(モード0)で再現してみた。「ふるえ」については、終止の伸ばす音の部分にモジュレーションをかけてある。

//_______ ここから _______________

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

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+{M.W(0,0,!4,0,120,!2.)}+O5(0+DF)+{1}+{M(0)}
 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+{M.W(0,0,!4,0,120,!2.)}+O5(N)+{1}+{M(0)}
 #ML2=#ML2+{M.W(0,0,!4,0,120,!2.)}+O5(N+DF)+{1}+{M(0)}
 Result=#ML1
}

TR(1) 音色(SynthVoice)
TR(2) 音色(SynthVoice)

#ML=SwingS(0)
TR(1) v(Vol) o5 [1 #ML]
#ML=SwingR(0)
TR(1) v(Vol) o5 [1 #ML]

Pos=Time TR(2) Time(Pos)

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

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

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

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

//_______ ここまで _______________



内蔵音源で演奏させるにはょっと無理なところもあるが、まー、それっぽく聞こえます。