正如 @leftaroundabout 所指出的,您不太可能需要 16 个输入和输出,尤其是对于仪器而言。然而,对于鼓机和其他多轨乐器来说,拥有 16 个 MIDI 输入和 16 个音频输出是很常见的,用户可能希望单独处理每个声音。一般来说,音频输入对于整个乐器来说并不是特别有用。
也就是说,您只需像这样实例化您的插件:
MyPlugin::MyPlugin(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, 0, kNumParameters) {
if(audioMaster) {
setNumInputs(0);
setNumOutputs(16);
}
// other constructor stuff ...
}
Run Code Online (Sandbox Code Playgroud)
这就是你的起点。然而,由于绝大多数插件只是立体声,因此您需要做很多其他工作才能让主机为您提供 16 个输出通道(假设它支持)。您可能需要在某个时候调用getSpeakerArrangement()and setSpeakerArrangement(),并且还需要重写getOutputProperties()。
至于 MIDI 通道,主机不应以与正常情况不同的方式对待它们。您将以 s 的形式收到常规 MIDI 事件,VstMidiEvent其中包含常规 MIDI 数据(即,如果用户选择,则适用于所有 16 个通道)。这是简单的部分——设置输出就是诀窍。
| 归档时间: |
|
| 查看次数: |
876 次 |
| 最近记录: |