バッファーを反復するたびに、バッファー内のオーディオ ボリュームを (フェードアウトのように) 減少させる単純な関数を作成しようとしています。これが私の簡単な機能です。
double iterationSum = 1.0;
double iteration(double sample)
{
iterationSum *= 0.9;
//and then multiply that sum with the current sample.
sample *= iterationSum;
return sample;
}
これは 44100 kHz のサンプルレートに設定すると正常に動作しますが、サンプルレートが 88200 kHz に変更された例の場合、サンプルレートが 2 倍になり、それ以外の場合は、ハーフタイムで「フェードアウト」を終了し、44100 / 88200 = 0.5 のような係数を使用しようとしましたが、これではステップの半分にはなりません。
プログラム中にサンプルレートが変更された場合にこの関数が呼び出されるため、各反復で半分のステップにするために何ができますか?
よろしく、モーガン