「なでしこ」で百人一首music その5
「文字を素材に音を作る」プログラム、昨日までは文字をプログラムの中で定義していたのだが、今日はこの文字をパソコンのキーボードから入力できるようにしてみる。「なでしこ」でキーボードから文字列を入力するには、「尋ねる」という命令を使う。
尋ねる
http://nadesi.com/doc/cmd/doc.cgi?mode=cmd&id=451
昨日と同じように、文字列の種類を2種類にして、2回のループのなかで和歌[回数]の配列の中に、入力された文字列を格納するようにしている。
//百人一首music_5
音階=区切(『"ミ/"ラ/"シ/ド/ミ/ファ/ラ/シ/`ド/`ミ/`ファ/`ラ/`シ』 "/")
楽譜[0]="Tempo=60"
2 回
和歌[回数]=尋ねる("歌{回数}を入力してください")
"歌{回数} = "&和歌[回数]を表示
歌音=""
回数で条件分岐
1ならば PAN=000
2ならば PAN=127
違えば PAN=127/2
歌音変換(和歌[回数],歌音); 楽譜[回数]="TR({回数}) 音色(Koto) P({PAN})"&歌音
ここまで
楽譜を表示; 楽譜をMML演奏
●歌音変換({参照渡し}和歌,{参照渡し}歌音)
文字=和歌を文字列分解したもの
和歌の文字数 回
弦番号=ASC(文字[回数-1])%13
もし(文字[回数-1]=" ")ならば
音符="r4"
違えば、もし(文字[回数-1]>"ん")ならば
音符=音階[弦番号]&"2"
違えば
音符=音階[弦番号]&"4"
ここまで
歌音=歌音&音符
//ここまで
文字列として、いままでは「百人一首」を使ってみたが、文字であれば実は何でも良い。漢字やかなが混じっていれば、音譜の長さが文字の種類によって変化する。半角文字の場合は今のアルゴリズムでは全て4部音符になる。
0 Comments:
コメントを投稿
<< Home