「なでしこ」で百人一首music その12
しばらく続いた「なでしこ」で百人一首music、れは一種の「アルゴリズム作曲」ということができるのだが、こんな簡単なプログラムでも結構面白い音楽ができてしまう。パラメータも色々いじれるようにしたので、面白いパラメータができたら、これを後からも使えるようにとっておきたい。ところが、これが簡単にできてしまうのだ。
「項目記入」の画面のメニューにファイルというのがある。このメニューで、項目内容の読み込みや保存ができてしまう。こんな便利な機能が標準であるなんて、やっぱり「なでしこ」はすばらしい開発環境だと思う。
もう一つ、こんなに楽しく面白い音楽ができるのだから、これをMIDIファイルにして、みんなに聴いてもらいたい。ということで、できた音楽をMIDI形式で保存するための[保存]ボタンを付けてみた。MIDI形式の保存も、「MML変換」命令で簡単にできてしまうのだ。
//百人一首music_12
母艦のタイトル="百人一首 de MUSIC"; 母艦の背景色=RGB(220,240,200)
入力項目=「音程=ミ/"ラ/"シ/ド/ミ/ファ/ラ/シ/`ド/`ミ/`ファ/`ラ/`シ
和歌1=秋の田の 仮庵の伊庵の 苫をあらみ わが衣出は 露に濡れつつ
和歌2=春過ぎて 夏来にけらし 白砂の 衣ほすてふ 天の香具山
楽器1=?(Koto|Shamisen|GrandPiano|Flute|Violin)Koto
楽器2=?(Koto|Shamisen|GrandPiano|Flute|Violin)Koto
音量1=100
音量2=100
音長1=80
音長2=80
位置1=0
位置2=127
速度=60
繰回=1
」
入力内容=項目記入(入力項目)
音階=区切(入力内容@音程 "/")
和歌[1]=入力内容@和歌1; 楽器[1]=入力内容@楽器1
位置[1]=入力内容@位置1; 音量[1]=入力内容@音量1; 音長[1]=入力内容@音長1
和歌[2]=入力内容@和歌2; 楽器[2]=入力内容@楽器2
位置[2]=入力内容@位置2; 音量[2]=入力内容@音量2; 音長[2]=入力内容@音長2
楽譜[0]="Tempo={入力内容@速度}"
2 回
音色=楽器[回数]; PAN=位置[回数]; VOL=音量[回数]; GATE=音長[回数]
"歌{回数} = "&和歌[回数]を表示
歌音="[{入力内容@繰回} "
歌音変換(和歌[回数],歌音)
楽譜[回数]="TR({回数}) 音色({音色}) P({PAN}) V({VOL}) q({GATE}) v.Random(60) REV(100)"&歌音&"]"
ここまで
表示(楽譜)
演奏ボタンとはボタン; 演奏ボタンをクリックした時は
MML演奏(楽譜)
保存ボタンとはボタン; 保存ボタンをクリックした時は
MML変換(楽譜,保存ファイル選択("*.mid"))
終了ボタンとはボタン; 終了ボタンをクリックした時は
終了
●歌音変換({参照渡し}和歌,{参照渡し}歌音)
文字=和歌を文字列分解したもの
和歌の文字数 回
弦番号=ASC(文字[回数-1])%配列要素数(音階)
もし(文字[回数-1]=" ")ならば
音符="r4"
違えば、もし(文字[回数-1]>"ん")ならば
音符=音階[弦番号]&"2"
違えば
音符=音階[弦番号]&"4"
ここまで
歌音=歌音&音符
//ここまで
さて、文字素材に音楽を作る「百人一首music」シリーズも12回目の今日で一旦終了して、明日からは。また別のシリーズを始めたいと思う。
0 Comments:
コメントを投稿
<< Home