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

Official support for: bitwig.com
Post Reply New Topic
RELATED
PRODUCTS

Post

I also tried a plugin called Multiply. http://acondigital.com/products/multiply/

It didn't work and produced the exact symptoms as the problem I had with the Velocity Curve vst above.

I noticed a common error, which I didn't notice first time but I am also seeing with Velocity Curve, in the airwave log.

1416132122.397101096 Multiply.so : Unhandled dispatch event: effGetEffectName

Could this be my problem?

Also, if I am still barking up the wrong tree, can someone list a free windows vst plugin known to work well so I can use it for testing?

thanks for any help there...

Post

You may try Synth1 (free), Spire, Sytrus, Harmless, Massive, FM8, Vanguard, Nexus, all U-HE plugins (but native versions are available now). Most of these plugins have trial versions.

I've tried Multiply and it doesn't work correctly for me.

Post

Thanks - it seems airwave from the binaries does work for me. I got Synth1 working. Well, sort of. The interface comes up within BWS and I got some clean notes. Then lots of static. And an endless stream of 'Unhandled dispatch event: effGetTailSize'. The linker works and the UI comes up alright though - it is just maxing out my DSP to 100% probably due to those errors.

Anyway, it seems like I have a working system and lots of trial and error ahead.

Post

I just realised closing down the airwave utility helps this situation quite a bit and after a while Synth1 seems to settle down into a working state.

Post

I'm just trying this out, along with Wine, but I'm having some problems getting it working. I have installed Wine and a couple of VSTs and have them working inside Reaper but this bridge won't work at all for me, I make the links and make my host do a new scan but the plugins don't show. I've looked in renoise, qtractor, carla. I didn't get any errors when building and installing this bridge so I'm not sure where to go from here to troubleshoot this. Most likely it is something simple as I am new to Wine.

Code: Select all

wine --version
wine-1.7.29

Code: Select all

echo $PATH
/home/alex/bin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/lib:/usr/lib32:/usr/lib64:/home/alex/bin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/home/alex/.config/bspwm:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.8.3

Code: Select all

whereis wine
wine: /usr/bin/wine /usr/lib64/wine /usr/include/wine /usr/share/wine /usr/lib32/wine /usr/share/man/man1/wine.1.bz2
Not sure if this is the right way to launch it but it was the only way I could find (after seeing a suggestion a few pages back)

Code: Select all

wine airwave-host-32.exe                                                             
wine: Bad EXE format for Z:\opt\airwave\bin\airwave-host-32.exe
Any ideas?
linux

Post

Alexis Isis wrote:Not sure if this is the right way to launch it but it was the only way I could find (after seeing a suggestion a few pages back)

Code: Select all

wine airwave-host-32.exe                                                             
wine: Bad EXE format for Z:\opt\airwave\bin\airwave-host-32.exe
Any ideas?
You shouldn't try to manually launch airwave-host-32.exe. This is a wrapper which started by airwave-plugin and it is unusable without it.
Have you installed vst plugins with wine, or just try to work with plugins from Windows partition (the second is wrong)? Are you sure, you have created links with airwave-utility in the right place, where your vst host (renoise for example) is looking for vst plugins? Can you test with Bitwig Studio?
When vst host scans for plugins, some messages should be displayed at the "Log messages" tab in airwave-utility. If this view is empty, then it's more likely vst host doesn't scan the directory, where you have created links for plugins.

Post

Ok, I did manage to get renoise to see them but it gave an error message -
Error Message: Internal Error: Failed to connect to the external audio plugin process (could not establish a connection to the server).
I definitely made the links, I can see them there (in the utility and in a file manager):

Image

The plugins are in ~/.wine/drive_c/users/VST so no partitions involved. There are no logs at all in the airwave utility. I have the bitwig demo installed but it doesn't seem to be working right now for some odd reason, getting some java errors from the terminal.
linux

Post

This is very strange. I have no idea what's wrong, but at least one log message should be displayed when host tries to load the plugin (if you have airwave-utility running at the background at this time of course). Do you have shared memory enabled

Code: Select all

ipcs -lm
?

Post

Thanks for the reply phantom-one. This is what that command gives:

Code: Select all

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 1011322
max total shared memory (kbytes) = 4045288
min seg size (bytes) = 1

I just rebuilt and reinstalled airwave (this time in to /usr/local) and redownloaded the bitwig demo and things are looking a little better. When I try in bitwig I am seeing some output in the log of airwave although the plugin is not showing in bitwig. This is what logged in airwave:

Code: Select all

1418597157.527790679       airwave-plugin : Starting Airwave master unit 0.5.0
1418597157.527820362 Analogic Delay  v1_2 : Plugin binary: /home/alex/.vst/Analogic Delay  v1_2.so
1418597157.527835377 Analogic Delay  v1_2 : Host binary:   /usr/local/bin/airwave-host-32.exe
1418597157.532341048 Analogic Delay  v1_2 : VST binary:    /home/alex/.wine/drive_c/users/alex/VSTs/analogicdelay1_2/Analogic Delay  v1_2.dll
1418597157.532356972 Analogic Delay  v1_2 : Main thread id: 0xf7437700
1418597157.534027087 Analogic Delay  v1_2 : WINELOADER is not set, using wine from the PATH
1418597157.534069690 Analogic Delay  v1_2 : Child process started, pid=4126
1418597157.534953671 Analogic Delay  v1_2 : Callback thread started
1418597157.534981607 Analogic Delay  v1_2 : Waiting for child response...
1418597160.535053335 Analogic Delay  v1_2 : Child process is not responding
1418597160.535126738 Analogic Delay  v1_2 : Unable to initialize master unit
Inside bitwig itself in the preferences>plugin management it gives this error for the plugin:

Code: Select all

/home/alex/.vst/Analogic Delay  v1_2.so

com.bitwig.flt.library.metadata.reader.exception.CouldNotReadMetadataException: could not read metadata: Could not read VST plug-in metadata
64 bit plugin host reported errors: Pluginhost returned non zero exit code 255

32 bit plugin host reported errors: Pluginhost returned non zero exit code 139

Renoise has a problem scanning it, it says:

Code: Select all

Internal Error: Failed to connect to the external audio plugin process (could not establish a connection to the server).
But no logs are created in airwave. I think this is related to the plugin bridge so I downloaded the 32 bit version of renoise and it scans the plugin and allows me to load it too, everything seems to be fine with it there.

So it seems to be an issue with 64 bit hosts vs 32 bit plugins. This is interesting because I was trying Abique's bridge today and it worked but I was having lots of problems with opening/closing the guis causing temporary hangs in the audio but with airwave and 32 bit renoise everything is very smooth.

Is this is a Wine issue or do I need to use a 32 bit host?
linux

Post

Is this is a Wine issue or do I need to use a 32 bit host?
No, host with any (32/64-bit) architecture should work.
Maybe it's stupid questions, but do you have 64-bit wine installed? Do you use 32-bit or 64-bit wine prefix (have you set WINEARCH when running winecfg at first time)?

Post

phantom-one wrote: Maybe it's stupid questions, but do you have 64-bit wine installed? Do you use 32-bit or 64-bit wine prefix (have you set WINEARCH when running winecfg at first time)?
I am running 64 bit wine with a 64 bit prefix. I don't remember setting it either way when I first installed it. I just tried created a new 32 bit prefix but it didn't change anything so it seems that's not the issue? Also, when I use abique's vst-bridge everything does kind of work, the performance is not very good though, opening and closing the guis causes freezes and drop outs. With airwave and 32 bit renoise everything is smooth and flawless.

Maybe I missed something with wine, these are the USE flags for the build, just default ones in gentoo:

Code: Select all

 U I
 + + X                      : Add support for X11
 + + alsa                   : Add support for media-libs/alsa-lib (Advanced Linux Sound Architecture)
 - - capi                   : Enable ISDN support via CAPI
 - - cups                   : Add support for CUPS (Common Unix Printing System)
 - - custom-cflags          : Bypass strip-flags; use at your own peril
 - - dos                    : Pull in games-emulation/dosbox to run DOS applications
 + + fontconfig             : Support for configuring and customizing font access via media-libs/fontconfig
 + + gecko                  : Add support for the Gecko engine when using iexplore
 - - gphoto2                : Add digital camera support
 - - gsm                    : Add support for the gsm lossy speech compression codec
 - - gstreamer              : Add support for media-libs/gstreamer (Streaming media)
 + + jpeg                   : Add JPEG image support
 - - lcms                   : Add lcms support (color management engine)
 - - ldap                   : Add LDAP support (Lightweight Directory Access Protocol)
 - - linguas_ar             : Arabic locale
 - - linguas_bg             : Bulgarian locale
 - - linguas_ca             : Catalan locale
 - - linguas_cs             : Czech locale
 - - linguas_da             : Danish locale
 - - linguas_de             : German locale
 - - linguas_el             : Greek locale
 - - linguas_en             : English locale
 - - linguas_en_US          : English locale
 - - linguas_eo             : Esperanto locale
 - - linguas_es             : Spanish locale
 - - linguas_fa             : Persian locale
 - - linguas_fi             : Finnish locale
 - - linguas_fr             : French locale
 - - linguas_he             : Hebrew locale
 - - linguas_hi             : Hindi locale
 - - linguas_hr             : Croatian locale
 - - linguas_hu             : Hungarian locale
 - - linguas_it             : Italian locale
 - - linguas_ja             : Japanese locale
 - - linguas_ko             : Korean locale
 - - linguas_lt             : Lithuanian locale
 - - linguas_ml             : Malayalam locale
 - - linguas_nb_NO          : Norwegian (Bokmal) locale for Norway
 - - linguas_nl             : Dutch locale
 - - linguas_or             : Oriya locale
 - - linguas_pa             : Punjabi locale for India
 - - linguas_pl             : Polish locale
 - - linguas_pt_BR          : Portuguese locale for Brasil
 - - linguas_pt_PT          : Portuguese locale for Portugal
 - - linguas_rm             : Romansh locale
 - - linguas_ro             : Romanian locale
 - - linguas_ru             : Russian locale
 - - linguas_sk             : Slovak locale
 - - linguas_sl             : Slovenian locale
 - - linguas_sr_RS@cyrillic : Serbian (cyrillic) locale for Serbia
 - - linguas_sr_RS@latin    : Serbian (latin) locale for Serbia
 - - linguas_sv             : Swedish locale
 - - linguas_te             : Telugu locale
 - - linguas_th             : Thai locale
 - - linguas_tr             : Turkish locale
 - - linguas_uk             : Ukrainian locale
 - - linguas_wa             : Walloon locale
 - - linguas_zh_CN          : Chinese locale for Peoples Republic of China
 - - linguas_zh_TW          : Chinese locale for Taiwan
 + + mono                   : Add support for .NET using Wine's Mono add-on
 + + mp3                    : Add support for reading mp3 files
 + + ncurses                : Add ncurses support (console display library)
 - - netapi                 : Use libnetapi from net-fs/samba to support Windows networks in netapi32.dll
 + + nls                    : Add Native Language Support (using gettext - GNU locale utilities)
 - - odbc                   : Add ODBC Support (Open DataBase Connectivity)
 - - openal                 : Add support for the Open Audio Library
 - - opencl                 : Enable OpenCL support
 + + opengl                 : Add support for OpenGL (3D graphics)
 - - osmesa                 : Add support for OpenGL in bitmaps using libOSMesa
 - - oss                    : Add support for OSS (Open Sound System)
 + + perl                   : Install helpers written in perl (winedump/winemaker)
 - - pipelight              : Apply unofficial Compholio patches for Pipelight/Silverlight support; use at
                              your own peril
 + + png                    : Add support for libpng (PNG images)
 + + prelink                : Run prelink on DLLs during build -- do not disable if you do not know what this
                              means as it can break things at runtime
 - - pulseaudio             : Add support for PulseAudio sound server
 + + realtime               : Pull in sys-auth/rtkit for low-latency pulseaudio support
 + + run-exes               : Use Wine to open and run .EXE and .MSI files
 - - samba                  : Add support for NTLM auth. see http://wiki.winehq.org/NtlmAuthSetupGuide and
                              http://wiki.winehq.org/NtlmSigningAndSealing
 - - scanner                : Add support for scanner hardware (e.g. build the sane frontend in kdegraphics)
 + + ssl                    : Add support for Secure Socket Layer connections
 - - test                   : Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2
                              handles this internally, so don't set it in make.conf/package.use anymore
 + + threads                : Add threads support for various packages. Usually pthreads
 + + truetype               : Add support for FreeType and/or FreeType2 fonts
 - - udisks                 : Enable storage management support (automounting, volume monitoring, etc)
 - - v4l                    : Enable support for video4linux (using linux-headers or userspace libv4l
                              libraries)
 - - xcomposite             : Enable support for the Xorg composite extension
 - - xinerama               : Add support for the xinerama X11 extension, which is mandatory if you work in
                              multiple monitors setup
 + + xml                    : Add support for XML files
linux

Post

Is anyone able to download the 64 bit renoise demo and give this bridge a try? I'd really like to know if it just doesn't work for everyone of whether it is something in my set up. I can't get to the bottom of why this works in 32 bit renoise but not 64 bit.
linux

Post

Alexis Isis wrote:Is anyone able to download the 64 bit renoise demo and give this bridge a try? I'd really like to know if it just doesn't work for everyone of whether it is something in my set up. I can't get to the bottom of why this works in 32 bit renoise but not 64 bit.
Alexis Isis, it works on my side. Here is the 64-bit renoise running the 32-bit Sytrus with airwave: Image

Post

Thank you for doing that, I really appreciate it and that solves a lot of the unknowns for me. I don't know where to start to find out what's missing or not working on my system. I thought maybe there was something missing in my kernel but I tried a full debian-sources kernel and the same thing happened.

I wonder if something is missing when I build airwave?

Code: Select all

cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE="Release"
-- VSTSDK_PATH is set to /home/alex/.git_repos/airwave/vstsdk2.4
-- VST SDK headers are found in /home/alex/.git_repos/airwave/vstsdk2.4/pluginterfaces/vst2.x
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found LibDL: /usr/lib64/libdl.so  
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib64/libX11.so
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found
-- Found Qt4: /usr/bin/qmake (found version "4.8.6") 
-- libmagic version: 5.21
-- Found LibMagic: /usr/lib64/libmagic.so  
-- Configuring done
-- Generating done
-- Build files have been written to: /home/alex/.git_repos/airwave/build

Code: Select all

make                                                  
Scanning dependencies of target airwave-host-32
Scanning dependencies of target airwave-host-64
[  1%] [  3%] Building CXX object host/CMakeFiles/airwave-host-32.dir/__/common/dataport.cpp.o
Building CXX object host/CMakeFiles/airwave-host-64.dir/__/common/dataport.cpp.o
[  5%] [  7%] Building CXX object host/CMakeFiles/airwave-host-32.dir/__/common/eventsignal.cpp.o
Building CXX object host/CMakeFiles/airwave-host-64.dir/__/common/eventsignal.cpp.o
[  8%] Building CXX object host/CMakeFiles/airwave-host-64.dir/__/common/logger.cpp.o
[ 10%] Building CXX object host/CMakeFiles/airwave-host-32.dir/__/common/logger.cpp.o
[ 12%] Building CXX object host/CMakeFiles/airwave-host-64.dir/host.cpp.o
[ 14%] Building CXX object host/CMakeFiles/airwave-host-32.dir/host.cpp.o
[ 15%] Building CXX object host/CMakeFiles/airwave-host-64.dir/slaveunit.cpp.o
[ 17%] Building CXX object host/CMakeFiles/airwave-host-32.dir/slaveunit.cpp.o
Linking CXX executable airwave-host-64
Linking CXX executable airwave-host-32
[ 21%] Built target airwave-host-64
Scanning dependencies of target airwave-plugin-32
[ 22%] Building CXX object plugin/CMakeFiles/airwave-plugin-32.dir/__/common/dataport.cpp.o
[ 26%] Built target airwave-host-32
[ 28%] Building CXX object plugin/CMakeFiles/airwave-plugin-32.dir/__/common/eventsignal.cpp.o
[ 29%] Building CXX object plugin/CMakeFiles/airwave-plugin-32.dir/__/common/linkmanager.cpp.o
[ 31%] Building CXX object plugin/CMakeFiles/airwave-plugin-32.dir/__/common/logger.cpp.o
[ 33%] Building CXX object plugin/CMakeFiles/airwave-plugin-32.dir/masterunit.cpp.o
/home/alex/.git_repos/airwave/plugin/masterunit.cpp: In member function ‘intptr_t Airwave::MasterUnit::dispatch(Airwave::DataPort*, int32_t, int32_t, intptr_t, void*, float)’:
/home/alex/.git_repos/airwave/plugin/masterunit.cpp:331:48: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
   rect_ = *reinterpret_cast<ERect*>(frame->data);
                                                ^
/home/alex/.git_repos/airwave/plugin/masterunit.cpp:331:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
   rect_ = *reinterpret_cast<ERect*>(frame->data);
         ^
/home/alex/.git_repos/airwave/plugin/masterunit.cpp:364:48: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
   rect_ = *reinterpret_cast<ERect*>(frame->data);
                                                ^
/home/alex/.git_repos/airwave/plugin/masterunit.cpp:364:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
   rect_ = *reinterpret_cast<ERect*>(frame->data);
         ^
[ 35%] Building CXX object plugin/CMakeFiles/airwave-plugin-32.dir/plugin.cpp.o
Scanning dependencies of target airwave-plugin-64
[ 36%] Building CXX object plugin/CMakeFiles/airwave-plugin-64.dir/__/common/dataport.cpp.o
[ 38%] Building CXX object plugin/CMakeFiles/airwave-plugin-64.dir/__/common/eventsignal.cpp.o
Linking CXX shared library airwave-plugin-32.so
[ 42%] Built target airwave-plugin-32
[ 43%] Automatic moc for target qtsingleapplication
[ 43%] Built target qtsingleapplication_automoc
[ 45%] Automatic moc for target airwave-utility
[ 45%] Built target airwave-utility_automoc
[ 56%] Built target qtsingleapplication
Scanning dependencies of target airwave-utility
[ 57%] Building CXX object plugin/CMakeFiles/airwave-plugin-64.dir/__/common/linkmanager.cpp.o
[ 59%] Building CXX object utility/CMakeFiles/airwave-utility.dir/__/common/logger.cpp.o
[ 61%] Building CXX object utility/CMakeFiles/airwave-utility.dir/__/common/linkmanager.cpp.o
[ 63%] Building CXX object plugin/CMakeFiles/airwave-plugin-64.dir/__/common/logger.cpp.o
[ 64%] Building CXX object plugin/CMakeFiles/airwave-plugin-64.dir/masterunit.cpp.o
[ 66%] Building CXX object utility/CMakeFiles/airwave-utility.dir/forms/mainform.cpp.o
/home/alex/.git_repos/airwave/plugin/masterunit.cpp: In member function ‘intptr_t Airwave::MasterUnit::dispatch(Airwave::DataPort*, int32_t, int32_t, intptr_t, void*, float)’:
/home/alex/.git_repos/airwave/plugin/masterunit.cpp:331:48: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
   rect_ = *reinterpret_cast<ERect*>(frame->data);
                                                ^
/home/alex/.git_repos/airwave/plugin/masterunit.cpp:331:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
   rect_ = *reinterpret_cast<ERect*>(frame->data);
         ^
/home/alex/.git_repos/airwave/plugin/masterunit.cpp:364:48: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
   rect_ = *reinterpret_cast<ERect*>(frame->data);
                                                ^
/home/alex/.git_repos/airwave/plugin/masterunit.cpp:364:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
   rect_ = *reinterpret_cast<ERect*>(frame->data);
         ^
[ 68%] Building CXX object plugin/CMakeFiles/airwave-plugin-64.dir/plugin.cpp.o
Linking CXX shared library airwave-plugin-64.so
[ 71%] Built target airwave-plugin-64
[ 73%] Building CXX object utility/CMakeFiles/airwave-utility.dir/widgets/logview.cpp.o
Linking CXX executable airwave-utility
[100%] Built target airwave-utility

Code: Select all

sudo make install                                 
Password: 
Linking CXX executable airwave-host-32
[ 12%] Built target airwave-host-32
Linking CXX executable airwave-host-64
[ 24%] Built target airwave-host-64
[ 38%] Built target airwave-plugin-32
[ 52%] Built target airwave-plugin-64
[ 54%] Automatic moc for target qtsingleapplication
[ 54%] Built target qtsingleapplication_automoc
[ 64%] Built target qtsingleapplication
[ 66%] Automatic moc for target airwave-utility
[ 66%] Built target airwave-utility_automoc
[100%] Built target airwave-utility
Linking CXX shared library CMakeFiles/CMakeRelink.dir/airwave-plugin-32.so
Linking CXX shared library CMakeFiles/CMakeRelink.dir/airwave-plugin-64.so
Linking CXX executable CMakeFiles/CMakeRelink.dir/airwave-utility
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/bin/airwave-host-64.exe
-- Installing: /usr/local/bin/airwave-host-64.exe.so
-- Installing: /usr/local/bin/airwave-host-32.exe
-- Installing: /usr/local/bin/airwave-host-32.exe.so
-- Installing: /usr/local/share/airwave/airwave-plugin-64.so
-- Installing: /usr/local/share/airwave/airwave-plugin-32.so
-- Installing: /usr/local/bin/airwave-utility
-- Up-to-date: /usr/local/share/icons/hicolor/48x48/apps/airwave-utility.png
-- Up-to-date: /usr/local/share/applications/airwave-utility.desktop
linux

Post

Your logs are fine, all components were built successfully.
I can try to help you, but I need to look closely. Can you create VirtualBox image with your distribution installed (same version as on your desktop), so I can download it and look what's wrong (you may install any WM or DE)? I know it's not a simple task, but it's the fastest way to find the issue.

Post Reply

Return to “Bitwig”