16 の MIDI 入力と少なくとも 16 のオーディオ出力を持つ VST インストゥルメントを作成したいと考えています。kontakt や halion がこれを行う方法に似ています。
何か案は?
@leftaroundabout が指摘したように、特に楽器の場合、16 の入力と出力が必要になることはまずありません。ただし、16 個の MIDI 入力と 16 個のオーディオ出力を持つことは、ユーザーが各ボイスを個別に処理する必要があるドラム マシンやその他のマルチトラック インストゥルメントでは非常に一般的です。一般に、オーディオ入力は、楽器全体にとって特に有用ではありません。
つまり、次のようにプラグインをインスタンス化するだけです。
MyPlugin::MyPlugin(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, 0, kNumParameters) {
if(audioMaster) {
setNumInputs(0);
setNumOutputs(16);
}
// other constructor stuff ...
}
それがあなたの出発点です。ただし、プラグインの大部分はステレオのみであるため、ホストが 16 の出力チャンネルを提供するようにするには、他にも多くの作業を行う必要があります (ホストがサポートしている場合)。おそらく、ある時点で and を呼び出し、さらに をオーバーライドgetSpeakerArrangement()する必要があります。setSpeakerArrangement()getOutputProperties()
MIDI チャネルに関しては、ホストはそれらを通常と異なる方法で処理するべきではありません。VstMidiEvent通常の MIDI データ (つまり、ユーザーが選択した場合は 16 チャンネルすべて) を含む の形式で、通常の MIDI イベントが配信されます。これは簡単な部分です。出力をセットアップするのがコツです。