主要内容

音频插件MATLAB

音频插件的角色音频工具箱

音频插件是音频工具箱™中开发音频处理算法的建议范例。一旦设计完成,音频插件就可以验证、生成并部署到第三方数字音频工作站(DAW)。

开发音频处理作为音频插件的额外好处包括:

对MATLAB中的面向对象编程(OOP)有一定的了解®环境需要优化您的音频插件范例的使用。如果你不熟悉这些概念,请看为什么要使用面向对象的设计

有关在MATLAB环境之外定义的音频插件的回顾,请参阅什么是daw、音频插件和MIDI控制器?

定义音频插件MATLAB环境

在MATLAB环境中,音频插件指的是派生自audioPlugin基类或audioPluginSource基类。

音频工具箱文档使用以下术语:

  • 一个插件有任何音频插件,从audioPlugin类或audioPluginSource类。

  • 一个基本的插件音频插件是从audioPlugin类。

  • 一个基本来源插件音频插件是从audioPluginSource类。

音频插件也可以继承matlab。系统.任何派生的物体matlab。系统称为System对象™。源于matlab。系统允许附加功能,包括Simulink万博1manbetx®集成。然而,操作系统对象需要在MATLAB环境中对OOP有更深入的了解。

看到音频工具箱扩展术语有关继承和术语的详细可视化。

设计一个Basic插件

在这个例子中,您创建了一个简单的插件,然后逐渐增加复杂性。最后一个插件使用一个循环缓冲区来为输入音频信号添加一个回声效果。有关生成插件的其他注意事项,请参见导出MATLAB插件到DAW

  1. 定义一个基本插件类。从一个简单的插件开始,它将输入复制到输出而不需要修改。

    classdefmyEchoPlugin < audioPlugin方法函数Out = process(~, in) Out = in;结束结束结束

    myEchoPlugin说明音频插件类的两个最低要求。他们必须:

    • 继承audioPlugin

    • 有一个过程方法

    过程方法主要包含基于帧的音频处理算法。它在音频流循环中被调用以随时间处理音频信号。

    的输入和输出都是默认的过程方法有两个通道(列)。传递给的输入行数(帧大小)过程是由运行它的环境决定的。输出的行数必须与输入的行数相同。

  2. 添加插件属性。属性可以在对象中存储信息。添加一个属性,获得,到类定义。修改您的过程方法将输入乘以由获得财产。

    视图代码

    的第一个论点过程方法已从插件.第一个论点过程为音频插件对象保留。

  3. 添加插件参数。插件参数是插件属性和插件用户之间的接口。该接口的定义由audioPluginInterface持有audioPluginParameter对象。要将插件属性与参数关联,请指定的第一个参数audioPluginParameter作为一个字符向量输入完全与您想要关联的属性。剩下的论点audioPluginParameter指定可选的附加参数属性。

    在本例中,您指定了参数值与其关联属性之间的映射,以及在插件对话框中显示的参数显示名称。通过指定“映射”作为{“林”,0,3},则设置一个线性映射获得属性和相关的面向用户的参数,且该属性的允许范围在0和3之间。

    视图代码

  4. 添加私人属性。添加属性来存储循环缓冲区、缓冲区索引和echo的n样例延迟。因为插件用户不需要看到他们,使CircularBufferBufferIndex,NSamples私有属性。最佳实践是将属性初始化为其类型和大小。

    视图代码

  5. 添加一个呼应。过程方法,对循环缓冲区进行写入和读取,以创建由输入和增益调整的回显组成的输出。第一行过程方法将输出初始化为输入的大小。最好的做法是初始化输出,以避免在生成插件时出现错误。

    视图代码

  6. 设置回声延迟可调。要允许用户修改NSamples回声延迟,定义公共属性,延迟,并将其与参数关联。使用默认的audioPluginParameter映射到允许用户设置在0到1秒之间的回声延迟。

    添加一个方法侦听对延迟财产。使用getSampleRate的方法audioPlugin基类返回环境抽样率。以秒为单位的近似延迟,NSamples.如果插件用户修改延迟财产,集。延迟,且样本中的延迟(NSamples计算)。如果环境采样率高于192,000 Hz,插件不能按预期执行。

    视图代码

  7. 增加Reset功能。重置插件的方法包含在使用之间或环境采样率变化时重置插件的指令。因为NSamples根据环境采样率,更新其值重置方法。

    视图代码

设计一个系统对象插件

您可以将基本插件映射到System对象插件。注意这两种插件类型的区别:

  • 一个System对象插件继承了两个audioPlugin基类和matlab。系统不仅仅是基类audioPlugin基类。

  • 系统对象插件的主要音频处理方法被命名stepImpl,而不是过程

  • 系统对象的重置方法被命名resetImpl,而不是重置

  • 这两个resetImplstepImpl必须定义为受保护的方法。

  • 系统对象支持方法。有关更多信息,请参见processTunedPropertiesImpl

系统对象的插件

快速入门基本插件

模板

带注释的例子

快速入门基本源插件

模板

带注释的例子

快速启动系统对象插件

模板

带注释的例子

快速启动系统对象源插件

模板

带注释的例子

音频工具箱扩展术语

在MATLAB环境中,音频插件指的是派生自audioPlugin基类或audioPluginSource基类。音频插件也可以继承matlab。系统.任何派生的物体matlab。系统称为System对象。源于matlab。系统允许附加功能,包括Simulink集成。万博1manbetx然而,操作系统对象需要在MATLAB环境中对OOP有更深入的了解。

相关的话题