@menu * Introduction :: * Test cases :: @end menu @node Introduction @chapter Introduction @heading Why a MusicXML test suite? This test suite of sample @uref{http://www.musicxml.org/,MusicXML} files is supposed to fill a severe gap for all developers implementing MusicXML support in their application: There is no complete test suite of MusicXML files available for testing purposes. @heading Downloading the test suite The complete set of MusicXML test files contained in this suite can be downloaded @uref{MusicXML-TestSuite-0.1.zip,here} as a ZIP archive. @heading License of the test suite This collection of MusicXML test files is distributed under the @uref{http://www.opensource.org/licenses/mit-license.php,MIT license}, which means that you can use the files for any purpose, as long as you leave the copyright notice (or the LICENSE file) intact. @heading Connection with @uref{http://lilypond.org/,LilyPond} At the same time as providing a generic test suite for MusicXML document, this test suite also serves as proofs for the musicxml2ly script provided with LilyPond @lilypondversion. The images shown in the @ref{Test cases} chapter were generated by running @command{musicxml2ly} and @command{lilypond} on the MusicXML files. As @command{musicxml2ly} does not yet perfectly support every single aspect of MusicXML, the output is not supposed to be used as a definitive reference rendering, but rather as an indication how one particular application supports and interprets each of the test files. If something does not seem right in the output, it might either be that this feature has not been implemented yet, has been wrongly implemented, or a regression has crept in recently... In the web version of this document, you can click on the file name or figure for each example to see the corresponding .ly intermediary file. @heading Structure of this test suite Each test file (typically hand-crafted from the MusicXML "specification") checks one particular aspect of MusicXML. A short description of the particular feature for a file is given element inside the file in a comment element of the form: @example .... @end example The files are categorized by their first two digits with the following meaning: @itemize @item 01-03 ... Basics: Pitches, Rests, Rhythm @item 11-13 ... Staff attributes: Time signatures, Clefs, Key signatures @item 21-24 ... Note settings: Chorded notes, note heads, tuplets, grace notes @item 31-33 ... Notations and articulations: Dynamics (staff-attached), Notations (note-attached), Spanners @item 41-44 ... Parts: Multiple parts, multi-voice parts, multi-staff parts @item 45-46 ... Measure issues and repeats @item 51-52 ... Page issues: Header fields, page layout @item 55-59 ... Exact positioning of items, offsets, etc. @item 61-69 ... Vocal music @item 71-75 ... Instrument-specific: Guitar (Chord, fretboards), Transposing instruments, Percussion, Figured Bass, Others @item 81-89 ... MIDI generation (all sound-related issues) @item 90-99 ... Various Other: Compressed MusicXML files, compatibility with broken MusicXML files exported by other applications @end itemize Some of the catetories (in particular the exact item positioning and the MIDI generation don'thave any test cases yet. @node Test cases @chapter Test cases @menu * 01 ... Pitches * 02 ... Rests * 03 ... Rhythm * 11 ... Time signatures * 12 ... Clefs * 13 ... Key signatures * 21 ... Chorded notes * 22 ... Note settings heads etc. * 23 ... Triplets Tuplets * 24 ... Grace notes * 31 ... Dynamics and other single symbols * 32 ... Notations and Articulations * 33 ... Spanners * 41 ... Multiple parts (staves) * 42 ... Multiple voices per staff * 43 ... One part on multiple staves * 45 ... Repeats * 46 ... Barlines Measures * 51 ... Header information * 52 ... Page layout * 61 ... Lyrics * 71 ... Guitar notation * 72 ... Transposing instruments * 73 ... Percussion * 74 ... Figured bass * 75 ... Other instrumental notation * 90 ... Compressed MusicXML files * 99 ... Compatibility with broken MusicXML @end menu