Filename extension | .musicxml, .mxl |
---|---|
Internet media type | |
Developed by | W3C Music Notation Community Group |
Latest release | 4.0 June 2021 [3] |
Type of format | Musical notation |
Extended from | XML |
Open format? | Yes |
Website | www |
MusicXML is an XML-based file format for representing Western musical notation. The format is open, fully documented, and can be freely used under the W3C Community Final Specification Agreement. [4] [5]
MusicXML was invented by Michael Good and initially developed by Recordare LLC. It derived several key concepts from existing academic formats (such as Walter Hewlett's ASCII-based MuseData [6] and David Huron's Humdrum). [7] It is designed for the interchange of scores, particularly between different scorewriters. MusicXML development was managed by MakeMusic following the company's acquisition of Recordare in 2011. [8] [9] MusicXML development was transferred to the W3C Music Notation Community Group in July 2015. [10]
Version 1.0 was released in January 2004. Version 1.1 was released in May 2005 with improved formatting support. Version 2.0 was released in June 2007 and included a standard compressed format. [11] All of these versions were defined by a series of document type definitions (DTDs). An XML Schema Definition (XSD) implementation of Version 2.0 was released in September 2008. Version 3.0 was released in August 2011 with improved virtual instrument support, in both DTD and XSD versions. [12] [13] Version 3.1 was released in December 2017 with improved support for the Standard Music Font Layout (SMuFL). [14] Version 4.0 was released in June 2021 and resolved multiple issues. [15]
The MusicXML DTDs and XSDs are each freely redistributable under the W3C Community Final Specification Agreement. [5]
As of September 2024 [update] , over 270 notation programs have at least some MusicXML interchange capability. [16] [17] These programs include:
Additionally, web support is possible through the use of the HTML5 canvas element and JavaScript resulting in the rendering of legible music within a web browser. [18]
Features include key and time signatures, clefs, beaming information, stem directions, slurs, ornaments, barlines, and written repeats. [19]
Like all XML-based formats, MusicXML is intended to be easy for automated tools to parse and manipulate. Though it is possible to create MusicXML by hand, interactive score writing programs like Finale and MuseScore greatly simplify the reading, writing, and modifying of MusicXML files.
The following example is a score consisting of a single whole note middle C in the key of C major on the treble clef. [20]
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 4.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwiseversion="4.0"><part-list><score-partid="P1"><part-name>Music</part-name></score-part></part-list><partid="P1"><measurenumber="1"><attributes><divisions>1</divisions><key><fifths>0</fifths></key><time><beats>4</beats><beat-type>4</beat-type></time><clef><sign>G</sign><line>2</line></clef></attributes><note><pitch><step>C</step><octave>4</octave></pitch><duration>4</duration><type>whole</type></note></measure></part></score-partwise>
The textual representation listed above is verbose; MusicXML v2.0 addresses this by adding a compressed zip format with a .mxl suffix that can make files roughly one-twentieth the size of the uncompressed version. [21]
A document type definition (DTD) is a specification file that contains set of markup declarations that define a document type for an SGML-family markup language. The DTD specification file can be used to validate documents.
Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScript.
The Standard Generalized Markup Language is a standard for defining generalized markup languages for documents. ISO 8879 Annex A.1 states that generalized markup is "based on two postulates":
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The World Wide Web Consortium's XML 1.0 Specification of 1998 and several other related specifications—all of them free open standards—define XML.
Mathematical Markup Language (MathML) is a mathematical markup language, an application of XML for describing mathematical notations and capturing both its structure and content, and is one of a number of mathematical markup languages. Its aim is to natively integrate mathematical formulae into World Wide Web pages and other documents. It is part of HTML5 and standardised by ISO/IEC since 2015.
LilyPond is a computer program and file format for music engraving. One of LilyPond's major goals is to produce scores that are engraved with traditional layout rules, reflecting the era when scores were engraved by hand.
XSD, a recommendation of the World Wide Web Consortium (W3C), specifies how to formally describe the elements in an Extensible Markup Language (XML) document. It can be used by programmers to verify each piece of item content in a document, to assure it adheres to the description of the element it is placed in.
X3D is a set of royalty-free ISO/IEC standards for declaratively representing 3D computer graphics. X3D includes multiple graphics file formats, programming-language API definitions, and run-time specifications for both delivery and integration of interactive network-capable 3D data. X3D version 4.0 has been approved by Web3D Consortium, and is under final review by ISO/IEC as a revised International Standard (IS).
In computing, RELAX NG is a schema language for XML—a RELAX NG schema specifies a pattern for the structure and content of an XML document. A RELAX NG schema is itself an XML document but RELAX NG also offers a popular compact, non-XML syntax. Compared to other XML schema languages RELAX NG is considered relatively simple.
A scorewriter, or music notation program is software for creating, editing and printing sheet music. A scorewriter is to music notation what a word processor is to text, in that they typically provide flexible editing and automatic layout, and produce high-quality printed results.
An XML schema is a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntactical constraints imposed by XML itself. These constraints are generally expressed using some combination of grammatical rules governing the order of elements, Boolean predicates that the content must satisfy, data types governing the content of elements and attributes, and more specialized rules such as uniqueness and referential integrity constraints.
The Markup Validation Service is a validator by the World Wide Web Consortium (W3C) that allows Internet users to check pre-HTML5 HTML and XHTML documents for well-formed markup against a document type definition (DTD). Markup validation is an important step towards ensuring the technical quality of web pages. However, it is not a complete measure of web standards conformance. Though W3C validation is important for browser compatibility and site usability, it has not been confirmed what effect it has on search engine optimization.
MuseScore Studio is a free and open-source music notation program for Windows, macOS, and Linux under the Muse Group, which owns the associated online score-sharing platform MuseScore.com and a freemium mobile score viewer and playback app.
A Formal Public Identifier (FPI) is a short piece of text with a particular structure that may be used to uniquely identify a product, specification or document. FPIs were introduced as part of Standard Generalized Markup Language (SGML), and serve particular purposes in formats historically derived from SGML. Some of their most common uses are as part of document type declarations (DOCTYPEs) and document type definitions (DTDs) in SGML, XML and historically HTML, but they are also used in the vCard and iCalendar file formats to identify the software product which generated the file.
Overture is a music notation (scorewriter) program for Windows and Macintosh platforms, published and developed by Sonic Scores. While Overture is primarily a scorewriter program, it also allows editing the score's MIDI audio playback data in the manner of sequencer and digital audio workstation (DAW) software.
Apache Click is a page and component oriented web application framework for the Java language and is built on top of the Java Servlet API.
This is a comparison of music notation programs.
XHTML+RDFa is an extended version of the XHTML markup language for supporting RDF through a collection of attributes and processing rules in the form of well-formed XML documents. XHTML+RDFa is one of the techniques used to develop Semantic Web content by embedding rich semantic markup. Version 1.1 of the language is a superset of XHTML 1.1, integrating the attributes according to RDFa Core 1.1. In other words, it is an RDFa support through XHTML Modularization.
A document type declaration, or DOCTYPE, is an instruction that associates a particular XML or SGML document with a document type definition (DTD). In the serialized form of the document, it manifests as a short string of markup that conforms to a particular syntax.
Standard Music Font Layout, or SMuFL, is an open standard for music font mapping. The standard was originally developed by Daniel Spreadbury of Steinberg for its scorewriter software Dorico, but is now developed and maintained by the W3C Music Notation Community Group, along with the standard for MusicXML.