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