VST bridge for Windows vst on Linux
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
common C++11 Jul 31, 2016
host Forgot to commit this one Jul 13, 2018
plugin Forgot to commit this one Jul 13, 2018
scanner Some progress May 9, 2013
vstsdk2.4 - fixed some warnings on gcc Feb 4, 2014
.gitignore Some progress May 9, 2013
LICENSE Some progress May 9, 2013
Makefile Some progress May 9, 2013
README Allow user to use their chosen WINEPREFIX for each bridge Sep 19, 2014
configure C++11 Jul 31, 2016


This is a bridge to run Windows VST plugins (both 32 and 64 bits) with
Linux VST hosts.

= How to use it? =

Let's suppose that you have installed vst-bridge in ~/local/ and
you have a windows VST installed in ~/.wine/drive_c/VST/Synth1/Synth1.dll

First you have to create a directory for your bridges:
 $ mkdir ~/.vst-bridges

Then you can create your first bridge:
 $ ~/local/bin/vst-bridge-maker ~/.wine/drive_c/VST/Synth1/Synth1.dll ~/.vst-bridges/Synth1.so

Optionally, you can add a third argument — a path to a WINEPREFIX you want the plugin to use.

Now edit ~/.bashrc and add $HOME/.vst-bridges/ to VST_PATH. Mine looks like:
export VST_PATH=/usr/lib/vst/:$HOME/.vst-bridges/

Then you can start your favorite DAW, ask him to scan plugins again and enjoy!

= Architecture =

A typical installation looks like:

vst-bridge.so is a Linux VST plugin which has space reserved for the windows
plugin path.

vst-bridge-maker creates a dedicated <plugin>.so for a single Windows VST
plugin by copying vst-bridge-plugin-tpl.so and updating the path to the
Windows VST and the path to the corresponding host (32 bits or 64 bits).

vst-bridge-host-(32|64).exe hosts a Windows VST and communicates with <plugin>.so.

<plugin>.so spawns a new wine process vst-bridge-host-(32|64).exe and
passes the path to the Windows VST plugin.

= Protocol =

The communication is done through socket(AF_UNIX, SOCK_SEQPACKET, 0).

 - request : tag, cmd, data
 - tag: 4 bytes
 - cmd: 4 bytes
 - data: n bytes

= Roadmap =

 - optimize I/O (reduce the number of bytes transfered)
 - make a scanner

= Extra info =