MusicXML and MXL

A clearer start for your score.

This guide describes the current development build. KeySymphony is not yet publicly available, and a file extension alone cannot guarantee that every score will display or play as expected.

01 FILE TYPES

Bring a piano score

  • Supported score file extensions are .musicxml and compressed MusicXML .mxl.
  • On Android, rename a plain MusicXML export ending in .xml to .musicxml before choosing it.
  • PDF pages, photos, MIDI files, and audio recordings are not score imports.

The native practice parser accepts MusicXML score-partwise. MusicXML score-timewise is not supported by that parser. Use a valid MXL package; corrupt archives, unsafe or duplicate member paths, and invalid score selection are rejected.

02 NOTATION AND PLAYBACK

Each score has its own shape

Readable XML does not mean that every marking is used in the practice timeline. A marking may appear in the engraved score without changing playback or note matching.

The current timeline expands forward and backward repeats, repeat counts, numbered alternate endings, and common D.C./D.S. navigation with segno, To Coda, and Fine targets. It is limited to 10,000 played measures, one D.C./D.S. jump, and one To Coda jump; a missing named segno or coda target is rejected. Per-note or direction time-only conditions and unusual nested or cross-part navigation are not applied.

Right-hand and left-hand Learn notes use staff 1 and staff 2 in a single piano part; the selected staff must contain notes. KeySymphony does not infer hands from pitch, separate voices, or multiple instrumental parts. Both-hands practice uses the original score.

Tied notes can remain held across barlines in Learn notes. Completion, score correctness, and timing still depend on the source and selected mode.

03 FILE SIZE

Current import bounds

These are file-handling limits, not a promise that a score at the limit will render quickly.

Android document picker copy
64 MiB per original file
Uncompressed score XML
64 MiB
MXL archive
128 MiB
Selected XML inside MXL
64 MiB
MXL container metadata
64 KiB
Files inside an MXL archive
1,024 entries

The Android picker copy limit is applied before the MXL reader, so an MXL larger than 64 MiB cannot be imported through that picker even though the native archive reader has a 128 MiB bound.

04 TROUBLESHOOTING

If a score does not import or play as expected

The Android picker does not show my file.

Choose a .musicxml or .mxl file. If your notation app exported plain MusicXML as .xml, rename that file to .musicxml. This does not convert a PDF, image, MIDI file, or recording into a score.

The file is rejected.

Check that it is a valid MusicXML score in score-partwise form or a valid MXL package, and that it is within the limits above. If the source application offers both MusicXML and compressed MusicXML export, try its other format.

The score displays, but notes or playback differ.

Display and practice behavior are separate. Some score structures and playback instructions are not applied to matching or audio. Compare the displayed score with the source; if you can, export a standard score-partwise version and try that copy.

The import was interrupted.

Choose the source file again. A stopped import does not resume the document-provider copy automatically; the original source remains available to choose again.

Still getting to know the practice idea?

Back to the practice flow