Strasheela Reference Documentation

The Strasheela Core

These functors define the main user functionality of Strasheela.

Score — music representation

SDistro — score search engines and 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).

Note that several of these extensions consist of multiple sub-functors. The links below point only to their top-level functors, the subfunctors are accessible by the links in the top-level's section Import.

H (Heuristics) — heuristic constraints

Pattern — constraints on lists to express patterns in music

HS (HarmonisedScore) — constrainable harmony model

RegT (RegularTemperament) — composition in arbitrary octave-repeating regular temperaments (any rank), including just intonation with arbitrary limits (pitches measured, e.g., in cent or millicent). Extends HS

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

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

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

ET41 — composition in 41-tone equal temperament, extends HS

Segs (Segments) — ready-made constructors for musical segments such as contrapuntual lines, homophonic chord progressions, or specific motifs

PrototypeMotif — constraining the musical form based on motif prototypes

Motif — constrainable motif model supporting motif variations

Measure — constrainable meter model

Fenv (function envelope) — envelopes by numeric functions

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

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

MidiIn — MIDI file import

OSC — an OpenSound Control interface

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

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)

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

IOzSeF — score search support for the IOzSeF constraint solvers

How to Create User Extensions?

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