Repository navigation
See https://alphatab.net/docs/releases/release1_9 for a detailed overview and description of the new features in this release.
What's Changed
- refactor(transpiler). new architecture with tests by @Danielku15 in #2713
- feat(rendering): rework spacing to use power-law model by @Danielku15 in #2749
- feat(rendering): skyline based effect placement by @Danielku15 in #2750
- perf(rendering): improve render performance by @Danielku15 in #2751
- feat(rendering): configurable staff element display by @Danielku15 in #2752
- feat(rendering): add per-beat rest display position via beat.restDisplayTone, beat.restDisplayOctave by @roscopeeco in #2721
- feat(rendering): display tuning on staff lines by @kulek1 in #2742
- feat(drums/tabs): allow showTablature for percussion (drums) notation by @leocaseiro in #2591
- Fix GP7 score system layout serialization for multitrack view by @chenkigba in #2774
- fix(musicxml): fix incorrect percussion articulation assignment to notes by @Danielku15 in #2777
- feat: individual settings to control user interaction by @Danielku15 in #2779
- feat: center full bar notes and rests by @Danielku15 in #2781
- fix(rendering): start continued ties/slurs after clef on new systems by @GiovanniSlabs in #2800
- chore: add AI instructions and auto-triage of items by @Danielku15 in #2804
- build: tune dependabot settings for PR grouping by @Danielku15 in #2805
- fix(lsp monaco): avoid runtime and bundling errors on Monaco and LSP by @Danielku15 in #2830
- fix(musicxml gp-exporter): optimized handling of more than 4 voices by @Danielku15 in #2831
- fix(exporter): ensure
stringandfretfor all staff types by @Danielku15 in #2832 - feat: more dynamic bar numbering by @Danielku15 in #2907
- fix(musicxml): convert metronome beat units to quarter-note tempo by @Danielku15 in #2910
- fix(player): serialize audio worklet output lifecycle operations by @Danielku15 in #2911
- fix(playground): align selection handles with the scrolled score by @sgabenov in #2886
- fix #2839: scale horizontal layout width with display.scale by @leocaseiro in #2894
- fix(musicxml): import string indications on notation staves as string number annotations by @Danielku15 in #2913
- fix(musicxml): import dead notes and attach notes before interpreting their children by @Danielku15 in #2914
- fix(midi): take D.C./D.S. jumps only once and play repeats as final pass after a jump by @Danielku15 in #2915
- fix(midi): count passes per repeat group with alternate endings by @noy-solvin in #2895
- fix(rendering): rhythm stems for slashed beats on tab staves by @Danielku15 in #2916
- fix(midi): take jumps inside repeats only on the final pass by @Danielku15 in #2917
- fix(importer): read MusicXML fingering digits by instrument convention by @Danielku15 in #2927
- fix(player): late midiLoaded registration overflows the stack with the worker player by @Danielku15 in #2928
- fix(importer): read MusicXML jumps from inside by @Danielku15 in #2929
- fix: spell MusicXML notes from step/alter, export spellings correctly to Guitar Pro and alphaTex by @Danielku15 in #2931
- fix(importer): pair and apply MusicXML spans per part, staff and number by @Danielku15 in #2938
- fix: align beaming, metronome, count-in and automations with pick-up bars; fix beat timers and multi-track MIDI events by @Danielku15 in #2939
- fix(alphatex): accept fractional harmonic values by @Danielku15 in #2941
- fix(rendering): correct the minimum bar spacing and hammer-on/slide slur placement by @Danielku15 in #2943
- feat(rendering): place hammer-on, pull-off and slide labels above the staff and improve effect annotation spacing by @Danielku15 in #2945
- feat(alphatex): add staff display tags for staff configs and bar overrides by @Danielku15 in #2946
- fix(musicxml): import harmonics and fold touching and sounding pitch notes by @Danielku15 in #2947
- refactor: replace the vendored zip and Vorbis code with own implementations by @Danielku15 in #2950
- fix: always complete mouse presses and handle in-progress selections on render by @Danielku15 in #2951
- ci: publish npm packages via trusted publishing, stage releases, add dry_run by @Danielku15 in #2959
- fix(player): keep sync point times exact to avoid drift on non-integer tempos by @Danielku15 in #2960
- ci: run publish only when the nightly check finds changes by @Danielku15 in #2961
- docs: refresh the README for GitHub, npm and NuGet by @Danielku15 in #2962
- 1.9.0 hardening: fix release-review findings across rendering, importers, player and packaging by @Danielku15 in #2990
- fix(importer): reject malformed GPX containers instead of looping forever by @Danielku15 in #2991
- fix(rendering): draw triplet feel once per bar and capo once per staff by @Danielku15 in #2992
- fix(rendering): compute beaming bounds for beats without notes by @Danielku15 in #2993
- fix(synth): let a local initialAttenuation replace the global zone value by @Danielku15 in #2994
- fix(importer): apply MusicXML dynamics per part and show them only where written by @Danielku15 in #2996
- fix(midi): fade via expression and restore it with the voice's next note by @Danielku15 in #2995
- perf(rendering): rework the layout flow so resizes match fresh renders at half the time and memory by @Danielku15 in #2997
- feat: website in the monorepo on Rspack, with a shared alphaTab core for webpack, Rspack, Vite and Turbopack by @Danielku15 in #2998
- fix(website): finish the monorepo website with publish-only deploys, demo playback and checked anchors by @Danielku15 in #3001
- docs(releases): finish the 1.9.0 notes, load real MusicXML and Capella demos, fix Capella import by @Danielku15 in #3002
- Release 1.9.0 by @Danielku15 in #3003
New Contributors
- @roscopeeco made their first contribution in #2721
- @kulek1 made their first contribution in #2742
- @leocaseiro made their first contribution in #2591
- @chenkigba made their first contribution in #2774
- @GiovanniSlabs made their first contribution in #2800
- @sgabenov made their first contribution in #2886
- @noy-solvin made their first contribution in #2895
Full Changelog: v1.8.4...v1.9.0