混合多个声音剪辑

发布于 2024-10-02 14:45:32 字数 250 浏览 0 评论 0原文

我正在尝试将六个声音剪辑混合在一起。

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

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

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

请实施mix

I'm trying to mix six sound clips together.

Imagine each clip is a single guitar string pluck sound and I want to mix them to produce a guitar chord.

Here, a clip is an array of real numbers in the range [-1,1], where each number is a mono sample.

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

Please, implement mix!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

错爱 2024-10-09 14:45:32

你一定是在开玩笑。

混合是信号的简单相加。

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

当然,这对代码来说是一种痛苦,参数传递的开销会把你活活吃掉,但这基本上是你必须做的。

You have got to be kidding.

Mixing is simple addition of signals.

double mix(double s1, double s2, double s3, double s4, double s5, double s6)
{
  return (s1 + s2 + s3 + s4 + s5 + s6);
}

Next step is to provide individual channel gains.

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

Of course, this is kind of a pain in the ass to code, and the parameter-passing overhead will eat you alive, but this is basically what you have to do.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文