问题描述
|
我想创建一个具有16个MIDI输入和至少16个音频输出的VST乐器。与kontakt或halion如何执行此操作类似。
有任何想法吗?
解决方法
如@leftaroundabout所述,您不太可能需要16个输入和输出,尤其是对于乐器而言。但是,对于鼓机和其他多轨乐器来说,拥有16个MIDI输入和16个音频输出是非常常见的,在这种情况下,用户可能希望分别处理每个声音。通常,音频输入对于整个乐器并不是特别有用。
也就是说,您只需像这样实例化插件:
MyPlugin::MyPlugin(audioMasterCallback audioMaster) : AudioEffectX(audioMaster,kNumParameters) {
if(audioMaster) {
setNumInputs(0);
setNumOutputs(16);
}
// other constructor stuff ...
}
那是您的出发点。但是,由于绝大多数插件都是立体声的,因此您还需要做很多其他工作才能使主机为您提供16个输出通道(假设它支持它)。您可能需要在某个时候调用getSpeakerArrangement()
和setSpeakerArrangement()
,并且还要覆盖getOutputProperties()
。
至于MIDI通道,主持人不应将它们与正常情况区别对待。您将以VstMidiEvent
的形式传递常规MIDI事件,其中将包含常规MIDI数据(即,如果用户选择的话,将用于所有16个通道)。这是简单的部分-这就是设置输出的诀窍。