audioPlugin class

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

Описание

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

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

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

Для примера при разработке аудио плагинов смотрите Аудио Плагины в 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++ с помощью MATLAB® Coder™.

Введенный в R2016a