我有两个不同音频剪辑的两个样本数组。如果我只是以编程方式将它们添加在一起,这是否相当于在音频编辑套件中将一个轨道叠加在另一个轨道上?就像如果我有一个贝斯的音频片段和另一个鼓的音频片段,我希望它们一起演奏。
我可能会做这样的事情:
for (int i = 0; i < length_of_array; i++){
final_array[i] = first_array[i] + second_array[i];
}
如果不这样做,我能得到一些关于正确方法的指示吗?
这是一个正确的方法。合并在音频术语中称为“MIXING”。
BUT:
如果您的样本很短(16 位签名) - 您将必须使用 int (32 位签名)进行添加,然后手动剪辑样本。如果你不这样做,你的价值观就会被改变,并且你会在聆听你所做的事情时获得很多乐趣:)
代码如下:
short first_array[1024];
short second_array[1024];
short final_array[1024];
for (int i = 0; i < length_of_array; i++)
{
int mixed=(int)first_array[i] + (int)second_array[i];
if (mixed>32767) mixed=32767;
if (mixed<-32768) mixed=-32768;
final_array[i] = (short)mixed;
}
在大多数情况下,您不需要任何其他内容来获取正常的音频样本,因为在极少数情况下会发生削波。我是从实践而不是从理论来谈论这个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)