Strasheela Reference Documentation

The Strasheela Core

These functors define the main user functionality of Strasheela.

Score — music representation

SDistro — score distribution strategies

Out — means for output into various formats

Midi — Midi output (a subfunctor of Out)

Init — customise settings (e.g. for output)

Strasheela — the top level functor (simply exports the rest of Strasheela)

These functors provide additional functionality.

GUtils — general utilities

LUtils — list utilities

MUtils — utilities related to music or acoustics

SMapping — score traversal

Strasheela Extensions

These extensions simplify the definition of specific musical CSP classes (e.g. style specific CSPs such as harmonic CSPs). These extensions can often be combined (e.g. using the functors Pattern and HS for constraining patterns on harmonic relations).

Pattern — constraints on lists to express patterns in music

HS (HarmonisedScore) — constrainable harmony model

ET31 — composition in 31-tone equal temperament, extends HS

ET22 — composition in 22-tone equal temperament, extends HS

ET12 — simplified pitch notation for the common 12-tone equal temperament

CTT (ConstrainTimingTree) — constrain the shape of a tree of temporal items

Motif — constrainable motif model

Measure — constrainable meter model

RT (Realtime) — solvers for real-time constraint programming

MidiIn — MIDI file import

OSC — an OpenSound Control interface

These provide further extensions.

Memo — memoization of functions (e.g. useful for a modular CSP definition where some function always returns the same data structure with the same constrained variables when given the same input)

Fenv (function envelope) — envelopes by numeric functions

Gnuplot — an interface to Gnuplot for plotting numeric Oz data (e.g., Fenv data).

OzServer — run Strasheela as server in the background, started and 'remote-controlled' by any other application (e.g. a Lisp compiler)

ScoreInspector — extension of the Oz Inspector for inspecting Stasheela score objects

SettingsGUI — a GUI interface for setting Strasheela environment variables

Tutorial — the tutorial application definition

How to Create User Extensions?

An extensively documented extension template is provided at ../contributions/ExtensionTemplate, which demonstrates how Strasheela extensions are created.