金曜日, 9月 08, 2006

「サクラ」のMMLを表計算ソフトで作ってみる

昨日は、「サクラ」のMMLを関数を作って生成してみたのだが、MMLはテキストなので、テキストを生成するシステムがあればMMLは作ることができる。

プログラムでテキストを簡単に作れるものとしては、awkやperlといったスクリプト言語やエディタのマクロなどが考えられるが、表計算ソフトのセルの内容をテキスト保存すれば表計算ソフトを使ってもMMLが作れそうだ。

早速OpenOfficeのCalcを使って実際にやってみた。



見た目は、MMLが書いてあるように見えるが、実際はセルにこんな計算式が入っている。

=CONCATENATE("n";RANDBETWEEN (40; 80);",";RANDBETWEEN (1;2)*4)

このシートの内容を、範囲(A1:V4)を指定してコピー(Ctrl+C)し、「サクラ」のエディタにペースト(Ctrl+V)すると下のようなプログラムになる。

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

#P1={ n64,8 n58,8 n69,4 n59,4 n49,4 n52,4 n47,8 n45,4 n42,4 n63,4 n54,8 n80,4 n73,8 n63,8 n47,8 n42,4 n74,4 n74,8 n70,8 n44,4 }
#P2={ n65,4 n52,8 n75,8 n41,8 n77,4 n75,4 n80,8 n55,4 n49,4 n70,4 n41,8 n61,4 n43,8 n76,4 n78,4 n65,4 n57,8 n65,8 n53,4 n46,8 }

Play(#P1,#P2)

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



今回はセルに計算式を書いたのだが、マクロを作ったりすればこれは結構おもしろいことができそそうだ。ロジックで音を生成しようとする場合は必ず計算が入るわけだから、表計算ソフトは意外と向いているのかもしれないです。