Виртуальные миди и VSTs - PullRequest
       43

Виртуальные миди и VSTs

2 голосов
/ 01 апреля 2009

Я хотел бы сделать простой плагин VST, который делает это:

  1. анализировать аудиопоток (громкость, ритм и т. Д.)
  2. имеет триггеры на выходе анализатора (например, что-то сделать, когда громкость> порог)
  3. генерирует MIDI-события на основе триггеров

Это позволяет подключать плагины, даже если они не предназначены для этого. Например, я мог управлять усилением компрессора с огибающей аудиопотока, просто подключив MIDI OUT моего плагина к MIDI IN кнопки усиления компрессора.

Проблема в том, что я не знаю, как это сделать. Есть ли поддержка прямых MIDI-соединений, подобных этой, в VST? Или, может быть, мне нужно какое-то «виртуальное миди-устройство» для межсоединений?

Ответы [ 3 ]

5 голосов
/ 01 апреля 2009

Ваша догадка, вероятно, здесь верна; эту задачу будет легче выполнить, написав виртуальное MIDI-устройство вместо VST-плагина. Можно отправить MIDI-события в секвенсор с помощью вызова sendVstEventsToHost (), но проблема в том, что в документации никогда не указывается, как host требуется для реакции на эти события. Многие хосты просто игнорируют их, и я, конечно, не могу вспомнить тот, который позволяет легко перенаправить плагин на MIDI-канал (может быть, plogue bidule?).

Вы могли бы сделать это с помощью Audio Units с типом плагина kAudioUnitType_Generator ... хотя я никогда не писал такой плагин, у меня сложилось впечатление, что это то, что вы будете использовать для генерации MIDI для хоста. Но опять же, проблема в том, что я не уверен, как хост позволит вам направлять аудио на плагин и принимать от него MIDI.

В любом случае, ваша идея, реализованная в виде плагина, будет наиболее трудной для реализации, когда вы захотите стандартизировать ее поведение для наиболее широко используемых секвенсоров. Я думаю, что гораздо более простой способ выполнить то, что вы хотите, - это создать виртуальное MIDI-устройство, как вы уже думали, а затем использовать rewire для маршрутизации входного сигнала в вашу программу.

Редактировать : Вот несколько ресурсов по написанию драйверов MIDI для различных систем:

2 голосов
/ 16 сентября 2009

Плагины VST не поддерживают прямые MIDI-соединения, они могут иметь только MIDI-входы / выходы.

Это все еще возможно, хотя вам нужен хост, который поддерживает маршрутизацию midi от одного плагина к другому. Здесь превосходны такие модульные хосты, как EnergyXT, Bidule, AudioMulch и Console. Все они позволяют свободно передавать аудио и MIDI-сигналы (кроме путей обратной связи). Но это также возможно в хостах с более «традиционными» микшерными стеллажами vst. (Например, AFAIK Reaper будет пересылать любые миди от одного плагина к другому.)

0 голосов
/ 03 февраля 2010

Если вы хотите создать свой плагин в .NET, взгляните на VST.NET

...