OP

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

オペレータについては、ほぼ説明しつくしたと思いますので、最後にプログラムの最適化について検討してみます。

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

フィードバック フィードバックとは、オペレータの位相変調入力に他のオペレータ出力を入れるのではなく、自分自身の出力を戻して変調をかける機能です。 サイン波の傾きが「上り坂」の部分では、フィードバックが傾きを増す方向に作用し、傾きが「下り坂」…

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

Wave Select 本来、FM音源の出力はサイン波が基本で、6 オペレータ、32 アルゴリズムを誇る DX7 の音源でもサイン波出力だけです。 オペレータ数の少ないローエンドのFM音源では、複雑な変調はできないことを補う意味もあって、OPL 系で言えば OPL II (Y…

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

フェーズアキュムレータから 14 ビット分を抽出して、下の図のように b13 を「S」ビット、b12 を「D」ビットと呼ぶことにします。

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

今度は、サイン波テーブルの参照方法についての話です。 前の議論で、フェーズアキュムレータを N ビットとしましたが、その上位 M ビットを抽出して、サイン波テーブルの参照に使うものとします。

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

F-NUMBER 計算 以前示した F-NUMBER の計算式には、サンプリング周波数が含まれていますから、F-NUMBER の値はサンプリング周波数に依存します。 FM音源プログラムでは、サンプリング周波数の切り替え機能を持たせたので、何も対策しないと、 F-NUMBER テ…

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

ポルタメント処理 アナログシンセでは、キーボード回路のサンプル&ホールド (正確にはトラック&ホールド) 回路にポルタメント機能を持たせることが多いようです。 ホールド・コンデンサと、ポルタメント時間調整用の可変抵抗で1次 RC 回路を構成し、その…

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

OPL3 の音源チップでは、F-NUMBER/BLOCK の組で受け取ったピッチ情報に対して、チップ内部でビブラートをかけます。 ピッチベンド/ポルタメントなどに関しては、チップにその機能はないので、ドライバ/アプリケーション・プログラム側で実現することになりま…

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

OPL3 の音源チップでは、リニア周波数的な表現である F-NUMBER、BLOCK の組でピッチ情報を指定します。 一方、KSL (Level Key Scale) では、1 オクターブ当り何 dB という形で出力レベルに補正が加えられます。 この変換は、下の表にしたがって、チップ内部…

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

F-NUMBER 「YMF715x (OPL3-SA3) -Register Description Document-」(以下「rege」と略記) では、 F-NUMBER について、 Frequency Information : These bits determine the frequency information for one octave. と説明しています。

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

次は、フェーズ・ジェネレータ (phase generator) まわりの話です。

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

今回は、「表の分割」と「補間」についての話です。

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

今回は、サイン波テーブルについての話です。

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

順序が前後しましたが、FM音源のオペレータの話です。