Airwave - yet another WINE VST bridge for Linux (April 12 update)

Official support for: bitwig.com
KVRist
50 posts since 27 Jun, 2013

Post Thu Jun 29, 2017 8:07 am

All plugins I've tried seem to work great, but opening the browser while the GUI is still shown crashes the audio engine. I'm using Wine 2.11 staging with a 64 bit prefix. This results in the plugin window freezing and the audio engine crashing on both Bitwig 2.1.1 and 2.1.2 beta 1:

1. Create a new, empty project.
2. Insert an airwaved VST plugin on any track.
3. Show the plugin's GUI.
4. Click the plus sign next to the plugin to open the browser.

This happens with all audio backends, and doesn't happen with native VST plugins. Has anyone run into any similar issues?

EDIT: This might somehow be related to i3. Everything appeared to work fine when I tried the same in plasma.
EDIT 2: In case anyone else runs into the same problem, enabling GTK 3 theming in winecfg's Staging tab fixed the problem for me. No idea why though.

KVRist
101 posts since 25 Jul, 2015 from France, near Paris

Post Sat Jul 29, 2017 11:02 am

Sorry to bring some noise here,
I chose the path of Fedora linux so I tried to compile Airwave, as there is no RPM yet.
Unfortunately, the compilation ends on 2 errors:

[frederic@m4500 build]$ make
Scanning dependencies of target airwave-plugin
[ 1%] Building CXX object src/plugin/CMakeFiles/airwave-plugin.dir/main.cpp.o
[ 3%] Building CXX object src/plugin/CMakeFiles/airwave-plugin.dir/plugin.cpp.o
[ 5%] Building CXX object src/plugin/CMakeFiles/airwave-plugin.dir/__/common/dataport.cpp.o
[ 6%] Building CXX object src/plugin/CMakeFiles/airwave-plugin.dir/__/common/event.cpp.o
[ 8%] Building CXX object src/plugin/CMakeFiles/airwave-plugin.dir/__/common/filesystem.cpp.o
[ 10%] Building CXX object src/plugin/CMakeFiles/airwave-plugin.dir/__/common/json.cpp.o
/home/frederic/airwave/src/common/json.cpp: In member function ‘bool Json::OurReader::readToken(Json::OurReader::Token&)’:
/home/frederic/airwave/src/common/json.cpp:1407:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
if (features_.allowSingleQuotes_) {
^~
/home/frederic/airwave/src/common/json.cpp:1412:3: note: here
case '/':
^~~~
[ 11%] Building CXX object src/plugin/CMakeFiles/airwave-plugin.dir/__/common/logger.cpp.o
[ 13%] Building CXX object src/plugin/CMakeFiles/airwave-plugin.dir/__/common/moduleinfo.cpp.o
[ 15%] Building CXX object src/plugin/CMakeFiles/airwave-plugin.dir/__/common/storage.cpp.o
[ 16%] Building CXX object src/plugin/CMakeFiles/airwave-plugin.dir/__/common/vsteventkeeper.cpp.o
[ 18%] Linking CXX shared library airwave-plugin.so
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/7/../../../libX11.so when searching for -lX11
/usr/bin/ld: skipping incompatible //lib/libX11.so when searching for -lX11
/usr/bin/ld: skipping incompatible //usr/lib/libX11.so when searching for -lX11
/usr/bin/ld: cannot find -lX11
collect2: error: ld returned 1 exit status
make[2]: *** [src/plugin/CMakeFiles/airwave-plugin.dir/build.make:332: src/plugin/airwave-plugin.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:86: src/plugin/CMakeFiles/airwave-plugin.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

So I understand some libx11 on my system is not compatible to finish the compilation.
Can anyone help me to solve this?

User avatar
KVRian
1187 posts since 23 Jun, 2007 from Findlay OH USA

Post Sat Jul 29, 2017 5:05 pm

pakunoda wrote:...
/usr/bin/ld: cannot find -lX11
Do you have the X11 development packages installed ?

Code: Select all

yum install libx11-devel.*
should install the required packages for i386 (32-bit) and x86_64 (64-bit) Fedora.

Best,

dp

User avatar
KVRist

Topic Starter

413 posts since 27 Mar, 2014

Post Sat Jul 29, 2017 11:47 pm

pakunoda wrote:

Code: Select all

/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/7/../../../libX11.so when searching for -lX11
/usr/bin/ld: skipping incompatible //lib/libX11.so when searching for -lX11
/usr/bin/ld: skipping incompatible //usr/lib/libX11.so when searching for -lX11
/usr/bin/ld: cannot find -lX11
collect2: error: ld returned 1 exit status
So I understand some libx11 on my system is not compatible to finish the compilation.
Can anyone help me to solve this?
It tries to link 64bit code with 32bit libx11 or vice versa. Yes, you need to install development packages for both architectures.

KVRist
59 posts since 27 Mar, 2014

Post Sat Dec 16, 2017 12:40 pm

Hello!

I've been using airwave for a long time with success (SSD4 essentially), The only problem was that I could not drag & drop stuff from SSD4 to a track, but it was not a big deal.
I have now an new machine with ubuntu 17.10 and wine wine-2.0.2 (I was using a 17.04 before, perfect).
I installed with the deb provided on github, but the plugins don't load any more.
I then wanted to compile, but the result is the same, and I had to comment some part of the cmakes to compile only 64 bits (when I install the 64bits dev files, it removes the 32 bit version! :)
So I think it would be cool to make the 64 or 32 bits optionals from the cmake config ( I have seen that only 64 is option if it does not detects a 64 bits SDK).

With the version I compiled, it just does not work, plugin generation works but bitwig locks for a long time and after soem delays, says that it cannot load the plugin.

On the monitor window there are the following messages:

1513456500.894228449 SsdSampler.so : Initializing plugin endpoint 1.3.3
1513456500.894240700 SsdSampler.so : Plugin binary: /home/guillaume/.vst/SsdSampler.so
1513456500.894247500 SsdSampler.so : WINE prefix: /home/guillaume/.wine
1513456500.894265720 SsdSampler.so : WINE loader: /usr/bin/wine-stable
1513456500.894271280 SsdSampler.so : VST binary: /home/guillaume/.wine/drive_c/Program Files/SSD/SsdSampler.dll
1513456500.896491412 SsdSampler.so : Host binary: /usr/local/bin/airwave-host-64.exe
1513456500.896495802 SsdSampler.so : Log level: debug
1513456500.896498292 SsdSampler.so : Main thread id: 0x7f0ca437a740
1513456500.896673716 SsdSampler.so : Child process started, pid=47616
1513456500.896763548 SsdSampler.so : Callback thread started
1513456500.896788348 SsdSampler.so : Waiting response from host endpoint...
1513456500.945911668 SsdSampler.so : Child process terminated

I try with an other plugin (Graillon2 from Auburn) and have the exact same message.
Is there an easy fix for that? How can I help in solving the problem?

a++
Guillaume.

KVRAF
2931 posts since 3 Nov, 2015

Post Sun Dec 17, 2017 9:25 pm

A side question: from where do you get a wine 2.x version ? I am running Linux Mint 18 and the repo has 1.81 only. - Thanks.

KVRist
151 posts since 11 Aug, 2016

Post Sun Dec 17, 2017 11:03 pm


KVRAF
2931 posts since 3 Nov, 2015

Post Tue Dec 19, 2017 1:20 pm

Another side question: is there a guide out there that describes step-by-step what is to be done to bring wine/airwave and whatever else is needed to Linux to achieve full functionality and that also shows some examples on how to use Windows plugins in a DAW such as Ardour/Mixbus and/or Bitwig ?

Thanks.

KVRAF
8045 posts since 6 Oct, 2004

Post Wed Dec 20, 2017 7:25 pm

edit: it's linvstconverttree (see below) not converttree ...my apologies :dog:

When the airwave debian file is installed, you'll have a gui panel
called airwave-manager, and creates a config file.
Type airwave-manager in a terminal to open the gui

.config/airwave/airwave.conf is a text file that reflects choices made in the gui, and is quite simple to edit, should you find a need to.

The gui panel lets you browse to, and choose which vst to wrap, puts it on a list, with a row of buttons on top of the gui to create, edit, update, and remove links, along with some other items.

The links will go from the vsts you choose to wrap, to a folder of your choice, which will hold the vsts, but now with .so extensions which many linux daw apps will load.

linvst also wraps vsts, but with a different approach. It places wrapped vsts alongside the originals, and provides a linvstconverttree command, for recursive wrapping if you have plugins with folders within folders,
to reach the .dll itself. It's super-fast, and if you want to add new plugins to wrap, delete all the .so files first, and run the linvstconverttree command again.

I've found it best to keep little-used plugins to themselves, and only wrap what I actually use, installing them to a main location, like Program Files/VstPlugins

I also let plugins use their default install paths, and then link the .dll
to the path folder where they will be wrapped

For wine-staging, I fully uninstalled whatever wine existed, then added the wineHQ wine-staging repository, and have added some over-rides as the braintrust has discovered them. When the first wine command
is issued, or when you type winecfg in a terminal, the winecfg
config panel opens, and you can make some preferences choices.

Wine 'over-rides' enable some extra vst compatibility, in the winecfg libraries tab, you can choose which wine .dll files you want to replace (over-ride) with real ones you've downloaded, or copied from a real windows install.
I just rename the ones I replace by changing the extension like this: .dllDEFAULT so I can quickly find them in a filemanager
should I need to revert. Wine .dll files
are kept in .wine/drive_c/windows/system32

Once your plugins are scanned, just load them as normally
in your daw apps, wine just sits around in the shadows.
Reaper has the best scanning success, followed by Bitwig
and Mixbus. Qtractor has gained ground in the last two releases,
and author Rui Capela was the first linux developer to sort out scanning
the multi-plugin installations that U-he provides with Uhbiks, Zebra, and Filterscape.

In your daw apps, add any extra path destinations you've made,
in the related vst scan preference. I link the standalone instruments
and apps to /home/me and start them from a terminal, to capture
any error or debugging info

wine name-of.exe

Carla-rack vst plugin can host lv2 plugins in linux daws,
very handy if you have familiar lv2 favorites you rely on.
Cheers
Last edited by glokraw on Thu Dec 21, 2017 3:42 pm, edited 1 time in total.

KVRist
59 posts since 27 Mar, 2014

Post Thu Dec 21, 2017 2:57 am

My version of wine comes from ubuntu 17.10. It comes with 2.0.2 stable or 2.18 in development (at least, those are the names of the packages.
I just saw that is an older version also available:1.8 . I will try to install it.

KVRist
59 posts since 27 Mar, 2014

Post Thu Dec 21, 2017 3:28 am

Same problem.
I used the pre-compiled airwave availlable on git with the same result.

KVRAF
8045 posts since 6 Oct, 2004

Post Thu Dec 21, 2017 11:43 am

I would use synaptic to fully uninstall all standard repository wine items,
and because of dependency hell, you may have to reinstall some things later.
Then ad the wineHQ repository to synaptic, and install the latest wine-staging and it's related dev files.

Then install linvst, and use it's linvstconverttree to scan your vsts folder(s). (I copy linvst.so and linvstconverttree to /home/me
for conenience)
Run Bitwig and note the plugins you care about
that were not scanned successfully, and delete those .so files.

Then install airwave, and attempt to wrap just the plugins you noted,
that were not scanned successfully by Bitwig, after the attempts
to wrap them with linvst/converttree.

Run Bitwig again, and hope it scans the airwave wrapped plugins.

If there are remaining plugins of great importance to you that are
not being scanned by Bitwig, you can trys scanning them with some
other daws softwares. You can run multiples daws at once,
and record their summed outputs with timemachine,
or other recording utility.
Cheers.

KVRist
59 posts since 27 Mar, 2014

Post Sat Dec 23, 2017 5:22 am

Than you glokraw for your help, I tried with WineHQ version after uninstalling everything related to wine, and could get the plugin to scan. But it does not work, I will maybe re-install an older ubuntu (it worked well with a 17.04).

KVRAF
2931 posts since 3 Nov, 2015

Post Sat Dec 23, 2017 9:45 am

glokraw wrote:Then install linvst, and use it's linvstconverttree to scan your vsts folder(s). (I copy linvst.so and linvstconverttree to /home/me for conenience) Run Bitwig and note the plugins you care about that were not scanned successfully, and delete those .so files.
Why would the current VSTs need to be scanned ? Every plugin works fine at the moment in Bitwig. Not easy to be convinced to mess with a working setup. Or is this about Windows plugins that linvst scans ?

KVRAF
8045 posts since 6 Oct, 2004

Post Sat Dec 23, 2017 4:20 pm

Yes, the plugins that linvst or airwave wrap, and give a .so extension,
are for linux versions of bitwig, reaper, mixbus, renoise, qtractor,
ardour, radium etc.
Cheers

Return to “Bitwig”