2.0.0
OSMD 2.0 now renders about twice as fast! 🎉 Also, we added lazy / incremental rendering, so even if OSMD is still not fast enough for your huge scores on slow devices, you can now render one system ("line") at a time to get a fast first render, and e.g. render more when scrolling.
But that's by far not all, this release is a bit of a big one. We also implemented tremolo between notes, slurs crossing staffs (e.g. left to right hand), made stafflines always crisp, and more!
See the Changelog:
2.0.0 (2026-06-15)
- MeasureNumber: Don't render measure numbers for implicit measures (e.g. implicit="yes" in MusicXML) by default (#1574). Add EngravingRule RenderMeasureNumbersForImplicitMeasures (3042567)
- Performance: OSMD renders twice as fast now: Calculate skylines geometrically instead of reading canvas pixels (getImageData): average 1.8x speedup, up to 4x faster depending on sample. Importantly, faster for long samples (#1681, #937) (f1ef0d7)
- Performance: Cache flattened glyph outline segments for the geometric skyline calculation (#1681, #937) (f976d48)
- Rendering: Add incremental/lazy rendering, "system by system" / "line by line", to get a fast first render for large scores (renderNext API, PR #1690, #1604, #1554) (4b3bff8)
- Slur: Render cross-staff slurs, e.g. left hand to right hand (#1006) (21c99c0)
- Slurs: Add EngravingRule RenderSlursAcrossStaves (default true) to toggle cross-staff slurs (#1006) (816ae81)
- TimeSignature: Don't render time signature for samples without one (e.g. Satie Gnossiennes) (#1574). Add EngravingRule RenderTimeSignaturesForSamplesWithoutTimeSignature (default false) (a6a6820)
- Tremolo: Render tremolos between two notes (e.g. two alternating half notes) (#1551, PR #1680). Also: read tremolo without type attribute as single note tremolo (d59e1d1)
- Tuplet: Render nested tuplets (#1583) (cfcc2a6)
- AutoResize: Don't re-render the first loaded sheet a second time (in the demo) (#1684, #1683, #1681 follow-up) (7a4a66e)
- Cursor: Prevent clone() not being independent / sharing data due to shallow copy in MusicPartManagerIterator (#1674, PR #1675) (77e9b58)
- Layout: Fix key change extra graphical measure cut off at end of staffline. Give extra instruction measures (mid-piece key/rhythm changes) their correct width (#1681, #937) (a6978f5)
- Layout: Make re-renders identical to the first render: reset per-render VexFlow state (#1683, #1681, #937) (0995df0), closes #1684
- Notes: Don't stagger/x-shift a unison between two voices in a three-voice stave (PR #1677) (52e2ef5)
- Notes: Merge unison noteheads that differ only in dots (PR #1678) (abf5475)
- Stafflines: Crisp and consistent staffline strokes: Round staffline/system distances to half pixels for consistent staff line anti-aliasing. new EngravingRule SnapStafflinesToCrispPixels, default true (#1681, #937) (aa94e20)
- Recalculate: Keep pageWidth stable for RenderSingleHorizontalStaffline (idempotent re-render) (ce2d3a2)
- Rehearsal Marks: Fix overlaps with notes by lifting above high notes (#919) (e397348)
- RehearsalMark: Lift rehearsal marks above chord symbols to prevent overlap, reserve skyline space (#919) (5217af0)
- Tuplet: Align cross-staff tuplet notes with simultaneous notes in other voices (PR #1676) (4b2c8a2), closes #1631
- Unison: Render stem of a beamed note whose notehead is hidden behind a unison in another voice, e.g. Moonlight Sonata m.37 (#1038) (b00e9fe)
v6.0.8
If you like ReactTooltip, please give the project a star on GitHub 🌟
- fix: global events broke on ios by @danielbarion in https://github.com/ReactTooltip/react-tooltip/pull/1282
Full Changelog: https://github.com/ReactTooltip/react-tooltip/compare/v6.0.7...v6.0.8
v5.1.9
5.1.9 (2026-06-15)
- Ads: Prevent pre-roll ads if a previous ad has already played (#10195) (7494ceb)
- Apply PlayReady fixes on Edge to the rest of the browsers that use Windows (#10205) (aeb78f5)
- UI: Close context menu on left click outside the player bounds (#10213) (e240778)
- UI: Fix ad marker alignment regression (#10193) (cec4d8d)
v5.0.20
5.0.20 (2026-06-15)
- Ads: Prevent pre-roll ads if a previous ad has already played (#10195) (7061fd9)
- Apply PlayReady fixes on Edge to the rest of the browsers that use Windows (#10205) (a98875f)
- UI: Close context menu on left click outside the player bounds (#10213) (3111d73)
- UI: Fix ad marker alignment regression (#10193) (9b3913e)
astro@6.4.7
-
#17035
197e50eThanks @astrobot-houston! - FixesgetRelativeLocaleUrl,getAbsoluteLocaleUrl, andgetAbsoluteLocaleUrlListto strip trailing slashes whentrailingSlash: 'never'is configured -
#16967
3719765Thanks @astrobot-houston! - Fixes double URL-encoded paths returning 400 Bad Request on on-demand routesPreviously, any URL containing a double-encoded character (like
%255B, which is[encoded twice) was unconditionally rejected with a400 Bad Requestbefore middleware or route handlers could run. This broke embedded tools like Sanity Studio whose client-side router legitimately produces double-encoded URLs.The fix replaces the rejection approach with iterative decoding — multi-level percent-encoding is now fully resolved to its canonical form before being passed to middleware and route matching. This preserves the security fix for CVE-2025-66202 (middleware authorization bypass via double encoding) because middleware now always sees the fully decoded path, making bypass impossible. For example,
/api/%2561dminis decoded to/api/admin, which middleware can correctly block. -
#17066
2f4d92aThanks @matthewp! - Fixes prerendered redirect targets being incorrectly bundled into the SSR function in hybrid mode, causing massive bundle size inflation -
#16882
621beb7Thanks @jettwayio! - fix(render): honour compressHTML when joining head elements -
#16892
8d753b0Thanks @astrobot-houston! - Fixes custom elements in MDX having their children'sslotattribute stripped by the JSX runtimeWhen custom elements (tags with hyphens like
<my-element>) are used in MDX files, theslotHTML attribute on their children is now correctly preserved. Previously, the shared JSX runtime would treatslotas an Astro slot assignment and remove it from the output, breaking Shadow DOM named slot distribution for web components. -
#16957
544ee76Thanks @thelazylamaGit! - Fixes stale inline CSS in server-rendered HTML after CSS file edits during devWhen editing a CSS file (
.css,.scss, etc.) during development, the inline<style>tags in server-rendered HTML would retain old CSS content instead of updating. This caused a brief flash of old CSS (FOUC) on fresh page loads before Vite's client-side HMR corrected the styles.The fix ensures that Astro's per-route dev CSS virtual modules are invalidated in both the SSR module graph and the module runner's evaluation cache when a style file changes, so the next page render picks up the fresh CSS.
-
#17044
2220d22Thanks @astrobot-houston! - Fixes CSS fromclient:onlyislands leaking to unrelated pages when Rollup bundles non-CSS-importing modules into the same chunk as CSS-importing modules -
#17040
7c4763dThanks @astrobot-houston! - Fixes HMR not triggering for files inside thesrc/middleware/directory during dev -
#16672
52fc862Thanks @martinheidegger! - Fixes support for numeric IDs in YAML frontmatter when using content collection references -
#16762
9de80aeThanks @alexanderdombroski! - Adds a JSON schema to the Wrangler configuration file generated when runningastro add cloudflare -
#17046
ef771ecThanks @ematipico! - Improves the diagnostics emitted when Astro parses incorrect.astrofiles.
4.0.0-next.4
4.0.0-next.4 (2026-06-15)
- canvas: align candlestick labels with wick endpoints (b328da4)
v53.1.6
- Updated
@platejs/selection.
- #5018 by @zbeyens – Fix block selection copy and cut in Safari by writing selected blocks to the native clipboard event.
Thanks to everyone who contributed to this release:
@zbeyens
Full changelog: v53.1.5...v53.1.6
@quasar/app-vite-v3.0.0-rc.3
- fix(app-vite): iOS --ide opens .xcworkspace not .xcodeproj (fix: #18324) (#18325)
Quasar Framework is an open-source MIT-licensed project made possible due to the generous contributions by sponsors and backers. If you are interested in supporting this project, please consider the following: