Sunday, November 12, 2023

Setting Up Soft Synths in Linux---Even Windows Ones!

I've been wanting to have a keyboard at my office, so I can practice a bit when I have a free moment. Eventually, I want to get a digital piano, or something similar, but at the moment I don't have the room for that. So I've bought an Arturia KeyLab 88 Mk II for the time being. It's just a MIDI controller, so does not make any sound by itself. The plan is to use software synthesizers on my computer for the sound.

I do use Ableton Live at home for this sort of purpose, but that means using Windows, and that means dual booting. (It doesn't seem a good idea to try to run that in a virtual machine, though I haven't tried that.) At work, I don't want to have to do that, so I need to set up Linux to use audio plugins, the more the better.

There are some good soft synths for Linux, including especially Surge XT. The Collab3 organ works on Linux, too. But there are so many more options for Windows, and many other sorts of instrument plugins, many of them free, and it'd be great to be able to use them on Linux.

Well, it turns out that is possible. Carla is a 'plugin host' that allows you to use audio plugins on Linux without having to load a workstation (such as Ardour). But the real key is yabridge, which uses Wine (which is a kind of Windows compatibility layer) to allow the use of Windows plugins on Linux. 

On Fedora, you have to use a COPR to install yabridge. It's recommended to install a customized version of wine as well, using the COPRs mentioned here. To simplify:

> for i in wine-{tkg,mono,kxvk} mingw-wine-gecko vkd3d winetricks yabridge; do sudo dnf copr enable patrickl/$i; done

> sudo dnf install --refresh wine wine-mono mingw32-wine-gecko mingw64-wine-gecko libvkd3d wine-dxvk* winetricks yabridge

The page mentioned also explains how to set up realtime scheduling.

It's actually very simple to use yabridge. First, you need to tell it where to find the plugins you want it to handle. These will probably be in your 'Windows' installation, i.e., in what Wine is treating as the C: drive. So you'll do something like:

# yabrdigectl add ~/.wine/drive_c/Program Files/VstPlugins

and similarly for anywhere else your plugins end up. Once you've got some plugins there, you run:

# yabridgectl sync

and then yabridge will create Linux 'plugins' as *.so files at ~/.vst/yabridge/ or some similar location, depending upon the plugin type. 

In all likelihood, Carla is already set up to look for plugins where yabridge puts things. If not, you can add the needed directory in the Carla configuration screen. 

When you add new plugins, you'll also need to 'refresh' Carla. This is not super-intuitive, but the way to do it is to go to the Add Plugin screen and then hit the Refresh button at upper right.

This works surprisingly well. I don't use Windows apps on Linux at all, really. Back in the day, most of them didn't work properly under Wine anyway, but I gather that things are much better now, and every plugin I've tried so far has worked fine, even really complex ones like Massive.

No comments:

Post a Comment

Comments welcome, but they are expected to be civil.
Please don't bother spamming me. I'm only going to delete it.