exponenta event banner

класс audioPlugin

Базовый класс для аудиоплагинов

Описание

audioPlugin является базовым классом для аудиоплагинов. В файле определения класса необходимо выполнить подкласс объекта из этого базового класса или из audioPluginSource класс, который наследует от audioPlugin. Подкласс позволяет наследовать атрибуты, необходимые для создания подключаемых модулей и доступа к функциям Audio Toolbox™.

Наследование от audioPlugin непосредственно для базового класса введите этот синтаксис в качестве первой строки файла определения класса:

classdef myAudioPlugin < audioPlugin
myAudioPlugin - имя объекта.

Руководство по проектированию аудиоплагинов см. в разделе Аудиоплагины в MATLAB.

Методы

getSampleRateПолучить частоту выборки, с которой запускается подключаемый модуль
setLatencyInSamplesУстановка задержки в выборках, отправленных в DAW
setSampleRateЗадать частоту выборки, с которой запускается подключаемый модуль

Копирование семантики

Ручка. Сведения о том, как классы обработки влияют на операции копирования, см. в разделе Поведение объектов.

Примеры

свернуть все

Создайте действительный базовый класс аудиоплагина.

Терминология:

  • Действительный аудиоплагин - это плагин, который может быть развернут в среде цифровой звуковой рабочей станции (DAW). Чтобы проверить его, используйте validateAudioPlugin функция. Чтобы создать его, используйте generateAudioPlugin функция.

  • Основной аудиоплагин наследует от audioPlugin класс, но не matlab.System класс.

Определите базовый класс аудиоплагина, который наследует от audioPlugin.

classdef myAudioPlugin < audioPlugin
end

Добавьте функцию обработки в класс плагинов. Все допустимые аудиоплагины включают в себя функцию обработки. Для базовых аудиоплагинов функция обработки называется process. Функция обработки - это место, где происходит обработка звука. Он всегда имеет выход.

classdef myAudioPlugin < audioPlugin
    methods
        function out = process(~,in)
            out = in;
        end
    end
end

Проектирование audioPlugin класс, который использует getSampleRate метод для получения частоты выборки, с которой выполняется плагин. Плагин в этом примере, simpleStrobe, использует частоту дискретизации для определения постоянного периода строба 50 мс.

classdef simpleStrobe < audioPlugin
    % simpleStrobe Add audio strobe effect
    %   Add a strobe effect by gain switching between 0 and 1 in
    %   50 ms increments.  Although the input sample rate can change,
    %   the strobe period remains constant.
    %
    %   simpleStrobe properties:
    %   period	- Number of samples between gain switches
    %   gain	- Gain multiplier, one or zero
    %   count	- Number of samples since last gain switch
    %
    %
    %   simpleStrobe methods:
    %   process	- Multiply input frame by gain, element by element
    %   reset	- Reset count and gain to initial conditions 
    %             and get sample rate

    properties
        Period = 44100*0.05;
        Gain = 1;
    end
    properties (Access = private)
        Count = 1;
    end
    methods
        function out = process(plugin,in)
            for i = 1:size(in,1)
                if plugin.Count == plugin.Period
                    plugin.Gain = 1 - plugin.Gain;
                    plugin.Count = 1;
                end
                in(i,:) = in(i,:)*plugin.Gain;
                plugin.Count = plugin.Count + 1;
            end
            out = in;
        end
        function reset(plugin)
            plugin.Period = floor( getSampleRate(plugin)*0.05 );
            plugin.Count = 1;
            plugin.Gain = 1;
        end
    end
end

Проектирование audioPlugin класс, который использует setLatencyInSamples метод для сообщения о задержке плагина. Плагин в этом примере, simpleDelayзадерживает звуковой сигнал на фиксированное целое число и сообщает о задержке в главное приложение.

classdef simpleDelay < audioPlugin
    % simpleDelay Add delay to audio signal
    %   This plugin adds a 100 sample delay to the audio input and reports
    %   the latency to the host application.
    properties (Access = private)
        Delay
    end
    methods
        function plugin = simpleDelay
            plugin.Delay = dsp.Delay(100);
        end
        function out = process(plugin,in)
            out = plugin.Delay(in);
        end
        function reset(plugin)
            setLatencyInSamples(plugin,100)
        end
    end
end

В этом примере показан шаблон для использования setLatencyInSamples. Подробные сведения об использовании см. в разделе audiopluginexample.FastConvolver в коллекции примеров аудиоплагинов.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2016a