V3MMLmanual

6.11 @@"nzp":PSGノイズ音源

← 目次

【記述例】

@@"nzp"

【解説】

使用する音源モジュールを、PSGノイズ音源にします。

PSGノイズは、変位は上下の2値に限られますが、それぞれの変位を維持する時間(パルス幅)がランダムに変更されます。
ただし、更新間隔が非常に短い2値ノイズは、非常に高いサンプリング周波数になるため、生成サンプリング周波数を超える部分は相加平均処理をしています。そのため、V3MMLでは、相加平均部分がホワイトノイズのように出力されます。

PSGノイズ音源では、パルス幅の更新間隔を @nコマンド で変更することで、ノイズの質感を変えることができます。


yコマンドにおける、音源モジュールへの設定

ノイズ用シフトレジスタ値指定

y"sreg",[1]

2値ノイズ用シフトレジスタの値を [1] に設定します。
(当音源宛の @nrコマンドと同様です)
次の場合によって指定された値の使われ方が変わります。

  1. 指定値が、0以上、1未満の値だったときは、指定値に 131072-1 を乗算して整数に四捨五入し、結果が1未満なら1、131072-2 以上なら 131072-2 に制限してシフトレジスタに設定されます。

  2. 指定値が、1以上、131072-1 未満の値だったときは、指定値が整数に四捨五入されて、シフトレジスタに設定されます。

  3. 上記 1. 2. 以外の値だった時(負の値など)は、0以上1未満のランダム値を作成し、1. 同様の処理をします。

※PSGノイズ用シフトレジスタのビット幅は 17bit 固定です。(131072 = 2の17乘)


ノイズ更新サイクル指定

y"cycle",[1]

PSGノイズのパルス幅が更新される間隔を、[1] に設定します。(当音源宛の @nコマンドと同様です)

設定範囲は 1 〜 clk です。

※clk = PSGノイズのマスタークロック値


ノイズマスタークロック指定

y"m_clock",[1]

PSGノイズのマスタークロックを、[1] に設定します。
設定範囲は 1 〜 10000000(10MHz)です。


ノイズプリスケール指定

y"prescale",[1]

PSGノイズのプリスケールを、[1] に設定します。(プリスケールは、マスタークロックを割る数です)

設定範囲は 1 〜 65536 です。


ノイズ用クロックモード指定

y"clk_mode",[1]

PSGノイズのクロックモードを、[1] に設定します。
設定範囲は 0、1、2、3 のうちのいずれかです。