Микширование нескольких звуковых клипов - PullRequest
0 голосов
/ 16 ноября 2010

Я пытаюсь смешать шесть звуковых клипов вместе.

Представьте себе, что каждый клип представляет собой одну гитарную струну срыв звука, и я хочу смешать их для создания гитарного аккорда.

Здесь clip - это массив вещественных чисел в диапазоне [-1,1], где каждое число является моносэмплом.

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

Пожалуйста, реализуйте mix!

1 Ответ

1 голос
/ 16 ноября 2010

Ты, должно быть, шутишь.

Микширование - это простое сложение сигналов.

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

Конечно, это своего рода задница в коде, и накладные расходы на передачу параметров съедят вас заживо, но это в основном то, что вы должны сделать.

...