YM2203のFM音源部とSSG音源部でメロディを出してみます。
まず音階を出すためにレジスタに設定する値を求める必要がありますが
A=440Hzとして平均律で1オクターブ分の設定値を求めるとこうなります。
これはサイン波のテーブルからDDS方式によってデータを読出して各周波数を
発生させているということですね。
一方のSSGは単純な分周なので周波数に逆比例した設定値になります。
A=440Hzとして平均律で1オクターブ分の設定値を求めるとこうなります。
fm=2.4576MHz 音名 周波数比 周波数(Hz) 位相速度 FM設定値 分周比 SSG設定値 C 0.5946 261.6256 502.3211 502 2348.3944 2348 C# 0.6300 277.1826 532.1907 532 2216.5891 2217 D 0.6674 293.6648 563.8364 564 2092.1815 2092 D# 0.7071 311.1270 597.3638 597 1974.7564 1975 E 0.7492 329.6276 632.8849 633 1863.9218 1864 F 0.7937 349.2282 670.5182 671 1759.3079 1759 F# 0.8409 369.9944 710.3893 710 1660.5656 1661 G 0.8909 391.9954 752.6312 753 1567.3652 1567 G# 0.9439 415.3047 797.3850 797 1479.3957 1479 A 1.0000 440.0000 844.8000 845 1396.3636 1396 A# 1.0595 466.1638 895.0344 895 1317.9918 1318 B 1.1225 493.8833 948.2559 948 1244.0186 1244こうしてみるとFM音源は周波数に比例した設定値になっているのがわかります。
これはサイン波のテーブルからDDS方式によってデータを読出して各周波数を
発生させているということですね。
一方のSSGは単純な分周なので周波数に逆比例した設定値になります。