質問

これを行う簡単な VST プラグインを作成したいと思います。

  1. オーディオ ストリーム (音量、ビートなど) を分析する
  2. アナライザーの出力にトリガーがあります (例:音量 > しきい値の場合に何らかの処理を行う)
  3. トリガーに基づいて MIDI イベントを生成する

これは、プラグインがそのように設計されていない場合でも、プラグインをチェーンできるようにするためです。たとえば、プラグインの MIDI OUT をコンプレッサーのゲイン ボタンの MIDI IN に接続するだけで、オーディオ ストリームのエンベロープでコンプレッサーのゲインを制御できます。

問題は、これを行う方法がわからないことです。VST ではこのような直接 MIDI 接続はサポートされていますか?それとも相互接続用に何らかの「仮想 MIDI デバイス」が必要なのでしょうか?

役に立ちましたか?

解決

ここでのあなたの予感はおそらく正しいでしょう。このタスクは、VST プラグインの代わりに仮想 MIDI デバイスを作成することで簡単に実行できます。sendVstEventsToHost() 呼び出しを使用して MIDI イベントをシーケンサーに送信することは可能ですが、問題は、ドキュメントにはその方法がまったく指定されていないことです。 ホスト これらのイベントに対応する必要があります。多くのホストは単にそれらを無視しており、プラグインから MIDI チャンネル (おそらく plogue bidule?) への簡単なルーティングを可能にするホストは思いつきません。

kAudioUnitType_Generator プラグイン タイプの Audio Units を使用すると、これを実現できるかもしれません...私はそのようなプラグインを書いたことはありませんが、これはホストへの MIDI を生成するために使用されるものであるという印象でした。しかし、繰り返しになりますが、ここでの問題は、ホストがどのようにしてオーディオをプラグインにルーティングし、プラグインから MIDI を受け入れることができるのかがわからないことです。

いずれにしても、プラグインとして実装されたアイデアは、最も広く使用されているシーケンサーの動作を標準化したい場合に実装が最も困難になります。あなたが望むことを達成するはるかに簡単な方法は、すでに考えたように、仮想 MIDI デバイスを作成し、rewire を使用して入力信号をプログラムにルーティングすることだと思います。

編集:さまざまなシステム用の MIDI ドライバーの作成に関するリソースを次に示します。

他のヒント

VSTプラグインが直接MIDI接続をサポートしていない、彼らは唯一のイン/アウトポートでMIDIを持つことができます。

あなただけの1つのプラグインから別のルーティングMIDIをサポートするホストを必要とする、しかしそれを行うことは可能です。このようEnergyXT、Bidule、AudioMulchやコンソールなどのモジュラーホストがここに優れています。彼らはすべてのオーディオとMIDI信号は(NOフィードバックパスを除く)を自由にルーティングすることを可能にします。しかし、それはまた、より多くの「伝統的」ミキサースタイルのVSTラックを持つホストでも可能です。 (例えば、私の知る限りリーパーは、次の1つのプラグインから任意のMIDIを転送します。)

あなたは VST.NETする

を見て.NETで自分のプラグインを構築したい場合
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top