Setup for Experienced Python Users

Basic Installation

SCAMP requires Python 3.12 or greater. If you’re already familiar with Python and you know how to install packages using pip, installing SCAMP is a one-liner:

pip install scamp

The prebuilt wheels on PyPI bundle the FluidSynth library for Linux, macOS (both Intel and Apple Silicon), and Windows, so soundfont playback works out of the box on all three platforms — no separate FluidSynth install is required.

To pull in the optional extras (LilyPond export, MIDI I/O, keyboard/mouse input) all at once:

pip install "scamp[all]"

This installs abjad==3.31 (pinned for compatibility), python-rtmidi, and pynput.

Testing the install

A quick sanity check that everything is wired up:

from scamp import test_run, print_dependency_status

print_dependency_status()
test_run.play(show_lilypond=True)

print_dependency_status() prints a one-line-per-dependency report covering FluidSynth (with the wrapper and the resolved libfluidsynth binary path, so you can confirm whether the system or bundled copy got loaded), sf2utils, python-osc, python-rtmidi, pynput, and abjad (with installed-vs-tested-version comparison). States are ok / warn / missing. If you’re excessively nerdy and would rather consume the data programmatically, dependency_status() returns the same information as a list of (name, state, detail) tuples.

test_run.play() plays a short piano gesture sweeping inward toward middle C; with show_lilypond=True it also exercises the abjad → LilyPond → PDF path to display notation.