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