FPGA 版 FM 音源 (33) -- YM2151 (OPM) 測定 (2)

YM2151 (OPM) の EG の測定で、

  • EG の更新頻度はサンプリング周波数 fsの 1/3 (3 サンプルごとに更新)
  • (キー・レート・スケーリング適用後の) レートの上位 4 ビット (R) の表現で「12」が ロー・レートとハイ・レートの境界になっている
  • ロー・レートでのレート下位 2 ビット (RKS) の効果は、OPL3 と同様の 8 進レート・マルチプライアで実現されている
  • ハイ・レートでのレート下位 2 ビット (RKS) の効果は、OPL3 とは違って、 4 進レート・マルチプライアで実現されている

ことが分かりました。
OPM では OPL3 のように「フルスケールの直流」を波形出力として選択できないので、波形出力として下に示すような「方形波」を FM 合成により作成しました。

これは、

という設定にしたものです。
OPM では 4 オペレータ・モードしかないので、具体的には、アルゴリズムは 2 オペレータ直列 FM を 2 系統持つ 4 番を選択し、片方の系列だけを有効にして、もう片方の系列はミュートしています。
この波形の正のピーク中央付近から立ち下りの「肩」の部分までの拡大を下に示します。

ピーク値は ±8168 であり、ピーク値を取る幅がなるべく広くなるようにモジュレータの TL 値を選んでいます。
この波形のキャリア・オペレータの EG の設定を変えながら、出力波形を観察して EG のふるまいを見ています。
例として、AR = DR = 26、RKS = 2 と指定し、キー・レート・スケーリング後のレートの上位 4 ビット R = 13、下位 2 ビット RKS = 2 となる場合の波形を下に示します。
レート値としてはハイ・レートに属します。

このアタック・ピーク付近を拡大したものを下に示します。

アタックの左側の部分は、アタック・カーブ全体で言えば中間部となり、まだ方形波がピークに達していない「立ち上がり」部分です。
それ以外の部分は方形波がピーク値に達しており、キャリア・オペレータの EG 出力が正しく反映されたものとなっています。
見て分かる通り、アタック中間部を除き、同じ値のサンプルが 3 個ずつ並んでおり、EG の値の更新レートがサンプリング・レートの 1/3 になっていることが確認できます。
また、ディケイ部分を見ると、EG 値の減少ステップ幅が
...、大、小、大、小、...
の順に並んでいることが分かります。

OPL3 の場合と同様に、レート・マルチプライアの真理値表をまとめると下のようになります。
ハイ・レートでのシフト・セレクト値の変化が 4 クロック周期になっています。

















RKS= 0 1 2 3 0 1 2 3
  SFT_SEL CLK_EN
カウント (bin)
0 000 0 0 1 1 1 1 1 1
1 001 0 0 0 0 0 0 1 1
2 010 0 0 1 1 1 1 1 1
3 011 0 1 0 1 0 0 0 0
4 100 0 0 1 1 1 1 1 1
5 101 0 0 0 0 0 0 1 1
6 110 0 0 1 1 1 1 1 1
7 111 0 1 0 1 0 1 0 1