-2

我正在尝试将六个声音片段混合在一起。

想象一下,每个剪辑都是一个吉他弦拨弦,我想将它们混合以产生吉他和弦。

在这里,剪辑是 [-1,1] 范围内的实数数组,其中每个数字都是一个单声道样本。

double mixed_sample = mix(double sample1, ..., double sample6);

请执行mix

4

1 回答 1

1

你一定是在开玩笑。

混合是信号的简单相加。

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);
}

当然,这对代码来说是一种痛苦,传递参数的开销会让你生不如死,但这基本上是你必须做的。

于 2010-11-16T19:55:42.663 回答