FPGA 版 FM 音源 (85) -- TX7 (OPS) 測定 (12)

検索ワード「FM音源 OPS レジスタ解析」でググると、

FM音源 EGS/OPSのレジスタ解析

と題された、作者不明の web ページが見つかります。
このページには、TX7 のファームウェアを解析して EGS/OPSレジスタの仕様を探った結果が示されています。
その中で、EG のレートに関して、音色パラメタの 0 〜 99 の 100 段階の値から 5 ビット幅のレジスタに設定する 0 〜 63 の 64 段階の値へとマッピングする計算式が示されています。

続きを読む

FPGA 版 FM 音源 (83) -- TX7 (OPS) 測定 (10)

オペレータ出力周り、サイン波テーブルの仕様について調べています。
結論から言うと、サイン波テーブルは 1 周期 4096 エントリ、減衰量として格納されている 2 を底とする対数のフォーマットは整数部 4 ビット、小数部 10 ビットのようです。
1 周期 4096 エントリなので、1 周期が 8192 サンプル (以上) になるピッチ周波数を選べば、テーブルの全てのエントリに渡って「抜け」がなく、その出力値が 2 個あるいは 3 個以上繰り返して出力されるようにできます。
オリジナルの源発振周波数 9.4265 MHz に対しては、
9.4265 [MHz] / (192 × 8192) = 5.993 [Hz]
となります。
「楽音」としてのピッチでは、MIDI ノート・ナンバー 6 の F# の音 (11.562 Hz) の 1 オクターブ下の 5.781 Hz が条件を満たします。
MIDI ノート・ナンバーの表現範囲外なので、音色パラメタのオペレータ周波数設定の「Freq Coarse」で「0」を選んで、「0.5 倍」の設定にする必要があります。
パラメタの「トランスポーズ」の設定で 1 オクターブ下げる方法は、正常な発振周波数を外れるようでうまく行きません。
そうやってキャプチャしたサイン波形のゼロクロス点付近のグラフを下に示します。

続きを読む

FPGA 版 FM 音源 (82) -- TX7 (OPS) 測定 (9)

2014 年 5 月 6 日の記事 (→こちら) の OPM の EG 測定と同様に、正弦波出力のオペレータ 2 段による直列 FM で、下のグラフのようなピーク部分が平坦な「方形波」を発生させ、EG の動作を探っています。

続きを読む

FPGA 版 FM 音源 (81) -- TX7 (OPS) 測定 (8)

オリジナルの TX7 では源発振 9.4265 MHz を 192 分周した 49.09635 kHz がサンプリング周波数となりますが、SPDIF 出力化の改造では、サンプリング周波数を 48 kHz にするために源発振の水晶振動子を 9.216 MHz に換装しています。
それ以外のファームウェアなどは変更していないので、源発振周波数の変化がそのまま出力波形のピッチの変化として表れます。

続きを読む

FPGA 版 FM 音源 (80) -- TX7 (OPS) 測定 (7)

TX7 本体の操作では「音色」のエディットはできませんが、「INIT VOICE」機能でエディット・バッファ中の音色パラメタの「初期化」は可能です。 初期化後の音色パラメタ値を下に示します。
(2018 年 7 月 4 日追記: 「TP」パラメタの値の表示位置が間違っていて PEG の各パラメタもずれて表示されていたのを修正しました。)

"INIT VOICE"

       ______LFO________ _PEG_Rate__ _PEG_Level_   
 AL FB WF SP DY PD AD SY R1 R2 R3 R4 L1 L2 L3 L4 TP
  1  0  0 35  0  0  0  1 99 99 99 99 50 50 50 50 24

____Oscillator___ __Envelope_Generator___ ___Key_Scaling___ OPout  Mod
  Mode ___Freq___ ____Rate___ ___Level___    Curve/Depth           Sens
OP M S CO Fine DT R1 R2 R3 R4 L1 L2 L3 L4 BP  L  R  L  R RS OL VS  P  A
1: 0 1  1 1.00  0 99 99 99 99 99 99 99  0  0  0  0  0  0  0 99  0  3  0
2: 0 1  1 1.00  0 99 99 99 99 99 99 99  0  0  0  0  0  0  0  0  0  3  0
3: 0 1  1 1.00  0 99 99 99 99 99 99 99  0  0  0  0  0  0  0  0  0  3  0
4: 0 1  1 1.00  0 99 99 99 99 99 99 99  0  0  0  0  0  0  0  0  0  3  0
5: 0 1  1 1.00  0 99 99 99 99 99 99 99  0  0  0  0  0  0  0  0  0  3  0
6: 0 1  1 1.00  0 99 99 99 99 99 99 99  0  0  0  0  0  0  0  0  0  3  0

続きを読む

FPGA 版 FM 音源 (79) -- TX7 (OPS) 測定 (6)

今回はソフトウェアについて触れます。
まず、DMA チャネルの初期化部分のソースを下に示します。 16 ビット・パラレル・データ転送を 8 ビット DMA ふたつ (DMA_H, DMA_L) で実現しており、両者の内容はほとんど同じなので、代表として DMA_L の方だけを示します。

続きを読む