3日目にしてようやくNRPN部分を眺め始めたのだけど、どうやら想像していたよりもはるかに厳しい問題になりそうだ。
ひとつには、NRPNの領域では、歌詞にかかる命令を、発音のタイミングでセットアップしておかなければいけないようだ、ということがある。現状では、歌詞の部分をあらわすMML命令("あ"とか"ぱ"とか)はステップカウントをすすめないことが前提になっていて、かつまとめて書きやすくなるように設計してある。ということは、歌詞をMMLで記述してから、音階をまとめて記述すると、音階のはじめの部分を書こうとした時点で、歌詞のMMLでハンドルを定義された際にNRPNも出力してしまうと、単純にNRPNのタイミングがおかしくなってしまうのである。
これを回避するためには、NRPN部分をノートオンに合わせて「後出し」するしかないわけだが、それを行う方法が無い。どうやらまた特殊命令を追加するしかないようだ。
そして、NRPNの中ではphoneticsすなわち歌詞のアルファベット部分も定義しなければならないようで、これが音によって長さが変わるので(たとえば「あ」は1バイトだけど「が」は2バイト、「ぎ」は3バイト)、これを柔軟に引数として指定できなければならない。ややこしいマクロ定義にすれば、現行のMML文法でも出来なくはないことはないが、なかなかハマりそうだ。
いずれにしろ、楽曲を書きやすい文法が実現できなかったら意味がないので、実現可能でないのであれば、この方面からは撤退するのもやむを得ないだろうと思っている。
Leave a comment