主要内容

MIDI控制音频插件

MIDI和插件

MIDI控制面通常与数字音频工作站(DAW)环境中的音频插件一起使用。同步MIDI控件和插件参数为音频处理提供了一个有形的接口,是一种有效的参数调优方法。

在MATLAB®环境中,音频插件被定义为派生自audioPlugin基类或audioPluginSource基类。有关如何在MATLAB环境中定义音频插件的更多信息,请参见音频插件在MATLAB

使用MIDIMATLAB插件

Audio Toolbox™产品提供了三个功能,用于启用MIDI控制界面和音频插件之间的接口:

这些函数将一般MIDI函数的功能结合到一个适合MATLAB音频插件的流线型和用户友好的界面中。有关通用函数和MIDI协议的教程,请参见MIDI控制界面

本教程将介绍MATLAB中音频插件的MIDI函数。

1.连接MIDI设备,然后启动MATLAB

在开始MATLAB之前,连接你的MIDI控制面到你的计算机并打开它。有关连接说明,请参阅MIDI设备的说明。如果在连接设备之前启动MATLAB,那么在连接设备时,MATLAB可能无法识别设备。要纠正这个问题,重新启动MATLAB与设备已经连接。

2.建立MIDI连接

使用configureMIDI在默认的MIDI设备和音频插件之间建立MIDI连接。您可以使用configureMIDI或者您可以打开一个用户界面(UI)来指导您完成这个过程。的configureMIDIUI从你的音频插件读取并填充一个可调插件属性的下拉列表。然后,系统会提示您移动MIDI控件表面上的各个控件,以将每个控件的位置与所选择的每个属性的规范化值关联起来。例如,创建一个对象audiopluginexample。PitchShifter然后调用configureMIDI以对象作为参数:

ctrlPitch = audiopluginexample.PitchShifter;configureMIDI (ctrlPitch)

“同步到MIDI控件”对话框打开,自动填充插件的可调属性。操作MIDI控件时,其标识符将输入操作MIDI控制同步盒子。在将可调属性与MIDI控件同步后,单击好吧命令,完成配置。如果你的MIDI控件面是双向的,它会自动将同步控件的位置移到插件指定的初始属性值。

要在UI中打开具有与您的操作相同的编程功能的MATLAB函数,请选择生成MATLAB代码复选框。保存此功能使您能够重用您的设置,并在未来的会话中快速建立配置。

3.使用MIDI调优插件参数

在插件属性和MIDI控件之间建立连接后,可以使用MIDI控件界面实时调优属性。

音频工具箱提供了一个多功能的应用程序,用于运行和测试您的音频插件。测试台架模拟了DAW如何与插件交互。

打开音频测试台上为你的ctrlPitch对象。

audioTestBench (ctrlPitch)

当您调整MIDI界面上的控件时,相应的插件参数滑块会移动。点击运行插件。移动MIDI表面上的控件,以听到调优插件参数的效果。

要建立MIDI连接并修改现有连接,请单击“同步到MIDI控件”按钮以打开configureMIDIUI。

或者,也可以使用在脚本或函数中建立的MIDI连接。例如,运行以下代码并移动同步MIDI控件来听到音高转换效果:

fileReader = dsp。AudioFileReader (...“文件名”“Counting-16-44p1-mono-15secs.wav”);deviceWriter = audioDeviceWriter;%音频流循环~isDone(fileReader) input = fileReader();= ctrlPitch输出(输入);deviceWriter(输出);drawnowlimitrate%立即处理回调结束释放(fileReader);释放(deviceWriter);

4.获取当前的MIDI连接

若要查询使用音频插件建立的MIDI连接,请使用getMIDIConnections函数。getMIDIConnections返回一个结构,其中包含与插件的可调属性对应的字段。对应的值是嵌套结构,包含关于插件属性和指定MIDI控件之间映射的信息。

connectionInfo = getMIDIConnections (ctrlPitch)
connectionInfo = struct with fields: PitchShift: [1×1 struct]重叠:[1×1 struct]
connectionInfo。PitchShift
ans = struct with fields: Law: 'int' Min: -12 Max: 12 MIDIControl: 'control 1081 on 'BCF2000 "

5.断开MIDI表面

作为一种最佳实践,在完成时释放外部设备(如MIDI控制面)。

disconnectMIDI (ctrlPitch)

另请参阅

应用程序

功能

相关的话题

外部网站

Baidu
map