loadAudioPlugin

Загрузка плагинов VST, VST3 и AU в окружение MATLAB

Описание

пример

hostedPlugin = loadAudioPlugin(pluginpath) загружает 64-разрядный аудиоплагин VST, VST3 или AU, заданный pluginpath. В Windows®, можно загрузить VST и VST3 плагины. На macOS можно загрузить AU, VST и VST3 плагины.

Ваш размещенный плагин имеет два режима отображения: Parameters и Properties. Режим отображения по умолчанию Properties.

  • Parameters - Взаимодействуйте с нормированными значениями параметров размещенного плагина, используя функции set и get.

  • Properties - Взаимодействие с эвристически интерпретированными параметрами с реальными значениями. Вы можете использовать стандартную запись через точку, чтобы задать и получить значения во время использования этого режима.

Можно задать режим отображения размещенного плагина с помощью стандартной записи через точку, например:

hostedPlugin.DisplayMode = 'Parameters';

Для получения информации о режимах отображения и прохождении обоих режимов взаимодействия см. Host External Audio Plugins.

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

Обработка аудио

  • audioOut = process(hostedPlugin, audioIn)

    Возвращает аудиосигнал, обработанный в соответствии с алгоритмом и параметрами размещенного плагина. Для исходных плагинов звоните process без аудио входа.

Установите и получите нормированные значения параметров

  • значение = getParameter(hostedPlugin, параметр)

    Возвращает нормированное значение указанного параметра размещенного плагина. Нормированные значения находятся в области значений [0,1]. Можно задать параметр по его имени или по его индексу. Чтобы задать имя, используйте вектор символов.

  • setParameter(hostedPlugin, параметр, newValue)

    Устанавливает нормированное значение указанного параметра размещенного плагина равным newValue. Нормированные значения находятся в области значений [0,1].

Получение высокоуровневой информации о размещенном плагине

  • dispParameter(hostedPlugin)

    Отображает все параметры и связанные индексы, значения, отображаемые значения и метки отображения размещенного плагина.

  • pluginInfo = info(hostedPlugin)

    Возвращает структуру, содержащую информацию о размещенном плагине.

Установите Окружение, в которой запускается плагин

  • frameSize = getSamplesPerFrame(hostedPlugin)

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

  • setSamplesPerFrame(hostedPlugin, frameSize)

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

  • setSampleRate(hostedPlugin, sampleRate)

    Устанавливает частоту дискретизации размещенного плагина.

  • sampleRate = getSampleRate(hostedPlugin)

    Возвращает частоту дискретизации в Гц, с которой запускается плагин.

Примеры

свернуть все

Использование loadAudioPlugin для размещения внешнего плагина VST и внешнего плагина источника VST в MATLAB ®.

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

oscPluginPath = ...
    fullfile(matlabroot,'toolbox/audio/samples/oscillator.dll');
EQPluginPath = ...
    fullfile(matlabroot,'toolbox/audio/samples/ParametricEqualizer.dll');

Создайте внешние объекты плагина путем вызова loadAudioPlugin для каждого из путей.

hostedSourcePlugin = loadAudioPlugin(oscPluginPath);
hostedPlugin = loadAudioPlugin(EQPluginPath);

Размещенные плагины получают либо от externalAudioPlugin или externalAudioSourcePlugin класс. Потому что oscillator.dll является исходным аудиоплагином, размещенный объект выводится из externalAudioSourcePlugin. Использование class() для проверки классов размещенных плагинов.

class(hostedPlugin)
ans = 
'externalAudioPlugin'
class(hostedSourcePlugin)
ans = 
'externalAudioPluginSource'

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

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

    Frequency: 100 Hz
    Amplitude: 1 AU
     DCOffset: 0 AU
hostedPlugin
hostedPlugin = 
  VST plugin 'ParametricEQ'  2 in, 2 out

              LowPeakGain: 0 dB
       LowCenterFrequency: 100 Hz
               LowQFactor: 2
           MediumPeakGain: 0 dB
    MediumCenterFrequency: 1000 Hz
            MediumQFactor: 2
             HighPeakGain: 0 dB
      HighCenterFrequency: 10000 Hz
              HighQFactor: 2

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

pluginPath = fullfile(matlabroot,'toolbox','audio','samples','ParametricEqualizer.dll');
hostedPlugin = loadAudioPlugin(pluginPath);

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

fileReader = dsp.AudioFileReader('FunkyDrums-44p1-stereo-25secs.mp3');
deviceWriter = audioDeviceWriter('SampleRate',fileReader.SampleRate);
setSampleRate(hostedPlugin,fileReader.SampleRate);

Установите MediumPeakGain свойство -20 дБ.

hostedPlugin.MediumPeakGain = -20;

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

while hostedPlugin.MediumPeakGain < 19
    hostedPlugin.MediumPeakGain = hostedPlugin.MediumPeakGain + 0.04;
    x = fileReader();
    y = process(hostedPlugin,x);
    deviceWriter(y);
end

release(fileReader)
release(deviceWriter)

Загрузите в MATLAB™ плагин VST audio source путем определения его полного пути. Если вы используете 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)

Входные параметры

свернуть все

Расположение внешнего плагина, заданное как вектор символов. Используйте полный путь, чтобы указать аудиоплагин, который вы хотите разместить в MATLAB®. Если плагин расположен в текущей папке, укажите его по имени.

Пример: loadAudioPlugin('coolPlugin.dll')

Пример: loadAudioPlugin('C:\Program Files\VSTPlugins\coolPlugin.dll')

Плагин путь для Mac

Для macOS местоположения плагинов предопределены в зависимости от того, был ли плагин сохранен в системе в целом или для конкретного пользователя.

В этой таблице показаны общесистемные пути.

Тип плагинаПуть
VST2

/Library/Audio/Plug-Ins/VST/coolPlugin.vst

VST3

/Library/Audio/Plug-Ins/VST3/coolPlugin.vst3

AU

/Library/Audio/Plug-Ins/Components/coolPlugin.component

В этой таблице показаны пользовательские пути.

Тип плагинаПуть
VST2

~/Library/Audio/Plug-Ins/VST/coolPlugin.vst

VST3

~/Library/Audio/Plug-Ins/VST3/coolPlugin.vst3

AU

~/Library/Audio/Plug-Ins/Components/coolPlugin.component

Выходные аргументы

свернуть все

Объект внешнего плагина, выведенный из externalAudioPlugin или externalAudioSourcePlugin класс. Вы можете взаимодействовать с размещенным плагином как с ДАУ, с дополнительной функциональностью окружения MATLAB.

Ограничения

loadAudioPlugin функция поддерживает только 64-битные плагины. Вы не можете загрузить 32-битные плагины, используя loadAudioPlugin функция.

Введенный в R2016b