Configuring LinVst on Arch Linux

Posted on March 9, 2020

Brief

There are some really nice synths which are unfortunately Windows-exclusive. After some Google search, there are two ways to run Windows VSTs in your Linux DAW, LinVst and airwave. From my perspective as a user, they both take a Windows dll file and then turns it into a so file that can be dynamically loaded by the DAW. Airwave provides a very intuitive interface for converting dll to so, but it does not show the GUI interface of the plugins consistently, even after applying the suggested wine patch. LinVst is equally easy to configure but I find the documentation from the github page somewhat confusing especially when you install linvst from AUR only to find the conversion executable does not even exist.

In this blog post, I am going to explain step-by-step how I set up LinVst on my system with a globally installed linvst package available from the AUR. To make the steps more concrete, I will show specifically how you can get Synth1 to run on Arch.

Steps

Install linvst using your favorite aur helper

~ $ pacman -Ql linvst
linvst /usr/
linvst /usr/bin/
linvst /usr/bin/lin-vst-servertrack.exe
linvst /usr/bin/lin-vst-servertrack.exe.so
linvst /usr/bin/lin-vst-servertrack32.exe
linvst /usr/bin/lin-vst-servertrack32.exe.so
linvst /usr/lib/
linvst /usr/lib/vst/
linvst /usr/lib/vst/linvst.so

The file that really matters is /usr/lib/vst/linvst.so. You do not need to run any of the executables manually.

Download and Unpack Synth1

Here is the link: https://daichilab.sakura.ne.jp/softsynth/index.html

First, unpack Synth1 to a path that is searched by your DAW.

~ $ cd .vst
~/.vst $ 7z x ~/Downloads/Synth1V113beta3.zip 
~/.vst $ cd Synth1/
~/.vst/Synth1 $ ls
Synth1 VST64.dll  readme.html     settings     soundbank02  soundbank05  soundbank08
images            readmeeng.html  soundbank00  soundbank03  soundbank06  soundbank09
initsettings.exe  reg2ini.exe     soundbank01  soundbank04  soundbank07  zipbank

We want Synth1 VST64.dll to be loaded by the DAW.

Copy/rename linvst.so

I choose not to name this section convert from dll to so because you do not really “convert” anything. Just as the title suggests, you simply copy/paste /usr/lib/linvst.so to the directory where your dll lives and rename it so they have the same name. That’s it. You don’t need to take extra steps and Synth1 just magically works. On AUR, it has been alluded by the discussoin that this is all you need to do, but my brain filtered out the information because the github wiki has this linvstconvert executable which convinced me that copy/paste linvst.so is not enough.

~/.vst/Synth1 $ cp  /usr/lib/vst/linvst.so 'Synth1 VST64.so'
# and you're all set!
~/.vst/Synth1 $ ls
Synth1 VST64.dll  initsettings.exe  reg2ini.exe  soundbank01  soundbank04  soundbank07  zipbank
Synth1 VST64.so   readme.html       settings     soundbank02  soundbank05  soundbank08  
images            readmeeng.html    soundbank00  soundbank03  soundbank06  soundbank09  

Now you should have the two files Synth1 VST64.dll and Synth1 VST64.so, both share the name Synth1 VST64.

Make sure the vst directory is in your DAW’s load path

Note how I added .vst to the plug-in path in Reaper. Reaper is able to search recursively for .so files so I do not have to specify ~/.vst/Synth1.

Your DAW might complain that it cannot load linvst.so, which, at least in Reaper, is always safe to ignore. linvst.so is meant to be loaded only when it is “paired up” with a dll, as we have done in the previous step (again, I have to emphasize that “pairing up” is nothing more than copying & renaming). It does not make sense to have your DAW to load a linvst.so file alone. The AUR package could have been structured differently so linvst.so is not located in /usr/lib/vst, which is a path that’s loaded by most DAWs.