FPGA 版 FM 音源 (86) -- TX7 (OPS) 測定 (13)
「ロー・レート」動作の上限、つまり、EG プリスケーラの設定が 1/1 になり、オクタル・レート・マルチプライアに fs レートのクロックが直接に入力される場合の rate99、rate63 の表を下に示します。
rate99 | rate63 | rate63/4 | rate63 下位 2 ビット |
EGクロック・ プリスケーラ |
レート・ マルチ プライア |
---|---|---|---|---|---|
69 | 44 | 11 | 0 | 1/1=1/20 | 4/8 |
70 | 44 | 11 | 0 | 1/1=1/20 | 4/8 |
71 | 45 | 11 | 1 | 1/1=1/20 | 5/8 |
72 | 46 | 11 | 2 | 1/1=1/20 | 6/8 |
73 | 46 | 11 | 2 | 1/1=1/20 | 6/8 |
74 | 47 | 11 | 3 | 1/1=1/20 | 7/8 |
4 ビット値となる rate63/4 を「rate15」、rate63 の下位 2 ビット値を「rate03」と呼ぶことにします。
前回の R4 = 44 付近の測定では、エンベロープの「半減期」を数 100 ms に選び、オペレータ出力の「キャリア周波数」を数 kHz に選んで、文字通り「エンベロープ」 (包絡線) を観測していました。
今回の測定では、2014 年 5 月 6 日付けの記事 (→こちら) の OPM の場合と同様に、エンベロープの時間的スケールと同程度の周期の「方形波」をオペレータ出力波形として選び、方形波のピーク付近の平坦部での値を読み取っています。
「方形波」の波形を下に示します。
これは、エンベロープとしてはサステイン・レベル 99 の設定でオペレータ出力を観測しているものであり、今回の測定とは時間的なスケールが異なっています。
R1 = R2 = R3 = R4 = 69 および L1 = 99、L2 = L3 = L4 = 0 と設定した、アタック/ディケイ波形を下に示します。
方形波出力がマイナスになる領域では、当然、キャプチャした波形もマイナス側に振れています。
波形の絶対値の log2() をとったもの (にさらに 256 を掛けたもの) をプロットしたグラフを下に示します。
2 を底とする対数を取った値を縦軸として表示しているので、ディケイ部分は「直線」になるはずですが、サンプル・インデクス 6500 および 9300 付近で鋭い「谷」のように落ち込んでいるのは、方形波のゼロクロス点周辺のレベルが下がっている部分です。
サンプル・インデクス 5000 付近 〜 5700 付近、および 7300 付近 〜 8500 付近は方形波の平坦なピーク部に相当し、エンベロープのレベルが正確に読み出せます。
さらに、フローティング DAC の影響により波形が乱れる部分もあるので、波形がきれいに見られる部分を探してプロットしたものを下に示します。
次に、
- rate99 = 69
- rate63 = 44
- rate15 = 11
- rate03 = 0
という設定の場合を下に示します。
rate03 = 0 なので、レート・マルチプライアは 4/8 のレートで動作し、同じ値のサンプルが 2 個ずつ並びます。 結局、fs/2 のレートでエンベロープが変化します。
次に、
- rate99 = 71
- rate63 = 45
- rate15 = 11
- rate03 = 1
という設定の場合を下に示します。
rate03 = 1 なので、レート・マルチプライアは 5/8 のレートで動作します。
変化のようすを観察すると、サンプル・インデクス 8 を周期として
(2, 2, 2, 1, 1)
となっていることが分かります。 これは、同じ値の 2 個のペアが 3 ペア続いたあとに単独のサンプルが 2 個続くということを表現しています。
周期 8 の中で値の変化は 5 ですから、平均すれば 5/8 のレートの変化となります。
次に、
- rate99 = 72
- rate63 = 46
- rate15 = 11
- rate03 = 2
という設定の場合を下に示します。
rate03 = 2 なので、レート・マルチプライアは 6/8 のレートで動作します。
変化のようすを観察すると、サンプル・インデクス 4 を周期として
(2, 1, 1)
となっていることが分かります。 これは、同じ値の 2 個のペアに単独のサンプルが 2 個続くということを表現しています。
周期 4 の中で値の変化は 3 ですから、平均すれば 3/4 = 6/8 のレートの変化となります。
次に、
- rate99 = 72
- rate63 = 46
- rate15 = 11
- rate03 = 2
という設定の場合を下に示します。
rate03 = 3 なので、レート・マルチプライアは 7/8 のレートで動作します。
変化のようすを観察すると、サンプル・インデクス 8 を周期として
(2, 1, 1, 1, 1, 1, 1)
となっていることが分かります。 これは、同じ値の 2 個のペアのあとに単独のサンプルが 6 個続くということを表現しています。
周期 8 の中で値の変化は 7 ですから、平均すれば 7/8 のレートの変化となります。