класс externalAudioPluginSource

Базовый класс для внешних плагинов источника аудиосигналов

Описание

externalAudioPluginSource является базовым классом для размещенных плагинов источника аудиосигналов. Когда вы загружаете внешний плагин с помощью loadAudioPlugin, объект того плагина создается, имея externalAudioPlugin или externalAudioPluginSource как базовый класс. Класс externalAudioPluginSource используется, когда внешний аудио плагин является исходным плагином.

Для примера при хостинге аудио плагинов смотрите Хост Внешние Аудио Плагины.

Методы

Унаследованные методы

dispParameterОтобразите информацию сингла или нескольких параметров
getParameterПолучите нормированное значение и информацию о параметре
информацияПолучите информацию о размещенном плагине
процессАудиопоток процесса
setParameterУстановите нормированное значение параметров размещенного плагина
getSampleRateПолучите частоту дискретизации, на уровне которой запущен плагин
setSampleRateУстановите частоту дискретизации, на уровне которой запущен плагин
getSamplesPerFrameВозвратите формат кадра плагином
setSamplesPerFrameУстановите формат кадра, возвращенный плагином (только среда MATLAB)

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

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

Примеры

свернуть все

Загрузите плагин источника аудиосигналов VST в MATLAB® путем определения его полного пути. Если вы используете Mac, заменяете расширение файла .dll на .vst.

pluginPath = fullfile(matlabroot,'toolbox/audio/samples/oscillator.dll');
hostedSourcePlugin = loadAudioPlugin(pluginPath)
hostedSourcePlugin = 

  VST plugin 'oscillator'  source, 1 out, 256 samples

    Frequency: 100 Hz
    Amplitude: 1 AU
     DCOffset: 0 AU

Используйте info, чтобы возвратить информацию о размещенном плагине.

info(hostedSourcePlugin)
ans = 

  struct with fields:

        PluginName: 'oscillator'
            Format: 'VST'
     InputChannels: 0
    OutputChannels: 1
         NumParams: 3
        PluginPath: 'E:\jobarchive\Bdoc19a\2018_08_10_h18m20s48_job932282_pass\matlab\toolbox\audio\samples\oscillator.dll'
        VendorName: ''
     VendorVersion: 'V1.0.0'
          UniqueId: 'MWap'

Используйте setParameter, чтобы изменить нормированное значение параметра Frequency к 0,8. Задайте параметр его индексом.

setParameter(hostedSourcePlugin,1,0.8)

Когда вы устанавливаете нормированное значение параметров, значение отображения параметра автоматически обновляется. Обычно нормированное значение параметров соответствует положению виджета пользовательского интерфейса или MIDI-контроллера. Значение отображения параметра обычно отражает значение, используемое внутренне плагином для обработки.

Используйте dispParameter, чтобы отобразить обновленную таблицу параметров.

dispParameter(hostedSourcePlugin)
         Parameter    Value    Display
        _______________________________
     1   Frequency:   0.8000   1741.101 Hz
     2   Amplitude:   0.1000      1.000 AU
     3   DC Offset:   0.5000      0.000 AU

Также можно использовать getParameter, чтобы возвратить нормированное значение одного параметра.

getParameter(hostedSourcePlugin,1)
ans =

    0.8000

Загрузите плагин источника аудиосигналов VST в MATLAB™ путем определения его полного пути. Если вы используете Mac, заменяете расширение файла .dll на .vst.

pluginPath = fullfile(matlabroot,'toolbox','audio','samples','oscillator.dll');
hostedSourcePlugin = loadAudioPlugin(pluginPath);

Установите свойство Amplitude на 0,5. Установите свойство Frequency на 16 кГц.

hostedSourcePlugin.Amplitude = 0.5;
hostedSourcePlugin.Frequency = 16000;

Установите частоту дискретизации, на уровне которой можно запустить плагин. Создайте выходной объект записать в ваше аудио устройство.

setSampleRate(hostedSourcePlugin,44100);
deviceWriter = audioDeviceWriter('SampleRate',44100);

Используйте размещенный исходный плагин, чтобы вывести аудиопоток. Обработка в цикле аудиопотока сползает параметр частоты вниз и затем.

k = 1;
for i = 1:1000
    hostedSourcePlugin.Frequency = hostedSourcePlugin.Frequency - 30*k;
    y = process(hostedSourcePlugin);
    deviceWriter(y);
    if (hostedSourcePlugin.Frequency - 30 <= 0.1) || ...
            (hostedSourcePlugin.Frequency + 30 >= 20e3)
        k = -1*k;
    end
end

release(deviceWriter)

Введенный в R2017b