Вопрос

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

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

Это делается для того, чтобы иметь возможность объединять плагины в цепочку, даже если они для этого не предназначены.Например, я мог бы управлять усилением компрессора с помощью огибающей аудиопотока, просто подключив MIDI-ВЫХОД моего плагина к MIDI-входу кнопки усиления компрессора.

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

Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top