Skip to content

x42/convoLV2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

convoLV2

convoLV2 is a LV2 plugin to convolve audio signals with zero latency.

It is a very basic plugin: Currently the only parameter is the Impulse-Response file and hence it is robust and efficient convolver.

The plugin comes in three variants:

  • Mono: 1 channel in, 1 channel out. Mono IR file
  • Mono To Stereo: 1 channel in, 2 channel out. Stereo IR file. (L, R)
  • True Stereo: 2 in, 2 out. 4 channel IR file (L -> L, R -> R, L -> R, R -> L)

Excess channels in an IR file are ignored. If an IR file has insufficient channels for the required configuration, channel-assignment wraps around (modulo file channel count).

convoLV2's main use-case is cabinet-emulation and generic signal processing where latency matters.

For fancy reverb applications, see also IR.lv2

Install

make
sudo make install PREFIX=/usr

# Test in jalv LV2 host
jalv.gtk http://gareus.org/oss/lv2/convoLV2#Mono
# or
jalv.gtk http://gareus.org/oss/lv2/convoLV2#MonoToStereo
# or
jalv.gtk http://gareus.org/oss/lv2/convoLV2#Stereo

Note to packagers: The Makefile honors PREFIX and DESTDIR variables as well as CFLAGS, LDFLAGS and OPTIMIZATIONS (additions to CFLAGS), also see the first 10 lines of the Makefile. You really want to package the superset of x42-plugins.

Under the hood

libzita-convolver is used to perform the convolution, libsndfile to read the impulse-response and libsamplerate to resample the IR if necessary.

convoLV2 was written to demonstrate new features of LV2 1.2.0 (back in 2012):

It since serves as example code for those LV2 extensions.

While the convolution engine supports pre-delay, channel-mapping and per-channel gain settings, these parameters are currently not exposed in the LV2 interface (hack tip: they are supported in the LV2 DSP and saved as text in the plugin-state which can be directly edited).