Airwave is a WINE-based VST bridge, that allows for the use of Windows 32- and 64-bit VST 2.4 audio plugins with Linux VST hosts. Due to the use of shared memory, only one extra copying is made for each data transfer. Airwave also uses the XEMBED protocol to correctly embed the plugin editor into the host window.
- WINE, supporting XEMBED protocol (versions greater than 1.7.19 were tested, but earlier versions also may work)
- libmagic
- Qt5 for the airwave manager application (GUI)
- Install the required packages: multilib-enabled GCC, cmake, git, wine, Qt5, libmagic.
-
Arch Linux (x86_64) example:
sudo pacman -S gcc-multilib cmake git wine qt5-base
-
Fedora 20 (x86_64) example:
sudo yum -y install gcc-c++ git cmake wine wine-devel wine-devel.i686 file file-devel libX11-devel libX11-devel.i686 qt5-devel glibc-devel.i686 glibc-devel
-
Ubuntu 14.04 (x86_64) example:
sudo apt-get install git cmake gcc-multilib g++-multilib libx11-dev libx11-dev:i386 qt5-default libmagic-dev sudo add-apt-repository ppa:ubuntu-wine/ppa sudo apt-get update sudo apt-get install wine1.7 wine1.7-dev
-
Get the VST Audio Plugins SDK from Steinberg. I cannot distribute it myself due to the license restrictions.
-
Unpack the VST SDK archive. Further I'll assume that you have unpacked it in your home directory: ${HOME}/VST3\ SDK.
-
Clone the airwave GIT repository
git clone https://github.com/phantom-code/airwave.git
- Go to the airwave source directory and execute the following commands:
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX=/opt/airwave -DVSTSDK_PATH=${HOME}/VST3\ SDK ..
make
sudo make install
Of course, you can change the CMAKE_INSTALL_PREFIX as you like.
- Run the airwave-manager
- Press the "Create link" button on the toolbar.
- Select desired WINE loader and WINE prefix in the appropriate combo boxes.
- Enter a path to VST plugin DLL file in the "VST plugin" field (you can use the "Browse" button for convenience). Note, that the path is relative to the selected WINE prefix.
- Enter a "Link location" path (the directory, where your VST host looks for the plugins).
- Enter a link name, if you don't like the auto-suggested one.
- Select a desired log level for this link. The higher the log level, the more messages you'll receive. The 'default' log level is a special value. It corresponds to the 'Default log level' value from the settings dialog. In most cases, the 'default' log level is the right choice. For maximum performance do not use a higher level than 'trace'.
- Press the "OK" button. At this point, your VST host should be able to find a new plugin inside of the "Link location" directory.
Note: After you have created the link you cannot move/rename it with a file manager. All updates have to be done inside the airwave-manager. Also, you should update your links after updating the airwave itself. This could be achived by pressing the "Update links" button.
The bridge consists of four components:
- Plugin endpoint (airwave-plugin.so)
- Host endpoint (airwave-host-{arch}.exe.so and airwave-host-{arch}.exe launcher script)
- Configuration file (${XDG_CONFIG_PATH}/airwave/airwave.conf)
- GUI configurator (airwave-manager)
When the airwave-plugin is loaded by the VST host, it obtains its absolute path and use it as the key to get the linked VST DLL from the configuration. Then it starts the airwave-host process and passes the path to the linked VST file. The airwave-host loads the VST DLL and works as a fake VST host. Starting from this point, the airwave-plugin and airwave-host act together like a proxy, translating commands between the native VST host and the Windows VST plugin.
- Due to a bug in WINE, there is some hacking involved when embedding the editor window. There is a chance that you get a black window instead of the plugin GUI. Also some areas might not update correctly when increasing the window size. On some hosts (Bitwig Studio for example) this can be solved by closing and re-opening the plugin window.
The following list is not complete. It contains only plugins, that have been tested by me or by people, who sent me a report.
VST-Plugins | works? | Notes |
---|---|---|
AlgoMusic CZynthia | yes | |
Aly James LAB OB-Xtreme | yes | |
Analogic Delay by interrruptor | yes | |
Bionic Delay by interrruptor | yes | |
Blue Cat Audio Oscilloscope Multi | no | doesn't work with wine |
Cableguys Kickstart | no | doesn't work with wine |
Cableguys Volume Shaper | no | doesn't work with wine |
Credland Audio BigKick | no | doesn't work with wine |
FabFilter plugins | yes | haven't tested them all |
Green Oak Software Crystal | yes | |
Image-Line Harmless | yes | |
Image-Line Sytrus | yes | |
LennarDigital Sylenth1 | no | doesn't work with wine |
LePou Plugins | yes | LeCab2 has slight GUI redrawing issues |
NI Absynth | yes | |
NI FM8 | yes | |
NI Guitar Rig 5 | yes | activation doesn't work |
NI Kontakt 5 | mostly | up to v5.3.1, can import libraries only in Windows XP mode |
NI Massive | yes | only 32-bit |
NI Reaktor 5 | yes | |
Magnus Choir | yes | |
Martin Lüders pg8x | yes | |
Meesha Damatriks | yes | |
Odo Synths Double Six | partly | GUI issues |
Peavey Revalver Mark III.V | yes | |
ReFX Nexus2 | yes | |
ReFX Vanguard | yes | |
Reveal Sound Spire | yes | starting form 1.0.19 the GUI doesn't appear (wine issue) |
Sonic Academy A.N.A. | yes | |
Sonic Academy KICK | yes | |
Sonic Cat LFX-1310 | yes | |
Sonic Charge Cyclone | yes | |
Smartelectronix s(M)exoscope | yes | |
Spectrasonics Omnisphere | yes | |
SQ8L by Siegfried Kullmann | yes | |
SuperWave P8 | yes | |
Synapse Audio DUNE 2 | yes | |
Synth1 by Ichiro Toda | yes | |
Tone2 FireBird | yes | |
Tone2 Nemesis | yes | |
Tone2 Saurus | yes | |
u-he plugins | yes | Linux version is also available |
Variety of Sound plugins | yes | |
Voxengo plugins | mostly | inter plugin routing doesn't work (architecture issue) |
Xfer Serum | no | the GUI doesn't appear (wine issue), but audio works |