VST инструмент несколько входов и выходов - PullRequest
6 голосов
/ 26 мая 2011

Я хочу создать инструмент VST, который имеет 16 MIDI-входов и не менее 16 аудиовыходов.Подобно тому, как это делают kontakt или halion.

Есть идеи?

1 Ответ

4 голосов
/ 26 мая 2011

Как отметил @leftaround, маловероятно, что вам нужно 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-каналов, хост не должен обрабатывать их иначе, чем обычно.Вам будут доставляться обычные события MIDI в форме VstMidiEvent s, которые будут содержать обычные данные MIDI (т. Е. Для всех 16 каналов, если пользователь выберет).Это самая простая часть - это настройка выходов, и это хитрость.

...