Реверберация

Если кто может, то поделитесь пожалуйста опытом в написании эффекта реверберации.

Интересует какое есть самый быстрый (в плане перфоманса) алгоритм реализации.

А так же есть ли различия между реализацией эффекта для моно и для много-канального звука (больше 3 каналов). А то все алгоритмы которые встречал в интернете реализуют поддержку только моно или стерео.

Так же интересно эффект реверберации при 3д моделировании накладывается на моно-канал до его разложения по матрице, или на итоговый мультиканал после разложения.

Последняя правка: пн, 29/08/2011 - 22:14
Submitted by Victor on

Комментарии

txh

На чём?

Submitted by georgmay on
Quote:
georgmay писал(а):
На чём?
Не совсем понял вопрос. На чём что?

Если про конечный язык реализации - то с++, но это не принципиально - разобраться бы в алгоритме, а на каком языке реализовывать - это дело вторичное.

Submitted by Victor on
в смысле на OpenAL?DirectX?

не вижу смысла в голом коде.

Submitted by georgmay on
Quote:
georgmay писал(а):
в смысле на OpenAL?DirectX?
Интересен именно сам алгоритм реализации эффекта, а не способ его вызова в стандартных библиотеках.

Поскольку реализация под direct (да и думаю и под openal) работает только с моно/стерео потоком и только с нормализованными данными.

Submitted by Victor on

Погугли freeverb - это опенсорсный ревербератор на C++, звучит вроде неплохо. В нете есть описание как он работает, можешь закодить на асме под SSE если хочешь чтоб совсем быстро было Smile Реверберация по сути - сложение исходного звука с задержанным по времени. Алгоритм простой, а самое сложное - подобрать грамотные задержки.

Submitted by Rostix on
Quote:
Rostix писал(а):
Реверберация по сути - сложение исходного звука с задержанным по времени. Алгоритм простой, а самое сложное - подобрать грамотные задержки.
Спасибо за ответ. Может знаешь отличается все таки реверберация моно от многоканальной? Т.е. если мне надо наложить фильтр реверберации на 5.1 дорожку, то могу ли я наложить моно-реверберацию на каждый канал или все таки каналы должны влиять друг на друга? А то реально везде в инете в тех исходниках что я видел юзается либо моно либо стерео реверб - от сюда вывод либо реверб на больше чем 2-х каналов никому не сдался, либо он реализуется с помощью моно реверба по каждому каналу?
Submitted by Victor on

Многоканальной я тоже не встречал. Можешь попробовать микшировать реверберации от всех каналов с небольшими задержками. Добавляешь к левому 0.1*правый + 0.05*задний левый и т.д. Хотя сначала лучше послушать как звучит моно реверб для каждого канала, может и так сойдет

Submitted by Rostix on

Rostix, спасибо за ответы.

Submitted by Victor on

GameDev.by