FM音源プログラム (8) -- オペレータ (1)

順序が前後しましたが、FM音源のオペレータの話です。
ピッチに対応した周波数を出力する、位相変調可能な正弦波オシレータに、EG 等でコントロールされる出力レベル調整部を付けたものを「オペレータ」(operator) と呼び、これが基本的なハードウェアの単位となっています。
n を識別のための番号として、オペレータを形式的に式で示すと、
\qquad {OP}_n(t) = E_n(t) \cdot \sin \left { \omega_n(t) t + {\rm pm}_n(t) + \beta_n \cdot \, {OP}_n(t) \right }
となります。
ここで、

  • \omega_n(t) が角周波数
  • {\rm pm}_n(t) が位相変調入力
  • E_n(t) が出力レベル設定
  • \beta_n がフィードバック量

「フィードバック」は、オペレータ出力を、自分自身の位相変調入力に戻すものです。
アナログの処理とは違い、ディジタル処理ですから、リアルタイムでのフィードバックは不可能で、1サンプル前の出力値をフィードバックします。
全部のオペレータがフィードバック可能なわけではなく、フィードバック可能なオペレータは限られています。
オペレータを組み合わせて音を作り出すわけですが、出力がオーディオ出力につながっているオペレータを「キャリア」と呼び、出力が他のオペレータの位相変調入力につながっているオペレータを「モジュレータ」と呼んでいます。
FM音源チップでは、並列ハードウェアで全部のオペレータを実現しているわけではなく、1組のハードウェアを時分割多重でタイムスロットを並べて多数のオペレータを実現しています。
そのため、チップのドキュメントでは、オペレータ番号ではなく「スロット」番号として表記されている場合もあります。
OPL3 の場合のオペレータ関係のレジスタを下の図に示します。
EG 関係については、すでに説明しましたが、その他については次回以降に説明します。