Skip to content

v2.3 - Laying out

Latest

Choose a tag to compare

@zz85 zz85 released this 15 Mar 06:42
4b098fe

Lots of good stuff

SCR-20260313-ezrj SCR-20260314-ubvj

Ink pressed mode
SCR-20260313-lfzg

Print emulation โ€” WebGL2 ink-bleed post-processing filter for paper-like rendering; paper color picker; page-mode background masking
Page layout mode โ€” Letter and A4 paper sizes with proper page breaks
Advanced controls panel โ€” collapsible panel with spacing density, rod/spring balance, duration proportionality, and ink-bleed sliders
Dynamic inter-staff spacing โ€” content-aware vertical gaps based on actual note extents rather than fixed multipliers
System barline โ€” single barline connecting all staves at the left edge of each system
Grand staff braces โ€” SMuFL glyph-rendered { brace for piano/organ staves, tips aligned to stave edge via glyph bbox
Bar numbers โ€” measure numbers displayed at the start of each system
Articulations โ€” staccato, accent, tenuto, marcato, staccatissimo, fermata; correct stem-side placement with staff-line avoidance
Grace notes โ€” acciaccatura (slashed) and appoggiatura; scaled stems/flags/beams, stems forced up; zero display timing for cross-staff alignment
Triplet brackets โ€” bracket-less numeral for beamed groups; bracketed for unbeamed/rest-containing groups; stem-side placement
Chord second displacement โ€” alternating noteheads for cluster chords
Beam engraving โ€” standard 0.5 staff-space thickness and 0.25 staff-space separation per Gould/Dorico spec
Playback highlights โ€” bar overlay, columnar, and note-column modes; click-to-seek; auto-scroll
Piano keyboard โ€” on-screen keyboard visualization with solo/mute per staff
Per-staff MIDI โ€” GM instrument assignment and transposition per staff; dynamic velocity; repeat/volta playback
Hairpin rendering โ€” correct wedge geometry spanning note ranges
Volta brackets โ€” first/second ending brackets rendered above staff
Multiple music fonts โ€” dynamic font switching with 20+ bundled fonts (Finale Maestro, Jazz, Broadway, Leland, Petaluma, Leipzig, Sebastian, etc.) and matched companion text fonts
MIDI import โ€” load .mid/.midi files as rendered score
Spacing model โ€” spring-rod spacing with duration proportionality; two-pass line breaking; interactive sliders
Engraving rules โ€” constants calibrated against MuseScore, LilyPond, and OSMD; font-size-relative dimensions replacing hardcoded pixels
Professional ties/slurs โ€” cubic bezier curves, separate Slur class, staff-line collision avoidance, beam slope clamping
Parser โ€” V175 staff connection flags from staffType; color field parsing; Segno/Coda non-spacing fix
UI refresh โ€” two-row toolbar, segmented layout/orientation controls, logo links to GitHub, localStorage persistence for last loaded song
CI โ€” GitHub Actions workflow running tests on push
530 unit tests; 50+ synthetic visual test fixtures (open test/visual/index.html)