Audio Toolbox™ поддерживает несколько подходов к разработке алгоритмов обработки звука. Два общих подхода включают процедурное программирование с использованием сценариев MATLAB ® и объектно-ориентированное программирование с использованием классов MATLAB. Класс аудиоплагина - это предлагаемая парадигма для разработки алгоритма обработки звука в Audio Toolbox. Руководство по структуре, преимуществам и использованию аудиоплагинов см. в разделе Аудиоплагины в MATLAB.
В этом руководстве представлен существующий алгоритм, разработанный в виде скрипта MATLAB, а затем описаны шаги преобразования скрипта в класс аудиоплагинов. Данное учебное пособие предназначено для изучения взаимосвязи между процедурным и объектно-ориентированным программированием. Вы также можете использовать это учебное пособие в качестве шаблона для преобразования любой обработки звука, разработанной в виде сценариев MATLAB, в парадигму аудиоплагина.
Сценарий MATLAB содержит следующие разделы:
Инициализация переменной. Переменные инициализируются известными значениями, включая количество выборок на кадр (frameSize) для обработки потока на основе кадра.
Строительство объекта.
Два audioOscillator Системные объекты - создание изменяющихся во времени сигналов регулировки усиления.
dsp.AudioFileReader Системный объект -- Конструкция для считывания аудиосигнала из файла.
audioDeviceWriter Системный объект -- Конструкция для записи аудиосигнала на аудиоустройство по умолчанию.
Цикл аудиопотока. Смешивает стереоканалы в моносигнал. Моносигнал используется для создания нового стереосигнала. Каждый канал нового стереосигнала колеблется с приложенным усилением между 0 и 2 с соответствующим сдвигом фазы на 90 градусов.
В этом учебном пособии сценарий MATLAB преобразуется в класс аудиоплагинов за шесть шагов. Сначала необходимо создать скелет базового класса аудиоплагинов, а затем сопоставить разделы сценария MATLAB с классом аудиоплагинов.

Для получения обзора того, как сценарий MATLAB преобразуется в класс плагинов, проверьте визуальное отображение сценария на плагин. Чтобы выполнить это преобразование, просмотрите пример и пошаговые инструкции.

Начните с базового скелета класса аудиоплагинов. Этот скелет является не минимально необходимым, а общим минимумом для создания интересного аудиоплагина. Минимальные требования к созданию базового аудиоплагина см. в разделе Аудиоплагины в MATLAB.
Свойства позволяют подключаемому модулю хранить информацию в разделах определения класса подключаемого модуля. Если для свойства установлен доступ private, свойство недоступно конечному пользователю подключаемого модуля. Инициализация переменной в сценарии сопоставляется со свойствами подключаемого модуля.
Допустимый подключаемый модуль должен разрешать ввод в 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.
Прототип с использованием аудиотестирования.
Создать использует generateAudioPlugin.