NSDL(NES Sound Driver Library)

MML reference: Envelope block

定義(Define)

Envelop(n){
	define
}

引数(Inputs)

n

エンベロープ番号を指定します。

define

エンベロープのパターンです。
エンベロープパターンの定義は、フレーム毎の推移を数値で指定します。
以下表のコマンドを記述して下さい。

CommandContens
nエンベロープ値
Dn前回のエンベロープ値をnフレーム間維持します。
LエンベロープパターンがRコマンド、又はパターン最後まで行った時の戻り先を指定します。
Rコマンドの後に書かれた場合は、キーオフ後のパターンにおける戻り先となります。
Rコマンド前でLコマンドを省略した場合、Rコマンドの直前のコマンドを繰り返します。
Rコマンド後でLコマンドを省略した場合、エンベロープ定義最後のコマンドを繰り返します。
R以後を、キーオフ後のエンベロープパターンとします。
リリースのパターンを指定しない場合、キーオフ後もそのままエンベロープが継続されます(音量エンベロープも含め)。
(start,end,length)startからendまでlengthフレームで変化します。(未実装)

内容(Contents)

音色、音量、周波数、音程の推移パターンを定義します。
エンベロープ値の設定範囲は以下の通りです。

音色

APU パルス波
0〜3 (0=12.5% / 1=25% / 2=50% / 3=75%)
APU 三角波
音色エンベロープはありません。
APU ノイズ
0〜1 (0=長周期 / 1=短周期)
APU 儕CM
音色エンベロープはありません。
FDS
0〜63(モジュレータのゲインに割り当てる予定)
VRC6 パルス波
0〜7 (0=6.25% 〜 7=50%)
VRC6 SAW
音色エンベロープはありません。
VRC7
0〜15
MMC5
0〜3 (0=12.5% / 1=25% / 2=50% / 3=75%)
N168
0〜63 (指定数値の2倍のアドレスを音色波形にします。)
Sunsoft 5B
0〜31 … ノイズ(値はノイズの周期です)
32〜63 … トーン&ノイズ(値はノイズの周期です)
64 … トーン
96 … 無音

音量

APU パルス波
0〜15
APU 三角波
音量エンベロープはありません。
APU ノイズ
0〜15
APU 儕CM
音量エンベロープはありません。
FDS
0〜63(キャリアのゲインに割り当てる予定)
VRC6 パルス波
0〜15
VRC6 SAW
0〜63
VRC7
0〜15
MMC5
0〜15
N168
0〜15
Sunsoft 5B
0〜15

周波数

-64〜63の範囲で指定してください。
数値は、現在発音している音階を基準とした値で、16が100cent(半音)に相当します。

音程

-64〜63の範囲で指定してください。
数値は、現在発音している音階を基準とした値で、1が100cent(半音)に相当します。

注意(Notes)

MMLコンパイラは、各エンベロープ(音色、音量、周波数、音程)のパターンを一元管理します。
特定の1つのパターンを、どのエンベロープでも使用可能ですが、設定範囲は留意して下さい。

例(Sample)

// frequency envelop "Volume table"
Envelop(0){
	15 D10 14 13 12  L 11 11 10 10 9 9 10 10 R 9 8 7 6 5 L 4 4 3 3 2 2 3 3
}