====== 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 [[https://www.synthtopia.com/content/2019/03/12/everything-you-need-to-know-about-usb-midi/|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 [[https://wiki.linuxaudio.org/apps/categories/lv2|this list]] at linuxaudio.org. The descriptive text for most of these is derived from the web pages that are linked to.
* [[http://www.bipscript.org/|Bipscript]] is a scripting language for interactive music. Features include APIs for audio plugin hosting, MIDI sequencing and OSC control.
* [[https://kx.studio/Applications:Carla|Carla]] is a fully-featured modular audio plugin host, with support for many audio drivers and plugin formats.
* [[https://github.com/kushview/element|Element]] is a modular AU/LV2/VST/VST3 audio plugin host. It appears to be in active development.
* [[https://guitarix.org/|Guitarix]] is a guitar-centric hosting platform. I'm not sure if it can host MIDI instruments.
* [[http://drobilla.net/software/jalv.html|jalv]], a simple but fully featured LV2 host for JACK. See also [[https://github.com/brummer10/jalv_select|jalv.select]], a little app to select lv2 plugins for jalv. Jalv appears to be in active development.
* [[https://github.com/moddevices/mod-host|mod-host]] is an LV2 host for Jack controllable via socket or command line. May be guitar-centric.
* [[https://github.com/nedko/zynjacku|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 [[https://pipewire.org/|PipeWire]] framework. Thus, this section may be obsolete or incomplete.
[[https://jackaudio.org/|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:
[[https://qjackctl.sourceforge.io/|QjackCtl]] ([[https://github.com/rncbc/qjackctl|sources]]) and [[https://kx.studio/Applications:Carla|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|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 [[https://kx.studio/Repositories:Plugins|repository with plugins]], as well as [[https://kx.studio/Plugins|links to other providers and some utilities]].
* linuxaudio.org has a collection of [[https://wiki.linuxaudio.org/apps/categories/softsynths_and_samplers|Soft Synths/Samplers]] and [[https://wiki.linuxaudio.org/apps/categories/lv2_plugins|LV2 Plugins]].
* [[http://linuxsynths.com/index.html|LinuxSynths.com]]
* [[https://www.looperman.com/free-music-software/formats/best-free-lv2-plugins-instruments-software-pc-mac-linux|Looperman]]
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. [[https://asb2m10.github.io/dexed/|Dexed]] is a 6op emulator officially only available for macOS and Windows. However, there seem to be Linux-compatible ports:
* KXStudio has both [[https://kx.studio/Repositories:Plugins#dexed-lv2|LV2]] and [[https://kx.studio/Repositories:Plugins#dexed-vst|VST3]] versions in their repositories (and directly downloadable). The release version format doesn't align with the official releases though and suggests it trails the official Dexed repository.
* [[https://www.kvraudio.com/product/dexed-by-digital-suburban|KVR Audio]] offers a VST3 version for Linux.
LinuxSyths.com has some additional [[http://linuxsynths.com/DexedPatchesDemos/dexed.html|info on and resources]] for Dexed.
[to be continued]