Closed argentum384 closed 3 years ago
音声再生に利用している ScriptProcessorNode はすでに deprecated なので、代替機能である AudioWorklet に差し替える。
AudioWorklet では一度に送信するオーディオバッファのサイズが 128 サンプルで固定なので、シーケンサ側で作成したバッファがより長い場合でもバッファ長の違いを吸収する仕組みを考える。
備忘: バッファサイズについては以下注意
https://github.com/argentum384/flmml-on-html5/blob/66624f691558f2033eb8d22dfafc3122255fff95/src/common/Consts.ts#L3-L6
サンプリングレートについては現存するサウンドデバイスの出力レートが 44.1kHz, 48kHz, 96kHz のどれかのパターンしか考えてないけど他は無視する。誤差があっても再生できないわけではないので (そもそも v1.x では 8192 だったので #7 で対応してからわずかながら誤差がありうる状態だった)
概要
音声再生に利用している ScriptProcessorNode はすでに deprecated なので、代替機能である AudioWorklet に差し替える。
AudioWorklet では一度に送信するオーディオバッファのサイズが 128 サンプルで固定なので、シーケンサ側で作成したバッファがより長い場合でもバッファ長の違いを吸収する仕組みを考える。