musicxml
DESCRIPTION
Informática Musical. MusicXML. Lenguaje de representación musical simbólica. David Rizo y José Manuel Iñesta. Representación de la música en informática. Dos tipos básicos de ficheros Audio. Grabación de una interpretación: CD, MP3 - PowerPoint PPT PresentationTRANSCRIPT
MusicXMLLenguaje de representación
musical simbólica
Informática Musical
David Rizo y José Manuel Iñesta
Representación de la música en informática
• Dos tipos básicos de ficheros
– Audio. Grabación de una interpretación: • CD, MP3
– Simbólico. Indicaciones que dicen cuándo y cómo deben sonar notas:
• partituras
Qué es MusicXML
• Lenguaje de representación musical• Se guarda información de notación
partituras o ejecuciones de ellas• No se guarda audio• Necesidad
– Diversos programas – diferentes objetivos compartir información
– Formatos actuales tienen carestías– Bancos de partituras: PDF o propietario
En la práctica...
• MIDI como formato de intercambio• Totalmente extendido• Miles de ficheros disponibles
• Problemas:– No distingue DO# de un REb– No sabe qué es una repetición.– Desconoce el concepto crescendo.– No puede representar tresillos.
MusicXML como formato de intercambio
• Pensado para representar información de– Ejecución: similar a MIDI– Notación: similar a NIFF (sistema de codificación)
• Basado en los formatos académicos:– MuseData: del CCARH de la Univ. de Stanford.
Pensado para clásica y folk– Humdrum: de la Univ. de Ohio. Para análisis de
cadenas (p.ej usa expresiones regulares)
• Construido sobre la práctica– Ciclo iterativo
¿Por qué XML?
• Sintaxis básica del lenguaje ya definida
• Estándar abierto: DTD pública que define el lenguaje
• Posible integración como parte de otros lenguajes mayores: DTD Multimedia
• Disponibles parsers en casi todos los lenguajes de programación
Usado por
Disponible para desarrollo:
• DTD en la web de Recordare bajo los términos de uso de W3C
• Documentación suficiente• Lista de discusión activa• Conceptos equivalentes a los respectivos
musicales• Herramientas de desarrollo que funcionan
con los ficheros de MusicXML: parsers (SAX y DOM) y XML Databinding (xdk)
¡Hola Mundo! = <?xml version="1.0" encoding="UTF-8"
standalone="no"?> <!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.7
Partwise//EN"
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise> <part-list> <score-part id="P1"> <part-name>Music</part-name> </score-part> </part-list> <part id="P1"> <measure number="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>
Tonalidad
Métrica
Clave
Altura
DuraciónResolución
“Pegas”
• Tamaño excesivo: Demasiado texto para cada elemento musical
• Ineficiente frente a otros formatos
Pero…
• Pensado como formato de intercambio• Alto nivel de compresión
Distribución
attributes.dtd
barline.dtd
common.dtd
direction.dtd
identity.dtd
link.dtd
To06c.xsltimepart.xslparttime.xslmidixml.xsl
ISOlat1.penISOlat2.pen
midixml.dtd note.dtd opus.dtd partwise.dtd score.dtd timewise.dtd MIDIEvents10.dtd
<!ENTITY % identity PUBLIC"-//Recordare//ELEMENTS MusicXML 0.7 Identity//EN""identity.dtd">
%identity;
Metainformación
• Datos sobre el documento
<!ENTITY % score-header "(work?, movement-number?, movement-title?, identification?,part-list)">
• Sinfonía o álbum = varios ficheros distintos con igual work, distinto movimiento
• Datos sobre autor (música, texto), edición• Información sobre los instrumentos (part):
notación (abreviaturas) y MIDI (dispositivos)
Representación sobre ejecución
• Compatible con MIDI• Es lo único requerido• Elementos para:
– Tonalidad y compás– Resolución: divisiones por tiempo– Instrumentos transpositores
• Trompeta en Bb: representado C, suena Bb<transpose> <diatonic>-1</diatonic> <chromatic>-2</chromatic>
</transpose>
Notas y silencios
<note> <pitch> <step>E</step> <alter>-1</alter> <octave>5</octave> </pitch> <duration>12</duration> <tie type="start"/> <lyric> <syllabic>start</syllabic> <text>Ho</text> </lyric> </note>
<note> <pitch> <step>E</step> <alter>-1</alter> </pitch><duration>12</duration></note><note> <rest/> <duration>12</duration> </note>
Parámetros del fichero
• Similar al .ini o .cfg pero asociado a la partitura
• Valores por defecto: p.ej. Tempo = 90• <sound tempo="88" dynamics="71"/>
• Datos concretos para representaciones ambiguas: p.ej. la longitud de las notas de adorno
Notación
• Comparte elementos con la parte compatible MIDI
• ¿Cómo se sabe que la nota va hacia bajo?
• Representación de la partitura – no de la ejecución– Clave al inicio del pentagrama– Repeticiones– Marcas de digitación para piano– Anotaciones para el intérprete
Notación
<directive> Andantino</directive>
<direction placement="above"> <direction-type> <words font-style="italic" relative-x="-12">dolce</words> </direction-type> </direction>
Cifrados para guitarra
<technical> <string>3</string> <fret>5</fret> <hammer-on type="start" number="1">H</hammer-on></technical>
Percusión
• Representación conjunta instrumentos con y sin afinación• Pentagramas con más/menos de 5 líneas• Múltiples instrumentos por part• Cabezas de nota• Repeticiones
Polifonía
• Representación de varios pentagramas por instrumento• Múltiples voces por instrumento• Operaciones de movimiento del contador temporal• Acordes
<note> <pitch> <step>G</step> <octave>3</octave> </pitch> <duration>4</duration> </note> <note> <chord/> <pitch> <step>B</step> <octave>3</octave> </pitch> <duration>4</duration> </note> <backup> <duration>4</duration> </backup> <note> <pitch> <step>E</step> <alter>-1</alter> <octave>4</octave> </pitch> <duration>3</duration> </note>
Aplicaciones adicionales• Además de representar música con los XML
podemos:– Crear BBDD XML musicales: formato nativo
• Mejor que las relacionales (complejidad)• Lenguajes de búsqueda con secuencia y jerarquía
– Tamino: soporta XQuery– XIndice: soporta XPath
– Analizar el contenido de un fichero: XQuery… de varios ficheros (alineación)- XPointer
– Realizar transformaciones: XSL
• Potencial típico del XML: – separación presentación de contenido PDA, Web– sindicación de contenidos
Futuro del MusicXML
• MusicXML formato que más ampliamente está siendo adoptado desde MIDI
• En fase de construcción: trabajando junto a:– Grupo de trabajo XQuery– music-ir.org– Compañías de software musical
• Seguridad (PKI)• Incremento de capacidades
Nuestra experiencia
• Usado para trabajar conjuntamente con músicos– Tarea: análisis melódico / armónico
• Objetivo: etiquetado automático de notas reales, extrañas (de paso, bordaduras…)
– El músico usa Finale como herramienta de etiquetado• Exportamos el material a MusicXML• Leemos el MusicXML en Java
– Nuestro sistema genera un MusicXML con el análisis melódico / armónico
• El músico importa el MusicXML desde Finale y comprueba el etiquetado automático
– Jtest:• Comparamos el análisis creado por el músico con el que genera
nuestro sistema
MusicXML• Lenguaje de representación
musical simbólica
Informática Musical
David Rizo y José Manuel Iñesta