Этот пример показывает, как применить реверберацию к аудио при помощи алгоритма реверберации Freeverb. Реверберация может быть настроена с помощью пользовательского интерфейса (UI) в MATLAB или через MIDI-контроллер. Этот пример иллюстрирует реализации Simulink® и MATLAB®.
Отражатели используются, чтобы добавить эффект нескольких затухающего эха или реверберации, к звуковым сигналам. Общее использование реверберации должно моделировать музыку, проигрываемую в закрытой комнате. Большинство цифровых звуковых рабочих станций (ГАЛКИ) имеет опции, чтобы добавить такие эффекты в саундтрек.
В этом примере вы добавляете реверберацию в аудио через алгоритм Freeverb. Freeverb является популярной реализацией отражателя Шредера. Высокоуровневую модель алгоритма Freeverb показывают ниже:
Отражатель реализован в Системном объекте audioexample.FreeverbReverberator
. Объект имеет пять свойств, которые могут быть настроены, в то время как симуляция запускается: RoomSize, StereoWidth, WetDryMix, Баланс и Объем. RoomSize влияет на усиление обратной связи гребенчатых фильтров. StereoWidth и WetDryMix оба принимают участие в смесительном этапе, который происходит после того, как фильтрация завершена. Значения по умолчанию StereoSpread, свойства CombDelayLength и AllpassDelayLength взяты из спецификаций Freeverb.
Чтобы использовать отражатель на звуковом сигнале, запустите audioFreeverbReverberationExampleApp
.
audioFreeverbReverberationExampleApp
Команда audioFreeverbReverberationExampleApp
сначала настраивает источник аудиосигналов и проигрыватель. Это затем итеративно вызывает Системный объект audioexample.FreeverbReverberator
с аудиовходом, обеспечивая сложение реверберации способом потоковой передачи. Вывод объекта воспроизводится так, можно услышать эффект, добавленный к аудио.
Симуляция открывает пользовательский интерфейс, чтобы взаимодействовать с audioexample.FreeverbReverberator
, в то время как симуляция запускается. Пользовательский интерфейс позволяет вам настройкам параметров, и результаты отражаются в симуляции немедленно. Например, перемещение размера ползунка Помещения налево, в то время как симуляция запускается, уменьшает отражающую способность стен моделируемой комнаты.
Существует также три кнопки на пользовательском интерфейсе - Кнопка сброса сбросит состояния расчески и разделов allpass в отражателе к их начальным значениям, и кнопка Pause Simulation будет содержать симуляцию, пока вы не нажмете на него снова. Симуляция может быть отключена или закрытием пользовательского интерфейса или путем нажатия на кнопку симуляции Остановки. Если у вас есть MIDI-контроллер, возможно синхронизировать его с пользовательским интерфейсом. Можно сделать это путем выбора управления MIDI в диалоговом окне, которое открыто, когда вы щелкаете правой кнопкой по ползункам или кнопкам и выбираете "Synchronize" из контекстного меню. Выбранное управление MIDI затем работает в соответствии с ползунком или кнопкой так, чтобы работа одним управлением была прослежена другим.
Если вы будете видеть много предупреждений недогрузки очереди, необходимо будет настроить буфер и размер очереди аудиоплеера, используемого в audioFreeverbReverberationExampleApp
. Больше информации об этом может быть найдено на уровне страницы документации для audioDeviceWriter
. Источник аудиосигналов в этом примере является звуковым файлом, но можно заменить его на устройство аудиовхода (через audioDeviceReader
), чтобы добавить реверберацию, чтобы жить аудио. Для способов уменьшать задержку, не имея никаких переполнений/недогрузок, можно следовать за Задержкой Аудио Меры в качестве примера.
Используя MATLAB Coder™, можно сгенерировать файл MEX для основного алгоритма обработки путем выполнения команды HelperFreeverbCodeGeneration
. Можно использовать сгенерированный файл MEX путем выполнения команды audioFreeverbReverberationExampleApp
с true
в качестве аргумента.
audioFreeverbReverberationExampleApp(true)
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.