NSDL(NES Sound Driver Library)
最適化のためのヒント
音符と休符について
音符と休符コマンドは、MMLにて引数(音長・ゲートタイム)を指定しない場合は、
1バイトのコードにコンパイルされます。
ある区間において、頻度に指定される音長は、
`l'コマンドを使い、
音名の引数を省略すると曲データのサイズが小さくなります。
また、`l'コマンドにて指定する数値が以下の値となる時は、
`l'コマンドも1バイトのコードにコンパイルされます。
- 96 , %1
- 48 , %2
- 32 , %3
- 24 , %4
- 16 , %6
- 12 , %8
- 16. , %9
- 8 , %12
- 6 , %16
- 8. , %18
- 4 , %24
- 3 , %32
- 4. , %36
- 2 , %48
- 2. , %72
- 1 , %96
シーケンスについて
同じようなパターンが数回ある場合、何回も同じパターンを書くとデータサイズを圧迫します。
パーカッション・パート等の、同じパターンがランダム的に出現する場合はサブルーチン、
同じ事を難度も繰り返す場合はリピート(A)、
楽譜上のリピートを再現する場合はリピート(B)をご活用ください。
また、各種相対コマンドとリピート(A)コマンドを組み合わせることで、
様々な表現が少ないコードで可能になります。
- 相対音量を用いた、 cresc. & decresc.
- 相対テンポを用いた、 accel. & rit.
- 相対移調を用いた、 連続半音進行