6840.97周波数レジスタ値が小さいほど誤差が多くなり音痴になります、この誤差を認識し易いように小数点以下まで表示していますが、周波数レジスタで使用する値は少数第一位を8捨9入した値(※ppmck09aにて確認、他のサウンドドライバでは計算方法が少々違うかも知れません。文字色:赤はbit数の有効範囲です。VRC6矩形波の場合、文字色:赤と文字色:緑がbit数の有効範囲です。VRC6鋸波この例では各音源にて、o4b(493.88Hz)の音符をディチューン(Dコマンド)を使用することにより、o4a(440Hz)相当を鳴らすものです。一致していることの確認のため、直後にo4aも鳴らしています。ここでディチューン(Dコマンド)に使用している値の求め方を説明します。o4bとo4aの周波数レジスタ値の差を設定します。矩形波の場合、o4bの周波数レジスタ値は226.49、o4aの周波数レジスタ値は254.23です。小数点以下を切り落とし、差を計算すると226-254=-28となります、この値をディチューン(Dコマンド)に使用するのです、またこの値はピッチエンベロープ(@EP定義)にも使用できます。他の音源でも計算方法は同じです。※三角波は1オクターブ低い事に注意して下さい、440Hzはo5aです。2621448サンプルのときo4aが440Hzとなるように調整されている様です。サンプル数が倍になると、音声周波数は半分となり1オクターブ下がります。サンプル数は2のn乗の数にしておいた方が無難の様です、半端な数だと微妙な周波数ズレがありますし、音階表現がズレているので使いにくい。有効チャンネル数を減らすと音声周波数が上がります、例えば8チャンネルから4チャンネルに減らした場合、音声周波数は倍になり、1オクターブ上がります。有効チャンネル数は使用しないチャンネルが有っても、8チャンネルにしておいた方が無難です、他の音源に影響する不具合が確認されております。N106では周波数レジスタ値の変化量が大きいため、ディチューンやピッチエンベロープの数値範囲(-127~127)では十分な変化が望めません、その対策としてppmckではSA<num>コマンドが用意されています。指定するとそれ以降、ディチューンやピッチエンベロープの値を5bit左シフト(2の5乗)した値が周波数レジスタ値に加算されます。<num>の値)とサンプル数により、音声周波数が同じであっても周波数レジスタ値・オクターブ・音符は変わってきます。して計算しております。575文字色:赤はbit数の有効範囲です。1150文字色:赤はbit数の有効範囲です。r2この例ではN106の各サンプル数にて、493.88Hz相当の音符(o4b※)にディチューン(Dコマンド)をかけることにより、440Hzを鳴らすものです。一致していることの確認のため、直後に440Hz相当の音符(o4a※)も鳴らしています。※有効チャンネル数8、8サンプルの場合ここで8サンプルのディチューン(Dコマンド)に使用している値の求め方を説明します。o4bとo4aの周波数レジスタ値の差を設定します。矩形波の場合、o4bの周波数レジスタ値は17361、o4aの周波数レジスタ値は15467です。-1894となります。この値をディチューン(Dコマンド)に使用するのですが、ディチューン(Dコマンド)の設定可能な値の範囲は-127~126であるため、-1894は設定できません。そこでSAコマンドを使用することにより解決できます。-1894を4回2で割ると-118.375となり範囲内になるので、この値の整数値にした値-118をディチューン(Dコマンド)に設定します。(この値はピッチエンベロープ(@EP定義)でも同様です。)そしてディチューン(Dコマンド)の事前にSAコマンドを使用し、値は先ほどの4回2で割った、その4回の値、SA4を設定します。これにより、およそ440Hzが鳴ります(正確には誤差があります。)SAコマンドの値が大きい程、誤差が大きくなるので注意が必要です。SAコマンドはppmckにてN106音源のみ使用可能です。他のサンプル数でも計算方法は同じです。この例のnsfを聴くと判ると思いますが、サンプル数が2のn乗でない場合(12,20,24,28サンプル)、音程がわずかにズレることが確認できると思います、使用するサンプル数は2のn乗(4,8,16,32サンプル)にしておく事をお勧めします。「^」は累乗数VRC7では周波数レジスタとオクターブレジスタにより音程を制御する。コマンドの値が直接入る。この様な関係にあるため、周波数レジスタ値を半分にし、1オクターブ高い値を設定しても、同じ音声周波数が鳴る。0~511まで)、特に高音域への変化は苦手で、オーバーフローし易い。2倍となり、1オクターブ高い音で鳴る。0.67周波数レジスタ値が小さいほど誤差が多くなり音痴になります、この誤差を認識し易いように小数点以下まで表示していますが、周波数レジスタで使用する値は少数第一位を8捨9入した値(※ppmck09aにて確認、他のサウンドドライバでは計算方法が少々違うかも知れません。文字色:赤はbit数の有効範囲です。文字色:水色は音符から周波数レジスタ値に変換される値で、どのオクターブでも同じ値です。12)「^」は累乗数この文章はファミコン音源詳細の各種資料を元に計算式を求め、表にまとめたものです。