読者です 読者をやめる 読者になる 読者になる

ファミコンのノイズについて

pAPUノイズのタイマ周期って最短で4まで指定できるみたいけど,これってpAPUのクロック数 1789773Hz / 4 = 447443.25Hz のノイズが出るって事?
つまり,sampleRate=44.1kHz の wave では物理的に再現不能って理解でおk?

【追記】
VirtuaNesのソースに潜ったら,sampleRateより周波数が高い場合,出力を平均化してwaveバッファに書き込んでるっぽい

【追追記】
そもそもスピーカの振動板がその速さに追従できないだろうから,振動板が中庸な位置に居ると仮定する意味で平均をとるのは真っ当な処理かも.出力が平均化されるって事は,ロングノイズならパルスノイズからホワイトノイズに近づくと近似しても良さそう.
ショートノイズはかなり特殊で,最高 1789773Hz/(4*93)=4811Hz で謎の波形が鳴る計算になる.しかも,位相(その時点でのノイズ用レジスタの状態)によって全然違う波形になるから,これを正確に再現するのは相当難しいと思われる.

【追追追記】
mckのノイズの再生周波数の指定方法を知るためmckにも潜る.10年ぶり位にアセンブリコード読んだけど,コメントがしっかりしてて意外に読みやすかった.ファミコンレジスタが3つしか無いので,退化したおっさん脳でも何とかシミュレーションできるのが良い.
で結論,o0c-o0bが再生周波数インデックスの0-11番に対応,12-15番は指定できない(o-1ab-bで指定可?)っぽいけど,そんなんで良いのかな...
再生周波数インデックス=0-11番 → タイマ周期=4-508Clock → ノイズの再生周波数=約447443-3523Hzが,mckで表現できる範囲ということになる.もちろん freqdata.h を弄ればこの範囲ではない.
ほとんど触ったことの無いアプリをソースだけで挙動理解するのはさすがに限界がある.

【追追追追記】
mckでノイズ聞く限り,パルスノイズからホワイトノイズという近似は割といい線いってる気がする.でも,平均化って事は,厳密なホワイトノイズじゃなくて二項分布ホワイトノイズとでも言うべき奇妙な波形って事になる.ボリュームを調節すれば大体近い音になると思うけど,実際に周波数解析するとどうなるんだろう?