文档

audioPluginParameter

指定音频插件参数

语法

pluginParameter = audioPluginParameter(属性名)
pluginParameter = audioPluginParameter(propertyName,Name,Value)

描述

例子

pluginParameter = audioPluginParameterpropertyName返回一个对象,pluginParameter指定的音频插件属性关联一个音频插件参数propertyName.使用插件参数对象,pluginParameter,作为一个论据audioPluginInterface函数在插件类定义中。

在数字音频工作站(DAW)环境中,或在使用时音频测试台在MATLAB中®环境、插件参数是可调的、面向用户的变量,其定义的范围映射到控件。当您使用控件修改参数值时,关联的插件属性也会被修改。如果插件的音频处理算法依赖于属性,算法也会被修改。

要可视化插件属性、参数和运行插件的环境之间的关系,请参见音频插件参数的实现

例子

pluginParameter = audioPluginParameterpropertyName名称,值指定audioPluginParameter属性使用一个或多个名称,值对参数。

例子

全部折叠

创建一个基本音频插件类定义文件。指定一个属性,获得,以及将输入乘以的处理函数获得

classdefmyAudioPlugin < audioPlugin属性增益= 1;结束方法函数out = process(plugin,in) out = in*plugin. gain;结束结束结束

添加一个常数属性,PluginInterface,它被指定为audioPluginInterface对象。

classdefmyAudioPlugin < audioPlugin属性增益= 1;结束属性(常量)PluginInterface = audioPluginInterface;结束方法函数out = process(plugin,in) out = in*plugin. gain;结束结束结束

通过audioPluginParameteraudioPluginInterface.要关联插件属性,获得的第一个参数audioPluginParameter作为属性名,“获得”

classdefmyAudioPlugin < audioPlugin属性增益= 1;结束属性(常量)PluginInterface = audioPluginInterface(audioPluginParameter (“获得”));结束方法函数out = process(plugin,in) out = in*plugin. gain;结束结束结束

创建一个基本插件类定义文件。指定“DisplayName的”作为“了不起的增益”“标签”作为“线性”,“映射”作为{20}“林”,0,

classdefmyAudioPlugin < audioPlugin属性增益= 1;结束属性(常量)PluginInterface = audioPluginInterface(audioPluginParameter (“获得”“DisplayName的”“了不起的增益”“标签”“线性”“映射”, {“林”0 20}));结束方法函数out = process(plugin,in) out = in*plugin. gain;结束结束结束

下面的类定义使用整型参数映射来定义属性和参数之间的关系。您可以使用从这个类创建的插件来以整数步从0到3来调整音频信号的线性增益。

classdefpluginWithIntegerMapping < audioPlugin属性增益= 1;结束属性(常量)PluginInterface = audioPluginInterface(audioPluginParameter (“获得”“映射”, {“int”0 3}));结束方法函数out = process(plugin,in) out = in*plugin. gain;结束结束结束

要运行插件,请将类定义保存到本地文件夹中,然后调用音频测试台

audioTestBench (pluginWithIntegerMapping)

下面的类定义使用幂参数映射来定义属性和参数之间的关系。您可以使用从这个类创建的插件来调整以dB为单位的音频信号的增益。

classdefpluginWithPowerMapping < audioPlugin属性增益= 0;结束属性(常量)PluginInterface = audioPluginInterface(audioPluginParameter (“获得”“标签”“数据库”“映射”, {“战俘”, 1/3, -140, 12});结束方法函数out = process(plugin,in) dBGain = 10^(plugin. gain /20);out = in*dBGain;结束结束结束

要运行插件,请将类定义保存到本地文件夹中,然后调用音频测试台

audioTestBench (pluginWithPowerMapping)

下面的类定义使用对数参数映射来定义属性和参数之间的关系。您可以使用从该类创建的插件来调整单波段EQ滤波器的中心频率,从100到10000。

classdefpluginWithLogMapping < audioPlugin属性EQ CenterFrequency = 1000;结束属性(常量)PluginInterface = audioPluginInterface(audioPluginParameter (“CenterFrequency”“映射”, {“日志”、100、10000}));结束方法函数plugin = pluginWithLogMapping插件。EQ = multibandParametricEQ(“NumEQBands”, 1“PeakGains”, 20岁,“频率”, plugin.CenterFrequency);结束函数out = process(plugin,in) out = plugin. eq (in);结束函数set.CenterFrequency(插件,val)插件。CenterFrequency = val;plugin.EQ.Frequencies = val;结束函数reset(plugin) plugin. eq . samplerate = getSampleRate(plugin);结束结束结束

要运行插件,请将类定义保存到本地文件夹中,然后调用音频测试台

audioTestBench (pluginWithLogMapping)

下面的类定义使用枚举参数映射来定义属性和参数之间的关系。您可以使用从这个类创建的插件来阻止或通过音频信号透传参数。

classdefpluginWithLogicalEnumMapping < audioPlugin属性PassThrough = true;结束属性(常量)PluginInterface = audioPluginInterface(audioPluginParameter (“透传”“映射”, {“枚举”“块信号”“通过”}));结束方法函数Out =进程(插件,in)如果插件。通过Through out = in;其他的Out = 0 (size(in));结束结束结束结束

要运行插件,请将类定义保存到本地文件夹中,然后调用音频测试台

audioTestBench (pluginWithLogicalEnumMapping)

下面的类定义包含枚举类定义的属性的枚举参数映射的简单示例。方法来指定从该类创建的插件的操作模式模式参数。

插件类定义

classdefpluginWithEnumMapping < audioPlugin属性Mode = operationmode .boost;结束属性(常量)PluginInterface = audioPluginInterface(audioPluginParameter (“模式”“映射”, {“枚举”“+ 6 dB”“6 dB”“沉默”“白噪音”}));结束方法函数Out =进程(插件,in)开关(plugin.Mode)情况下OperatingMode。Boost out = in * 2;情况下OperatingMode。Cut out = in / 2;情况下OperatingMode。米uteOut = 0 (size(in));情况下OperatingMode。Noise out = rand(size(in)) - 0.5;否则Out = in;结束结束结束结束

枚举类定义

classdefOperatingMode < int8枚举升压(0)切断(1)静音(2)噪声(3)结束结束

要运行插件,请将插件和枚举类定义文件保存到本地文件夹中。然后打电话给音频测试台在插件类上。

audioTestBench (pluginWithEnumMapping)

输入参数

全部折叠

要与参数关联的音频插件属性的名称,指定为字符向量。输入属性名称,与在音频插件类的属性部分中定义的完全相同。

名称-值对参数

指定可选的逗号分隔对名称,值参数。名字是参数名和吗价值是对应的值。名字必须出现在单引号内(' ')。可以以任意顺序指定多个名称和值对参数,如Name1, Value1,…,的家

例子:DisplayName’,‘得到’,‘标签’,“数据库”将参数的显示名称指定为“获得”而参数值的显示标签单位为“数据库”

全部折叠

参数的显示名称,指定为由“DisplayName的”还有一个字符向量。如果“DisplayName的”未指定,则使用关联属性的名称。

参数的显示名称在数字音频工作站(DAW)环境中使用音频测试台在MATLAB环境下。

显示参数值单位的标签,指定为由逗号分隔的对“标签”还有一个字符向量。

参数值单位的显示标签用于数字音频工作站(DAW)环境,并在使用时使用音频测试台在MATLAB环境下。

“标签”非数值参数忽略名称-值对。

属性和参数范围之间的映射,指定为由逗号分隔的对“映射”还有一个单元格数组。

参数范围映射指定属性和相关参数范围之间的映射。

cell数组的第一个元素是指定映射类型的字符向量。有效值为“林”“日志”“战俘”“int”,“枚举”.单元格数组的后续元素取决于映射的类型。有效的映射取决于属性数据类型。

属性数据类型 有效的映射 默认的
“林”“日志”“战俘”“int” {“林”01}
逻辑 “枚举” {“枚举”“关闭”“上”}
枚举类 “枚举” 枚举的名字
映射 描述 例子
“林”

指定与给定最小值和最大值的线性关系。

p r o p e r t y v 一个 l u e = 最小值 + 马克斯 最小值 × p 一个 r 一个 e t e r v 一个 l u e

{“林”024}指定最小值为0,最大值为24的线性关系。

简单的例子:指定参数信息

“日志”

指定给定最小值和最大值的对数关系,其中控件位置映射到属性值的对数。最小值必须大于0

p r o p e r t y v 一个 l u e = 最小值 × 马克斯 / 最小值 p 一个 r 一个 e t e r v 一个 l u e

{“日志”122050}表示对数关系,最小值为1,最大值为22050。

简单的例子:对数参数映射

“战俘”

指定与给定指数、最小值和最大值的幂律关系。属性值与提升到指数的控件位置相关:

p r o p e r t y v 一个 l u e = 最小值 + 马克斯 最小值 × p 一个 r 一个 e t e r v 一个 l u e 经验值

{“战俘”1/3-140年12}指定指数为1/3,最小值为-140,最大值为12的幂律关系。

简单的例子:电源参数映射

“int”

量化控制位置并将其映射到具有给定最小值和最大值的连续整数范围。

p r o p e r t y v 一个 l u e = f l o o r 0.5 + 最小值 + 马克斯 最小值 × p 一个 r 一个 e t e r v 一个 l u e

{“int”03.}指定一个最小值为0,最大值为3的线性量化关系。属性值被映射为0到3范围内的整数。

简单的例子:整数参数映射

“枚举”(逻辑)

可选地提供用于在插件对话框上显示的字符向量。

{“枚举”、“块信号”,“透传”}指定字符向量。“块信号”如果参数值为“透传”如果参数值为真正的

简单的例子:逻辑属性参数映射的枚举

“枚举”(枚举类)

可选地为枚举类的成员提供字符向量。

{“枚举”“+ 6 dB”“6 dB”“沉默”“白噪音”}指定字符向量“+ 6 dB”“6 dB”“沉默”,“白噪音”

简单的例子:'enum'用于枚举类参数映射

有关音频插件参数映射的重要示例,请参见音频插件示例库

更多关于

全部折叠

音频插件参数的实现

音频插件参数在MATLAB和数字音频工作站(DAW)环境中都是可见和可调的。

MATLAB环境。使用音频测试台在MATLAB环境中与插件参数交互。

寒鸦环境。使用generateAudioPlugin将音频插件部署到DAW环境。DAW环境确定插件用户看到的插件参数的确切布局。

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

在R2016a中引入

这个话题有帮助吗?