AudioUnitSampleType は SInt32 です。コンソールにログを記録すると、おおよそ -22000 から 22000 の間の読み取り値が得られます。
誰かがそれらの値が何を表しているか説明できますか? 彼らは波形をどのように説明しますか? 軸が波形の中心にあるのは、正と負であるためだと思います。
0 dB が最も大きくなるように値をデシベルに変換するにはどうすればよいですか?
AudioUnitSampleType は SInt32 です。コンソールにログを記録すると、おおよそ -22000 から 22000 の間の読み取り値が得られます。
誰かがそれらの値が何を表しているか説明できますか? 彼らは波形をどのように説明しますか? 軸が波形の中心にあるのは、正と負であるためだと思います。
0 dB が最も大きくなるように値をデシベルに変換するにはどうすればよいですか?
サンプル タイプは 32 ビットの int ですが、受け取った値は通常 16 ビットの int に収まります (つまり、32767..-32767)。32767 (または浮動小数点 1.0) は 0dB に対応します。
サンプルを浮動小数点値に変換すると、デシベル単位の累乗は次のようになります。
double sampleValue = (double)intSampleValue / 32767.0;
double db = 20.0 * log10(value);
オーバーフローを避けるために、上記の計算を倍精度で行いました。