主要内容

音频插件MATLAB

音频插件的作用音频工具箱

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

将音频处理开发为音频插件的其他好处包括:

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

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

中定义音频插件MATLAB环境

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

Audio Toolbox文档使用以下术语:

  • 一个插件是否有音频插件派生自audioPlugin类或audioPluginSource类。

  • 一个基本的插件是一个音频插件,派生自audioPlugin类。

  • 一个基本源码插件是一个音频插件,派生自audioPluginSource类。

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

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

设计一个基本的插件

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

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

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

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

    • 继承audioPlugin

    • 有一个过程方法

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

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

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

    视图代码

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

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

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

    视图代码

  4. 添加私有属性。添加属性来存储循环缓冲区、缓冲区索引和响应的n样本延迟。因为插件用户不需要看到它们,使CircularBufferBufferIndex,NSamples私有属性。最好的做法是将属性初始化为它们的类型和大小。

    视图代码

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

    视图代码

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

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

    视图代码

  7. 添加复位功能。重置方法包含在两次使用之间或当环境采样率改变时重置插件的指令。因为NSamples取决于环境采样率,更新其值重置方法。

    视图代码

设计一个系统对象插件

你可以将基本插件映射到一个系统对象插件。注意这两种插件类型之间的区别:

  • 系统对象插件继承自audioPlugin基类和matlab。系统基类,而不仅仅是audioPlugin基类。

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

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

  • 这两个resetImpl而且stepImpl必须定义为受保护的方法。

  • 方法的备选项方法。有关更多信息,请参见processTunedPropertiesImpl

系统对象插件

快速入门基本插件

模板

带注释的例子

快速入门基本源码插件

模板

带注释的例子

快速启动系统对象插件

模板

带注释的例子

快速入门系统对象源插件

模板

带注释的例子

音频工具箱扩展术语

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

相关的话题