Я немного поискал на этом сайте, но, что удивительно, я не нашел много соответствующей информации, и мои знания о DSP очень и очень ограничены.
Моя цель довольно проста: я хочу запрограммировать алгоритмическую реверберацию на C ++, которая звучит очень хорошо. Точнее, лучшим вариантом было бы позволить конечному пользователю выбрать компромисс между качеством и использованием процессора.
Из того, что я обнаружил до сих пор, является то, что для создания реверберации вы должны передать сухой сигнал в алгоритм ранних отражений, а затем в алгоритм поздних отражений. Это верно ?
Теперь я нашел обширную статью о поздних отражениях, используя сеть с задержкой обратной связи ( СНИЖЕНИЕ ТРЕБОВАНИЙ К ИСКУССТВЕННОЙ РЕВЕРБЕРАЦИИ С ИСПОЛЬЗОВАНИЕМ ВРЕМЕННО-ВАРИАНТНЫХ СЕТЕЙ ЗАДЕРЖКИ ОБРАТНОЙ СВЯЗИ ). Из того, что я прочитал, FDN - это высококачественный, не слишком дорогой (смоделированный) способ моделирования поздних отражений. Кроме того, я думаю, вы можете контролировать компромисс между качеством и процессором, изменяя количество линий задержки.
Однако я абсолютно не знаю, как запрограммировать алгоритм ранних размышлений (помните? Я действительно не осведомлен в области DSP).
Для меня было бы логично использовать разновидность мульти-задержки, которая имеет преимущество в том, что она проста в программировании и недорогой в вычислительном отношении. Но это звучит слишком просто, чтобы быть правдой.
Кроме того, мой инстинкт подсказывает мне, что один или несколько фильтров должны быть включены где-то на пути прохождения сигнала.
Может, кто-нибудь прояснит мне эту тему?
Две заметки:
- Я не после сверточной реверберации вообще. Меня не особо волнует реализм реверберации, но вместо этого я хочу хорошее звучание, настраиваемое, а не процессоро-голодная реверберация.
- Кроме того, часть кода не беспокоит меня, в противном случае я бы спросил о stackoverflow. Это действительно часть DSP, и именно та часть, за которой я следую :)
источник
Создание хорошего звучания реверберации НЕ легко. Сети с задержкой обратной связи, безусловно, путь. Оригинальные алгоритмы Шредера со всеми проходами и гребенчатыми фильтрами страдают от "спектрального утонения", что делает его металлическим звучанием. Вам необходимо набрать зависящее от частоты затухание на разных линиях задержки, которые представляют время реверберации (как функцию частоты). Ранние отражения могут быть сделаны через линию задержки с постукиванием также с некоторым частотно-зависимым затуханием и несколькими рассеивателями для их декорреляции. Выполнение стерео также требует некоторых средств декорреляции.
Существует довольно хорошая реализация с открытым исходным кодом, она называется GVerb и используется, например, в Audacity. Поиск в Google должен получить (легальную) копию исходного кода.
источник