MMLを書いていると、一部の命令をスキップしたり、特定のトラックだけコンパイルしたり、今書いているブロックだけ演奏して確認したくなることが少なからずある。これを実現するひとつの方法が、コンパイルするMMLを限定するプリプロセッサ ディレクティブを指定するというやり方だ。音楽の授業で特定のブロックから合奏練習を始めるのと同じようなものだ。
これは完全なものではないけど(特に音色指定やテンポ指定をどう処理するかという意味で)、とりあえずある程度の実用性はある。とりあえずブロック指定とトラック指定は実装した。じつのところ、今の時点でやるつもりではなかったのだけど、昔書いたMMLを移植するのに、これを使っていたのを取り外すのが面倒だったのでサポートすることにした。
他にも演奏デバッグ用の方法はいくつか考えられ、いくつかMMLのマニュアルにも記載してあるのだけど、実装が面倒なものがいくつかあるので、その辺は後で着手しようと思う。たとえば小節のサポートなどは、かなり面倒そうだ。同じ条件コンパイルディレクティブの手法では無理ではないかとも思っている。
Leave a comment