Main Content

audioPluginConfig

Specify coder configuration of audio plugin

Since R2021b

Description

The audioPluginConfig object enables you to validate and generate audio plugins that use deep learning pretrained networks. This object also allows you to pass code replacement libraries to the generateAudioPlugin function.

Creation

Description

obj = audioPluginConfig(Name,Value) creates an object that describes the coder configuration for your audio plugin. Use name-value arguments to specify the properties of the object.

This object generates a constant property called PluginConfig for audio plugin classes. Use the audioPluginConfig object if your plugin uses deep learning networks or a code replacement library.

example

Properties

expand all

Deep learning library configuration, specified as an empty array ([]), coder.DeepLearningConfig("none"), or coder.DeepLearningConfig("mkldnn").

You can also use the generateAudioPlugin user interface (UI) to specify the deep learning library for plugin generation.

Value

generateAudioPlugin UI Setting

Description

[]Set Deep learning library to NoneDo not use a deep learning library.
coder.DeepLearningConfig("none")Set Deep learning library to Plain CGenerate code that does not use any third-party library.
coder.DeepLearningConfig("mkldnn")Set Deep learning library to Intel MKL-DNN

Generate code that uses the Intel® Math Kernel Library for Deep Neural Networks (Intel MKL-DNN). This option does not work on Macintosh platforms using ARM® processors. This option is not supported with the -win32 option of the generateAudioPlugin function.

  • On Intel Macintosh platforms, generateAudioPlugin packages the required libraries (libdnnl.1.4.dylib, libdnnl.1.dylib, libdnnl.dylib, and libomp.dylib) within the generated plugin bundle. The path to required the libraries is set to the INTEL_MKLDNN environment variable. You must install the libraries. To distribute the generated plugin, you must have licenses to distribute the Intel MKL-DNN and OpenMP libraries.

  • On Microsoft® Windows® platforms, generateAudioPlugin creates upon compilation a folder named pluginName_format_NetworkWeights in the build directory, where pluginName is the name of the plugin and format is vst, vst3, or juce_project. The folder contains the network weight files that are read by the generated plugin. When you add the generated plugin to a third-party DAW, you must copy the generated folder along with the plugin binary to your DAW's plugin location. The generated plugin will work in a DAW only if the required library MKL-DNN is visible to the DAW. To make the MKL-DNN library visible to a DAW, you must add the path to the MKL-DNN library to the Windows environment variable PATH.

  • On Linux® platforms, generateAudioPlugin creates upon compilation a folder named .MWPluginData/pluginName_juceproject_NetworkWeights in your home directory. The folder contains the network weight files that are read by the generated plugin. The generated plugin will work in a DAW only if the required library MKL-DNN is visible to the DAW. To make the MKL-DNN library visible to a DAW, you must keep the MKL-DNN library in the /usr/lib directory or in the /usr/local/lib directory.

For more information about installing the MKL-DNN library and setting the related environment variables, see Prerequisites for Deep Learning with MATLAB Coder (MATLAB Coder).

This option is not supported in MATLAB® Online™.

You must have MATLAB Coder™ Interface for Deep Learning installed to use this property unless you choose the [] option. For more information, see coder.DeepLearningConfig (MATLAB Coder).

Code replacement library configuration, specified as an empty string (""), "none", "Intel AVX (Windows)", "DSP Intel AVX2-FMA (Windows)", "DSP Intel AVX2-FMA (Linux)", or "DSP Intel AVX2-FMA (Mac)".

You can also use the generateAudioPlugin user interface (UI) to specify the code replacement library for plugin generation.

Value

generateAudioPlugin UI Setting

Description

"" or "none"Set Code replacement library to NoneDo not use a code replacement library.
"Intel AVX (Windows)"Set Code replacement library to Intel AVX (Windows)Generate code that uses the Intel AVX code replacement library. This option works only on Windows platforms. This option is not supported with the -win32 option of the generateAudioPlugin function.
"DSP Intel AVX2-FMA (Windows)"Set Code replacement library to DSP Intel AVX2-FMA (Windows)Generate code that uses the Intel DSP AVX2-FMA code replacement library. This option works only on Windows platforms. This option is not supported with the -win32 option of the generateAudioPlugin function.
"DSP Intel AVX2-FMA (Linux)"Set Code replacement library to DSP Intel AVX2-FMA (Linux)Generate a JUCE project that uses the Intel DSP AVX2-FMA code replacement library for Linux platforms. This option works only with the -juceproject option of the generateAudioPlugin function.
"DSP Intel AVX2-FMA (Mac)"Set Code replacement library to DSP Intel AVX2-FMA (Mac)Generate code that uses the Intel DSP AVX2-FMA code replacement library. This option works only on Intel Mac platforms.

You must have Embedded Coder® installed to use this property. For more information about code replacement libraries, see What Is Code Replacement Customization? (Embedded Coder). For more information on using the DSP AVX2-FMA code replacement libraries with System objects, see System objects in DSP System Toolbox that Support SIMD Code Generation.

Examples

collapse all

Create the source file for a plugin class, MyAudioPlugin, that uses the Intel AVX code replacement library for Windows. Add a processing function to the class.

classdef MyAudioPlugin < audioPlugin
    properties (Constant)
        PluginConfig = audioPluginConfig( ...
            'DeepLearningConfig',coder.DeepLearningConfig('none'), ...
            'CodeReplacementLibrary','Intel AVX (Windows)');
    end
    methods
        function out = process(~,in)
            out = in;
        end
    end
end

To validate the plugin, use the validateAudioPlugin function. To generate the plugin, use the generateAudioPlugin function.

Create a DeepLearningConfigBase configuration object that generates code that does not use any third-party library. Use the audioPluginConfig object to specify a plugin that incorporates the previous property and uses the Intel AVX code replacement library for Windows. Generate the audio plugin.

dlcfg = coder.DeepLearningConfig('none');
cfg = audioPluginConfig( ...
    'DeepLearningConfig',dlcfg, ...
    'CodeReplacementLibrary','Intel AVX (Windows)');
generateAudioPlugin -audioconfig cfg MyAudioPlugin

Version History

Introduced in R2021b