-
Notifications
You must be signed in to change notification settings - Fork 185
Code Structure
Andrew Tran edited this page Jul 19, 2017
·
2 revisions
Note that this document is under construction and may not be accurate as of July 18, 2017
- ./data: Contains all the data for fonts, which is used by verovio during execution. The path must be set using the -r option.
- ./doc: Files pertaining to the documentation, including markdown files etc.
- ./emscripten: Emscripten files used for compiliation to Javascript
- ./fonts: The source files for the music fonts and related scripts
- ./include: Include files (.h) for the libraries, and verovio files (vrv)
- ./java: Files pertaining to the java bindings
- ./libmei: Files generated from the MEI schema from the customized version of libmei for verovio
- ./python: Files pertaining to the python bindings
- ./src: The source files, for more details see the following section
- ./tools: Cmake files for command line tool
XCode project and relevant files are in the root and in Verovio.xcodeproj
The source files are organized logically through virtual folders in the XCode project found in the repository. This (in addition to the header files in the include folder) comprise the entirety of the functionality of verovio. The structure is as follows:
- ./dc: Device context files, bboxdevicecontext, svgdevicecontext
- ./io: Input output files, for humdrum, mei, musxml etc.
- ./containers: MEI elements that are containers, page, scoredef, etc.
- ./systemelements: MEI elements pertaining to systems, ie boudary, section, etc.
- ./controlelements: MEI elements pertaining to control, ie tempo, slur, trill, etc.
- ./layerelements: MEI elements pertaining to layers, ie clef, custos, keysig etc.
- ./textelements: MEI elements pertaining to text, such as text, fb, etc.
- ./interfaces: Interface code for interacting with certain attributes of elements, ie pitchinterface, positioninterface, etc.
- ./view: Code for rendering the view
In the root ./src directory are several files that help with the general operation of verovio, including the toolkit. The toolkit is what most users will interface with in order to use verovio, and more information can be found in the toolkit documentation (currently under development).