null
  • Emacs Lisp 60.6%
  • Common Lisp 30.2%
  • Python 6.1%
  • Shell 3.1%
Find a file
2026-03-14 16:05:22 +01:00
emacs.d edited browse-url-firefox-program for darwin. 2026-02-24 18:10:14 +01:00
inkscape-plugins added display-selection, arp-display-selection and hush inkscape plugins 2026-02-24 18:59:36 +01:00
.gitignore README edit. 2024-08-20 13:34:13 +02:00
clamps-install.sh fixed quicklisp path in inkscape extensions installation. 2026-02-24 19:45:27 +01:00
clamps-shallow-install.sh added display-selection, arp-display-selection and hush inkscape plugins 2026-02-24 18:59:36 +01:00
clampsinit.lisp updated README with OSX dependencies, updated clampsinit.lisp 2025-07-20 12:19:20 +02:00
clean.sh added clean.sh and made quicklisp.lisp run uninterrupted. 2024-08-20 16:39:37 +02:00
fomus added .fomus and lilypond config 2024-08-24 19:24:57 +02:00
fomus-linux added .fomus 2024-08-25 19:28:01 +02:00
fomus-osx set view to t in fomus-osx 2024-08-25 23:07:40 +02:00
incudinerc added *foreign-header-file-directories* for homebrew 2024-08-25 21:01:42 +02:00
quicklisp.lisp added original quicklisp.lisp 2024-08-20 17:17:20 +02:00
README.org modified README.org 2026-03-14 16:05:22 +01:00
sbclrc added config files. 2024-08-20 16:30:24 +02:00

clamps-install

Scripts for the installation of clamps on Linux or OSX. The Preparation is different for Linux or OSX. After the Preparation, the Install script is the same for both Operating Systems.

Preparation

Preparation on Gnu/Linux

Ensure the computer has access to the internet when following the installation steps below.

Dependencies

Below are the dependencies for clamps on Linux.

Debian/Ubuntu

IMPORTANT NOTE: These dependencies are not using pipewire in the audio configuration! Check what audio system your installation uses and adapt the jack packages accordingly if your installation uses pipewire.

sudo apt update && sudo apt install libjack-jackd2-dev libportmidi-dev libsndfile-dev libfftw3-dev libgsl-dev libfluidsynth-dev liblilv-dev jackd2 qjackctl pulseaudio-module-jack a2jmidid emacs inkscape python3-pip sbcl git lilypond firefox build-essential lsof
Arch Linux

IMPORTANT NOTE: These dependencies are not using pipewire in the audio configuration! Check what audio system your installation uses and adapt the jack packages accordingly if your installation uses pipewire.

sudo pacman -Sy emacs jack2 pulseaudio-jack a2jmidid sbcl git lilypond inkscape python-pip portmidi libsndfile fftw gsl fluidsynth lilv lsof
Other Linux distributions

Make sure you have installed the following programs using the package manager of your Linux Distribution or compile them from scratch:

  • Gnu Emacs
  • Jack
  • SBCL
  • git
  • LilyPond (optional)
  • Inkscape (optional)
  • pip for python3 (optional, called python-pip on Arch Linux)
  • GNU make
  • lsof
  • Firefox

In addition make sure, you have all incudine dependencies (listed on the incudine website) installed:

  • jack2 library
  • portmidi library
  • libsndfile
  • fftw3 library
  • gsl library
  • fluidsynth library (optional)
  • lilv library (optional)
Installation of Clamps
Preparation
  • Open a Terminal and issue

      cd /tmp
      git clone https://codeberg.org/ormf/clamps-install.git
      cd clamps-install

IMPORTANT NOTE: Before calling the installation command, make sure, the files and folders affected by the installation mentioned above are backed up and moved out of the way as the installation will abort in case any of the files/folders exist.

If you are sure, the files and folders can be removed safely, you can explicitely remove them with the command

  sh clean.sh
  • Start the clamps installation by issuing the following command in a Terminal:

sh clamps-install.sh

After some minutes, the process in the terminal prints the message "installation successful".

  • Start Jack using the "Qjackctl" application in the Application directory. Make sure, jack is up and running before continuing!
  • Start the Emacs Application from the Application directory

If you run clamps for the first time, you have to run following commands first:

  cl-user> (ql-dist:install-dist "http://dist.ultralisp.org/" :prompt nil)
  cl-user> (ql:quickload :xpath)
  cl-user> (ql:quickload :cxml-stp)
  cl-user> (ql:quickload :clog)

After that you can continue with:

  cl-user> (ql:quickload :clamps)

This command will take a couple of minutes at the first time as all required packages have to get downloaded and compiled.

If everything worked without errors, issuing the following command should initialize the midi ports, start dsp processing and the GUI server.

  cl-user> (clamps)

If that worked as well, use the following command to play a Flute Middle C for 1 second using the outputs of Jack.

  clamps> (output (new sfz))
Post Installation
Testing Lilypond output

With clamps running, evaluate the following command in the REPL:

  clamps> (events (new sfz :time 0) "/tmp/test.ly)

If the pdf viewer opens after a while displaying a Middle C quarter note in a staff system, the configuration works.

Testing the Inkscape Playing extension
  • Open Inkscape and check, whether the "Extensions" Menu shows the entry "Play Selection"

Preperation on Apple OSX

Prerequisites

As with the Linux installation ensure the computer has access to the internet when following the installation steps below.

Emacs

Download GNU Emacs by clicking on the "Download" button on this page:

https://emacsformacosx.com/

and follow the installation instructions. Make sure to put the "Emacs" application into the "Applications folder of your Mac.

Inkscape

Download Inkscape from this page

https://inkscape.org/release/1.3.2/mac-os-x/

and follow the installation instructions.

IMPORTANT NOTE: Make sure to put the installed application into the "Applications" folder on your Mac!

Jack and Qjackctl

Important Note : As of 2026, Jack/Qjackctl downloaded and installed using the instructions below can't get Microphone permissions. It will repeatedly ask for permissions, but granting them doesn't change anything. Until this gets fixed rather install jack and qjackctl using homebrew (see Brew below) using brew install jack qjackctl and start qjackctl from a terminal (or using Spotlight if homebrew is configured with its binary paths visible by Spotlight).

Old instructions for jack/qjackctl installation (deprecated in 2026):

Download the latest jack package from here:

https://jackaudio.org/downloads/

Use the "Universal Installer"

When installing, make sure to put the "Qjackctl" application into the "Applications" folder of your Mac.

Firefox

Install Firefox from the official Repositories.

Add Terminal to the Full Disk Access List in the System Settings of OSX.
  • Go to apple logo in top left corner
  • Click on system settings
  • Scroll down and click on Privacy and Security in the left tab
  • Under Privacy Click on Full Disc Access
Dependencies

Install Brew by downloading Homebrew-<version>.pkg from this page (Listed under "Assets") and installing it by doubleclicking the downloaded .pkg file:

https://github.com/Homebrew/brew/releases/latest

  • Git

After a successful install of brew you can install git by typing the following line into a Terminal and finish it with the return key.

brew install git
  • Incudine dependencies:

Install all incudine dependencies by typing the following line into a Terminal and press the return key after each line.

brew install portmidi libsndfile gsl fftw fluidsynth lilv
Installation of Clamps
Preparation
  • Open a Terminal and issue

      cd /tmp
      git clone https://codeberg.org/ormf/clamps-install.git
      cd clamps-install

IMPORTANT NOTE: Before calling the installation command, make sure, the files and folders affected by the installation mentioned above are backed up and moved out of the way as the installation will abort in case any of the files/folders exist.

If you are sure, the files and folders can be removed safely, you can explicitely remove them with the command

  sh clean-osx.sh
  • Start the clamps installation by issuing the following command in a Terminal:

      sh clamps-install-osx.sh

    After some minutes, the process in the terminal prints the message "installation successful".

  • Start Jack using the "Qjackctl" application in the Application directory. Make sure, jack is up and running before continuing!
  • Start the Emacs Application from the Application directory

This command will take a couple of minutes at the first time as all required packages have to get downloaded and compiled.

When emacs has started up without errors there should be a Common Lisp Repl visible in the lower half of the emacs window. Type the command below into the REPL after the cl-user> prompt to load Clamps.

 cl-user> (ql:quickload :clamps)

If everything worked without errors, issuing the following command should initialize the midi ports, start dsp processing and the GUI server.

  cl-user> (clamps)

If that worked as well, use the following command to play a Flute Middle C for 1 second using the outputs of Jack.

  clamps> (output (new sfz))
Post Installation
Testing Lilypond output

With clamps running, evaluate the following command in the REPL:

  clamps> (events (new sfz :time 0) "/tmp/test.ly")

If the pdf viewer opens after a while displaying a Middle C quarter note in a staff system, the configuration works.

Testing the Inkscape Playing extension
  • Open Inkscape and check, whether the "Extensions" Menu shows the entry "Play Selection"

Fresh Installation (Linux and OSX)

This installation method installs everything necessary to run clamps in Emacs. For an installation into a system already running Emacs/sbcl/quicklisp, see /ormf/clamps-install/src/branch/main/Installation%20into%20a%20working%20Lisp%20Setup below.

Using the command for a fresh install automates the following steps:

  • Emacs Configuration

Install the contents of emacs.d of the repository into $HOME/.emacs.d

  • Miscellaneous config files

Copy the following files from the repo into the user's $HOME folder:

incudinerc to $HOME/.incudinerc

sbclrc to $HOME/.sbclrc

fomus-linux or fomus-osx to $HOME/.fomus

cminit.lisp to $HOME/.cminit.lisp

  • Quicklisp

Quicklisp will be installed into its default location $HOME/quicklisp and the file $HOME/.sbclrc updated to always load quicklisp on sbcl startup.

  • Local Quicklisp Packages

The following local Quicklisp Packages will be downloaded and installed:

$HOME/quicklisp/local-projects/incudine

$HOME/quicklisp/local-projects/cm

$HOME/quicklisp/local-projects/fomus

$HOME/quicklisp/local-projects/ats-cuda

$HOME/quicklisp/local-projects/clamps

Preparation

  • Open a terminal and issue

      cd /tmp
      git clone https://codeberg.org/ormf/clamps-install.git
      cd clamps-install

Installation commands

IMPORTANT NOTE: Before calling the installation command, make sure, the files and folders affected by the installation mentioned above are backed up and moved out of the way as the installation will abort in case any of the files/folders exist.

If you are sure, the files and folders can be removed safely, you can explicitely remove them with the command

  sh clean.sh

Be aware that this command silently and irrevocably removes all files and folders including $HOME/quicklisp without warning!

  • The fresh installation is done with the command

      bash clamps-install.sh

    This will take a couple of minutes.

    On OSX you will be prompted for a password during the installation process.

    If everything worked without errors, Emacs should be started at the end of the process and should show a window split in half with a Common Lisp REPL in the lower half.

    Proceed with /ormf/clamps-install/src/branch/main/Testing%20the%20Installation.

Installation into a working Lisp Setup

There is no straightforward way to install into a working Lisp Setup, as it is unclear, whether incudine has been installed/configured, etc. For the installation, it is assumed that emacs, sly, sbcl and quicklisp have already been installed on the system, otherwise install the required packages.

Then follow these steps:

  • Move the following packages out of the way in case they exist:
  • $HOME/quicklisp/local-projects/incudine
  • $HOME/quicklisp/local-projects/clamps
  • $HOME/quicklisp/local-projects/ats-cuda
  • $HOME/quicklisp/local-projects/
  • Move the following files/folders out of the way in case they exist:
  • $HOME/.incudinerc
  • $HOME/.sbclrc
  • $HOME/.fomus
  • $HOME/.cminit.lisp
  • $HOME/.emacs.d
  • Then issue the following command in a Terminal:

cd /tmp/clamps-install && sh clamps-shallow-install.sh

  • Merge the emacs configuration in ~/emacs.d/init.el with your old configuration according to your preferences.

Testing the Installation

  • Start jackd (e.g. using qjackctl) until it is showing "active" or "running".
  • Start Emacs and input the following in the REPL:
  cl-user> (ql:quickload :clamps)

This command will take a couple of minutes at the first time as all required packages have to get downloaded and compiled.

If everything worked without errors, issuing the following command should initialize the midi ports, start dsp processing and the GUI server.

  cl-user> (clamps)

If that worked as well, use the following command to play a Flute Middle C for 1 second using the outputs of Jack.

  clamps> (output (new sfz))

Testing Lilypond output

With clamps running, evaluate the following command in the REPL:

  clamps> (events (new sfz :time 0) "/tmp/test.ly")

If the pdf viewer opens after a while displaying a Middle C quarter note in a staff system, the configuration works. Testing

Testing the Inkscape extensions

Open Inkscape and check, whether the “Extensions” Menu shows the entries "Display Selection", "Display Selection (Arpeggio)", "Play Selection" and "Stop Clamps Playback".