2024年03月24日
【ツール制作】MMLコンパイラ(通常版) 第3回
MMLコンパイラ(通常版) 第3回です。
「MMLコンパイラ(通常版)」制作進めていますが、製作中にいくつか「ん?」と思う事があったので、覚書として記載します。
まず、エンベロープ周期について。
私はMSX標準のMMLについて詳しくないのですが、MSXでは設定できるエンベロープ周期は1つということでいいんですよね?
過去に制作した「MMLコンパイラ(高機能版)」は「@」コマンドが使えたため、「S」、「M」コマンドは使えなかったこともあり、エンベロープに関しては調べたこともなくほぼ無知です。(自作ゲームでも爆発音くらいにしか使っていなかったので…。)
PSGの機能的にSOUND11と12しかないので、どれかのチャンネルで切り替えたら、全チャンネル連動して変わりますよね?
もし、チャンネル毎にエンベロープ周期設定できるのであれば、どこへ記録しているのかが不明です。
どなたかご教授ください。
ひとまず「MMLコンパイラ(通常版)」では、エンベロープ周期は1つとします。
どれかのチャンネルで切り替えたら、全チャンネル連動して変わります。
次に、記載省略について。
MSX標準のMMLでは一部コマンドで省略が許可されています。
「O」(オクターブ)コマンドで「O」とだけ記載すると、「O4」になるようです。
あと、「R」(休符)は「L」(音長)と連動せず、「R」とだけ記載すると「R4」になるようです。
こちらも私がMSX標準のMMLについて詳しくないので、何が省略出来て、省略すると何になるのかいまいち不明で、すべて試すわけにもいかないので、「MMLコンパイラ(通常版)」では、省略をサポートしません。
省略は「C」〜「B」(音階)の後の音長だけとします。
「R」の省略も可能ですが、音階同様「L」と連動します。(「L8R」なら、8分休符となります。)