火曜日, 7月 18, 2006

「サクラ」で関数を定義してみる

サクラ」では、一般のプログラミング言語のように関数が定義できる。関数の使い方は、他の言語とほとんど同じだ。

Function 関数名(型 引数1=省略値,型 引数2=省略値,型 引数3=省略値...){
  定義内容
}

変数と関数
http://oto.chu.jp/doc/kouza/mml4.htm


昨日の作ったプログラムの引数付き文字列マクロの部分を関数に置き換えて、関数Composeを作ってみる。生成する音の数、楽器、音域をパラメータとして与えられるようにしてみた。

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

Function Compose(Nno,Vno,Nmin,Nmax){
For(Int I=1; I<=Nno; I=I+1){
@(Vno) n(Random(Nmin,Nmax))(RandomSelect(4,8))
}
}

TR(1) Compose(100,GrandPiano,30,90)
TR(2) Compose(100,GrandPiano,30,90)
TR(3) Compose(100,Violin,40,80)

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



関数が使えるようになれば、プログラムによる作曲のテクニックの範囲もかなり広がってくる。