v0.3.0
First tagged release. Earlier version numbers (0.1.x, 0.2.x) were internal
assembly versions that were never tagged or distributed, so this entry describes
the product rather than a delta.
Highlights
- The Lily# notation language — parts, sections, forms and scores; phrases
(named music); pitches, durations, tuplets, grace notes, slurs (including over
chords), ties, articulations and dynamics; lyrics; chord rows and staff-less
lead sheets; volta repeats with inline endings; parallel voices; mid-piece key,
time and clef changes; rhythm (comping) notation —/slash notes on the
middle line, bare durations that repeat the previous note or chord
(bes8 8 8 8), and one-line rhythm staves viastaff … as lines 1; lyric tracks bind
to their own melody (lyrics ja sings vocal) and can print as words-only
rows at that melody's rhythm — chorus words on an instrumental part. A
score is a vertical stack of bands: a boundlyricsrow directly below
its staff is that staff's verse, achordsrow directly above a staff
aligns the symbols over it. The
complete grammar is in
docs/GRAMMAR.md, with a tutorial in
docs/TUTORIAL.md. Lily# is deliberately not
LilyPond's language: backslash constructs are rejected. - LilyPond-fidelity engraving. Beam quanting, slur and tie scoring, skylines,
spring spacing and page breaking are ported from LilyPond (GNU GPL; every
ported file is listed in
LILYPOND-ATTRIBUTION.md), and the output is
continuously measured against LilyPond 2.26.0 through a ledger of 529 recorded
geometric quantities and 220 SVG snapshots. - Outputs: SVG, PDF, PNG, MIDI and MusicXML from one source file.
lyscCLI —check,layout,svg,pdf,png,midi,xml; see
docs/CLI_REFERENCE.md.- VS Code extension with live preview, backed by a full LSP server:
diagnostics as you type, completion (keywords, pitches, dynamics, font faces),
hover, document symbols, go-to-definition, references, rename, formatting,
semantic highlighting, folding, code actions and signature help. Preview
updates run through an incremental compiler (Roslyn-style red-green syntax
tree, single-pass parsing, per-system layout and render memos), so a keystroke
re-renders far less than the whole score. - Bundled fonts — Emmentaler for music glyphs, TeX Gyre Schola / TeX Gyre
Heros for text, with all text measured from the bundled files: the engraved
page does not depend on which fonts a machine has installed. - Cross-platform — .NET 10; binaries are published for win-x64, linux-x64,
osx-x64 and osx-arm64. The full test suite (5,600+ tests) runs green on both
CI legs, Windows and Linux; macOS binaries are built but not CI-tested.
Known limitations
- Cross-staff beam layout is not implemented.
- MusicXML export does not yet emit lyrics or tuplet numbers.
- Release binaries are not code-signed, so Windows SmartScreen or Smart App
Control may warn about or blocklysc.exe. Unblocking the file, or running
dotnet lysc.dllon a machine with the .NET 10 runtime, avoids it.