我正在尝试创建一个简单的函数,该函数将在每次通过缓冲区迭代时降低缓冲区中的音频音量(如淡出)。这是我的简单功能。
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,它应该每次只将音量降低一半,因为采样率是两倍,并且会否则在中场休息时结束“淡出”,我尝试使用像 44100 / 88200 = 0.5 这样的因子,但这不会以任何方式使它成为一半。
我被这个简单的问题困住了,需要一个指南来引导我完成,如果在程序期间更改了采样率,我该怎么做才能在每次迭代中使它成为半步,因为这个函数会被调用?
问候,摩根