Jconvolver

Jul 20, 2023

Real-time convolution engine

Jconvolver is a Convolution Engine for JACK, based on FFT convolution and using non-uniform partition sizes small ones at the start of the IR and building up to the most efficient size further on. It can perform zero-delay processing with moderate CPU load. Jconvolver uses the convolution engine designed for Aella, a convolution application for reverberation processing to be announced later. This distributes the calculation over up to five threads, one for each partition size, running at priorities just below the the one of JACK’s processing thread. This engine is a separate library that will be documented as soon as I can find the time.

Main features

  • Any matrix of convolutions between up to up 64 inputs and 64 outputs, as long as your CPUs can handle it.
  • Allows trading off CPU load to processing delay, and remains efficient even when configured for zero delay.
  • Sparse and diagonal matrices are handled as efficiently as dense ones. No CPU cycles or memory resources are wasted on empty cells in the matrix, nor on empty partitions if IRs are of different length. `


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