MIDI控制面通常与数字音频工作站(DAW)环境中的音频插件一起使用。用插件参数同步MIDI控件为音频处理提供了一个有形的接口,是一种有效的参数调整方法。
在MATLAB®环境中,音频插件被定义为派生于audioPlugin
基类或audioPluginSource
基类。有关如何在MATLAB环境中定义音频插件的更多信息,请参见MATLAB中的音频插件.
Audio Toolbox™产品提供了三个功能来支持MIDI控制界面和音频插件之间的接口:
configureMIDI
—配置MIDI连接音频插件和MIDI控制器。
getMIDIConnections
获得MIDI连接的音频插件。
disconnectMIDI
——断开MIDI控制从音频插件。
这些函数结合了一般MIDI函数的能力,形成了适合于MATLAB中音频插件的流线型和用户友好的界面。有关通用函数和MIDI协议的教程,请参见MIDI控制界面.
本教程将带您了解MATLAB中音频插件的MIDI函数。
在启动MATLAB之前,将MIDI控制面连接到计算机并打开它。有关连接说明,请参阅MIDI设备的说明。如果在连接设备之前启动MATLAB,那么在连接设备时MATLAB可能无法识别设备。为了纠正这个问题,在设备已经连接的情况下重新启动MATLAB。
使用configureMIDI
在默认的MIDI设备和音频插件之间建立MIDI连接。您可以使用configureMIDI
或者您可以打开一个用户界面(UI)来指导您完成整个过程。的configureMIDI
UI读取您的音频插件,并填充一个可调插件属性的下拉列表。然后,系统会提示您移动MIDI控件表面上的各个控件,以便将每个控件的位置与所选择的每个属性的规范化值关联起来。例如,创建一个对象audiopluginexample。PitchShifter
然后调用configureMIDI
以对象作为参数:
ctrlPitch = audiopluginexample.PitchShifter;configureMIDI (ctrlPitch)
同步到MIDI控件对话框打开,自动填充插件的可调属性。当您操作MIDI控件时,将其标识输入到操作MIDI控制同步盒子。与MIDI控件同步可调属性后,单击好吧完成配置。如果你的MIDI控制面是双向的,它会自动将同步控件的位置转移到你的插件指定的初始属性值。
要在UI中打开MATLAB函数,使用与您的操作相当的程序,请选择生成MATLAB代码复选框。保存此功能使您能够重用您的设置并在未来的会话中快速建立配置。
在插件属性和MIDI控件之间建立连接后,您可以使用MIDI控件表面实时调整属性。
Audio Toolbox提供了一个用于运行和测试音频插件的一体化应用程序。测试平台模拟了DAW与插件的交互方式。
打开音频测试台上为你的ctrlPitch
对象。
audioTestBench (ctrlPitch)
当你调整MIDI表面上的控件时,相应的插件参数滑块会移动。点击来运行插件。移动MIDI表面上的控件,以了解调整插件参数的效果。
要建立MIDI连接并修改现有连接,请单击“同步到MIDI控件”按钮打开configureMIDI
UI。
或者,您可以使用在脚本或函数中建立的MIDI连接。例如,运行以下代码并移动你的同步MIDI控件来听到音高转换的效果:
fileReader = dsp。AudioFileReader (...“文件名”,“Counting-16-44p1-mono-15secs.wav”);deviceWriter = audioDeviceWriter;%音频流循环而~isDone(fileReader) input = fileReader();= ctrlPitch输出(输入);deviceWriter(输出);drawnowlimitrate;%立即处理回调结束释放(fileReader);释放(deviceWriter);
要查询与音频插件建立的MIDI连接,请使用getMIDIConnections
函数。getMIDIConnections
返回一个结构,其字段对应于插件的可调属性。相应的值是嵌套结构,包含插件属性和指定MIDI控件之间的映射信息。
connectionInfo = getMIDIConnections (ctrlPitch)
connectionInfo = struct with fields: PitchShift: [1×1 struct] Overlap: [1×1 struct]
connectionInfo。PitchShift
ans = struct with fields: Law: 'int' Min: -12 Max: 12 MIDIControl: 'control 1081 on 'BCF2000''
作为一个最佳实践,当您完成时,释放外部设备,如MIDI控制表面。
disconnectMIDI (ctrlPitch)