Title: MusicXML
1MusicXML
Informática Musical
- Lenguaje de representación musical simbólica
David Rizo y José Manuel Iñesta
2Representació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
3Qué 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
4En 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.
5MusicXML 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
6Por 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
7Usado por
8Disponible 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)
9Hola Mundo!
lttimegt ltbeatsgt4lt/beatsgt
ltbeat-typegt4lt/beat-typegt lt/timegt
ltclefgt ltsigngtGlt/signgt
ltlinegt2lt/linegt lt/clefgt lt/attributesgt
ltnotegt ltpitchgt ltstepgtClt/stepgt
ltoctavegt4lt/octavegt lt/pitchgt
ltdurationgt4lt/durationgt lttypegtwholelt/typegt
lt/notegt lt/measuregt lt/partgt
lt/score-partwisegt
- lt?xml version"1.0" encoding"UTF-8"
standalone"no"?gt - lt!DOCTYPE score-partwise PUBLIC
- "-//Recordare//DTD MusicXML 0.7 Partwise//EN"
- "http//www.musicxml.org/dtds/partwise.dtd"gt
- ltscore-partwisegt
- ltpart-listgt
- ltscore-part id"P1"gt
- ltpart-namegtMusiclt/part-namegt
- lt/score-partgt
- lt/part-listgt
- ltpart id"P1"gt
- ltmeasure number"1"gt
- ltattributesgt
- ltdivisionsgt1lt/divisionsgt
- ltkeygt
- ltfifthsgt0lt/fifthsgt
- lt/keygt
Métrica
Clave
Altura
Resolución
Duración
Tonalidad
10Pegas
- 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
11Distribución
- attributes.dtd
- barline.dtd
- common.dtd
- direction.dtd
- identity.dtd
- link.dtd
midixml.dtd note.dtd
opus.dtd partwise.dtd
score.dtd timewise.dtd
MIDIEvents10.dtd
To06c.xsl timepart.xsl parttime.xsl midixml.xsl IS
Olat1.pen ISOlat2.pen
lt!ENTITY identity PUBLIC "-//Recordare//ELEMENT
S MusicXML 0.7 Identity//EN" "identity.dtd"gt ide
ntity
12Metainformación
- Datos sobre el documento
- lt!ENTITY score-header "(work?,
movement-number?, movement-title?,
identification?,part-list)"gt - 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)
13Representació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
- lttransposegt
- ltdiatonicgt-1lt/diatonicgt
- ltchromaticgt-2lt/chromaticgt
- lt/transposegt
14Notas y silencios
- ltnotegt
- ltpitchgt
- ltstepgtElt/stepgt
- ltaltergt-1lt/altergt
- ltoctavegt5lt/octavegt
- lt/pitchgt
- ltdurationgt12lt/durationgt
- lttie type"start"/gt
- ltlyricgt
- ltsyllabicgtstartlt/syllabicgt
- lttextgtHolt/textgt
- lt/lyricgt
- lt/notegt
ltnotegt ltpitchgt ltstepgtElt/stepgt
ltaltergt-1lt/altergt lt/pitchgt ltdurationgt12lt/duration
gt lt/notegt ltnotegt ltrest/gt ltdurationgt12lt/duratio
ngt lt/notegt
15Parámetros del fichero
- Similar al .ini o .cfg pero asociado a la
partitura - Valores por defecto p.ej. Tempo 90
- ltsound tempo"88" dynamics"71"/gt
- Datos concretos para representaciones ambiguas
p.ej. la longitud de las notas de adorno
16Notació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
17Notación
ltdirection placement"above"gt ltdirection-typegt
ltwords font-style"italic"
relative-x"-12"gtdolcelt/wordsgt
lt/direction-typegt lt/directiongt
ltdirectivegt Andantino lt/directivegt
18Cifrados para guitarra
lttechnicalgt ltstringgt3lt/stringgt ltfretgt5lt/fretgt
lthammer-on type"start" number"1"gtHlt/hammer-ongt
lt/technicalgt
19Percusió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
20Polifonía
ltnotegt ltpitchgt ltstepgtGlt/stepgt
ltoctavegt3lt/octavegt lt/pitchgt
ltdurationgt4lt/durationgt lt/notegt ltnotegt
ltchord/gt ltpitchgt ltstepgtBlt/stepgt
ltoctavegt3lt/octavegt lt/pitchgt
ltdurationgt4lt/durationgt lt/notegt ltbackupgt
ltdurationgt4lt/durationgt lt/backupgt ltnotegt
ltpitchgt ltstepgtElt/stepgt ltaltergt-1lt/altergt
ltoctavegt4lt/octavegt lt/pitchgt
ltdurationgt3lt/durationgt lt/notegt
- Representación de varios pentagramas por
instrumento - Múltiples voces por instrumento
- Operaciones de movimiento del contador temporal
- Acordes
21Aplicaciones 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
22Futuro 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
23Nuestra 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
24Informática Musical
MusicXML
- Lenguaje de representación musical simbólica
David Rizo y José Manuel Iñesta