Audio Toolbox™ поддерживает несколько подходов для разработки алгоритмов обработки аудиоданных. Два общих подхода включают процедурное программирование с помощью скриптов MATLAB® и использования объектно-ориентированного программирования классы MATLAB. Аудио сменный класс является предложенной парадигмой для разработки вашего алгоритма обработки аудиоданных в Audio Toolbox. Смотрите Аудио Плагины в MATLAB для примера на структуре, преимуществах и использовании аудио плагинов.
Этот пример представляет существующий алгоритм, разработанный как скрипт MATLAB, и затем идет через шаги, чтобы преобразовать скрипт в аудио сменный класс. Используйте этот пример, чтобы изучить отношение между процедурным программированием и объектно-ориентированным программированием. Можно также использовать этот пример в качестве шаблона, чтобы преобразовать любую обработку аудиоданных, которую вы разработали как скрипты MATLAB к аудио сменной парадигме.
Скрипт MATLAB имеет эти разделы:
Переменная Инициализация. Переменные инициализируются с известными значениями, включая количество выборок на систему координат (frameSize
) для основанной на системе координат потоковой обработки.
Объектная конструкция.
Два audioOscillator
Системные объекты – Построение, чтобы создать изменяющиеся во времени управляющие сигналы усиления.
dsp.AudioFileReader
Системный объект – Построение, чтобы считать звуковой сигнал из файла.
audioDeviceWriter
Системный объект – Построение, чтобы записать звуковой сигнал в ваше аудио устройство по умолчанию.
Цикл Аудиопотока. Стереоканалы смесей в моно сигнал. Моно сигнал используется, чтобы создать новый сигнал стерео. Каждый канал нового сигнала стерео колеблется в прикладном усилении между 0 и 2 с соответствующим сдвигом фазы на 90 градусов.
Этот пример преобразует скрипт MATLAB в аудио сменный класс на шести шагах. Вы начинаете путем создания скелета основного аудио сменного класса, и затем сопоставляете разделы скрипта MATLAB к аудио сменному классу.
Для обзора того, как скрипт MATLAB преобразован в сменный класс, смотрите скрипт к сменному визуальному отображению. Чтобы выполнить это преобразование, идите через пример для объяснений и постепенных инструкций.
Начните с основного скелета аудио сменного класса. Этот скелет не является требуемым минимумом, но общим минимумом, чтобы создать интересный аудио плагин. Смотрите Аудио Плагины в MATLAB для минимальных требований, чтобы создать основной аудио плагин.
Свойства позволяют плагину хранить информацию через разделы сменного определения класса. Если свойству установили доступ на частный, свойство не доступно конечному пользователю плагина. Переменная инициализация в скрипте сопоставляет со сменными свойствами.
Допустимый плагин должен позволить вход process
метод, чтобы иметь переменный формат кадра. Формат кадра определяется для каждого входного кадра в process
метод плагина. Поскольку формат кадра используется только в process
метод, вы не объявляете его в разделе свойств.
Допустимый аудио плагин должен позволить вход process
метод, чтобы иметь переменную частоту дискретизации. reset
метод плагина называется когда изменения среды частота дискретизации. Определите частоту дискретизации в reset
метод с помощью getSampleRate
метод наследован от audioPlugin
базовый класс.
Объекты, используемые плагином, как должны объявлять, как свойства используются в нескольких разделах плагина. Однако метод конструктора плагина выполняет объектную конструкцию.
Добавьте метод конструктора для раздела методов вашего аудио плагина. Метод конструктора плагина имеет форму:
function plugin = myPluginClassName % Instructions to construct plugin object. end
В этом примере вы создаете Sine
и Cosine
объекты в методе конструктора плагина.
reset
метод плагина называется каждый раз, когда новый сеанс запускается с плагина, или когда частота дискретизации изменений среды. Используйте reset
метод, чтобы обновить SampleRate
свойство вашего Sine
и Cosine
объекты. Чтобы запросить частоту дискретизации, используйте getSampleRate
метод базового класса.
Содержимое цикла аудиопотока в скрипте сопоставляет с process
метод аудио плагина, с этими различиями:
Допустимый аудио плагин должен принять переменный формат кадра, таким образом, формат кадра вычисляется для каждого вызова process
метод. Поскольку формат кадра является переменным, любой обрабатывающий, который использует формат кадра, должен обновиться, когда размер входного кадра изменяется.
Среда обрабатывает ввод и вывод к process
метод.
Сменный интерфейс позволяет пользователям просмотреть плагин и настроить его свойства. Задайте PluginInterface
как audioPluginInterface
объект, который содержит audioPluginParameter
объект. Первый аргумент audioPluginParameter
свойство, которое вы хотите синхронизировать с настраиваемым параметром. Выберите имя отображения, пометьте модули и установите область значений параметра. Этот пример использует 0.1 для 10 как разумная область значений для Frequency
свойство. Запишите код так, чтобы во время каждого вызова process
метод, ваш Sine
и Cosine
объекты обновляются со значением частоты тока.
Если ваше аудио сменное определение класса завершено:
Сохраните свой сменный файл определения класса.
Подтвердите свой плагин с помощью validateAudioPlugin
.
Моделируйте его с помощью Audio Test Bench.
Сгенерируйте использует generateAudioPlugin
.