Repository navigation
docs(releases): finish the 1.9.0 notes, load real MusicXML and Capella demos, fix Capella import - #3002
Merged
Danielku15 merged 14 commits intoOct 31, 2026
Conversation
Enum members, settings categories and the alphaTex syntax terms were anchored with plain HTML ids, which Docusaurus does not collect, so the build reported over a hundred broken anchors that resolve in the browser. They are now rendered through Link, which registers the id. The exporter guide and the 1.7 release notes pointed at anchors that do not exist. Broken anchors now fail the build like broken links.
Publish and Release already build and deploy the website after the web packages, including dry runs. The standalone Website workflow built against whatever the dist-tags served and could deploy a website whose packages were not published yet.
The ui and react packages are part of the monorepo, so the CI and website jobs no longer probe for them before installing and building.
The deploy is live; whether a run deploys is decided by the website and dry run inputs of the publish workflows and by the website environments.
…lent The feature demos built on AlphaTabProvider turned the player on but had no control to start it, so pages loaded the synthesizer and SoundFont without a way to play. Demos about rendering, import, export and layout no longer enable the player; the alphaTex live preview and the range selection demo get a shared play/pause button.
…xes in the 1.9.0 notes
…usicXML file The tab was labelled prelude.musicxml but loaded the Guitar Pro file. Bach_Prelude_BWV999.musicxml holds the same four bars as Bach_Prelude_BWV999.gp: one guitar part with a treble-8vb notation staff and a TAB staff, validated against the MusicXML 4.0 schema.
…tions Every .capx file failed with "No compatible importer found for file": the parser called Beat.updateDurations() before the beat was added to its voice and before its notes were read, so the full-bar rest check dereferenced the missing voice. Chords now compute their duration after the notes are parsed, rests after they are added to the voice.
…apella page The capx tab loaded Drums.gp5. twinkle-mozart.capx holds the K. 265 theme of twinkle-mozart.musicxml on a piano grand staff with lyrics, validated against the CapXML 3.0.3 schema.
…stead of a hardening section
…Kotlin ports The transpiler does not support array destructuring, which the new Capella test used. On Kotlin the parser also read its lateinit voice state before the first voice assigned it; it now starts with an empty state that counts as a completed bar, as the unset value did in JavaScript.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
AI-authored disclosure (
alphatab-ai-authored-v1)Portions of this content were authored by an AI agent. The agent has read
AGENTS.md and the human submitter accepts responsibility for
compliance with the rules in that document.
Issues
No issue: 1.9.0 release preparation by the maintainer (release notes and website content). The maintainer asked for the Capella importer fix to go into this PR directly, as a minimal fix to make Capella import usable again; full Capella support is planned for 1.10.0.
Proposed changes
1.9.0 release notes (
website/docs/releases/release1_9.mdx)The notes did not cover the PRs merged since they were last updated:
player.positionUpdateIntervalInMilliseconds.webWorkers: false, the plugin reports an error instead of hanging, the Vite worker and worklet chunks are no longer manifest entries, the minified builds defineOttavia._8vaand the other enum members starting with an underscore again.website/.LogLevel.Trace, fades now use CC 11 in the generated MIDI, millisecond values keep their decimals,[Obsolete]/@Deprecatedon deprecated members in C# and Kotlin, SVG output differences, npm provenance (ci: publish npm packages via trusted publishing, stage releases, add dry_run #2959).All internal links and anchors were checked against next.alphatab.net: 104 pages and 73 anchors. The check rules out the host's fallback page, which is served with HTTP 200. PR, commit and user links were checked against GitHub.
Capella import (
CapellaParser.ts)Every
.capxfile failed with "No compatible importer found for file", in 1.8.4 too. The parser calledBeat.updateDurations()before the beat was added to its voice and before its notes were read, so the full-bar rest check (Beat.isFullBarRest) dereferenced the missing voice. Chords now compute their duration after their notes are parsed, rests after they are added to their voice.CapellaImporter.test.tsis the first Capella test: a grand-staff file with lyrics, and inline CapXML with whole notes, full-bar rests and a half-bar rest. Both tests fail without the fix.Landing page demos
The file tabs are there to show alphaTab loading different formats, but two of them loaded Guitar Pro files:
prelude.musicxmlnow loadsBach_Prelude_BWV999.musicxml: the same four bars asBach_Prelude_BWV999.gp, as one guitar part with a treble-8vb notation staff and a TAB staff. It validates against the MusicXML 4.0 schema. Imported, it matches the.gpin every pitch, duration, tie, string and fret.etude.capxtab (which loadedDrums.gp5) is nowtwinkle.capxand loadstwinkle-mozart.capx: the K. 265 theme fromtwinkle-mozart.musicxmlon a piano grand staff with lyrics. It validates against the CapXML 3.0.3 schema; the newer official schemas contain errors and do not compile. The Capella feature page loads it too, instead of a Guitar Pro file.Both pieces are public domain.
Landing page content
outreachconsent markers and their TODO comments.Verification
CapellaImporter.test.tspasses. The full suite and the C# and Kotlin tests were not run locally.Checklist
AI authorship disclosure
(
alphatab-ai-authored-v1) is present at the top of this body, and I havepersonally reviewed every change and can explain each one
Further details
website/