Jul 20, 2023

C library for loading and wrapping LV2 plugin UIs

Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.

Suil makes it possible to load a UI of any toolkit in a host using any other toolkit assuming the toolkits are both supported by Suil. Hosts do not need to build against or link to foreign toolkit libraries to use UIs written with that toolkit; all the necessary magic is performed by dynamically loaded modules. The API is designed such that hosts do not need to explicitly support specific toolkits at all - if Suil supports a particular toolkit, then UIs in that toolkit will work in all hosts that use Suil automatically.

Suil currently supports every combination of Gtk 2, Qt 4, and X11, e.g. with Suil a Gtk program can embed a Qt plugin UI without depending on Qt, and a Qt program can embed a Gtk plugin UI without depending on Gtk. On Windows, embedding native UIs in Gtk is also supported. I David Robillard would be happy to work with plugin authors to add support for new toolkits, please contact me if you’re interested in writing a plugin UI using a toolkit that is not yet supported in the LV2 ecosystem.

Checkout these related ports:
  • Zynaddsubfx - Realtime software synthesizer
  • Zrythm - Modern music production system, also known as DAW
  • Zplugins-lv2 - Collection of LV2 plugins to be bundled with Zrythm
  • Zmusic - GZDoom's music system as a standalone library
  • Zita-rev1 - Reworked version of the reverb originally developed for Aeolus
  • Zita-resampler - C++ library for resampling audio signals
  • Zita-njbridge - Command line client to transmit audio over a local IP network
  • Zita-mu1 - Simple Jack app used to organise stereo monitoring
  • Zita-jclient - Library to create a Jack client with a few lines of C++
  • Zita-dpl1 - Look-ahead digital peak level limiter
  • Zita-convolver - Fast, partitioned convolution engine library
  • Zita-bls1 - Blumlein Shuffler converter of binaural signals to stereo speaker pair
  • Zita-at1 - Autotuner Jack application
  • Zita-alsa-pcmi - Easy access to ALSA PCM devices
  • Zinf - GTK-based MP3 player