4

谁能告诉我为什么当我在公开赛中提高音高时音量会变低?音调越高,音量越低......

alSourcef(源,AL_PITCH,1.2f);alSourcef(源,AL_GAIN,1.0f);

使用此设置,音量仍然非常低。有没有办法欺骗它使增益超过1?也许这与距离有关?

仅供参考,源是从 AVrecorder 录制的声音,所以我不能将源音量设置得更高。

4

1 回答 1

3

Afaik 幅度会随着音高变化而变化是不正常的。当音高设置为高于原始值时,openal 在乘数不完整时使用某种插值通过乘数(afaik)加速样本。

可能有一些罕见的情况下幅度会发生变化,但对于具有大量频率内容的较长样本可能不会(因为大多数自然声音往往如此)

我们感知到的幅度取决于音高有多响,请参阅等响度轮廓
也许这种效果可以解释您的问题?

作为解决方法,您可以降低正常音调的声音的增益,并为更高音调的声音使用更高的增益。
或者在附加/传递到缓冲区之前将源数据乘以乘数。

于 2010-10-12T21:33:21.870 回答