「サクラ」でMML演習5(続き-5)
昨日やってみたように、人の声を内蔵音源で演奏させるにやはり無理なところもあるので、今日はサンプリング音源のSoundFontを使って演奏させてみる。方法は、「サクラ」のMIDI出力を、MIDI-Yokeを使って中継し、sfz(SoundFont Player)を使って鳴らすというものだ。
MIDI Yoke Junction
http://www.midiox.com/index.htm?http://www.midiox.com/myoke.htm
sfz
http://www.rgcaudio.com/sfz.htm
//_______ ここから _______________
Array O5 = ({ド},{ミ},{ファ},{ソ},{シ},{`ド},{`ミ},{`ファ})
Int N Int N1 Int N2 Int PanR=20 Int PanL=100 Int Pos Int Vol=38
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+O5(0+DF)+{1}
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+O5(N)+{1} #ML2=#ML2+O5(N+DF)+{1}
Result=#ML1
}
#ML=SwingS(0)
TR(1) v(Vol) o6 [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) o6 [1 #ML1]
TR(2) v(Vol) P(PanL) o5 [1 #ML2]
SwingR(1)
TR(1) v(Vol) P(PanR) o6 [1 #ML1]
TR(2) v(Vol) P(PanL) o5 [1 #ML2]
#ML1=SwingS(0) #ML2=SwingS(3)
TR(1) v(Vol) P(PanR) o6 [1 #ML1]
TR(2) v(Vol) P(PanL) o5 [1 #ML2]
SwingR(3)
TR(1) v(Vol) P(PanR) o6 [1 #ML1]
TR(2) v(Vol) P(PanL) o5 [1 #ML2]
//_______ ここまで _______________
SoundFontの声にはビブラートがかかっているので、「素敵な即興演奏講座5」で言っている「ふるえ」に相当するかどうかはわからないが、かなりいい感じに聞こえる。「ずり下がり」については、sfzではうまく再現できなかったので、プログラムから除いてある。
0 Comments:
コメントを投稿
<< Home