Добавьте реверберацию Используя алгоритм Freeverb

Этот пример показывает, как применить реверберацию к аудио при помощи алгоритма реверберации Freeverb. Реверберация может быть настроена с помощью пользовательского интерфейса (UI) в MATLAB или через MIDI-контроллер. Этот пример иллюстрирует реализации Simulink® и MATLAB®.

Введение

Отражатели используются, чтобы добавить эффект нескольких затухающего эха или реверберации, к звуковым сигналам. Общее использование реверберации должно моделировать музыку, проигрываемую в закрытой комнате. Большинство цифровых звуковых рабочих станций (ГАЛКИ) имеет опции, чтобы добавить такие эффекты в саундтрек.

В этом примере вы добавляете реверберацию в аудио через алгоритм Freeverb. Freeverb является популярной реализацией отражателя Шредера. Высокоуровневую модель алгоритма Freeverb показывают ниже:

Архитектура в качестве примера

Отражатель реализован в Системном объекте audioexample.FreeverbReverberator. Объект имеет пять свойств, которые могут быть настроены, в то время как симуляция запускается: RoomSize, StereoWidth, WetDryMix, Баланс и Объем. RoomSize влияет на усиление обратной связи гребенчатых фильтров. StereoWidth и WetDryMix оба принимают участие в смесительном этапе, который происходит после того, как фильтрация завершена. Значения по умолчанию StereoSpread, свойства CombDelayLength и AllpassDelayLength взяты из спецификаций Freeverb.

Симуляция MATLAB

Чтобы использовать отражатель на звуковом сигнале, запустите audioFreeverbReverberationExampleApp.

audioFreeverbReverberationExampleApp

Команда audioFreeverbReverberationExampleApp сначала настраивает источник аудиосигналов и проигрыватель. Это затем итеративно вызывает Системный объект audioexample.FreeverbReverberator с аудиовходом, обеспечивая сложение реверберации способом потоковой передачи. Вывод объекта воспроизводится так, можно услышать эффект, добавленный к аудио.

Симуляция открывает пользовательский интерфейс, чтобы взаимодействовать с audioexample.FreeverbReverberator, в то время как симуляция запускается. Пользовательский интерфейс позволяет вам настройкам параметров, и результаты отражаются в симуляции немедленно. Например, перемещение размера ползунка Помещения налево, в то время как симуляция запускается, уменьшает отражающую способность стен моделируемой комнаты.

Существует также три кнопки на пользовательском интерфейсе - Кнопка сброса сбросит состояния расчески и разделов allpass в отражателе к их начальным значениям, и кнопка Pause Simulation будет содержать симуляцию, пока вы не нажмете на него снова. Симуляция может быть отключена или закрытием пользовательского интерфейса или путем нажатия на кнопку симуляции Остановки. Если у вас есть MIDI-контроллер, возможно синхронизировать его с пользовательским интерфейсом. Можно сделать это путем выбора управления MIDI в диалоговом окне, которое открыто, когда вы щелкаете правой кнопкой по ползункам или кнопкам и выбираете "Synchronize" из контекстного меню. Выбранное управление MIDI затем работает в соответствии с ползунком или кнопкой так, чтобы работа одним управлением была прослежена другим.

Если вы будете видеть много предупреждений недогрузки очереди, необходимо будет настроить буфер и размер очереди аудиоплеера, используемого в audioFreeverbReverberationExampleApp. Больше информации об этом может быть найдено на уровне страницы документации для audioDeviceWriter. Источник аудиосигналов в этом примере является звуковым файлом, но можно заменить его на устройство аудиовхода (через audioDeviceReader), чтобы добавить реверберацию, чтобы жить аудио. Для способов уменьшать задержку, не имея никаких переполнений/недогрузок, можно следовать за Задержкой Аудио Меры в качестве примера.

Используя сгенерированный файл MEX

Используя MATLAB Coder™, можно сгенерировать файл MEX для основного алгоритма обработки путем выполнения команды HelperFreeverbCodeGeneration. Можно использовать сгенерированный файл MEX путем выполнения команды audioFreeverbReverberationExampleApp с true в качестве аргумента.

audioFreeverbReverberationExampleApp(true)

Версия Simulink

audiofreeverbreverberation является моделью Simulink, которая реализует тот же пример реверберации Freeverb, подсвеченный в предыдущих разделах.

В этой модели сложение реверберации моделируется с помощью Системного объекта audioexample.FreeverbReverberator, используемого в блоке MATLAB System. Используя MATLAB System блок сохраняет вас усилие по перереализации алгоритма MATLAB в Simulink. Можно открыть пользовательский интерфейс, чтобы настроить параметры Freeverb путем щелкания по ссылке 'Launch Parameter Tuning UI' на модель.

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

Подтверждение

Алгоритм в этом примере основан на модели 'Freeverb' общественного достояния, записанной Jezar в Dreampoint (июнь 2000).

Ссылка

Смит, J.O. "Freeverb", в "Физической Обработке Звукового сигнала", https://ccrma.stanford.edu/~jos/pasp/Freeverb.html, онлайновая книга, 2 010 выпусков, получил доступ 24 апреля 2014.