musicxml

24
MusicXML Lenguaje de representación musical simbólica Informática Musical David Rizo y José Manuel Iñesta

Upload: colby

Post on 13-Jan-2016

46 views

Category:

Documents


2 download

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 Presentation

TRANSCRIPT

Page 1: MusicXML

MusicXMLLenguaje de representación

musical simbólica

Informática Musical

David Rizo y José Manuel Iñesta

Page 2: MusicXML

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

Page 3: MusicXML

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

Page 4: MusicXML

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.

Page 5: MusicXML

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

Page 6: MusicXML

¿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

Page 7: MusicXML

Usado por

Page 8: MusicXML

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)

Page 9: MusicXML

¡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

Page 10: MusicXML

“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

Page 11: MusicXML

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;

Page 12: MusicXML

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)

Page 13: MusicXML

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>

Page 14: MusicXML

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>

Page 15: MusicXML

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

Page 16: MusicXML

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

Page 17: MusicXML

Notación

<directive> Andantino</directive>

<direction placement="above"> <direction-type> <words font-style="italic" relative-x="-12">dolce</words> </direction-type> </direction>

Page 18: MusicXML

Cifrados para guitarra

<technical> <string>3</string> <fret>5</fret> <hammer-on type="start" number="1">H</hammer-on></technical>

Page 19: MusicXML

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

Page 20: MusicXML

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>

Page 21: MusicXML

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

Page 22: MusicXML

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

Page 23: MusicXML

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

Page 24: MusicXML

MusicXML• Lenguaje de representación

musical simbólica

Informática Musical

David Rizo y José Manuel Iñesta