Music/DSP programming environment for Common Lisp


Incudine is useful to design software synthesizers or sound plugins from scratch, exploiting the expressive power of Common Lisp, without the constraint to use pre-built unit generators. It is also a compositional tool that allows to produce high quality sounds controllable at the sample level, defining and redefining the digital signal processors and the musical structures on-the-fly.

Incudine introduces the Virtual UGen (VUG), a new mechanism for defining primitive unit generators by writing concise and reusable code. The definition of a VUG contains lisp code and/or other nested VUGs, and it is re-arranged and compiled efficiently during the creation of a DSP.

Short summary of the current features:

  • Realtime synthesis sample by sample (currently without a realtime garbage collector)
  • Sample accurate callbacks
  • Non-realtime bounce to disk
  • The format of the sample is double float
  • Optional standalone executable
  • Graph of DSPs
  • Collection of useful re-definable VUGs
  • Collection of GEN routines
  • MIDI interface
  • Flexible voicer
  • Optional interface to use a LADSPA audio plugin in a Virtual UGen
  • Optional interface to use a LV2 audio plugin in a Virtual UGen
  • Incudine is released under the GNU General Public License (GPL) version 2 or later


Incudine works with SBCL, an implementation of ANSI Common Lisp with a high-performance native compiler.

Common Lisp packages:

Foreign libraries:


The latest source code can be obtained via Git:

git clone git://



incudine-devel is a mailing list for technical discussion and bug reports.

Author: Tito Latini

Sourceforge project page