我想创建一个具有16个MIDI输入和至少16个音频输出的VST乐器。类似于kontakt或halion这样做。
有什么想法吗?
答案 0 :(得分:4)
正如@leftaroundabout所指出的,你不太可能需要16个输入和输出,特别是对于乐器。但是,对于鼓机和其他多轨乐器而言,16个MIDI输入和16个音频输出非常常见,用户可能希望单独处理每个声音。一般来说,音频输入对整个乐器并不是特别有用。
那就是说,你只需要实例化你的插件:
MyPlugin::MyPlugin(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, 0, kNumParameters) {
if(audioMaster) {
setNumInputs(0);
setNumOutputs(16);
}
// other constructor stuff ...
}
这是你的出发点。但是,由于绝大多数插件只是立体声,因此需要做一些其他工作才能让主机为您提供16个输出通道(假设它支持它)。您可能需要在某个时候致电getSpeakerArrangement()
和setSpeakerArrangement()
,并覆盖getOutputProperties()
。
对于MIDI通道,主机不应该以正常方式对待它们。您将以VstMidiEvent
的形式发送常规MIDI事件,其中包含常规MIDI数据(例如,如果用户选择,则为所有16个频道)。这是一个简单的部分 - 它是设置输出的诀窍。