音频插件是音频工具箱™中开发音频处理算法的建议范例。一旦设计完成,音频插件就可以验证、生成并部署到第三方数字音频工作站(DAW)。
开发音频处理作为音频插件的额外好处包括:
使用音频测试台上
与MIDI设备集成
代码重用
对MATLAB中的面向对象编程(OOP)有一定的了解®环境需要优化您的音频插件范例的使用。如果你不熟悉这些概念,请看为什么要使用面向对象的设计.
有关在MATLAB环境之外定义的音频插件的回顾,请参阅什么是daw、音频插件和MIDI控制器?
在MATLAB环境中,音频插件指的是派生自audioPlugin
基类或audioPluginSource
基类。
音频工具箱文档使用以下术语:
一个插件有任何音频插件,从audioPlugin
类或audioPluginSource
类。
一个基本的插件音频插件是从audioPlugin
类。
一个基本来源插件音频插件是从audioPluginSource
类。
音频插件也可以继承matlab。系统
.任何派生的物体matlab。系统
称为System对象™。源于matlab。系统
允许附加功能,包括Simulink万博1manbetx®集成。然而,操作系统对象需要在MATLAB环境中对OOP有更深入的了解。
看到音频工具箱扩展术语有关继承和术语的详细可视化。
在这个例子中,您创建了一个简单的插件,然后逐渐增加复杂性。最后一个插件使用一个循环缓冲区来为输入音频信号添加一个回声效果。有关生成插件的其他注意事项,请参见导出MATLAB插件到DAW.
定义一个基本插件类。从一个简单的插件开始,它将输入复制到输出而不需要修改。
classdefmyEchoPlugin < audioPlugin方法函数Out = process(~, in) Out = in;结束结束结束
myEchoPlugin
说明音频插件类的两个最低要求。他们必须:
继承audioPlugin
类
有一个过程
方法
的过程
方法主要包含基于帧的音频处理算法。它在音频流循环中被调用以随时间处理音频信号。
的输入和输出都是默认的过程
方法有两个通道(列)。传递给的输入行数(帧大小)过程
是由运行它的环境决定的。输出的行数必须与输入的行数相同。
添加插件属性。属性可以在对象中存储信息。添加一个属性,获得
,到类定义。修改您的过程
方法将输入乘以由获得
财产。
的第一个论点过程
方法已从~
来插件
.第一个论点过程
为音频插件对象保留。
添加插件参数。插件参数是插件属性和插件用户之间的接口。该接口的定义由audioPluginInterface
持有audioPluginParameter
对象。要将插件属性与参数关联,请指定的第一个参数audioPluginParameter
作为一个字符向量输入完全与您想要关联的属性。剩下的论点audioPluginParameter
指定可选的附加参数属性。
在本例中,您指定了参数值与其关联属性之间的映射,以及在插件对话框中显示的参数显示名称。通过指定“映射”
作为{“林”,0,3}
,则设置一个线性映射获得
属性和相关的面向用户的参数,且该属性的允许范围在0和3之间。
添加私人属性。添加属性来存储循环缓冲区、缓冲区索引和echo的n样例延迟。因为插件用户不需要看到他们,使CircularBuffer
,BufferIndex
,NSamples
私有属性。最佳实践是将属性初始化为其类型和大小。
添加一个呼应。在过程
方法,对循环缓冲区进行写入和读取,以创建由输入和增益调整的回显组成的输出。第一行过程
方法将输出初始化为输入的大小。最好的做法是初始化输出,以避免在生成插件时出现错误。
设置回声延迟可调。要允许用户修改NSamples
回声延迟,定义公共属性,延迟
,并将其与参数关联。使用默认的audioPluginParameter
映射到允许用户设置在0到1秒之间的回声延迟。
添加一个集
方法侦听对延迟
财产。使用getSampleRate
的方法audioPlugin
基类返回环境抽样率。以秒为单位的近似延迟,NSamples
.如果插件用户修改延迟
财产,集。延迟
,且样本中的延迟(NSamples
计算)。如果环境采样率高于192,000 Hz,插件不能按预期执行。
增加Reset功能。的重置
插件的方法包含在使用之间或环境采样率变化时重置插件的指令。因为NSamples
根据环境采样率,更新其值重置
方法。
您可以将基本插件映射到System对象插件。注意这两种插件类型的区别:
一个System对象插件继承了两个audioPlugin
基类和matlab。系统
不仅仅是基类audioPlugin
基类。
系统对象插件的主要音频处理方法被命名stepImpl
,而不是过程
.
系统对象的重置方法被命名resetImpl
,而不是重置
.
这两个resetImpl
和stepImpl
必须定义为受保护的方法。
系统对象支持集
方法。有关更多信息,请参见processTunedPropertiesImpl
.
在MATLAB环境中,音频插件指的是派生自audioPlugin
基类或audioPluginSource
基类。音频插件也可以继承matlab。系统
.任何派生的物体matlab。系统
称为System对象。源于matlab。系统
允许附加功能,包括Simulink集成。万博1manbetx然而,操作系统对象需要在MATLAB环境中对OOP有更深入的了解。