musicxml music 253 / cs 275a stanford university winter 2005 craig stuart sapp

11
MusicXML Music 253 / CS 275A Stanford University Winter 2005 Craig Stuart Sapp

Upload: nathan-dalton

Post on 11-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MusicXML Music 253 / CS 275A Stanford University Winter 2005 Craig Stuart Sapp

MusicXML

Music 253 / CS 275AStanford UniversityWinter 2005

Craig Stuart Sapp

Page 2: MusicXML Music 253 / CS 275A Stanford University Winter 2005 Craig Stuart Sapp

Purpose

image from: http://recordare.com/xml.html

• Primary function of MusicXML is data interchange between programs:

• Designed for encoding common-practice western music notation.

Page 3: MusicXML Music 253 / CS 275A Stanford University Winter 2005 Craig Stuart Sapp

Predecessor Data Formats

• MIDI

• NIFF http://www.music-notation.info/en/compmus/notationformats.html#NIFF

http://www.musitek.com/midiedition.html• SmartScore

• Available in Sibelius and Lime Notation Programs

• Originally the only way out of Finale’s proprietary format.

not designed as a notation interchange format.

see: http://www.visiv.co.uk/niff.htm

Page 4: MusicXML Music 253 / CS 275A Stanford University Winter 2005 Craig Stuart Sapp

MusicXML Development• Integration of MuseData format with Finale Typesetting Program

• June 2001 : Alpha version of MusicXML 0.3 available

• March 2002: First commercial release of MusicXML 0.6 (Import plugin comes with Finale 2003)

• Jan 2004: MusicXML 1.0 released

• Currently MusicXML 2.0 under development

“We have tried to learn from the mistakes of past music notation interchange efforts by 1) basing the format on the two strongest academic formats available, MuseData and Humdrum, and 2) testing the format by writing usable software from the beginning of the development process.“ http://recordare.com/xml.html

Page 5: MusicXML Music 253 / CS 275A Stanford University Winter 2005 Craig Stuart Sapp

Dolet plugin for Finale• Primary implementation as a Plugin called Dolet for Finale:

http://store.recordare.com/doletfin2.html

http://www.finalemusic.com/finale/plugin-devkit.asp• Write your own plugins for Finale:

Page 6: MusicXML Music 253 / CS 275A Stanford University Winter 2005 Craig Stuart Sapp

XML Tree Structure

<tag> <subtag> <subsubtag> ... </subsubtag> </subtag> <subtag2> ... </subtag2></tag>

Shorthands: <tag/> == <tag></tag>

<tag key=“value”/>

<tag> <key>value</key></tag>

analogous to:

tag

subtag subtag2

subsubtag

http://www.people.virginia.edu/~pdr4h/xmlresources/XMLstepbystep.pdfAn Introduction to XML file structure:

attributes:

Page 7: MusicXML Music 253 / CS 275A Stanford University Winter 2005 Craig Stuart Sapp

MusicXML Structure

<score-partwise> <identification>...</identification> <part-list>...</part-list> <part id=“p1”> <measure number=“1”> <attributes>...</attributes> <note>...</note> <note>...</note> <note>...</note> <note>...</note> </measure> <measure number=“2”> <note>...</note> <note>...</note> </measure> </part> <part id=“P2”>...</part></score-partwise>

• partwise score most common

• each part listed serially

• part consists of measures

• measures contain (1) <note>s (items with duration) and

•(2) <attribute>s (items without duration such as clef, time signature, key signature, etc.)

•(3) <direction>s (dynamics)

•(4) <sound/> (tempo)

Page 8: MusicXML Music 253 / CS 275A Stanford University Winter 2005 Craig Stuart Sapp

Note Element <note> <pitch> <step>C</step> <octave>5</octave> </pitch> <duration>1</duration> <voice>1</voice> <type>16th</type> <stem>down</stem> <notations> <articulations> <staccato placement="above"/> </articulations> </notations> </note>

see: http://recordare.com/xml/musicxml-index.html

logical duration

graphical duration

Page 9: MusicXML Music 253 / CS 275A Stanford University Winter 2005 Craig Stuart Sapp

MuseData vs. MusicXML• MusicXML’s basic structure is a key-parameterized version of MuseData. MuseData note record

C5 1 1 s d .12345678901234567890123456789012345678900 1 2 3 4

durationvoice

typestep octave

stemstaccato

<note> <pitch> <step>C</step> <octave>5</octave> </pitch> <duration>1</duration> <voice>1</voice> <type>16th</type> <stem>down</stem> <notations> <articulations> <staccato placement="above"/> </articulations> </notations> </note>

Function parameters:

• Fixed• Optional• Key

(e.g. C)(e.g. C++)(e.g. LISP)

Page 10: MusicXML Music 253 / CS 275A Stanford University Winter 2005 Craig Stuart Sapp

Causality• MusicXML is not a causal encoding format

<backup> and <forward> commands are usedto encode single parts with multiple staves or multiple voices.

voice 2

Examples of causal music formats: MIDI (partwise encoding) Humdrum (scorewise encoding)

Page 11: MusicXML Music 253 / CS 275A Stanford University Winter 2005 Craig Stuart Sapp

Other XML-Based Music Formats

http://www.music-notation.info/en/musixml/MusiXML.html

• MusiXML

http://www.lib.virginia.edu/digital/resndev/mei/

• Music Encoding Initiative:

see: http://xml.coverpages.org/xmlMusic.html