Repository navigation
1.9
Quoted text is no longer lost.
Two fixes to quoted text that 1.8.0 parsed but lost before the renderer saw it. Both show
up in the same line of svpb-music's Bengullion.abc, [2 "repeat of part 2"{g}A…. One
adds a public enum case, which is why this is 1.9.0 and not 1.8.1.
Text before a grace group (#176)
"^text"{g}A and "G"{g}A attached the annotation or chord symbol to the first grace note,
and nothing draws text on grace notes, so it disappeared. §4.20 puts grace notes first, but
pipe music often writes the text ahead of the braces, and abcm2ps attaches it to the main
note. CeolKit now does the same: quoted text written before or inside a grace group goes to
the note after the }. A decoration inside the braces, as in {!accent!g}, still belongs to
its grace note.
Unprefixed text that is not a chord (#177)
Quoted text with no placement prefix is read as a chord symbol (§4.18). Text that did not
start with a note letter, like "repeat of part 2", was dropped with no diagnostic. Text that
did, like "Fine", became an F chord of quality "ine", which a transposer would turn into
"Gine".
- A chord symbol must now spell a chord from start to finish: a root and accidental
(♯/♭count), a type made of chord-quality words, signs and numbers (m,maj7,
dim,+,sus4,add9,7b5,ø, …), an optional/bass, and an optional alternate
chord like"G(Em)". - Anything else becomes an
Annotationat the newAnnotationPosition.chordLine. Nothing
that plays or transposes chords sees it, andChordSymbol.rootstays non-optional. - It is drawn as abcm2ps draws it, on the chord-symbol line. A note with both a chord symbol
and such text stacks them in the order written. - A new
unrecognisedChordSymbolwarning points at the string and suggests"^…".
CONFORMANCE.md has the rules.
What's Changed
- Fix #176 — quoted text before a grace group goes to the main note by @sbeitzel in #178
- Fix #177 — unprefixed text that is not a chord symbol is printed by @sbeitzel in #179
- Release 1.9.0 by @sbeitzel in #180
Full Changelog: v1.8.0...v1.9.0
Upgrading
Source-compatible with 1.8.0, with one exception: AnnotationPosition gains a chordLine
case, so an exhaustive switch over it with no default needs one more arm.
DiagnosticCode also gains unrecognisedChordSymbol.
Behaviour changes:
- Quoted text that is not a chord (
"Fine","D.C. al Fine","N.C.") is no longer a
ChordSymbol. If you read these strings fromNote.chordSymbol?.raw, read the
.chordLineentries ofannotationsinstead. Parses that contain such text now produce a
warning. ChordSymbol.qualityno longer includes an alternate chord:"G(Em)"has quality"".
rawstill holds the full string.
Engraved output changes for tunes that write quoted text before a grace group, or
unprefixed text that does not start with a note letter, because that text is now drawn. It
also changes for a note that carries both a chord symbol and such text, because the two
now stack. Other tunes are byte-identical to 1.8.0.