Diagnostic reference
Search for the exact code from your checker. Severity below is the registered default; the actual diagnostic includes its location and message.
syntax.expected
error — the parser expected a different token here
syntax.notation
error — this notation is not part of the grammar at this position
notation.conflict
error — these marks contradict each other (e.g. [p, f] or [., ..])
chord.quality-case-mismatch
error — the root's case sits on one side of the quality axis and the explicit quality on the other (e.g. fmaj7); case carries quality
chord.rare-quality
warning — dM7 is the diminished-major seventh, an unusual chord — did you mean dm7 (half-diminished)?
tempo.unsupported-suffix
error — tempo text takes no attachment; put the period in the string (*"Andante.") or the beat unit in the tempo directive
tempo.placement-needs-text
error — the comma down-mark places tempo words below a sounding part; metronome values remain global above the staff
hairpin.kind-mismatch
error — a crescendo was closed by a diminuendo marker (or vice versa); both endpoints carry the kind
spanner.unterminated
warning — a span opened but never closed; a hairpin with nothing to arrive at stays one note wide, where you typed it (close it with a leading < or > , or a dynamic, to say how far it reaches), and a slur or glissando with no note to reach draws nothing
spanner.stop-without-start
error — a closing span marker with no opening in effect
slur.adjacent-spans
info — notes are nodes and one slur is one span between endpoint nodes; interior notes stay unmarked (D~ E ~F), while D~ E~ F spells two slurs
version.header-required
error — from the container swap onward a source must declare its spec version — the same text can mean different music in different versions (<C4>/h)
syntax.unexpected
error — this token cannot start anything the grammar knows at this position
syntax.incomplete
error — the source ended (or the line ended) before this construct was finished
syntax.pitch
error — a pitch is an uppercase letter A–G, an optional accidental, then an optional octave number (Eb, F#5); r is a rest
syntax.anchor
error — an anchor is a measure label and an offset: m1:0, m2:q, m3:1/2
version.invalid
error — the header is scorescript followed by a version like 0.3
repeat.invalid-target
error — a measure repeat repeats the previous bar (%) or a labeled earlier bar (%m5); there must be one
repeat.mixed-content
error — a repeat bar holds nothing else: && (or %) IS the bar's content, so a note beside it would be a second bar's worth of music in one bar
chord.empty
error — a chord needs at least one pitch between [ and ]
pitch.invalid
error — this is not a pitch: letters A–G (uppercase — case carries quality, never octave), accidentals b bb # ##, then an optional octave number
spanner.detached
warning — a connector binds by adjacency: Eb< opens a crescendo on Eb, <D closes it at D; a < floating between spaces binds to the note before it
duration.invalid
error — this duration is not one the grammar knows (numbers 1 2 4 8 16 32 64 with dots, or N/M)
duration.dangling
error — a number is a duration when it comes BEFORE a note (4G) and an octave when it is glued AFTER the pitch letter (G4); this one has nothing to attach to, so it adds nothing to the bar
grid.bar-count
error — a system block's range (m1-10) promises a number of bars; this row has a different count — check the | barlines
grid.too-many-rows
error — a system block has one row per declared part, in order; this row has no part to belong to
grid.missing-row
warning — a declared part has no row in this system block, so it is silent here; add a row of rests if that is intended
duration.nothing-to-complete
error — & takes the value that completes the dotted note before it (q.Eb &G); the note before this one is not dotted
instrument.unknown
warning — this instrument is not in the catalog (forty entries: flute, clarinet-bb, horn-f, tuba, voice …); it prints as written with a treble clef and no transposition
grid.unknown-group
error — a group label on its own line names declared parts by instrument (fls, horns); no declared part has this instrument
grid.filled-rests
info — a blank bar, a short row, or a part with no row in a system block is read as whole-bar rests; write r to make that explicit
chord.comma-separator
warning — inside a chord a comma separates members ([C E G] is the spelling); an octave down is written with the octave digit ([C3 E G]) — outside chords , still lowers an octave
syntax.continuation
error — a backslash joins this line to the next, so nothing may follow it on the line; a \ in the middle of a line used to be swallowed in silence, which is the one thing the language forbids
grid.unbounded-continuation
warning — N31 continues a grid row when its line ends with a barline, and the block's range is what says when the row is finished; a block whose header names no range ({ m1: rather than { m1-3:) cannot say, so the next line is read as another row
syntax.continuation-twice
warning — a grid row already continues when its line ends with a barline (N31: a barline at the end of a line means what it means at the end of a system), so a backslash after that barline is the same instruction written twice; the backslash is for a line that breaks INSIDE a bar, which a barline cannot say
syntax.barline-dropped
warning — a repeat barline IS a double bar — thin line, thick line, and the two dots (Gould: a double bar is never written beside a repeat, because the repeat already divides the section) — so a barline written in the same closing slot as a :| draws nothing and is dropped; :||, :|||, :| || and m2(end-repeat): … || all say it twice, and the one spelling is :|
line.unterminated
warning — a bracketed line ([ped..], [8va..], [tr..]) is a printed line with two ends; without its closer ([..ped], [..8va], [..tr]) it runs to the last note of the part
line.stop-without-start
warning — this closes a bracketed line, but none of that kind is open; a line OPENS with the dots trailing ([ped..]) and CLOSES with them leading ([..ped])
volta.unclosed
warning — a volta bracket runs to the repeat barline that closes it (:|); with no repeat after it the bracket runs to the end of the part, which is almost never what an ending means
navigation.ambiguous-abbreviation
info — [DC] and [DS] are two capitals in a bracket, which is a boxed REHEARSAL mark (N11) — write the jump with its periods ([D.C.]) or in lower case ([dc]) and it is a jump
multirest.invalid-count
error — a multirest counts the bars one printed H-bar stands for, so it counts at least two; a single bar of rest is written r
repeat.invalid-count
error — &&4 is a RUN of measure repeats — four bars that each repeat the one before — so the count is at least two; one repeated bar is written &&
lyric.bar-misalign
warning — the | in a lyrics row lines up with the music's barlines, which is what lets the row check itself: a row with a different number of bars, or a bar with more syllables than notes, has slipped against the music it sings
grid.inside-braced-part
error — a system block's ROWS are the parts, so it belongs to the score, not inside one player's braces; declare the part with no braces (part hn: Horn in F) and write the block beside it
grid.spine-address
error — a mark on a block head is the SCORE's, stated once outside the rows, so it has to say which bar it stands at — glued to it, like every other adjacency in the language: ||m5, [A]m5, [key G]m9
grid.spine-part-change
warning — the spine carries what the whole SCORE does at a bar; a clef and an instrument change belong to one player, so they stay in that part's row or its at block
layout.duplicate-break
error — one score point needs at most one system/page cut; a page already begins a system
layout.break-without-measure
error — a part cut may point to its following range, but a score-wide layout cut must name its measure (\n29 or \p46)
layout.exact-span-scope
error — only a system has a measure count; write system-map {96:3} for exactly three measures beginning at m96, while page-map and multi-map remain point addresses
layout.invalid-span
error — an exact system span counts the measures on that line, so its count must be at least one
layout.unknown-measure
error — a layout cut must address a measure declared by the score
rehearsal.unknown-mode
error — rehearsal auto mints a mark at every structural seam (a key, meter or tempo change); rehearsal manual is the default, where the marks you write are the marks you get
exercise.no-sections
warning — an exercise labels its music through its sections, so one with none prints no label and claims no bars — the number would be minted for something invisible
exercise.reversed-section
error — a section covers a forward span of bars; a backwards range would give the exercise a negative length and put its closing double bar before its label
shared-line.unknown-reader
error — a reader head names players by the key the roster declares them with, so a key no part carries would hand its music to nobody
shared-line.too-many-readers
error — naming one key several times in a head addresses successive instances of it, so more namings than declared players leaves a reading with no one to play it
span.not-found
error — bars written as a repeat borrow a passage by the name it was given, so an unmatched name would leave those bars with no music at all
span.unknown-interval
error — a repeat moves by a signed interval such as +P4 or -P5, and an unreadable one would silently leave the borrowed bars at pitch
span.length-mismatch
error — a repeat writes exactly the bars it names, so a target longer or shorter than the passage it borrows is an arithmetic slip that would drop or duplicate music
shared-line.empty
warning — a line exists to hold the music every reader plays, so one with no measures leaves every part that reads it silent
shared-line.unknown-interval
error — a reading interval is a quality and a number such as P5 or m3, and an unreadable one would silently leave the reader at unison
shared-line.reading-conflict
warning — an exercise reading and a part's own reads statement both name the interval a player takes, so when they disagree one of them is a stale edit
shared-line.overridden
info — a part that writes its own measures keeps them, so a reads statement beside authored music is inert and probably a leftover
exercise.container-empty
warning — an exercise container that holds no bars still prints its heading and its number, so the page gains a title over silence and the numbering of everything after it shifts
exercise.empty-reading
warning — a reading exists to move named parts off the section's concert pitch, so one naming no parts changes nothing and hides a typo in a part symbol
exercise.unknown-reading-part
warning — a reading names parts by the symbol they are declared with, so a symbol no part carries means that instrument silently keeps the section's pitch in its label
exercise.unknown-interval
error — an interval is written quality-then-number (P5, M2, m3, A4, d5); without one the label cannot say what those parts actually sound
exercise.unknown-concert-pitch
error — a section sounds at a pitch class such as F, Bb or C#; every part's (your X) is derived from it, so an unreadable one would silence the whole label
exercise.broken-alignment
warning — an exercise's parts must break at the same bars so "line 3" is the same music for every player; a part laid out alone may add breaks its neighbours did not, and a rehearsal where the flute and the trumpet count different lines is the cost
exercise.empty-systems
error — systems N says how many bars go on a line, so N must be at least one — a line carrying no bars describes no page and could never be drawn
rudiment.empty
warning — a rudiment is a named pattern of strokes, so one with no strokes has nothing to print beside the exercise that plays it
rudiment.unknown-token
error — a rudiment is written in hands (R, L, and the grace hands lR and rL) and the language's own roll words ((trem), (trem2), (trem3), (z)); anything else would print a pattern no drummer could read
rudiment.duplicate
warning — a rudiment's name is its address — an exercise titled with it plays it — so two declarations of one name leave the heading quoting whichever was read last
exercise.overlapping-sections
error — two sections claiming the same bar would stamp two labels on one system and mint two double bars at one score point
link.file-not-found
error — a referenced exercise is read from the master file at every compile, so the path is resolved against the directory of the file that wrote it; a path that does not open means the consumer would print a hole where the pulled music goes
link.id-not-found
error — an exercise is referenced by the id its master authored (exercise =the-scale), never by position or title — so a master that renames or drops an id says so here instead of silently handing back the wrong exercise
link.cycle
error — a file cannot pull from a file that pulls from it: the resolution would never finish, and there is no answer to which of the two is the source of truth
link.part-missing
warning — the pull matches the two rosters by part symbol; a master part the consumer does not carry is dropped, and a consumer part the master does not carry is filled with rests, and both are things the arranger should have decided on purpose
link.floating-octave
warning — a bare letter takes the octave NEAREST the note before it, and the note before the first bar of a pulled exercise is in the master, not here — so an exercise meant to be linked anchors its opening note with an explicit octave (4Bb4), or the same scale arrives in a register nobody asked for
link.override-pending
warning — concert X on a reference is parsed and reserved but not yet applied: pitch math has one home, the semantic layer, which runs after this splice — so v0 pulls the master's own pitch rather than performing a second, private transposition
link.master-diagnostics
info — the master was read with diagnostics of its own; they are reported against the master's text, where their line numbers mean something, and counted here so a consumer is never silently built on music its source could not read
link.no-filesystem
error — a reference names a file, so resolving it needs a place to look; a host that compiles source text with no directory of its own cannot follow one, and says so rather than pretending the exercise was empty
book.exercise-unanchored
warning — a contents line points at a page, and the page is found from the bar the exercise opens at; an exercise that states no section and follows another that states none has no bar of its own, so the book prints its title with no page number rather than a page number that is wrong
book.contents-without-cover
warning — a contents list is printed on the cover, so asking for one without a cover asks for a page that is never made — either add cover or drop contents
lyric.no-music
error — a lyrics row sings the row above it, so it needs a line of music before it in the same part
version.unsupported
error — this toolchain implements spec versions 0.1, 0.2 and 0.3; a newer header means the source may use constructs it cannot read
score.no-parts
warning — a score with no parts engraves nothing; add part name: instrument { … } or bare measure lines
metadata.duplicate
error — composer and movement-title name one thing each; a second declaration would silently win
metadata.empty
error — an empty metadata string prints an empty line on the page; delete the statement instead
symbol.duplicate-part
error — part symbols address parts from statements and hosts; two parts with one symbol make that address ambiguous
meter.invalid
error — a meter is beats over a note value (4/4, 6/8) or printed additive groups (3+2+2/8); every group is positive and the beats total at most 64
beams.invalid
error — a beam grouping is additive groups counted in the meter's own unit (3+3+2), or in a unit named after a slash (3+3+2/8 — the same bar as 6+6+4/16), or one of the words none (every note flags), beat (one group per beat) and standard (this meter goes back to its own grouping)
beams.does-not-fill-the-bar
warning — a beam grouping fills its bar. Counted in the meter's own unit that means its groups add up to the meter's beats — 3+3+2 under 8/8, but 2+2 under 4/4; name another unit after a slash and the same claim is made in that unit (3+3+2/8 fills a 4/4 bar)
key.invalid
error — a key is a major or minor name (G, Eb, Am, F#m) or open — no signature and no implied tonic
tempo.invalid
error — a tempo is a positive number of beats per minute
spell.unknown-mode
error — spelling modes are spell key (a bare letter takes the key signature's accidental, and n is the natural) and spell absolute (a letter is exactly what it says) — absolute is the default, so nothing already written changes meaning
solfege.unknown-mode
error — solfège modes are solfege movable (do is the tonic of the key, read as major) and solfege fixed (do is C) — movable is the default
solfege.no-key
warning — movable do puts do on the key's tonic, so music with no key signature (or key open) has no tonic to move to; the syllables are read in C until a key is stated, or write solfege fixed to mean C on purpose
solfege.si-ambiguous
info — in movable do, si is RAISED SOL (di ri fi si li) and the leading tone is ti; under solfege fixed, si IS the seventh degree, as the fixed-do cultures say it — both cultures keep their word (Brandon's ruling)
clef.invalid
error — a clef is treble, bass, alto, tenor, soprano, mezzo-soprano, baritone, percussion, an octave clef (treble-8vb), or a number 1–7 — the seven clefs ordered by where middle C sits
context.unknown-measure
error — at mN changes the context at a bar the score declares; an unknown bar means the change never happens
context.duplicate
error — one bar takes one meter, one key, one tempo and one clef; a second declaration would silently win
context.scope
error — meter, key and tempo belong to the score (every part shares them); the clef and the transposition belong to a part
transpose.invalid
error — a transposition is a diatonic distance and a chromatic one — transpose -1 -2 for a B-flat instrument, transpose -5 -9 -1 when an octave comes with it — and transpose 0 is none, which hands the bar back to concert pitch
transpose.incomplete
error — one number is only half a transposition: the letters move by the diatonic distance and the sound by the chromatic one, so both are needed — only transpose 0 stands alone
measure.overfull
error — the events in this bar sound longer than its meter allows — the bar line cannot move
measure.incomplete
info — a short bar completes itself with rests in the printed music; the source stays as typed. A pickup bar (m0) stays short on purpose
measure.noncontiguous
error — bars run m1…mN (or m0 for a pickup) with no gaps; a gap means a bar was renamed or lost
measure.duplicate-symbol
error — a measure name belongs to one bar; reusing it makes the name useless as an address
measure.inconsistent-symbol
error — one bar carries one name across every part and voice
measure.invalid-symbol
error — a stable name is a letter or _ then letters, digits, _ and -; names survive edits, so they may not be arbitrary text
symbol.duplicate-measure
error — one voice declares each bar once; a second declaration of the same label would silently replace the first
note.duplicate-symbol
error — a note name addresses one note from lyrics and ties; two notes with one name make that address ambiguous
note.invalid-symbol
error — a stable name is a letter or _ then letters, digits, _ and -
voice.mixed-shorthand
error — direct measure lines ARE voice 1; mixing them with explicit voice blocks makes the voice numbering unreadable
voice.invalid
error — a staff carries voices 1 through 4
voice.duplicate
error — one voice number, one block; write the bars of a voice in a single block
repeat.no-previous-bar
error — && repeats the bar before it, so the first bar of a part or voice has nothing to repeat — write the music once, then && it
repeat.unknown-measure
error — a % repeats a bar this voice declares; naming a bar that does not exist repeats nothing
repeat.forward
error — a % repeats an EARLIER bar — music cannot copy what has not been written yet
repeat.meter-mismatch
error — a repeated bar carries the earlier bar's notes; if the meter changed in between, those notes no longer fill the bar
repeat.named-content
error — named notes and named tuplets have one identity each, and a repeat would need two copies of it
navigation.unknown-option
error — navigation words are start-repeat, end-repeat-N, ending-N, segno, to-coda, coda, fine and the jumps (jump-dc, jump-ds-al-coda…)
navigation.duplicate-option
error — a bar states each navigation word once
navigation.conflict
error — a bar declares at most one repeat count, one ending set, one marker and one jump
navigation.invalid-repeat-count
error — a repeat plays between 2 and 16 times
navigation.invalid-ending
error — ending numbers run from 1 to 32
navigation.missing-segno
error — a D.S. jump needs a segno to jump back to, or the player has nowhere to go
navigation.missing-coda
error — an al Coda jump needs both a to-coda (where to leave) and a coda (where to land)
navigation.missing-fine
error — an al Fine jump needs a Fine marker to stop at
notation.unknown
error — this word is not in the mark vocabulary; quoted text ("con brio") prints any words you like
notation.duplicate
warning — the same mark is written twice on one node; the second one changes nothing
notation.run-nothing-to-continue
warning — (sim) continues the articulation already in force, so it needs one: mark the first note ((-)4C) and write (sim) on the next — on its own it continues nothing, and the passage stays plain
notation.run-not-open
warning — (non) is “non sim.” — it stops a run that (sim) opened; with no run in force the notes here are already plain, so it changes nothing
chord.duplicate-pitch
error — a chord writes each pitch once; altered unisons (C4 with C#4) are legal, an exact repeat is not
chord-symbol.invalid-root
error — a chord symbol starts with a root: A–G (case carries quality) with an optional accidental
chord-symbol.unknown-option
error — the only chord-symbol option is bass-<pitch>, the slash bass
chord-symbol.conflicting-bass
error — a chord symbol names at most one bass pitch
chord-symbol.empty-display
error — an explicit chord-symbol spelling replaces the generated one, so it cannot be empty
tie.pitch-mismatch
error — a tie joins the SAME written pitch; ~ between different pitches is a slur, which is what you want here
tie.no-common-pitch
error — a tie between chords needs at least one written pitch present in both
tie.partial-pitch-mismatch
error — a tied chord member must exist in the next chord; a tie that lands on nothing is not engravable
tie.missing-endpoint
error — a tie needs a pitched note immediately after it to arrive at
tie.conflicting-scope
error — tie the whole event (tie-next) or single chord members ([Eb~ G]), never both — the two scopes contradict each other
tie.invalid-endpoint
error — a tie statement names two pitched notes that exist in this part
tie.double-connector-no-pitch
warning — a trailing ~~ says BOTH things at once — tie forward and open a slur (4C~~ C D ~E) — so its tie half needs the very next node to repeat the written pitch; with no repeat there is nothing to tie and the second ~ quietly spells a second slur instead. Write one ~ for the slur alone, or repeat the pitch to tie
tie.connector-run-too-long
warning — a node trails one ~ (a tie when the next node repeats the pitch, a slur otherwise) or two (~~ — tie forward AND open a slur); there is deliberately no third form, so every ~ past the second says nothing
tie.not-adjacent
info — a tie says two notes are ONE SOUND, so it only ever joins ADJACENT notes of the same pitch; X~ … ~X with anything in between is a slur across all of them, however the endpoints are spelled (N34) — if two ties were meant, the pitch has to repeat on the very next note
range.above-practical
info — the catalog's practical range is the band a DEVELOPING player can be counted on for, and this note is above it; one strong player will have it and a section will not, which is worth knowing now rather than at the first rehearsal — the instrument's full range is stated separately, and this note is still inside it
range.below-practical
info — the bottom of a range is where tone and intonation go first, and this note is below the band a DEVELOPING player owns; the note is on the instrument — the section playing it will simply be quiet, flat and late
range.outside-professional
warning — this note is outside the instrument's range as the orchestration literature states it — not merely hard but very likely not there at all for whoever is handed the part; ranges are stated in WRITTEN pitch, so a transposing part is judged by what its player reads and not by what it sounds
hairpin.unterminated
warning — an inline cresc/dim ends at the next node carrying a dynamic; without one it has no printed length
transition.stop-without-start
warning — [...] is the last dash of a tempo transition's dashed line, so it needs an earlier [rit..], [rall..] or [accel..] to end; with none open it prints nothing
transition.overlapping
warning — one tempo transition is in force at a time: a second [rit..]/[accel..] closes the one already running where it stands, exactly as a tempo event would — write [...] where you meant the first to end
expressive.invalid-symbol
error — a stable identifier names the expression so edits elsewhere keep pointing at it
expressive.duplicate-symbol
error — each expression in a part carries its own name
expressive.invalid-placement
error — placement is above, below, or auto
expressive.unknown-measure
error — an anchor names a bar this part declares
expressive.invalid-offset
error — an anchor offset is a position inside the bar: 0, a note value (q), or an exact N/M
dynamic.invalid-mark
error — dynamics are pppp…ffff plus fp, sfz, sf, sfp, fz, rfz and n
text.invalid-role
error — a text role is tempo, rehearsal, technique, staff, or system — the role decides how it is engraved
text.empty
error — a text expression prints something; an empty one is invisible
breath.invalid-symbol
error — a breath is breath (comma) or caesura (railroad tracks)
breath.always-above
warning — a breath is drawn above the stave, so below cannot move it
figured-bass.invalid-figures
error — figured bass is a non-empty comma-separated list of figures
lyric.invalid-target
error — a lyric syllable attaches to a pitched note; rests are not sung
lyric.invalid-verse
error — lyric verses are numbered from 1
lyric.invalid-syllabic
error — a syllable is single, begin, middle, or end — this is what draws the hyphens between syllables
lyric.unknown-option
error — lyric options are extender (the melisma line) and elision
lyric.duplicate-verse
error — a note carries one syllable per verse; a second one would print on top of the first
lyric.duplicate-option
error — a lyric states each option once
lyric.empty
error — an empty syllable prints nothing; delete it instead
sticking.grace-spelling
error — a grace stroke is written with the language's grace slash (/R L is a flam), because r is already the rest letter and the slot law refuses a second meaning for it
sticking.pitched-part
error — R and L are hands, and they stand where a note stands only on an unpitched part; on a pitched one the sticking is a mark after the note (4C(R)), which is the side that prints below
sticking.duplicate
error — a note is struck by one hand, so it carries one sticking; a second would print on top of the first
sticking.unknown-rudiment
error — an exercise applies a rudiment by naming a declared one, so a name the score's dictionary does not hold says nothing about which hands the notes take
sticking.pattern-mismatch
info — a rudiment's strokes are laid under the attacks in order and restart when they run out, so a count that is not a whole number of times through leaves the last pass cut short — and a flam or a roll in the pattern wants a grace stroke or the same roll mark in the music
staff-lines.invalid
error — a staff has one to five lines — five is the standard staff and one is the unpitched percussion line
span.invalid-kind
error — span kinds are slur, hairpin, pedal, ottava, volta, glissando, trill-line, custom-line and tuplet-bracket
span.invalid-range
error — a span ends at or after where it starts
span.unknown-option
error — each span kind has its own options; this one is not among them
span.conflicting-options
error — these options contradict each other (a hairpin grows or shrinks, never both)
span.duplicate-option
error — a span states each option once
span.empty-text
error — a labelled span prints its label, so the label cannot be empty
volta.empty-text
error — a volta prints its ending numbers and label; an empty label leaves the bracket blank
tuplet.invalid-ratio
error — a tuplet plays at least 2 notes in the time of 1 or more (3:2, 5:4)
tuplet.too-few-events
error — a tuplet groups at least two events; one note in the time of another is just a different duration
tuplet.unknown-option
error — tuplet options are bracket-auto/show/hide and number-ratio/actual/none
tuplet.conflicting-options
error — a tuplet states its bracket once and its number once
tuplet.duplicate-symbol
error — a tuplet name addresses one group; two groups with one name make that address ambiguous
tuplet.invalid-symbol
error — a stable name is a letter or _ then letters, digits, _ and -
transform.source-has-errors
error — a transform rewrites text it fully understood — the formatter's own contract; fix the errors and the same command will run
transform.unnamed-rows
error — a grid row belongs to a DECLARED part; rows the parser had to name for itself ("row 2") have no braced form to become, and inventing one would print a name on a staff nobody wrote — declare the parts, or label the rows
transform.score-spine
error — a block head's spine states a fact about a SCORE POINT — a double bar, a rehearsal mark, a key change — not about a player, which is why it stands outside the rows; part-first has no shared head to carry it, so a score with a spine keeps the block road (m1-8 { … }), where the head still exists
transform.part-statements
error — a grid row holds bars; a transpose, a span, a lyric, a part-level clef or an at block that changes more than the clef has no cell to print in, so that part keeps its braced form
transform.bar-head
error — a grid cell prints its bar's music alone — navigation words (a repeat, an ending, a jump) and a stable bar name live on a labelled measure line, which a row has no room for
transform.bar-count
error — a grid is a rectangle and a re-woven part is a replacement: every row spans the same bars, and an edited part hands back exactly the bars it was given — adding or removing one is a change to the SCORE
transform.group-label
error — rows past a group label's parts are those parts' further voices, taken in turn — so a part with more than one voice needs a label that names it ALONE; give it a printed name nothing else answers to
transform.woven-context
error — a direction written inside another player's bar has a beat, and this part's bar has different notes in it; move it to the bar's head, where every part can read it at the same moment
transform.part-not-found
error — a part is addressed by its PRINTED name ("Flute 1") or by an instrument key that names only one part; scorescript parts lists what this score answers to
transform.part-ambiguous
error — an instrument key that names several parts cannot pick one of them; the printed name disambiguates it
transform.not-one-part
error — part put takes the file part get made — one part — because it re-weaves that part into the score it came from, and a whole score has nothing to weave into
transform.voices-changed
error — a part's voice rows are its staff layout, not its notes; part put replaces bars one for one, so adding or dropping a voice is a change to the SCORE and belongs there
transform.meter-changed
error — a bar line cannot move for one player: the meter belongs to the score, so a part whose bars are measured differently is describing different music
transform.context-changed
error — the key and the tempo are the conductor's; a part file CARRIES them so the player can read them, but changing one there would silently rewrite every other part — change it in the score
import.malformed
error — the file is not well-formed XML, so nothing in it can be trusted to mean what it looks like; the position given is where the document stopped making sense
import.not-musicxml
error — the importer reads score-partwise MusicXML — the root element every notation program exports by default; score-timewise and other XML dialects are a different grammar
import.archive
error — a .mxl is a bounded zip container whose META-INF/container.xml names one primary MusicXML score; malformed, ambiguous, encrypted, unsafe, or expansion-heavy archives are refused before importing
import.size
error — the imported score expands beyond the host's bounded MusicXML limit; reduce or split the source rather than letting one document exhaust the process
import.encoding
error — MusicXML and every text entry in an .mxl container are UTF-8; replacing invalid bytes would silently change names or notation, so the importer refuses instead
import.empty
warning — the file parsed but holds no music — no parts, or parts with no measures; an importer that returned an empty score would look like it worked
import.unsupported
warning — this element has no home in ScoreScript, so it did not come across; it is named rather than dropped in silence, because a file that is quietly smaller than it was is worse than one that says what it lost
import.lossy
info — this came across, but not exactly as it was written — a spelling the language has no glyph for, a span drawn a different way, a value rounded; the music is there and the notation moved