Автор Тема: Работа программ типа Lecab, Kefir и т.д.  (Прочитано 1329 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vonfrost Автор темы

  • Частый посетитель
  • **
  • Сообщений: 117
Всем привет. Подскажите, кто знает или киньте ссылкой на инфу где почитать. Каков принцип работы данных программ?

Я так понимаю есть аудиосигнал, который пропускается через wav файл (импульс), с определенной АЧХ. И на выходе исходный сигнал приобретает АЧХ wav файла.
Как происходит обработка исходного сигнала? Вот это само "пропускание" файла через импульс.

 

Оффлайн Sash-OK

  • Опытный
  • ****
  • Сообщений: 716
  • Не люблю сидеть без дела - люблю без дела лежать!

Оффлайн deLuther

  • Живу на форуме
  • *******
  • Сообщений: 33530
  • alderman of morning star
    • Malefice
Re: Работа программ типа Lecab, Kefir и т.д.
« Ответ #2 : Марта 07, 2015, 14:32:36 »
Я так понимаю есть аудиосигнал, который пропускается через wav файл (импульс), с определенной АЧХ. И на выходе исходный сигнал приобретает АЧХ wav файла.
Не приобретает. Фактически можно рассматривать что АЧХ сигнала умножается (в частотной области) на АЧХ импульса. Естественно эффективные конвольверы не используют прямое определение конволюции, а используют быструю свёртку (т.е. перемножение в частотной области).
Статья о подобном на английском: http://www.aurora-plugins.it/Public/AES-113/Garcia-PrePrint5660.pdf
Ещё можно упомянуть например такую статью: http://ericbattenberg.com/school/partconvDAFx2011.pdf
Всё упирается в эффективное разбиение исходного импульса на блоки и выполнение необходимых операций с равномерной загрузкой по тактам (желательно минимальной).
Есть и ещё статьи, больше зацикливающиеся именно на методах обеспечения равномерной нагрузки разными способами.

Что касается упомянутых в заголовке плагинов, то KeFIR это прямая, поэтому вычислительно неэффективная свёртка (не через FFT), зато исходно нулевая задержка, LeCab просто примитивная быстрая свёртка, жертвующая точностью и не имеющая нулевой задержки. Эффективный алгоритм быстрой свёртки с нулевой задержкой для произвольной длины импульса довольно непрост, поэтому пока это есть только в коммерческих плагинах, таких как Voxengo Pristine Space и Knufinke SIR2.

Лично я, при разработке своего PFF Convolver, наткнулся на проблемы с обеспечением равномерной загрузки, пока решил не самым эффективным способом, что даёт большую загрузку на такт, пока не выберу способ решения :)
« Последнее редактирование: Марта 07, 2015, 14:45:15 от deLuther »