Table of Contents
Toward a Linux Softsynth Performance Setup
This is a work in progress.
Our goal here is to create a Linux setup that will host LV2 and possibly VST3 plugins (softsynth and effects) for use in live performance. We don't care about and don't want DAW functionality.
To get this done, we will need:
- An application that will host the plugin(s).
- JACK and a way to control it.
- Plugins for one or more softsynths and possibly some effect plugins.
I'm assuming you have a MIDI controller you want to use. If not, you'll one of those too. If MIDI over USB is new to you, you might want to get educated.
Plugin hosts
Rather than use a standalone software synth, I want an environment where I can experiment with various synths and effects that are packaged as LV2 and possibly VST3 plugins. So, we need something to host those plugins. Most DAWs will host plugins, but for our purposes that's way heavier and potentially more confusing and/or less convenient than using something that serves primarily as just a plugin host.
The credible options I've found are summarized below. I found many of these at this list at linuxaudio.org. The descriptive text for most of these is derived from the web pages that are linked to.
- Bipscript is a scripting language for interactive music. Features include APIs for audio plugin hosting, MIDI sequencing and OSC control.
- Carla is a fully-featured modular audio plugin host, with support for many audio drivers and plugin formats.
- Element is a modular AU/LV2/VST/VST3 audio plugin host. It appears to be in active development.
- Guitarix is a guitar-centric hosting platform. I'm not sure if it can host MIDI instruments.
- jalv, a simple but fully featured LV2 host for JACK. See also jalv.select, a little app to select lv2 plugins for jalv. Jalv appears to be in active development.
- mod-host is an LV2 host for Jack controllable via socket or command line. May be guitar-centric.
zynjacku is JACK based, GTK (2.x) host for LV2 synths.Active development seems to have stopped around 2011.
JACK and controlling it
Many distributions are currently migrating to the PipeWire framework. Thus, this section may be obsolete or incomplete.
JACK Audio Connection Kit is a server that lets you virtually patch audio sources, audio sinks, and MIDI. It's a CLI application, and if that's your thing, more power to you. For the rest of us, we'll want a GUI wrapper to tell JACK what to do.
There are two GUI wrappers that seem to make sense here: QjackCtl (sources) and Carla.
QjackCtl is the one you hear most about. It's available in most distributions' repositories. Carla is the same app that was mentioned above in Plugin hosts. Does this mean Carla is especially attractive because it integrates hosting and patching? I think it does.
Plugins
There are heaps of softsynth plugins available, many for free, many open source. Below are some sites that catalog some of them.
- KXStudio offers a repository with plugins, as well as links to other providers and some utilities.
- linuxaudio.org has a collection of Soft Synths/Samplers and LV2 Plugins.
This list is by no means exhaustive.
Attempt 1: The KVStudio stack
In this attempt, I'll add the KVStudio repositories to a Debian or Ubuntu Studio install and use Carla to host the the Dexed plugin. Dexed is a 6op emulator officially only available for macOS and Windows. However, there seem to be Linux-compatible ports:
- KVR Audio offers a VST3 version for Linux.
LinuxSyths.com has some additional info on and resources for Dexed.
[to be continued]