Clamps Overview
Why Clamps?
Clamps is written in Common Lisp. A main advantage of using Common Lisp is the integrated immediate accessibility of the source code of Clamps, its External Components and the Common Lisp language itself down to the lowest implementation level while working with it. Changes to every detail can easily be done on-the-fly, even while realtime DSP routines are running, resulting in an immediate acoustical feedback of the changes.
This is in contrast to most systems used for realtime processing mentioned in the Introduction. Many of them use precompiled objects for low level processing tasks written in a language different from the language/paradigm of the system itself1. These systems suppose that changes in those modules are generally not done by the user and rare. They require a seperate development process using editors/compilers different from the used system and require a restart of the system on every change.
In addition, some systems use a distinction between control-rate and audio-rate processing or between a language and a synth server like SuperCollider. All these design decisions are there for a reason and have their advantages, but they put obstacles and barriers in the way which can create manyfold problems when working with them. In Clamps, all DSP routines, the scheduler and the control engine run as functions or macros within the same Lisp image. Therefore the aforementioned barriers are not present when using the system, resulting in a seemless experience of transparency on every level of the working process. Although it might rarely be necessary to tinker with the lowest level of the system, it is nevertheless possible at any moment of working with it. Any change is at the fingertips of the user, just a few keystrokes away, providing the unique experience typical for most Lisp based systems.
In recent decades the Common Lisp ecosystem has evolved significantly providing fast compilers and outstanding IDEs for code inspection, editing and debugging. In combiniation with the language's unique and characteristic features like the ease of combining different idioms from low level to high level using any programming paradigm and its flexibility to adapt its syntax to any problem domain make it an excellent choice for people aiming for an explorative and dynamic workflow in their artistic work.
Footnotes:
In most systems those objects are written in C/C++.