2010-11-16 3 views
-3

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

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

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

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

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

ответ

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

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

+0

Итак, если только одна строка произведет звук, а пять других будут тихими, амплитуда смешанного клипа будет 1/6 амплитуды исходного клипа? –

+1

@ Николас: это правильно - это не что иное, как настоящая гитара в реальном мире - аккорд громче, чем одна строка. –

+1

Не забывайте о смещениях времени. Гитарные струны не выбиваются и не выбираются одновременно. –

Смежные вопросы