Web Audio API のオーディオ コンテキストのビット深度は?
たとえば、カスタム カーブを作成して使用する場合WaveShaperNode
、適切なFloat32Array
サイズはどれくらいですか?
開発者が 16 ビット オーディオ用の 65536 を使用しているのを見たことがありますが、仕様に情報が見つかりません。
Web Audio API のオーディオ コンテキストのビット深度は?
たとえば、カスタム カーブを作成して使用する場合WaveShaperNode
、適切なFloat32Array
サイズはどれくらいですか?
開発者が 16 ビット オーディオ用の 65536 を使用しているのを見たことがありますが、仕様に情報が見つかりません。
実際には、システムは内部的に Float32 を使用しており、有効桁数は 23 ビットです。浮動小数点を使用すると、ほとんどのクリッピングの問題を回避しながら、精度を高めることができます。これは技術的には、8388608 (2^23) サンプルよりも大きなウェーブシェーピング カーブを作成しようとしてもほとんど意味がないことを意味します。しかし実際には、16 ビット曲線はかなり高解像度です (信号対雑音比は ~96dB)。32 ビット オーディオ処理の多くの理由は、入出力の SNR を改善するためではなく、クリッピングの問題を回避するためでした。浮動小数点を使用すると、これが劇的に改善されます。ちなみに、WaveShaperNode は特に [-1, +1] にクリップします (ほとんどのノードはクリップしません)。
要するに、16ビット(65535)を使用するだけですが、信号が-1、+1の範囲にあることを確認してください。