Movements, exercises, and books
Several movements in one file
Each movement has its own music and settings, an authored identity, and a title. The outer movements block selects numbering style. What every movement shares — here the composer and the flute — is said once, in the book's head.
scorescript 0.3
score "Little suite" {
composer "A. Writer"
parts {
flute
}
movements roman {
movement =prelude {
title "Prelude"
meter 4/4
flute {
m1 {
1C5
}
}
}
movement =dance {
title "Dance"
meter 3/4
flute {
m1 {
4C5 D E
}
}
}
}
}Canonical spelling
scorescript 0.3
score "Little suite" {
composer "A. Writer"
parts {
flute
}
movements roman {
movement =prelude {
title "Prelude"
meter 4/4
flute {
m1 {
1C5
}
}
}
movement =dance {
title "Dance"
meter 3/4
flute {
m1 {
4C5 D E
}
}
}
}
}
The movement IDs prelude and dance select movements independently of their current display order. The prelude is movement I and the dance movement II, by their places; number 3 in a movement's head numbers it itself. A movement that writes its own parts, composer, meter or other head statement uses its own, and composer none leaves a credit off one movement — see state the set-up once for every statement a movement takes from its book, and the lever that writes them all out (setup=explicit). A movement can also be another movement of the same book in a new key — movement =f-scales = c-scales in Eb { } — see build a reusable method book. A single score can also use movement-title for a heading; that alone does not create multiple movement programs.
scorescript pdf suite.scorescript --movement dance -o dance.pdf
Exercises as an index of existing music
An exercise gives an existing range a title and optional concert-key label. It does not contain a duplicate copy of the music. Exercise collections and their numbering/layout behavior are provisional.
scorescript 0.3
score "Long tones" {
exercises {
exercise =tones {
number 1
title "Long tones"
systems 2
section m1-4 { concert C }
}
}
parts {
flute
}
flute {
m1-4 {
1C5 | D | E | C
}
}
}Canonical spelling
scorescript 0.3
score "Long tones" {
exercises {
exercise =tones {
number 1
title "Long tones"
systems 2
section m1-4 { concert C }
}
}
parts {
flute
}
flute {
m1-4 {
1C5 | D | E | C
}
}
}
systems 2 means two measures per system within this exercise, not two systems in total. Several section lines create variants. A section may omit its concert key for an unpitched or atonal exercise. may-split opts out of the one-page rule. Numbering styles include arabic, roman, roman-lower, alpha, and alpha-lower.
An exercise can specify reading P5 { hn } as "at the 5th" for selected readers and sticking "Pattern name" for a declared rudiment. Use the shared passages and percussion chapters for those musical operations.
Exercises that contain their music
An exercise can instead own a body, with local measure numbers starting at m1. This is another supported arrangement, not a duplicate score to keep in sync with a separate index.
scorescript 0.3
score "Practice set" {
parts {
fl
tpt
}
exercise "Long Tones" =tones {
fl5, tpt4 {
m1-2 {
1F4 | E
}
}
}
exercise "Articulation" =articulation {
fl5, tpt4 {
m1-2 {
4C4 D E F | 1G
}
}
}
}Canonical spelling
scorescript 0.3
score "Practice set" {
parts {
fl
tpt
}
exercise "Long Tones" =tones {
fl5, tpt4 {
m1-2 {
1F4 | E
}
}
}
exercise "Articulation" =articulation {
fl5, tpt4 {
m1-2 {
4C4 D E F | 1G
}
}
}
}
The two exercises each start locally at m1. exercises=top converts containers to an index and continuous timeline; exercises=inline converts back. Plain formatting preserves the selected arrangement.
A named range, such as m1-16=primary { ... }, is the compact way to identify music for transposed reuse. A container is useful when an exercise should be edited as its own locally numbered unit. An index describes exercise divisions over an already numbered score. Choose the organization you need instead of copying the notes into all three forms.
Sections group exercises into a book
sections groups exercise identities, not instrument keys. Here band-exercises contains primary and articulation; flow-warm-ups contains divided.
scorescript 0.3
score "Warm-up book" {
book { }
numbering per-section
sections { band-exercises { primary, articulation } flow-warm-ups { divided } }
exercises {
m1: "Primary" =primary, m3: "Articulation" =articulation, m5: "Divided" =divided
}
parts {
fl
tpt
}
fl5, tpt4 {
m1-6 {
1F4 | E | 4C4 D E F | 1C | G4 | A
}
}
}Canonical spelling
scorescript 0.3
score "Warm-up book" {
book { }
numbering per-section
sections { band-exercises { primary, articulation } flow-warm-ups { divided } }
exercises {
m1: "Primary" =primary, m3: "Articulation" =articulation, m5: "Divided" =divided
}
parts {
fl
tpt
}
fl5, tpt4 {
m1-6 {
1F4 | E | 4C4 D E F | 1C | G4 | A
}
}
}
numbering per-section gives A1, A2, B1 here. numbering continuous gives 1, 2, 3 across the book instead. Section names supply headings such as “Band Exercises.” The contents and exercise headings use the same numbering.
numbering per-part counts the exercises retained in each extracted part. numbering per-part-section keeps the original section letters and counts retained exercises within each section; omitting all of section A does not rename section B. Full scores retain their global numbers. With book { cover contents independent-parts }, exercises outside a player's roster are omitted before counting. Both policies update native headings and contents together; sections within one exercise retain their variant letters. Separate exercise containers are separate exercises, not a shared number. Authored titles and prose such as “see Exercise 3” are never rewritten: maintaining such references under per-part numbering is the author's responsibility.
numbering none omits ordinals in both places while preserving exercise titles, section membership and the music. Section titles print centered above the first exercise in the group, with their own reserved space. Their typography follows the named layout's movement_title_text_size and movement_title_text_style. Exercise labels have independent exercise_heading_text_size and exercise_heading_text_style settings in the native layout document. Sizes are staff spaces; styles are regular, bold, italic or bold-italic.
For a bound part, a native layout can hide repeated work titles with show_score_title: false while keeping movement titles. Set book_centered_running_head: true to put the work and instrument together at the top of every music page. book_outer_folios: true mirrors page numbers to the left on even pages and right on odd pages. book_movement_footer: true prints the current contents section (or movement title) in the footer, opposite an outside folio. These are layout settings, not extra score text; contents page references continue to come from the actual native pagination.
The inline arrangement places exercise containers inside section band-exercises { ... }. Convert with exercises=inline,sections=inline; reverse with both set to top.
Three meanings must not be confused: a book section groups exercises; an exercise's section m1-4 { concert C } describes a variant's range; an instrument section shares a line through reader selection, such as fl5 addressing both declared flutes. They do not use the same declaration.
Reusable written and concert keys
Titles and labels can contain {written-key} and {concert-key}. For example, title "Simple Etude — {written-key} (Concert {concert-key})" follows the selected instrument automatically, including in the book index and running furniture. Exercise headings use their own bar's key, not the book's opening key. These fields change only display text; the source and music stay unchanged.
For concert B-flat major, the same title shows C major (Concert B-flat major) for trumpet and F major (Concert B-flat major) for horn. Both fields remain explicit for a non-transposing instrument. A key includes its mode, not its register or the instrument's transposition interval.
Score and movement titles use their opening key; exercise and measure labels use the key at their own opening bar. Written and concert names follow the selected part's native pitch projection and spelling preference. A full score with different written signatures shows mixed keys; without a measure it shows no key. Unknown fields remain literal. Ordinary staff text and tempo directions are not templates. These fields do not change the layout's chosen written or concert pitch view.
{octaves} prints the selected object's exact octave count; {octave-label} prints “One-octave”, “Two-octave”, or “3-octave” and so on. For example, "{written-key} — {octave-label} Scales" labels a chapter from its first selected application. A two-octave scale followed by a one-octave scale therefore keeps the two-octave chapter label. An exercise heading and contents entry use the first application within that exercise, not another exercise's notes. The fields follow native object selection and reader extraction, never object names or painted captions. Literal music and nonintegral octave compasses say “octave range unavailable”; disagreeing readers in a full score say “mixed octave ranges”. This is not a guess from an etude's overall range. Double braces ({{octaves}}, {{octave-label}}) print the field literally.
Link an exercise from another file
The provisional linked-source form is:
exercises {
exercise from "studies.scorescript" =tones
}
The referenced file must declare exercise =tones. Paths are relative to the file containing the reference, not the terminal's working directory. This requires a filesystem-aware reader. A text-only compile endpoint cannot fetch an arbitrary local path. The optional concert override on a linked exercise is reserved in v0 and must not be relied on to transpose the pull.
Use another file's definitions
use "definitions.scorescript"
Where exercise from pulls one piece of MUSIC into a book, use reads the VOCABULARY a chapter writes its music in: every music object and rhythm the named file defines at book level becomes available to @name here. The statement stands in the score head, because a used file's definitions have book scope and are therefore visible inside every movement.
Paths follow the same rule as a linked exercise — relative to the file that wrote the line. This file's own definitions shadow what it reads; two used files defining one name is an error, not a choice. See music objects.
Book furniture
book { cover, contents, folios, running-heads } opts into the named pieces of page furniture. A bare book { } requests all four. This is provisional and concerns exported pages: it does not create another score container. Check contents-page numbers against the actual final pagination.
scorescript pdf studies.scorescript --book -o studies.pdf