Limits

What the conversion cannot do yet, and what it leaves behind on purpose. Everything here is a known gap rather than a surprise, and the first three are the ones most likely to be noticed.

Tuplet notation

Durations are stored exactly as rationals in quarter-note units, so a triplet inside a measure is the right length and the measure adds up. What is missing is the notation: no <time-modification> and no <tuplet> bracket is written, so the score prints the notes at their plain values without the "3" over them. Playback is right; the page is not.

More than one voice on a staff

Every event is written to voice 1. A staff that holds two independent melodic lines — the usual way of notating a passage that needs different rhythms at once — comes out as one line, in time order. Split such a staff into two staves in NoteWorthy Composer before converting if the voices have to survive.

Page size

The page is A4, 210 by 297 mm. NWC's own PgSetup width and height fields are not read, so a score set up for US Letter is laid out on A4. The margins are read, and each side separately.

Not yet validated

Two paths have code and no evidence: lyrics, which are emitted with their syllabic types, and flow control — coda, segno, D.C., D.S., Fine. Neither has been checked against a golden score containing the corresponding NWC records, so treat their output as untested rather than as supported. Warnings from those paths are worth reporting, and a small .nwc file that exercises them is the most useful bug report of all.

On purpose

Graphical layout is not reconstructed: absolute positions, staff spacing, per-element font sizes and page breaks all go. The conversion keeps the order of importance it was built around — notes and rhythm, then voices, measures, articulations, dynamics, lyrics, structural markings, instrument information, and only then layout. A notation program will lay the score out its own way, which is usually better than a copy of another program's pagination.

Operationally

Reporting a score that goes wrong

Bugs go to the CPAN request tracker or the GitHub issues. Include the diagnostics code and, if you can, the smallest .nwc file that shows the problem — a trimmed score is far easier to act on than a whole movement, and much easier than a description of one.

nwc2musicxml --debug Pilgrim.nwc 2> debug.txt
← What converts Changes →