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 (or "real" UGens), and it is re-arranged and compiled efficiently during the creation of a DSP.



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://


git clone git://


Getting Start - Part 1

Getting Start - Part 2

Getting Start - Part 3

Getting Start - Part 4

The rule of the first expansion

Real-Time Scheduling

First steps with "real" UGens - Part 1

First steps with "real" UGens - Part 2

Local Virtual UGens

Default values for VUG, UGEN and DSP

Block by block processing

Read macro sharp-t

Musical Tunings - Part 1

Musical Tunings - Part 2

Foreign plugin audio processors

Interaction with the sound editor Snd

Play SoundFonts with FluidSynth

Instantaneous retrig and gate modulation with ENVELOPE

Note priority in a monophonic synthesizer

Incudine Command

Jack MIDI Interface

Open Sound Control messages

Reading and writing MIDI files

Incudine with a Csound score generator

Author: Tito Latini

Sourceforge project page