最適化のためのヒント

音符と休符について

`l'コマンドを活用して下さい。

音符と休符コマンドは、MMLにて引数(音長・ゲートタイム)を指定しない場合は、 1バイトのコードにコンパイルされます。
ある区間において、頻度に指定される音長は、 `l'コマンドを使い、 音名の引数を省略すると曲データのサイズが小さくなります。

また、`l'コマンドにて指定する数値が以下の値となる時は、 `l'コマンドも1バイトのコードにコンパイルされます。

休符のモード

音楽は、音符の後処理も重要です。
余韻を残す場合、即座に発音を止める場合など、その時のシーンに応じて色々な音符の後処理があります。
本音源ドライバでは休符に様々なモードを設けており、前の音符の後処理を指定できます。
音の後処理を、音量コマンドやエンベロープコマンドで表現するよりも、モードを活用することで、曲データサイズ、負荷共に軽減できます。

尚、ゲートによる音符の後処理は、Rmコマンドにて設定します。

サブルーチンとリピート(A)(B)による最適化

同じようなパターンが数回ある場合、何回も同じパターンを書くとデータサイズを圧迫します。
そのため、サブルーチンおよび、2系統のリピート(A)(B)があります。

サブルーチンをご活用ください。

パーカッション・パート等の、同じパターンが不規則で出現する場合はサブルーチンをご活用ください。

■2系統のリピート(A)(B)をご活用ください。

同じ事を難度も繰り返す場合はリピート(A)
楽譜上のリピートを再現する場合はリピート(B)をご活用ください。
また、各種相対コマンドとリピート(A)コマンドを組み合わせることで、 様々な表現が少ないコードで可能になります。

マクロについて

■マクロとサブルーチンの違い

サブルーチンはドライバ側に実装される機能であり、曲データサイズを軽減することができます。
対してマクロは、MMLコンパイラにて展開されます。
マクロの利点は、サブルーチンと比較し曲データが大きくなりますが、以下の通り、負荷がサブルーチンより軽減されます。。

疑似エコーの最適化

ECコマンドの第2パラメータは、音量指定ではなく、-1としてエコーの音符にスラーで繋げる方が、負荷が軽くなります。

最適化のためには、エコーの部分も考慮した音量エンベロープ形状を最初から作りこみ、疑似エコーの第2パラメータは-1をお勧めします。