SuperAPI AI 工具集

matlab-write-audio-plugin

部署与运维

查看项目

更新于 10-16 06:46

技能介绍

用途:指导在 MATLAB 中编写 Audio Toolbox 音频插件,即继承 audioPlugin 或 audioPluginSource 的 classdef,用于创建音频效果器或发生器,排查 validateAudioPlugin 与 generateAudioPlugin 失败,将 MATLAB 音频算法转为可部署的 VST/AU 插件,以及把深度学习推理集成到实时音频插件中。不适用于与插件无关的通用 MATLAB 类、音频文件 I/O 与特征提取分析、Simulink 音频处理模块,以及非插件的 Audio Toolbox 函数。

主要能力与结构:每个插件为带 %#codegen 的 classdef,含公开可调属性、Constant 的 PluginInterface(audioPluginInterface 与 audioPluginParameter 定义参数、映射与通道数)以及 process 和 reset 方法。源插件继承 audioPluginSource,省略 InputChannels,process 无音频输入,用 getSamplesPerFrame 获取输出帧大小。需要 Simulink 兼容时可做 matlab.System 与 audioPlugin 混合,要求 StrictDefaults、isInputSizeMutableImpl 返回 true,并用 stepImpl/resetImpl。

生命周期:构造函数用字面量参数构造子对象,getSampleRate 此时返回 44100,仅用于初始缓冲;reset 在采样率或帧大小变化时调用,缓存采样率并重算所有依赖值、重置子对象;process 每帧调用,返回 [N, numOutputChannels] 的 double;set 方法在参数变化时重算派生值。

代码生成要求:validateAudioPlugin 会扫描 8000–192000 的 5 个采样率、2.^(1:13)+1 的帧大小(最大 8193)及参数极值。优先使用内置函数,顺序为 Audio Toolbox、DSP System Toolbox、Signal Processing Toolbox、基础 MATLAB。状态需按最大尺寸预分配,用索引赋值移位,避免拼接;固定尺寸属性赋值时列维度显式索引;复数数组用 complex(zeros(...)) 初始化;dsp.AsyncBuffer 容量需超过最大单次写入;filter 输入来自子对象时需逐通道处理。枚举参数 3 个以上用 dropdown,2 个用 vrocker/vtoggle,长度不一时建议单独 int32 枚举类。派生值需钳制在有效范围,switch 必须有 otherwise。

验证与生成:validateAudioPlugin -nomex ClassName 做结构与测试台校验,validateAudioPlugin ClassName 做完整 MEX 代码生成,generateAudioPlugin ClassName 生成 VST/AU 二进制。生成后对 .m 文件运行 checkcode 并消除所有警告。默认输出 VST 2,可用 -vst、-vst3、-au、-auv3、-exe、-juceproject 选择格式;AU 仅限 macOS,Linux 上可用 -juceproject。

限制:资料未提供具体收费、价格或平台支持细节;部分高级模式与函数清单需查阅其 references 目录文档。