exponenta event banner

Звуковой фазер с использованием многополосного параметрического эквалайзера

В этом примере показано, как реализовать эффект «фазера» звука в реальном времени, который может быть настроен пользовательским интерфейсом (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

Вы можете обнаружить, что отсев звука происходит при использовании большего количества пробок или высоких настроек скорости. Один из способов работы вокруг этого - генерировать плагин VST, чтобы занять место части кода, которая выполняет фактическую обработку звука. Переключите раскрывающийся список Run As на подключаемый модуль VST. При выполнении моделирования сейчас будет сгенерирован и загружен обратно в MATLAB плагин VST для использования в моделировании.

Создать аудиоплагин

Чтобы сгенерировать и подключить плагин VST к цифровой звуковой рабочей станции, нажмите кнопку Generate VST 2 Audio Plugin на панели инструментов стенда аудиотестирования или запустите generateAudioPlugin команда.

generateAudioPlugin audiopluginexample.Phaser