ps1/spu/01-sample-adsr · WEB / NODE

SPU:自作サンプルとLive ADSR

112点の自作PCMをソフトウェアでSPU ADPCMへ変換し、基準音程を指定して鳴らします。

Live ADSR · CH1(APIの0番)

Rateはチップのコードで、msではありません。0が速く、大きい値は遅くなります。現在の段階をlive更新し、Attackは次の発音、Releaseは次の離鍵で確認できます。Sustain rateを127から64へ下げると、押しっぱなしの音が減衰します。

Ready.

コード編集は次のPlayに反映されます。applyControls()は上のADSR値を読み、setEnvelope(..., {live:true})で送ります。 startAudio()・sleep(秒)・console・encodePs1AdpcmCycle()を使えます。初期化中もStopでき、終了・エラー・ページ移動時に解放します。

PCM→ADPCMはソフトウェアの準備処理です。SPUは符号化サンプルを固定44,100 Hzで再生し、デバイス出力時だけリサンプリングします。音源へ送るVoice volumeを抑えて内部加算の余裕を作り、host gain 0.6を1回だけ適用します。

Web — 全コード

Loading…

Node — WAV 保存

node examples/ps1/spu/01-sample-adsr/node/main.mjs ./spu-01-sample-adsr.wav
Loading…

README。Nodeは44,100 Hz stereo PCM16 WAVを生成します。AudioContext・audify・ゲームROMは不要です。