Closed tjwrona closed 3 years ago
Hello,
The master branch contains installable versions, which Dominique Fober creates from time to time.
The fundamental principles in libmusixcml2 design are described in:
https://github.com/grame-cncm/libmusicxml/blob/master/doc/presentation/libmusicxml2.pdf
There’s also a presentation of its architecture at:
https://github.com/grame-cncm/libmusicxml/blob/master/doc/libmusicxmlArchitecture/libmusicxmlArchitecture.pdf
The samples directory contains basic examples of the use of the library, such as:
RandomMusic > randomMusic.xml # create a MusicXML file containing random music
xmlread randomMusic.xml # read it, convert it to an xmlelement tree, and print the latter to cout
The lilypond branch contains my contribution to the library, merged from time to time by Dom too. It is named after the fact that it was created for xml2ly in the first place:
menu@macbookprojm: ~ > xml2ly -h Welcome to xml2ly, the MusicXML to LilyPond translator delivered as part of the libmusicxml2 library. https://github.com/grame-cncm/libmusicxml/tree/lilypond
Usage: ([options] | [MusicXMLFile|-])+ … … … … … …
menu@macbookprojm: ~ > xml2ly -a What xml2ly does:
This multi-pass translator basically performs 5 passes:
Pass 1: reads the contents of MusicXMLFile or stdin ('-')
and converts it to a MusicXML tree;
Pass 2a: converts that MusicXML tree into
a Music Score Representation (MSR) skeleton;
Pass 2b: populates the MSR skeleton from the MusicXML tree
to get a full MSR;
Pass 3: converts the MSR into a
LilyPond Score Representation (LPSR);
Pass 4: converts the LPSR to LilyPond code
and writes it to standard output.
Other passes are performed according to the options, such as
printing views of the internal data or printing a summary of the score.
The activity log and warning/error messages go to standard error.
The lilypond branch has evolved to the current architecture:
https://github.com/grame-cncm/libmusicxml/blob/lilypond/doc/libmusicxmlArchitecture/libmusicxmlArchitecture.pdf
Don’t hesitate to ask for more informations depending on your needs.
And yes, you’re right: I have to add the informations above to the docs…
A nice day!
JM
Le 10 janv. 2021 à 18:47, tjwrona1992 notifications@github.com a écrit :
I am working on a C++ project that will need to read/write MusicXML files and I came across this repository but I can't seem to find any clear documentation on how to use it. I see that there are build instructions, but is there a user manual/API reference somewhere?
I apologize if it is in an obvious location and I somehow just missed it.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/grame-cncm/libmusicxml/issues/43, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABRJX6XAZEIIJ4HIBUO42VTSZHR4XANCNFSM4V4S6B3Q.
The library is designed so that the MusicXML documentation (included in the schema also serves as documentation for the library. The general principles are described in the presentation document. Otherwise there is a higher level API available from libmusicxml.h.
Thank you both! I will check it out.
I'm currently reading through the MusicXML documentation to learn my way around. :)
Hello,
Le 14 janv. 2021 à 23:29, tjwrona1992 notifications@github.com a écrit :
Thank you both! I will check it out.
I'm currently reading through the MusicXML documentation to learn my way around. :)
This other doc may help you, then:
https://github.com/grame-cncm/libmusicxml/blob/lilypond/doc/introductionToMusicxml/IntroductionToMusicXML.pdf
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/grame-cncm/libmusicxml/issues/43#issuecomment-760516113, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABRJX6TJO2VYE3SILQP7MXDSZ5V33ANCNFSM4V4S6B3Q.
I am working on a C++ project that will need to read/write MusicXML files and I came across this repository but I can't seem to find any clear documentation on how to use it. I see that there are build instructions, but is there a user manual/API reference somewhere?
I apologize if it is in an obvious location and I somehow just missed it.