6

我想创建一个具有 16 个 MIDI 输入和至少 16 个音频输出的 VST 乐器。类似于 kontakt 或 halion 如何做到这一点。

有任何想法吗?

4

1 回答 1

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()andsetSpeakerArrangement()并覆盖getOutputProperties().

至于 MIDI 通道,宿主不应有任何区别对待它们。您将收到常规的 MIDI 事件,以VstMidiEvents 的形式包含常规的 MIDI 数据(即,如果用户选择,所有 16 个通道)。这是最简单的部分——设置输出就是诀窍。

于 2011-05-26T18:17:39.090 回答