ScoreScript Language wiki

ScoreScript syntax wiki

Reference for writing, reading, and embedding ScoreScript 0.3. Each page gives the syntax, its meaning, and examples. Read any section independently; typing the examples is optional. The notation beside each example is its generated output, not an exercise to solve.

Core syntax

  1. File syntax: a complete file and its components.
  2. Notes and pitch: octaves, accidentals, chords, and solfège.
  3. Rhythm and silence: note values, dots, tuplets, grace notes, and rests.
  4. Parts, voices, and measures: organize a solo or an ensemble.

Musical detail

Larger works

Installation and integration

Reading the examples

An example beginning with scorescript 0.3 explicitly declares its version and score context. Bare musical rows are also valid ScoreScript source: they can compile on their own with default context, or go inside a musical body. Header settings and structural blocks belong in their stated scope; do not paste every source form inside a part. Unless specified, bare music uses 4/4, quarter-note durations, absolute pitch spelling, and an initial unnumbered pitch in octave 4. Set the instrument and tempo explicitly when they matter. Non-ScoreScript code blocks are host code, commands, or labeled syntax excerpts; they are not standalone score files.

Examples use the current label-before-brace arrangements. Older accepted spellings appear only in compatibility notes. Acceptance by the parser does not make a spelling the recommended form for new source.

Pitch examples anchor the opening register, then use relative contour and apostrophe or comma octave shifts. Repeating absolute octave digits at every bar is not the recommended style. See notes and pitch.

The reference describes the current native engine. Provisional features and unsupported notation are identified where you encounter them. A successful syntax check does not by itself prove every mark will print or play; inspect the rendered result as well.