audioPlugin class

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

Описание

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

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

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

Для примера при разработке аудио плагинов смотрите Аудио Плагины в MATLAB.

Методы

getSampleRateПолучите частоту дискретизации, на уровне которой запущен плагин
setSampleRateУстановите частоту дискретизации, на уровне которой запущен плагин

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

Указатель. Чтобы изучить, как классы Handle влияют на операции копии, смотрите Поведение объекта (MATLAB) в документации MATLAB®.

Примеры

свернуть все

Спроектируйте допустимый основной аудио сменный класс

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

  • Допустимый аудио плагин является тем, который может быть развернут в среде цифровой звуковой рабочей станции (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

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

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

Введенный в R2016a