audioPlugin class

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

Описание

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

Унаследовать от audioPlugin непосредственно базовый класс, введите этот синтаксис как первую линию вашего файла определения класса:

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

Для получения руководства о разработке аудиоплагинов, смотрите Audio Plugins в MATLAB.

Методы

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

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

Указатель. Чтобы узнать, как классы handle влияют на операции копирования, см. раздел «Поведение объекта».

Примеры

свернуть все

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

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

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

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

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

classdef myAudioPlugin < audioPlugin
end

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

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 в галерее Audio Plugin Example.

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2016a