These functors define the main user functionality of Strasheela.
Score — music representation
SDistro — score distribution strategies
Out — means for output into various formats
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
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
An extensively documented extension template is provided at ../contributions/ExtensionTemplate, which demonstrates how Strasheela extensions are created.