2009-03-31 18 views
2

Ich mag würde eine einfache VST-Plugin machen, das dies tut:Virtuelle midi und VSTs

  1. einen Audio-Stream analysieren (Lautstärke, schlägt, etc ...)
  2. hat Trigger am Ausgang des Analysators (zB etwas tun, wenn die Lautstärke> Schwelle)
  3. MIDI-Ereignisse erzeugen, basierend auf den Auslöser

Diese Ketten Plugins in der Lage sein, auch wenn sie nicht für sie bestimmt sind. Zum Beispiel könnte ich die Verstärkung eines Kompressors mit der Hüllkurve eines Audiostreams steuern, einfach indem ich den MIDI OUT meines Plugins mit dem MIDI IN der Gain-Taste des Kompressors verbinde.

Das Problem ist, ich weiß nicht, wie das geht. Gibt es Unterstützung für direkte MIDI-Verbindungen wie diese in VSTs? Oder brauche ich vielleicht eine Art "virtuelles Midi-Gerät" für Interconnects?

Antwort

5

Ihre Ahnung hier ist wahrscheinlich richtig; Diese Aufgabe wird einfacher, wenn Sie statt eines VST-Plugins ein virtuelles MIDI-Gerät schreiben. Es ist möglich, MIDI-Events über den Aufruf sendVstEventsToHost() an einen Sequenzer zu senden, aber das Problem besteht darin, dass die Dokumentation niemals angibt, wie der Host auf diese Ereignisse reagieren muss. Viele Hosts ignorieren sie einfach, und ich kann mir sicherlich keine vorstellen, die ein einfaches Routing von einem Plug-in zu einem MIDI-Kanal ermöglicht (vielleicht plogue bidule?).

Sie können dies vielleicht mit Audio Units mit dem Plugin-Typ kAudioUnitType_Generator erreichen ... Obwohl ich noch nie ein solches Plugin geschrieben habe, hatte ich den Eindruck, dass Sie MIDI zum Host erzeugen würden. Aber auch hier ist das Problem, dass ich nicht sicher bin, wie der Host es dir erlauben würde, Audio an das Plugin zu leiten und MIDI davon zu akzeptieren.

In jedem Fall ist Ihre Idee als Plugin implementiert am schwierigsten zu implementieren, wenn Sie ihr Verhalten für die am häufigsten verwendeten Sequenzer standardisieren wollen. Ich denke, dass es viel einfacher ist, ein virtuelles MIDI-Gerät zu erstellen, als Sie es sich bereits vorgestellt haben. Verwenden Sie dann rewire, um ein Eingangssignal an Ihr Programm zu senden.

bearbeiten: Hier einige Ressourcen auf das Schreiben MIDI-Treiber für verschiedene Systeme:

+0

Danke für die Erklärungen aufbauen wollen. Irgendwelche Hinweise zum Schreiben eines solchen virtuellen Midi-Gerätes? Googeln "virtuelles Midi" gibt einige käsige sharewares von den neunziger Jahren zurück, und ich kann Dokumentation nicht finden, wie man solch einen Treiber schreibt. –

2

VST-Plugins keine direkte MIDI-Verbindungen unterstützt, können sie nur midi haben Ein/Aus-Ports.

Es ist immer noch möglich, es zu tun, Sie brauchen nur einen Host, der MIDI-Routing von einem Plugin zum anderen unterstützt. Modulare Hosts wie EnergyXT, Bidule, AudioMulch und Console zeichnen sich hier aus. Sie alle ermöglichen die freie Leitung von Audio- und Midi-Signalen (mit Ausnahme von Rückkopplungswegen). Aber es ist auch möglich in Hosts mit mehr "traditionellen" Mixer Style VST-Racks. (Zum Beispiel wird AFAIK Reaper aus all MIDI von einem Plugin zum nächsten.)

+0

Ist dies der Fall in Ableton Live, wenn Sie zuerst ein Midi-Plugin (d. H. Einen Transponierer) hinzufügen. Und kann dann ein Instrument NACH dem hinzufügen? –