木曜日, 9月 07, 2006

「サクラ」で文字列を連結する方法

昨日は、Playコマンド用のMML文字列を定数値として記述したのだが、この文字列をプログラミングで作ることができればコンピュータに作曲させるプログラムをかっこよく作ることができそうだ。

この場合必要になるのが、文字列を連結するという処理だ。MMLは文字列なわけで、この文字連結ができれば、MMLをプログラムで生成できる。

サクラ」の文字列連結は、記号'+'を使う。

文字列 + 文字列 + 文字列 + ・・・・

それでは早速プログラムを作ってみる。関数Comose()は、引数に指定された個数分、ランダムな音を4分音符と8部音符で作り出す。

Compose(作成するノート数,ノート番号下限,ノート番号上限)

//---------- ここから ----------

Function Compose(Nno,Nmin,Nmax){
 STR PW = {}
 For(Int I=1; I<=Nno; I++){
  PW = PW+"n"+#STR(Random(Nmin,Nmax))+","+#STR(RandomSelect(4,8))+" "
 }
 Result = PW
}

#P1 = Compose(100,40,90) Print(#P1)
#P2 = Compose(100,40,90) Print(#P2)

Play(#P1,#P2)

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



デバッグのため、Printコマンドで、Compose()で生成されたMMLを表示してみた。