Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Global lyric-line metadata #359

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions docs/mnx-reference/examples/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,15 @@ <h1>MNX example documents</h1>
</a>
</div>

<div style="margin-bottom: 40px;">
<a href="lyric-line-metadata/">

<img src="../../static/examples/lyric_metadata.png" loading="lazy"><br>

Lyric line metadata
</a>
</div>

<div style="margin-bottom: 40px;">
<a href="lyrics-basic/">

Expand Down
240 changes: 240 additions & 0 deletions docs/mnx-reference/examples/lyric-line-metadata/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,240 @@

<!DOCTYPE html>
<html lang="en">
<head>
<title>MNX example: Lyric line metadata | MNX specification</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="../../../static/styles.css">

<style>
.diff * { font-weight: bold; color: blue !important; }
</style>

</head>

<body class="has-sidenav">
<div class="topnav">
<button id="toggle" class="toggle">
<svg viewBox="0 0 100 80" width="16" height="16" fill="currentColor">
<rect width="100" height="20" rx="8"></rect>
<rect y="30" width="100" height="20" rx="8"></rect>
<rect y="60" width="100" height="20" rx="8"></rect>
</svg>
</button>
<a class="logo" href="../../../">
<span class="logo-text">MNX specification</span>
</a>
</div>


<div class="content">
<nav class="sidenav">
<ul>
<li><a href="../../../">Home</a></li>
<li><a href="../../objects/">Reference</a>
<ul>
<li><a href="../../objects/">Objects</a></li>
<li><a href="../">Example documents</a></li>
<li><a href="../../../mnx-schema.json">Raw JSON Schema</a></li>
</ul>
</li>
<li><a href="../../../comparisons/musicxml/">MNX and MusicXML</a></li>
</ul>
</nav>
<main>

<p class="breadcrumb">
<a href="../../../">MNX specification</a> &gt;
<a href="../../">MNX reference</a> &gt;
<a href="../">Examples</a> &gt;
Lyric line metadata
</p>

<h1>Lyric line metadata</h1>


<p><img src="../../../static/examples/lyric_metadata.png"></p>



<p>Each line of lyrics has its own optional metadata, including the language code and a label. This lives in the top-level &quot;global&quot; key, as a &quot;lyrics&quot; object.</p>






<div class="xmlmarkup">{
<a class="tag" href="../../objects/root/">"mnx"</a>: {
<a class="tag" href="../../objects/mnx/">"version"</a>: <a class="tag" href="../../objects/version-number/">1</a>
},
<a class="tag" href="../../objects/root/">"global"</a>: {
<a class="tag" href="../../objects/global/">"lyrics"</a>: {
<a class="tag" href="../../objects/lyrics-global/">"lineMetadata"</a>: {
"1": {
<a class="tag" href="../../objects/lyric-line-metadata/">"label"</a>: <a class="tag" href="../../objects/lyric-line-label/">"English"</a>,
<a class="tag" href="../../objects/lyric-line-metadata/">"lang"</a>: <a class="tag" href="../../objects/language-code/">"en"</a>
},
"2": {
<a class="tag" href="../../objects/lyric-line-metadata/">"label"</a>: <a class="tag" href="../../objects/lyric-line-label/">"Nederlands"</a>,
<a class="tag" href="../../objects/lyric-line-metadata/">"lang"</a>: <a class="tag" href="../../objects/language-code/">"nl"</a>
},
"3": {
<a class="tag" href="../../objects/lyric-line-metadata/">"label"</a>: <a class="tag" href="../../objects/lyric-line-label/">"Українська"</a>,
<a class="tag" href="../../objects/lyric-line-metadata/">"lang"</a>: <a class="tag" href="../../objects/language-code/">"uk"</a>
},
"4": {
<a class="tag" href="../../objects/lyric-line-metadata/">"label"</a>: <a class="tag" href="../../objects/lyric-line-label/">"Español"</a>,
<a class="tag" href="../../objects/lyric-line-metadata/">"lang"</a>: <a class="tag" href="../../objects/language-code/">"es"</a>
}
},
<a class="tag" href="../../objects/lyrics-global/">"lineOrder"</a>: [
<a class="tag" href="../../objects/lyric-line-id/">"1"</a>,
<a class="tag" href="../../objects/lyric-line-id/">"2"</a>,
<a class="tag" href="../../objects/lyric-line-id/">"3"</a>,
<a class="tag" href="../../objects/lyric-line-id/">"4"</a>
]
},
<a class="tag" href="../../objects/global/">"measures"</a>: [
{
<a class="tag" href="../../objects/measure-global/">"time"</a>: {
<a class="tag" href="../../objects/time/">"count"</a>: <a class="tag" href="../../objects/positive-integer/">4</a>,
<a class="tag" href="../../objects/time/">"unit"</a>: <a class="tag" href="../../objects/time-signature-unit/">4</a>
}
},
{}
]
},
<a class="tag" href="../../objects/root/">"parts"</a>: [
{
<a class="tag" href="../../objects/part/">"measures"</a>: [
{
<a class="tag" href="../../objects/part-measure/">"clefs"</a>: [
{
<a class="tag" href="../../objects/positioned-clef/">"clef"</a>: {
<a class="tag" href="../../objects/clef/">"sign"</a>: <a class="tag" href="../../objects/clef-sign/">"G"</a>,
<a class="tag" href="../../objects/clef/">"staffPosition"</a>: <a class="tag" href="../../objects/staff-position/">-2</a>
}
}
],
<a class="tag" href="../../objects/part-measure/">"sequences"</a>: [
{
<a class="tag" href="../../objects/sequence/">"content"</a>: [
{
<a class="tag" href="../../objects/event/">"type"</a>: "event",
<a class="tag" href="../../objects/event/">"duration"</a>: {
<a class="tag" href="../../objects/note-value/">"base"</a>: <a class="tag" href="../../objects/note-value-base/">"half"</a>
},
<a class="tag" href="../../objects/event/">"lyrics"</a>: {
<a class="tag" href="../../objects/lyrics/">"lines"</a>: {
"1": {
<a class="tag" href="../../objects/event-lyric-line/">"text"</a>: <a class="tag" href="../../objects/string/">"I"</a>
},
"2": {
<a class="tag" href="../../objects/event-lyric-line/">"text"</a>: <a class="tag" href="../../objects/string/">"Ik"</a>
},
"3": {
<a class="tag" href="../../objects/event-lyric-line/">"text"</a>: <a class="tag" href="../../objects/string/">"Я"</a>
},
"4": {
<a class="tag" href="../../objects/event-lyric-line/">"text"</a>: <a class="tag" href="../../objects/string/">"¡Yo"</a>
}
}
},
<a class="tag" href="../../objects/event/">"notes"</a>: [
{
<a class="tag" href="../../objects/note/">"pitch"</a>: {
<a class="tag" href="../../objects/pitch/">"octave"</a>: <a class="tag" href="../../objects/octave/">4</a>,
<a class="tag" href="../../objects/pitch/">"step"</a>: <a class="tag" href="../../objects/step/">"G"</a>
}
}
]
},
{
<a class="tag" href="../../objects/event/">"type"</a>: "event",
<a class="tag" href="../../objects/event/">"duration"</a>: {
<a class="tag" href="../../objects/note-value/">"base"</a>: <a class="tag" href="../../objects/note-value-base/">"half"</a>
},
<a class="tag" href="../../objects/event/">"lyrics"</a>: {
<a class="tag" href="../../objects/lyrics/">"lines"</a>: {
"1": {
<a class="tag" href="../../objects/event-lyric-line/">"text"</a>: <a class="tag" href="../../objects/string/">"am"</a>
},
"2": {
<a class="tag" href="../../objects/event-lyric-line/">"text"</a>: <a class="tag" href="../../objects/string/">"ben"</a>
},
"3": {
<a class="tag" href="../../objects/event-lyric-line/">"type"</a>: <a class="tag" href="../../objects/event-lyric-line-type/">"start"</a>,
<a class="tag" href="../../objects/event-lyric-line/">"text"</a>: <a class="tag" href="../../objects/string/">"І"</a>
},
"4": {
<a class="tag" href="../../objects/event-lyric-line/">"text"</a>: <a class="tag" href="../../objects/string/">"soy"</a>
}
}
},
<a class="tag" href="../../objects/event/">"notes"</a>: [
{
<a class="tag" href="../../objects/note/">"pitch"</a>: {
<a class="tag" href="../../objects/pitch/">"octave"</a>: <a class="tag" href="../../objects/octave/">4</a>,
<a class="tag" href="../../objects/pitch/">"step"</a>: <a class="tag" href="../../objects/step/">"G"</a>
}
}
]
}
]
}
]
},
{
<a class="tag" href="../../objects/part-measure/">"sequences"</a>: [
{
<a class="tag" href="../../objects/sequence/">"content"</a>: [
{
<a class="tag" href="../../objects/event/">"type"</a>: "event",
<a class="tag" href="../../objects/event/">"duration"</a>: {
<a class="tag" href="../../objects/note-value/">"base"</a>: <a class="tag" href="../../objects/note-value-base/">"whole"</a>
},
<a class="tag" href="../../objects/event/">"lyrics"</a>: {
<a class="tag" href="../../objects/lyrics/">"lines"</a>: {
"1": {
<a class="tag" href="../../objects/event-lyric-line/">"text"</a>: <a class="tag" href="../../objects/string/">"John!"</a>
},
"2": {
<a class="tag" href="../../objects/event-lyric-line/">"text"</a>: <a class="tag" href="../../objects/string/">"Jan!"</a>
},
"3": {
<a class="tag" href="../../objects/event-lyric-line/">"type"</a>: <a class="tag" href="../../objects/event-lyric-line-type/">"end"</a>,
<a class="tag" href="../../objects/event-lyric-line/">"text"</a>: <a class="tag" href="../../objects/string/">"ван!"</a>
},
"4": {
<a class="tag" href="../../objects/event-lyric-line/">"text"</a>: <a class="tag" href="../../objects/string/">"Juan!"</a>
}
}
},
<a class="tag" href="../../objects/event/">"notes"</a>: [
{
<a class="tag" href="../../objects/note/">"pitch"</a>: {
<a class="tag" href="../../objects/pitch/">"octave"</a>: <a class="tag" href="../../objects/octave/">5</a>,
<a class="tag" href="../../objects/pitch/">"step"</a>: <a class="tag" href="../../objects/step/">"C"</a>
}
}
]
}
]
}
]
}
]
}
]
}</div>

</main>
</div>


<script type="text/javascript" src="../../../static/global.js"></script>

</body>
</html>
2 changes: 1 addition & 1 deletion docs/mnx-reference/objects/clef-sign/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ <h2 id="examples">Examples</h2>

<p>This object is used in the following examples:</p>
<p>
<nobr><a href="../../examples/accidentals/">Accidentals</a></nobr>, <nobr><a href="../../examples/articulations/">Articulations</a></nobr>, <nobr><a href="../../examples/beams/">Beams</a></nobr>, <nobr><a href="../../examples/beams-across-barlines/">Beams (across barlines)</a></nobr>, <nobr><a href="../../examples/beam-hooks/">Beams (hooks)</a></nobr>, <nobr><a href="../../examples/beams-secondary-beam-breaks/">Beams (secondary beam breaks)</a></nobr>, <nobr><a href="../../examples/beams-inner-grace-notes/">Beams (with inner grace notes)</a></nobr>, <nobr><a href="../../examples/clef-changes/">Clef changes</a></nobr>, <nobr><a href="../../examples/dotted-notes/">Dotted notes (augmentation dots)</a></nobr>, <nobr><a href="../../examples/grace-note/">Grace note</a></nobr>, <nobr><a href="../../examples/grace-notes-beamed/">Grace notes (beamed)</a></nobr>, <nobr><a href="../../examples/grand-staff/">Grand staff piano music</a></nobr>, <nobr><a href="../../examples/jumps-ds-al-fine/">Jumps (D.S. al Fine)</a></nobr>, <nobr><a href="../../examples/jumps-dal-segno/">Jumps (Dal Segno)</a></nobr>, <nobr><a href="../../examples/key-signatures/">Key signatures</a></nobr>, <nobr><a href="../../examples/lyrics-basic/">Lyrics (basic)</a></nobr>, <nobr><a href="../../examples/lyrics-multi-line/">Lyrics (multi-line)</a></nobr>, <nobr><a href="../../examples/multimeasure-rests/">Multimeasure rests</a></nobr>, <nobr><a href="../../examples/multiple-layouts/">Multiple layouts</a></nobr>, <nobr><a href="../../examples/multiple-voices/">Multiple voices</a></nobr>, <nobr><a href="../../examples/organ-layout/">Organ layout</a></nobr>, <nobr><a href="../../examples/ottavas-8va/">Ottavas (8va)</a></nobr>, <nobr><a href="../../examples/parts/">Parts</a></nobr>, <nobr><a href="../../examples/repeats/">Repeats</a></nobr>, <nobr><a href="../../examples/repeats-more-once-repeated/">Repeats (more than once repeated)</a></nobr>, <nobr><a href="../../examples/repeats-alternate-endings-advanced/">Repeats (with alternate endings, advanced)</a></nobr>, <nobr><a href="../../examples/repeats-alternate-endings-simple/">Repeats (with alternate endings, simple)</a></nobr>, <nobr><a href="../../examples/repeats-implied-start-repeat/">Repeats (with implied start repeat)</a></nobr>, <nobr><a href="../../examples/rest-positions/">Rest positions</a></nobr>, <nobr><a href="../../examples/slurs/">Slurs</a></nobr>, <nobr><a href="../../examples/slurs-chords/">Slurs (for chords)</a></nobr>, <nobr><a href="../../examples/slurs-incomplete-slurs/">Slurs (incomplete slurs)</a></nobr>, <nobr><a href="../../examples/slurs-targeting-specific-notes/">Slurs (targeting specific notes)</a></nobr>, <nobr><a href="../../examples/style-element-basic/">Styling elements (basic)</a></nobr>, <nobr><a href="../../examples/style-class-basic/">Styling via a class (basic)</a></nobr>, <nobr><a href="../../examples/tempo-markings/">Tempo markings</a></nobr>, <nobr><a href="../../examples/three-note-chord-and-half-rest/">Three-note chord and half rest</a></nobr>, <nobr><a href="../../examples/ties/">Ties</a></nobr>, <nobr><a href="../../examples/time-signatures/">Time signatures</a></nobr>, <nobr><a href="../../examples/single-note-tremolos/">Tremolos (single-note)</a></nobr>, <nobr><a href="../../examples/tuplets/">Tuplets</a></nobr>, <nobr><a href="../../examples/two-bar-c-major-scale/">Two-bar C major scale</a></nobr>, <nobr><a href="../../examples/hello-world/">“Hello world”</a></nobr>
<nobr><a href="../../examples/accidentals/">Accidentals</a></nobr>, <nobr><a href="../../examples/articulations/">Articulations</a></nobr>, <nobr><a href="../../examples/beams/">Beams</a></nobr>, <nobr><a href="../../examples/beams-across-barlines/">Beams (across barlines)</a></nobr>, <nobr><a href="../../examples/beam-hooks/">Beams (hooks)</a></nobr>, <nobr><a href="../../examples/beams-secondary-beam-breaks/">Beams (secondary beam breaks)</a></nobr>, <nobr><a href="../../examples/beams-inner-grace-notes/">Beams (with inner grace notes)</a></nobr>, <nobr><a href="../../examples/clef-changes/">Clef changes</a></nobr>, <nobr><a href="../../examples/dotted-notes/">Dotted notes (augmentation dots)</a></nobr>, <nobr><a href="../../examples/grace-note/">Grace note</a></nobr>, <nobr><a href="../../examples/grace-notes-beamed/">Grace notes (beamed)</a></nobr>, <nobr><a href="../../examples/grand-staff/">Grand staff piano music</a></nobr>, <nobr><a href="../../examples/jumps-ds-al-fine/">Jumps (D.S. al Fine)</a></nobr>, <nobr><a href="../../examples/jumps-dal-segno/">Jumps (Dal Segno)</a></nobr>, <nobr><a href="../../examples/key-signatures/">Key signatures</a></nobr>, <nobr><a href="../../examples/lyric-line-metadata/">Lyric line metadata</a></nobr>, <nobr><a href="../../examples/lyrics-basic/">Lyrics (basic)</a></nobr>, <nobr><a href="../../examples/lyrics-multi-line/">Lyrics (multi-line)</a></nobr>, <nobr><a href="../../examples/multimeasure-rests/">Multimeasure rests</a></nobr>, <nobr><a href="../../examples/multiple-layouts/">Multiple layouts</a></nobr>, <nobr><a href="../../examples/multiple-voices/">Multiple voices</a></nobr>, <nobr><a href="../../examples/organ-layout/">Organ layout</a></nobr>, <nobr><a href="../../examples/ottavas-8va/">Ottavas (8va)</a></nobr>, <nobr><a href="../../examples/parts/">Parts</a></nobr>, <nobr><a href="../../examples/repeats/">Repeats</a></nobr>, <nobr><a href="../../examples/repeats-more-once-repeated/">Repeats (more than once repeated)</a></nobr>, <nobr><a href="../../examples/repeats-alternate-endings-advanced/">Repeats (with alternate endings, advanced)</a></nobr>, <nobr><a href="../../examples/repeats-alternate-endings-simple/">Repeats (with alternate endings, simple)</a></nobr>, <nobr><a href="../../examples/repeats-implied-start-repeat/">Repeats (with implied start repeat)</a></nobr>, <nobr><a href="../../examples/rest-positions/">Rest positions</a></nobr>, <nobr><a href="../../examples/slurs/">Slurs</a></nobr>, <nobr><a href="../../examples/slurs-chords/">Slurs (for chords)</a></nobr>, <nobr><a href="../../examples/slurs-incomplete-slurs/">Slurs (incomplete slurs)</a></nobr>, <nobr><a href="../../examples/slurs-targeting-specific-notes/">Slurs (targeting specific notes)</a></nobr>, <nobr><a href="../../examples/style-element-basic/">Styling elements (basic)</a></nobr>, <nobr><a href="../../examples/style-class-basic/">Styling via a class (basic)</a></nobr>, <nobr><a href="../../examples/tempo-markings/">Tempo markings</a></nobr>, <nobr><a href="../../examples/three-note-chord-and-half-rest/">Three-note chord and half rest</a></nobr>, <nobr><a href="../../examples/ties/">Ties</a></nobr>, <nobr><a href="../../examples/time-signatures/">Time signatures</a></nobr>, <nobr><a href="../../examples/single-note-tremolos/">Tremolos (single-note)</a></nobr>, <nobr><a href="../../examples/tuplets/">Tuplets</a></nobr>, <nobr><a href="../../examples/two-bar-c-major-scale/">Two-bar C major scale</a></nobr>, <nobr><a href="../../examples/hello-world/">“Hello world”</a></nobr>
</p>


Expand Down
Loading