Основанные на задержке звуковые эффекты

В этом примере показано, как спроектировать и использовать три звуковых эффекта, которые основаны на различной задержке: отзовитесь эхом, хор и фленджер. Пример также показывает, как алгоритмы, разработанные в MATLAB, могут быть легко портированы к Simulink.

Введение

Звуковые эффекты могут быть сгенерированы путем добавления обработанного ('влажного') сигнала в исходный ('сухой') звуковой сигнал. Простой эффект, эхо, добавляет задержанную версию сигнала к оригиналу. Более комплексные эффекты, как хор и фленджер, модулируют задержанную версию сигнала.

Эхо

Можно смоделировать эффект эха путем задержания звукового сигнала и добавления его назад. Обратная связь часто добавляется к линии задержки, чтобы дать исчезающий эффект. Эффект эха реализован в audioexample.Echo классе. Блок-схема показывает высокоуровневую реализацию эффекта эха.

Пример эффекта эха имеет четыре настраиваемых параметра, которые могут быть изменены, в то время как симуляция запускается:

  • Задержка - Задержка применилась к звуковому сигналу в секундах

  • Усиление - Линейное усиление задержанного аудио

  • FeedbackLevel - Усиление обратной связи применяется к линии задержки

  • WetDryMix - Отношение влажного сигнала добавляется к сухому сигналу

Можно испытать audioexample.Echo путем выполнения audioDelayEffectsExampleApp с 'echo' как введено. Пример читает звуковой сигнал из файла, применяет эффект эха, и затем проигрывает обработанный сигнал через ваше устройство аудиовыхода. Это также запускает пользовательский интерфейс, который позволяет вам настраивать параметры эффекта эха. Можно передать дополнительный аргумент, который определяет длительность, чтобы проигрывать аудио.

duration = 30; % in seconds
audioDelayEffectsExampleApp('echo',duration);

Хор

Эффект хора обычно имеет несколько независимых задержек, каждый модулируемый низкочастотным генератором. audioexample.Chorus реализует этот эффект. Блок-схема показывает высокоуровневую реализацию эффекта хора.

Пример эффекта хора имеет шесть настраиваемых параметров, которые могут быть изменены, в то время как симуляция запускается:

  • Delay - Основная задержка применилась к звуковому сигналу в секундах

  • Depth 1 - Амплитуда модулятора применилась к первой ветви задержки

  • Rate 1 - Частота модулятора применилась к первой ветви задержки в Гц

  • Depth 2 - Амплитуда модулятора применилась к второй ветви задержки

  • Rate 2 - Частота модулятора применилась к второй ветви задержки в Гц

  • WetDryMix - Отношение влажного сигнала добавляется к сухому сигналу

Можно испытать audioexample.Chorus путем выполнения audioDelayEffectsExampleApp с 'chorus' как введено. Пример читает звуковой сигнал из файла, применяет эффект хора, затем проигрывает обработанный сигнал через ваше устройство аудиовыхода. Это также запускает пользовательский интерфейс, который позволяет вам настраивать параметры эффекта хора. Можно передать дополнительный аргумент, который определяет длительность, чтобы проигрывать аудио.

duration = 30; % in seconds
audioDelayEffectsExampleApp('chorus',duration);

Фленджер

Можно смоделировать эффект фланжирования путем задержки аудиовхода суммой, которая модулируется низкочастотным генератором (LFO). Линия задержки, используемая во фленджере, может также иметь путь к обратной связи. audioexample.Flanger реализует этот эффект. Блок-схема показывает высокоуровневую реализацию эффекта фленджера.

Пример эффекта фленджера имеет пять настраиваемых параметров, которые могут быть изменены, в то время как симуляция запускается:

  • Delay - Основная задержка применилась к звуковому сигналу в секундах

  • Depth - Амплитуда LFO

  • Rate - Частота LFO, в Гц

  • FeedbackLevel - Усиление обратной связи применяется к линии задержки

  • WetDryMix - Отношение влажного сигнала добавляется к сухому сигналу

Можно испытать audioexample.Flanger путем выполнения audioDelayEffectsExampleApp с 'flanger' как введено. Пример читает звуковой сигнал из файла, применяет эффект фленджера, затем проигрывает обработанный сигнал через ваше устройство аудиовыхода. Это также запускает пользовательский интерфейс, который позволяет вам настраивать параметры эффекта фленджера. Второй вход к этой функции является дополнительным, и решает, сколько времени аудио должно проигрываться. Можно передать дополнительный аргумент, который определяет длительность, чтобы проигрывать аудио.

duration = 30; % in seconds
audioDelayEffectsExampleApp('flanger',duration);

Звуковые эффекты в Simulink

Можно использовать Системные объекты audioexample.Echo, audioexample.Chorus и audioexample.Flanger в Simulink при помощи блока MATLAB System (Simulink). Модель audiodelaybasedeffects оказывает эти влияния, готовые к симуляции.

open_system('audiodelaybasedeffects')

Можно выбрать эффект, который будет применен путем двойного клика на блоке Селектора Эффекта.

Если эффект был выбран, можно нажать на кнопку Launch Parameter Tuning UI, чтобы поднять диалоговое окно, которое имеет все настраиваемые параметры эффекта.

Это диалоговое окно останется доступным даже в процессе моделирования. Можно запустить модель и настроить свойства эффекта слушать, как они влияют на аудиовыход.