我正在尝试将六个声音片段混合在一起。
想象一下,每个剪辑都是一个吉他弦拨弦声,我想将它们混合以产生吉他和弦。
在这里,剪辑是 [-1,1] 范围内的实数数组,其中每个数字都是一个单声道样本。
double mixed_sample = mix(double sample1, ..., double sample6);
请执行mix
!
你一定是在开玩笑。
混合是信号的简单相加。
double mix(double s1, double s2, double s3, double s4, double s5, double s6)
{
return (s1 + s2 + s3 + s4 + s5 + s6);
}
下一步是提供单独的通道增益。
double variable_mix(double s1, double s2, double s3, double s4, double s5, double s6,
double g1, double g2, double g3, double g4, double g5, double g6)
{
return (s1*g1 + s2*g2 + s3*g3 + s4*g4 + s5*g5 + s6*g6);
}
当然,这对代码来说是一种痛苦,传递参数的开销会让你生不如死,但这基本上是你必须做的。