MusicXML es un formato de archivo basado en un lenguaje de marcado extensible (extensión de archivo .xml) que está explícitamente diseñado para almacenar notación musical. Aunque la forma más fácil de interactuar con MusicXML es utilizar un software editor de partituras (por ejemplo, Musescore), también es posible extraer mucha información de un archivo MusicXML utilizando un editor de texto convencional (por ejemplo, el editor de texto de Windows o Atom).
La estructura interna de un archivo MusicXML se construye jerárquicamente y está definida por elementos, etiquetas (Tag) y atributos (XML key terminlogy). En el siguiente ejemplo, se destacan visualmente:
La estructura utilizada en MusicXML se ajusta en gran medida a los estándares comunes de lenguaje de marcado y utiliza el esquema XML de MusicXML W3C. Se puede consultar un resumen detallado de esto aquí. El formato MEI, que también se utiliza para las ediciones digitales de partituras, es la continuación del formato MusicXML y es compatible con éste.
La información sobre la obra y el compositor suele almacenarse al principio de un archivo MusicXML y se define mediante las etiquetas <work> y <creator>.
En el siguiente ejemplo, podemos ver qué información contiene la versión MusicXML del primer movimiento de la Missa „La sol fa re mi“ de Josquin Desprez (aquí el enlace a la misma):
Además de los datos contenidos en <work> hay información adicional sobre la obra („Kyrie“), por ejemplo, dentro de <movement-title> y como atributo „parentTitle“ en <miscellaneous> Etiquetas. Las herramientas de análisis de MusicXML basadas en Python, como music21, pueden utilizar esta información para las búsquedas de metadatos. Así, la información contenida en el ejemplo tiene el siguiente aspecto tras el análisis de los metadatos por parte de music21:
También se puede definir la información leída mediante el uso de ciertas etiquetas y atributos en el archivo MusicXML, que es crucial, por ejemplo, tanto para la construcción de un corpus como para su propio estudio. Puede encontrar un resumen de las etiquetas y atributos leídos por music21 en el contexto de la búsqueda de metadatos aqui.
Por regla general, toda la información sobre las voces contenidas en un archivo MusicXML se define dentro de <part-list> etiqueta. Éste contiene no sólo el nombre del instrumento (<part-name>), sino también información que sólo se proporciona para reproducir el archivo dentro de un editor de partituras (varias etiquetas midi). En el siguiente ejemplo vemos la descripción completa de una voz:
En la parte principal del archivo xml se encuentra la información sobre el compás, la clave y las notas individuales, divididas en partes (<part id>) y números de compás (<measure>). Es importante tener en cuenta que muchos de los datos que contienen son principalmente relevantes para el diseño y sólo las etiquetas seleccionadas se utilizan para almacenar la información sobre los tonos y las duraciones. Estos se muestran jerárquicamente en el siguiente resumen:
Además de la ya mencionada subdivisión a <part id> y <measure>, especialmente las etiquetas <attributes> así como <note> contienen toda la información relevante sobre el tono y el ritmo del material musical contenido en el archivo MusicXML. <Attributes> suele contener toda la información sobre el propio compás, como la clave (<clef>, el compás (<time> así como <beats> y <beat-type>) y el accidental (<key>). <Divisions> contiene la información sobre la subdivisión rítmica más pequeña posible del compás, y se da en fracciones de cuarto (negras). Este valor es necesario para poder especificar con exactitud las duraciones de las respectivas notas, incluso con agrupaciones rítmicas más complejas. La fórmula exacta para calcular los valores de las notas en cuartos (negras) se llama entonces valor de duracion (<duration>) y valor de division (<divisions>). A continuación, se presenta la primera nota del ejemplo de Josquin ya mencionado anteriormente:
80640 : 10080 = 8 u 8 cuartos (negras) o 2 notas enteras (redondas). Esto corresponde exactamente al Brevis A en el compás 1 de la primera voz (Superius).
Las indicaciones de tono (<pitch>) se definen mediante las etiquetas <step>, <alter> y <octave>. <step> describe la clase de tono, para la que se utilizan las letras „A“ a „G“ (según la notación americana, „H“ se llama „B“). <alter> describe el accidental de la nota respectiva, los números enteros denotan los pasos de semitono. Es decir, „+1“ corresponde exactamente a un sostenido, „-1“, en cambio, a una b (bemol). Además, dentro del elemento <alter>, también se pueden utilizar números de comas para los microintervalos (-0,5, por ejemplo, correspondería a un cuarto de tono menos). <octava> define la octava, como un número de 0 a 9 (corresponde exactamente a la designación MIDI - „4“ corresponde aquí a la octava que se ha introducido).
Para garantizar la mejor compatibilidad posible del archivo MusicXML con diversas herramientas de análisis, así como con los editores de partituras, es aconsejable observar con atención los siguientes puntos:
1. Asegúrese de que la distribución de la voz ha sido realizada por <part id>. A menudo, las voces se unen SÓLO por <voice>, lo que en la mayoría de los casos puede llevar a un análisis o visualización incorrectos.
2. La numeración de las barras debe ser correcta y coherente. Es especialmente importante comprobar que los números de compás están realmente numerados en el orden correcto (ascendente) y que cada <part> tiene el mismo número de compás (si el número de compás y el número total de compás en el original difieren de una voz a otra, adapte el número en consecuencia). ¡El ritmo ascendente debe definirse siempre como <número de medida=„0“>
3. es importante insertar los nombres correctos de las voces en <part-list> así como las formas de abreviación en <part-abbreviation>, porque especialmente en las herramientas de análisis los nombres exactos de las respectivas voices/parts facilitan considerablemente la identificación de los resultados correspondientes.