exponenta event banner

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';

См. раздел Внешние аудиоплагины хоста для обсуждения режимов отображения и обхода обоих режимов взаимодействия.

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

Обработка звука

  • audioOut = process(hostedPlugin,audioIn)

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

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

  • value = getParameter(hostedPlugin,parameter)

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

  • setParameter(hostedPlugin,parameter,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)

Загрузите подключаемый модуль источника 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)

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

свернуть все

Расположение внешнего подключаемого модуля, указанного как символьный вектор. Используйте полный путь для указания аудиоплагина, который требуется разместить в 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 класс. Вы можете взаимодействовать с размещенным плагином как DAW будет, с дополнительными функциональными возможностями среды MATLAB.

Ограничения

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

Представлен в R2016b