класс audioPlugin

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

Описание

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

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

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

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

Методы

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