Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 19 Aug 14:24
· 195 commits to master since this release

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 via staff … 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 bound lyrics row directly below
    its staff is that staff's verse, a chords row 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.
  • lysc CLIcheck, 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 block lysc.exe. Unblocking the file, or running
    dotnet lysc.dll on a machine with the .NET 10 runtime, avoids it.