すっかり忘れてたが、MCMX1.exeのVer.1.31をリリースしておきながら、マニュアルにも履歴にもその部分の追記するのを忘れてた。何ヶ月か放置していたが、完全に記憶から消える前に記述しておかないとなあ・・・・
というわけで、V1.31の仕様を取り込んでドキュメントを更新しておいた。配布しているモジュール自体の変更はないけど、今日やらないと多分また1ヶ月くらい放置してしまいそうだからなあ。
http://judstyle.jp/wiki/MCMX1.exe ←.exeで終わってるけどHTMLです
http://judstyle.jp/wiki/MCMX1.exe/historyというわけで仕様の確認をしていたのだけど、
・MCMX1.exeがMML2本に対応し、PMDMX0.exe 4モジュール分に対応
・それに対応したMML解釈がいくつか
だった。
http://www.liarsoft.org/diary/20081012.html10/12分 - 正直日記
で指摘されているのだが、確かにテンポ変更はMMLの各モジュールに配置しないと反映されない。これは、演奏中にテンポを変えるという発想が俺にはnothingだからまったくその通り。自分でMMLを書くときも、タイマー変更(T/t)や小節長さ変更(Z)は使っていない#FM3Extendパートに記述する癖があるので、各MMLのNnパートにテンポやらZenlenを記述するようにすればいい、というかそうするしかない。
というわけで、今のバージョンはPMD純正のMC.EXEに頼っているからこれ以上の改造は難しいので、
MCMX次期バージョンを策定中。PMDのMMLに依存している現状では、これ以上の効率化はムリかな、機能を追加すればするだけ複雑になっていくような気がする。
基本コンセプトとしては、「使用頻度が低いわりに単文字で動作するMMLを極力排除して、大文字は全て単文字マクロにする」ということを意識していたりする。有体に言うと、NAGDRVとかそこらへんの発想だね。いわゆるマクロとしては、英大文字26種の単文字マクロ、感嘆符付き英数文字62種の変数、疑問符付き文字列・・・という3カテゴリを用意した。文字の割付は概ね完了。
MML設計に興味がある奇特な人専用→
MCMXII-20081020.zip(MS/Excel2000)で、性能検証はあんまり進んでないんだけど・・・実用的なモジュール数は4個まで。MCMX1.exeで1回でコンパイルでき、PMDMX0.exeの表示が崩れない限界。性能面では、Pentium4/3GHzで16モジュールくらいまではなんとかリアルタイム発音ができる。メモリよりもCPUパワーとI/Oウェイトが限界。まあ、俺のVAIOノート(Pentium2/400MHz)でPMDWin.dll 2モジュールくらいまで扱えれば問題にはならないと思ってるので、現状では性能面を気にしてはいない。
Core2Quad/3GHz台だとどれくらいのモジュールを動かせるのか興味はあるが、何十音も同時に発生したって俺の耳では検証できないので諦めることにするよwww