neo-geo/adpcm-a/01-pcm-encode · WEB / NODE

PCM → ADPCM-A → YM2610B

ソフトウェアでADPCM-Aへ変換して、実際のYM2610Bで再生

Software preparation → real sound-chip rendering

自作PCMを8 MHz / 432 ≈ 18,518.5 Hzで生成し、ソフトウェアでADPCM-Aへ変換します。256 byte境界のROM範囲を実チップコアで1回だけ再生します。ADPCM-BやYM2608用データとは別形式で、ADPCM-AにハードウェアのPitch変更・Loopはありません。

Ready.

青:自作PCM / オレンジ:変換結果の比較。BRR・ADPCM-Aでは音源コア出力の抜粋、Game Boyでは4 bit Wave RAM値を表示します。振幅・位相・サンプル数が異なるため、誤差の重ね合わせ表示ではありません。


音源はゲーム機のCPUエミュレーションやゲームプログラムを使わず、公開npmの実WASM coreでオフライン計算します。Web AudioのAudioBufferはその結果を再生するプレイヤーです。Play sourceは変換前の音との比較で、音量正規化は行いません。Stopは準備中も使え、遅れて返った結果は再生しません。

Web — 全コード

Loading…

Node — WAV保存

node examples/neo-geo/adpcm-a/01-pcm-encode/node/main.mjs ./converted-chip.wav
Loading…