混合两个PCM样品时如何避免变形?

时间:2018-01-31 01:56:02

标签: java audio pcm

我正在创作一个音乐应用程序,我需要用乐器音乐加入用户的声音。为实现这一目标,我需要将乐器音乐解码为PCM并将其与用户的声音相结合。我用来组合音乐的算法是:

int sample1 = ...;
int sample2 = ...;
int combinedSample = sample1+sample2;
combinedSample /= 2;

然而,结果非常烦人。声音听不到,声音听不到。当我在Audacity中打开生成的PCM文件时,它看起来像这样(奇怪):

Screenshot 1

Screenshot 2

另外,我尝试了这个公式,结果不是预期的。

int sample1 = ....;
int sample2 = ....;
int combinedSample = sample1+sample2;
if (combinedSample >= 32767) {
    combinedSample = 32767;
} else if (combinedSample  <= -32768) {
    combinedSample = -32768;
}

0 个答案:

没有答案