-@unnumberedsec Introduction
+@menu
+* Introduction ::
+* Test cases ::
+@end menu
-This document presents proofs for the musicxml2ly script provided with
-LilyPond @lilypondversion. The files don't have a description yet, so
-there is no official indication when the output is wrong.
-These snippets are provided as unit test files in MusicXML, converted to
-a .ly file by musicxml2ly and then processed by lilypond as usual.
+@node Introduction
+@chapter Introduction
-If something does not seem wright 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...
-This document is intended for finding bugs and for documenting bugfixes.
+@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 Connection with @uref{http://www.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.
-TODO: Find a way to add a description to the .ly files for texinfo.
+@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
+ <identification><miscellaneous>
+ <miscellaneous-field name="description"> .... </miscellaneous-field>
+ </miscellaneous></identification>
+@end example
+
The files are categorized by their first two digits with the following meaning:
@itemize
@item 20 ... Compressed MusicXML files
@item 99 ... Compatibility modes with broken MusicXML exporters (i.e. ignore beams for Sibelius 5)
@end itemize
+
+@node Test cases
+@chapter Test cases
STEPMAKE_TEMPLATES=documentation texinfo tex
LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc musicxml
-TITLE=Lilypond musicxml2ly Regression Tests
# Urgh, how can I do two replacements at once without messing up the order of the list?
include $(depth)/make/stepmake.make
-TITLE=Lilypond musicxml2ly Regression Tests
+
+
+TITLE=Unofficial MusicXML test suite
+TEST_SUITE_VERSION=0.1
+
+local-WWW-2: zip
+
+zip: $(outdir)/MusicXML-TestSuite-$(TEST_SUITE_VERSION).zip
+
+$(outdir)/MusicXML-TestSuite-$(TEST_SUITE_VERSION).zip: $(MUSICXML_FILES) $(MUSICMXL_FILES)
+ $(ZIP) -r $@ $(MUSICXML_FILES) $(MUSICMXL_FILES)