OPLのNOTESELの話題からの派生です。
OPL系チップの入力クロックは 3.58MHz を与えることが前提になっていますが、4MHzを与えても動きます。
しかし、4MHzを与えると、音階を表すF-Numberテーブルが3.58MHzのときとは変わってしまいます。
これに NOTESEL の設定も絡めて考えると、どのような F-Number テーブルを作って NOTESEL をどう設定すれば良いでしょうか?
Excel で計算すれば答えはすぐ出るのですが、備忘録として結果だけ貼っておきます。トA3=440.0Hz前提です。
普通のF-Numberテーブルを使う場合
NOTESEL=0 を選択し、D#3 基準のF-Numberテーブルを使います。
|周波数(Hz)|音階|F-Number|D9|D8|D7|D6|D5|D4|D3|D2|D1|D0|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|311.13|D#3|367|0|1|0|1|1|0|1|1|1|1|
|329.63|E3|389|0|1|1|0|0|0|0|1|0|1|
|349.23|F3|412|0|1|1|0|0|1|1|1|0|0|
|369.99|F#3|436|0|1|1|0|1|1|0|1|0|0|
|392.00|G3|462|0|1|1|1|0|0|1|1|1|0|
|415.3|G#3|490|0|1|1|1|1|0|1|0|1|0|
|440.00|A3|519|1|0|0|0|0|0|0|1|1|1|
|466.16|A#3|550|1|0|0|0|1|0|0|1|1|0|
|493.88|B3|583|1|0|0|1|0|0|0|1|1|1|
|523.25|C3|617|1|0|0|1|1|0|1|0|0|1|
|554.37|C#3|654|1|0|1|0|0|0|1|1|1|0|
|587.33|D3|693|1|0|1|0|1|1|0|1|0|1|
高精度のF-Numberテーブルを使う場合
NOTESEL=1 を選択し、A3基準のF-Numberテーブルを使います。キースケールの変化点がオクターブの中心になりませんが、NOTESELの仕様なので、諦めます。
|周波数(Hz)|音階|F-Number|D9|D8|D7|D6|D5|D4|D3|D2|D1|D0|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|440.00|A3|519|1|0|0|0|0|0|0|1|1|1|
|466.16|A#3|550|1|0|0|0|1|0|0|1|1|0|
|493.88|B3|583|1|0|0|1|0|0|0|1|1|1|
|523.25|C3|617|1|0|0|1|1|0|1|0|0|1|
|554.37|C#3|654|1|0|1|0|0|0|1|1|1|0|
|587.33|D3|693|1|0|1|0|1|1|0|1|0|1|
|622.25|D#3|734|1|0|1|1|0|1|1|1|1|0|
|659.26|E3|778|1|1|0|0|0|0|1|0|1|0|
|698.46|F3|824|1|1|0|0|1|1|1|0|0|0|
|739.99|F#3|873|1|1|0|1|1|0|1|0|0|1|
|783.99|G3|925|1|1|1|0|0|1|1|1|0|1|
|830.61|G#3|980|1|1|1|1|0|1|0|1|0|0|