「なでしこ」は、プログラムで生成したテキストデータの保存が簡単にできる。

保存
http://nadesi.com/man/index.php?%E4%BF%9D%E5%AD%98

例えば、こんな感じだ。

保存(楽譜,“temp.mml”)


さらに、「なでしこ」から外部プログラムを起動するのも簡単だ。

起動
http://nadesi.com/doc/cmd-func.htm#k93

これで、「notepad」が立ち上がる。


起動 (“notepad”)


入力ファイルを引数にできるアプリならば、ソースをプログラムで指定することもできる。「サクラ」は起動時にソースを指定できるので、こんな感じで書くことができる。


起動 (“C:\Program Files\sakura\Sakura.exe temp.mml”)


さらに、拡張子がアプリケーションと関連付けされていれば、テキストファイルの拡張子により自動でプログラムを起動できる。

.mmlが「サクラ」に関連付けされていれば、テキストファイルの名前を指定するだけでよい。


起動 (“temp.mml”)


「なでしこ」でMMLソースを生成し「サクラ」を起動するにはこんな感じだ。


保存(楽譜,“temp.mml”); 起動 (“temp.mml”)


ちょっと試してみましょう。

L=「遊びをせんとや生れけむ
戯れせんとや生れけん 
遊ぶ子供の声きけば  
我が身さえこそ動がるれ」

配列要素数(L)回
  A[回数-1]=文字列分解(L[回数-1])

鼓=区切る(“小 大”,“ ”); 鼓音@小=“o4a+”; 鼓音@大=“o4g+”

楽譜=“Tempo(48) @(53) REV(20) v.Random(50) t.Random(10) l2 ”

配列要素数(L)回
  i=回数-1
  楽譜=楽譜&“o4b ”
  配列要素数(A[i])回
    j=回数-1
    B[i][j]=鼓[ASC(A[i][j])%2]; 楽譜=楽譜&鼓音@B[i][j]&“ ”

表示(“歌は{配列要素数(L)}行”); 表示(A); 表示(B); 表示(楽譜)

保存(楽譜,“temp.mml”); 起動 (“temp.mml”)

image

image


こういう方法で、「なでしこ」を色んなアプリのソースジェネレータに使えそうだ。