CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

音程設定

YM2203のFM音源部と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は単純な分周なので周波数に逆比例した設定値になります。