MNX-Generic
(or, for Prince fans, The Encoding Formerly Known As GMNX)
An encoding standard
for music notation instances
Joe Berkovitz
co-chair, W3C Music Notation Group
1
1
What's MNX-Generic?
Why use MNX-Generic?
Instance Types
Graphics
Performance Data
Audio Media
An MNX Encoding Ecosystem
Semantic
Encodings
Instance
Encoding
references
load/save
Consumer Applications
Consumer Applications
Common
Contemporary/Extended
Gagaku
Producer Applications
Generic
export
Consumer Applications
Quick Demo
Discrete space/time mappings: Regions
performance time
performance time
Regions can be arbitrarily fine-grained
Continuous space/time mappings: Cursors
Multiple performances with different mappings...
faster tempo:
Notated time: An abstract time axis
Rule 1: Equal notated times refer to the same place in the score.�Rule 2: Greater notated times occur after smaller notated times in the score.
performance time
notated time
Why have notated time?
Mapping performance to "notated time"
performance time
performance time
notated time
Linking Events, Graphics and Semantics
...
<event value="/8">
<note pitch="F4"/>
</event>
<event value="/8">
<note pitch="A4"/>
</event>
...
Linking Events, Graphics and Semantics
...
<event value="/8">
<note pitch="F4"/>
</event>
<event value="/8">
<note pitch="A4"/>
</event>
...
Packaging MNX Scores (separate files)
MNX-Container
MNX-Common
MNX-Generic
SVG
Audio
Packaging MNX Scores (bundled files)
MNX-Common
MNX-Generic
SVG
Audio
MNX-Container
Inter-document references
MNX-Container
MNX-Common
MNX-Generic
SVG
Audio
Graphics in MNX-Generic
Audio in MNX-Generic
Performance data in MNX-Generic
Region linkage
audio.mp4:
view1.svg:
<svg>
...
<g id="region1">...</g>
…
</svg>
<mnx-generic>
...
<performance-audio-media src="audio.mp4"/>
<performance-region
start="0.24" end="1.29"
view="page1" region="region1"/>
...
<score-view id="page1" src="view1.svg"/>
...
</mnx-generic>
Semantic linkage
view1.svg:
<svg>
...
<g id="note1">...</g>
…
</svg>
<mnx-generic>
...
<score-view src="view1.svg">
<score-mapping
graphics="note1" semantics="e1n1"/>
</score-view>
...
</mnx-generic>
<mnx-common>
...
<event value="/8">
<note id="e1n1" pitch="C4"/>
</event>
...
</mnx-common>
Notated Time and Cardinality: Form and Repeats
Notated Time and Cardinality:
Ockeghem's Missa Prolationum: Kyrie
Why semantics isn't embedded in MNX-Generic
The syncing controversy