pub struct MnxDocument {
pub global: MnxDocumentGlobal,
pub layouts: Vec<MnxDocumentLayoutsItem>,
pub mnx: MnxDocumentMnx,
pub parts: Vec<MnxDocumentPartsItem>,
pub scores: Vec<MnxDocumentScoresItem>,
}Expand description
An encoding of Common Western Music Notation.
JSON schema
{
"$id": "https://w3c.github.io/mnx/docs/mnx-schema.json",
"title": "MNX document",
"description": "An encoding of Common Western Music Notation.",
"type": "object",
"required": [
"global",
"mnx",
"parts"
],
"properties": {
"global": {
"type": "object",
"required": [
"measures"
],
"properties": {
"lyrics": {
"type": "object",
"properties": {
"lineMetadata": {
"type": "object",
"patternProperties": {
"^.*$": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"lang": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"lineOrder": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"measures": {
"type": "array",
"items": {
"type": "object",
"properties": {
"barline": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"regular",
"dotted",
"dashed",
"heavy",
"double",
"final",
"heavyLight",
"heavyHeavy",
"tick",
"short",
"noBarline"
]
}
},
"additionalProperties": false
},
"ending": {
"type": "object",
"required": [
"duration"
],
"properties": {
"class": {
"$ref": "#/$defs/style-class"
},
"color": {
"$ref": "#/$defs/color"
},
"duration": {
"type": "integer"
},
"numbers": {
"type": "array",
"items": {
"type": "integer"
}
},
"open": {
"type": "boolean"
}
},
"additionalProperties": false
},
"fine": {
"type": "object",
"required": [
"location"
],
"properties": {
"class": {
"$ref": "#/$defs/style-class"
},
"color": {
"$ref": "#/$defs/color"
},
"location": {
"$ref": "#/$defs/rhythmic-position"
}
},
"additionalProperties": false
},
"index": {
"$ref": "#/$defs/measure-number"
},
"jump": {
"type": "object",
"required": [
"location",
"type"
],
"properties": {
"location": {
"$ref": "#/$defs/rhythmic-position"
},
"type": {
"type": "string",
"enum": [
"dsalfine",
"segno"
]
}
},
"additionalProperties": false
},
"key": {
"type": "object",
"required": [
"fifths"
],
"properties": {
"class": {
"$ref": "#/$defs/style-class"
},
"color": {
"$ref": "#/$defs/color"
},
"fifths": {
"type": "integer"
}
},
"additionalProperties": false
},
"number": {
"$ref": "#/$defs/measure-number"
},
"repeatEnd": {
"type": "object",
"properties": {
"times": {
"type": "integer"
}
},
"additionalProperties": false
},
"repeatStart": {
"type": "object",
"additionalProperties": false
},
"segno": {
"type": "object",
"required": [
"location"
],
"properties": {
"class": {
"$ref": "#/$defs/style-class"
},
"color": {
"$ref": "#/$defs/color"
},
"glyph": {
"$ref": "#/$defs/smufl-glyph"
},
"location": {
"$ref": "#/$defs/rhythmic-position"
}
},
"additionalProperties": false
},
"tempos": {
"type": "array",
"items": {
"type": "object",
"required": [
"bpm",
"value"
],
"properties": {
"bpm": {
"type": "integer"
},
"location": {
"$ref": "#/$defs/rhythmic-position"
},
"value": {
"$ref": "#/$defs/note-value"
}
},
"additionalProperties": false
}
},
"time": {
"type": "object",
"required": [
"count",
"unit"
],
"properties": {
"count": {
"$ref": "#/$defs/positive-integer"
},
"unit": {
"type": "integer",
"enum": [
1,
2,
4,
8,
16,
32,
64,
128
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"styles": {
"type": "array",
"items": {
"type": "object",
"required": [
"selector"
],
"properties": {
"color": {
"$ref": "#/$defs/color"
},
"selector": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"layouts": {
"type": "array",
"items": {
"type": "object",
"required": [
"content",
"id"
],
"properties": {
"content": {
"$ref": "#/$defs/system-layout-content"
},
"id": {
"$ref": "#/$defs/id"
}
},
"additionalProperties": false
}
},
"mnx": {
"type": "object",
"required": [
"version"
],
"properties": {
"support": {
"type": "object",
"properties": {
"useAccidentalDisplay": {
"type": "boolean"
}
},
"additionalProperties": false
},
"version": {
"type": "integer"
}
},
"additionalProperties": false
},
"parts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/id"
},
"measures": {
"type": "array",
"items": {
"type": "object",
"required": [
"sequences"
],
"properties": {
"beams": {
"$ref": "#/$defs/beam-list"
},
"clefs": {
"type": "array",
"items": {
"type": "object",
"required": [
"clef"
],
"properties": {
"clef": {
"type": "object",
"required": [
"sign",
"staffPosition"
],
"properties": {
"class": {
"$ref": "#/$defs/style-class"
},
"color": {
"type": "string"
},
"glyph": {
"$ref": "#/$defs/smufl-glyph"
},
"octave": {
"type": "integer"
},
"sign": {
"type": "string",
"enum": [
"C",
"F",
"G"
]
},
"staffPosition": {
"$ref": "#/$defs/staff-position"
}
},
"additionalProperties": false
},
"position": {
"$ref": "#/$defs/rhythmic-position"
},
"staff": {
"$ref": "#/$defs/staff-number"
}
},
"additionalProperties": false
}
},
"dynamics": {
"type": "array",
"items": {
"type": "object",
"required": [
"position",
"value"
],
"properties": {
"glyph": {
"$ref": "#/$defs/smufl-glyph"
},
"position": {
"$ref": "#/$defs/rhythmic-position"
},
"staff": {
"$ref": "#/$defs/staff-number"
},
"value": {
"type": "string"
},
"voice": {
"$ref": "#/$defs/voice-name"
}
},
"additionalProperties": false
}
},
"ottavas": {
"type": "array",
"items": {
"type": "object",
"required": [
"end",
"position",
"value"
],
"properties": {
"end": {
"$ref": "#/$defs/measure-rhythmic-position"
},
"orient": {
"$ref": "#/$defs/orientation"
},
"position": {
"$ref": "#/$defs/rhythmic-position"
},
"staff": {
"$ref": "#/$defs/staff-number"
},
"value": {
"type": "integer",
"enum": [
1,
2,
-1,
-2,
3,
-3
]
},
"voice": {
"$ref": "#/$defs/voice-name"
}
},
"additionalProperties": false
}
},
"sequences": {
"type": "array",
"items": {
"type": "object",
"required": [
"content"
],
"properties": {
"content": {
"$ref": "#/$defs/sequence-content"
},
"orient": {
"$ref": "#/$defs/orientation"
},
"staff": {
"$ref": "#/$defs/staff-number"
},
"voice": {
"$ref": "#/$defs/voice-name"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}
},
"name": {
"type": "string"
},
"shortName": {
"type": "string"
},
"smuflFont": {
"$ref": "#/$defs/smufl-font"
},
"staves": {
"type": "integer"
}
},
"additionalProperties": false
}
},
"scores": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"layout": {
"$ref": "#/$defs/id"
},
"multimeasureRests": {
"type": "array",
"items": {
"type": "object",
"required": [
"duration",
"start"
],
"properties": {
"duration": {
"type": "integer"
},
"label": {
"$ref": "#/$defs/string"
},
"start": {
"$ref": "#/$defs/measure-number"
}
},
"additionalProperties": false
}
},
"name": {
"type": "string"
},
"pages": {
"type": "array",
"items": {
"type": "object",
"required": [
"systems"
],
"properties": {
"layout": {
"$ref": "#/$defs/id"
},
"systems": {
"type": "array",
"items": {
"type": "object",
"required": [
"measure"
],
"properties": {
"layout": {
"$ref": "#/$defs/id"
},
"layoutChanges": {
"type": "array",
"items": {
"type": "object",
"required": [
"layout",
"location"
],
"properties": {
"layout": {
"$ref": "#/$defs/id"
},
"location": {
"$ref": "#/$defs/measure-rhythmic-position"
}
},
"additionalProperties": false
}
},
"measure": {
"$ref": "#/$defs/measure-number"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}Fields§
§global: MnxDocumentGlobal§layouts: Vec<MnxDocumentLayoutsItem>§mnx: MnxDocumentMnx§parts: Vec<MnxDocumentPartsItem>§scores: Vec<MnxDocumentScoresItem>Implementations§
Source§impl MnxDocument
impl MnxDocument
pub fn builder() -> MnxDocument
Trait Implementations§
Source§impl Clone for MnxDocument
impl Clone for MnxDocument
Source§fn clone(&self) -> MnxDocument
fn clone(&self) -> MnxDocument
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MnxDocument
impl Debug for MnxDocument
Source§impl<'de> Deserialize<'de> for MnxDocument
impl<'de> Deserialize<'de> for MnxDocument
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<&MnxDocument> for MnxDocument
impl From<&MnxDocument> for MnxDocument
Source§fn from(value: &MnxDocument) -> Self
fn from(value: &MnxDocument) -> Self
Converts to this type from the input type.
Source§impl From<MnxDocument> for MnxDocument
impl From<MnxDocument> for MnxDocument
Source§fn from(value: MnxDocument) -> Self
fn from(value: MnxDocument) -> Self
Converts to this type from the input type.
Source§impl Serialize for MnxDocument
impl Serialize for MnxDocument
Source§impl TryFrom<MnxDocument> for MnxDocument
impl TryFrom<MnxDocument> for MnxDocument
Source§type Error = ConversionError
type Error = ConversionError
The type returned in the event of a conversion error.
Source§fn try_from(value: MnxDocument) -> Result<Self, ConversionError>
fn try_from(value: MnxDocument) -> Result<Self, ConversionError>
Performs the conversion.
Auto Trait Implementations§
impl Freeze for MnxDocument
impl RefUnwindSafe for MnxDocument
impl Send for MnxDocument
impl Sync for MnxDocument
impl Unpin for MnxDocument
impl UnwindSafe for MnxDocument
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more