В этом примере показано, как реализовать эффект «фазера» звука в реальном времени, который может быть настроен пользовательским интерфейсом (UI). Также показано, как создать плагин VST для фазера, который можно импортировать в цифровую звуковую рабочую станцию (DAW).
Фазер является звуковым эффектом, создаваемым, когда звуковой сигнал проходит через один или более фильтров-пробок. Центральные частоты режекторных фильтров обычно модулируются с некоторой согласованной скоростью для создания эффекта «завихрения» на аудио. Источник модуляции обычно представляет собой низкочастотный генератор, такой как синусоидальная волна. Различные формы сигнала создают различные фазерные эффекты.
В этом примере можно использовать любой аудиофайл. Однако эффект фазирования более слышим с некоторыми аудиофайлами, чем с другими. Файл, который предлагается для этого примера: RockGuitar-16-44p1-stereo-72secs.wav. Другой вариант - использовать источник розового шума вместо файла.
В этом примере используется audiopluginexample.Phaser класс аудиоплагина. Плагин реализует многорежимный фильтр с частотами, модулированными audioOscillator. Многорежимный фильтр реализуется через multibandParametricEQ Системный объект. Полосы эквалайзера можно заставить действовать как индивидуальные фильтры-пробки, установив их коэффициент усиления равным -inf.
Фазер, реализованный в, можно протестировать в audiopluginexample.Phaser использование звукового стенда. Стенд аудиотестирования устанавливает объекты чтения аудиофайлов и записи аудиоустройств и пропускает аудиосигнал через фазер в цикле обработки.
Инициализируйте фазер и визуализируйте его амплитудную характеристику.
phaser = audiopluginexample.Phaser; visualize(phaser)

Запустите стенд аудиотестирования.
audioTestBench(phaser)

Audio Test Stench позволяет настраивать звуковой фазер с помощью ползунков и раскрывающихся меню. Изменение значений ползунка или раскрывающегося списка обновляет график амплитудной характеристики фазера в реальном времени.
Четыре ползунка:
Скорость (Rate) - управляет скоростью, с которой центральная частота фильтров пробки сдвигается вверх и вниз по спектру звука.
Центральная частота (Center Frequency) - управляет центральной частотой самой низкой вырубки. Вычисляют центральную частоту других вырезов относительно этого значения и источника модуляции.
Глубина (Depth) - управляет степенью модуляции частот вырубки вокруг центральной частоты.
Квалифицировать коэффициент (Qualify Factor) - задает коэффициент качества (или «Q») каждой вырубки. Более высокий параметр Q создает более узкую пробку полосы пропускания.
Также существует два раскрывающихся меню:
Вырубки (Notches) - задает количество фильтров вырубок. Для создания более драматического эффекта можно использовать большее количество вырезов.
Источник модуляции - форма сигнала, которая управляет центральными частотами фильтров пробки. Различные формы сигнала создают различные звуки свип-сигнала.
Стенд аудиотестирования по умолчанию передает аудио из файла на диск. Его можно заменить на микрофон звуковой карты/линейный вход или розовый шум (полезно для тестирования).
Нажмите кнопку Run на интерфейсе пользователя, чтобы начать потоковую передачу и услышать эффект фазера.
Вы можете обнаружить, что отсев звука происходит при использовании большего количества пробок или высоких настроек скорости. Один из способов работы вокруг этого - генерировать плагин VST, чтобы занять место части кода, которая выполняет фактическую обработку звука. Переключите раскрывающийся список Run As на подключаемый модуль VST. При выполнении моделирования сейчас будет сгенерирован и загружен обратно в MATLAB плагин VST для использования в моделировании.
Чтобы сгенерировать и подключить плагин VST к цифровой звуковой рабочей станции, нажмите кнопку Generate VST 2 Audio Plugin на панели инструментов стенда аудиотестирования или запустите generateAudioPlugin команда.
generateAudioPlugin audiopluginexample.Phaser