Hôte ASIO enfichable VSTi pour connecter l'entrée d'un pilote ASIO supplémentaire dans la DAW

J'ai rencontré une fois une situation où, s'il y avait une carte son principale avec son pilote ASIO, il était nécessaire de connecter un microphone USB avec son pilote ASIO à la DAW. Et DAW ne prend pas en charge la connexion de deux pilotes ASIO en même temps. En cherchant je suis tombé sur un plugin VST "VST interfacé ASIO-Host", écrit en Delphi. Malheureusement, bien que le plugin ait été vu via jBridge, il n'a jamais fonctionné normalement. Ainsi, j'ai dû écrire moi-même un plugin similaire. En conséquence, un plugin ASIOInput open source a été écrit en 10 jours. Dans cet article, je parlerai de certaines des caractéristiques de sa conception et de son architecture.

Le plugin VST lui-même est techniquement un .dll qui exporte une seule fonction

SVSTPlugin* VSTPluginMain(void*)

DAW , . , .

  • InputCount OutputCount - . - , . 0 2 . 1 , .

  • PluginProperties - . 3 : , UpdateBufferData() , - DAW , .

  • RequestFromHost() - DAW, . : - , , , , : , , - .

  • UpdateBufferData() - DAW , . , , , DAW .

ASIO Windows COM-. GUID-. ASIO- ( GUID-) HKEYLOCALMACHINE\SOFTWARE\ASIO. ASIO-, COM- GUID- CoCreateInstance(), ASIO-, , ASIO-. , ASIO- .

, : DAW , DAW - VSTPluginCallUpdateBufferData(), ASIO- , - ASIOHostCallUpdateBufferDataEx(). . , DAW ASIO- , . ASIO- DAW, .

. , DAW- , ASIO-, DAW , DAW- . Windows ( CreateEvent(), SetEvent() WaitForSingleObject()).

DAW ASIO- , . ASIO- , DAW- . , OC Windows. DAW ASIO-, 2, 3 4.

.

  • COM- ASIO- 0 . , . , , 1. .

  • DAW . , , , , DAW Cubase 9.5, DAW - .. ", " ..

  • ASIO- , ASIO- , , . 0. .

  • - COM- ASIO- ASIO-.

.

Téléchargez la dernière version du plugin (VST2, x86 et x64): tyts .

Sources sur github: tyts .




All Articles