开放音高变换

时间:2010-10-11 18:28:23

标签: audio volume openal pitch

任何人都可以告诉我为什么当我将音高提高时音量会变低?音高越高,音量越低......

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

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

仅供参考,源是从AVrecorder录制的声音,因此我无法将源音量设置得更高。

1 个答案:

答案 0 :(得分:3)

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

可能会出现一些罕见的情况,其幅度发生变化,但可能不适用于频率含量较高的较长样本(因为大多数自然声音都是如此)

我们认为振幅取决于音高有多大,请参阅equal loudness contour
也许这个效果解释了你的问题?

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