Open music notation, made tangible
MNX, rendered in the open.
Read the source, edit the document, and see the engraved result in one browser. Viritura makes MNX practical to understand, test, and adopt.
W3C community format · JSON source · Open-source engraving engine
Show codeHide code
{
"mnx": {
"version": 1,
"support": {
"useBeams": true
}
},
"global": {
"measures": [
{
"time": {
"count": 4,
"unit": 4
},
"barline": {
"type": "regular"
}
},
{}
]
},
"parts": [
{
"id": "mnx-hub-sample",
"measures": [
{
"clefs": [
{
"clef": {
"sign": "G",
"staffPosition": -2
}
}
],
"beams": [
{
"events": [
"sample-1",
"sample-2",
"sample-3",
"sample-4"
]
},
{
"events": [
"sample-6",
"sample-7"
]
}
],
"sequences": [
{
"content": [
{
"id": "sample-1",
"duration": {
"base": "eighth"
},
"notes": [
{
"id": "sample-1-note",
"pitch": {
"step": "D",
"octave": 5
}
}
]
},
{
"id": "sample-2",
"duration": {
"base": "eighth"
},
"notes": [
{
"id": "sample-2-note",
"pitch": {
"step": "E",
"octave": 5
}
}
]
},
{
"id": "sample-3",
"duration": {
"base": "eighth"
},
"notes": [
{
"id": "sample-3-note",
"pitch": {
"step": "F",
"octave": 5
}
}
]
},
{
"id": "sample-4",
"duration": {
"base": "eighth"
},
"notes": [
{
"id": "sample-4-note",
"pitch": {
"step": "G",
"octave": 5
}
}
]
},
{
"id": "sample-5",
"duration": {
"base": "quarter"
},
"notes": [
{
"id": "sample-5-note",
"pitch": {
"step": "E",
"octave": 5
}
}
]
},
{
"id": "sample-6",
"duration": {
"base": "eighth"
},
"notes": [
{
"id": "sample-6-note",
"pitch": {
"step": "C",
"octave": 5
}
}
]
},
{
"id": "sample-7",
"duration": {
"base": "eighth"
},
"notes": [
{
"id": "sample-7-note",
"pitch": {
"step": "D",
"octave": 5
},
"ties": [
{
"target": "sample-8-note"
}
]
}
]
}
]
}
]
},
{
"sequences": [
{
"content": [
{
"id": "sample-8",
"duration": {
"base": "whole"
},
"notes": [
{
"id": "sample-8-note",
"pitch": {
"step": "D",
"octave": 5
}
}
]
}
]
}
]
}
]
}
]
}Start with the format
From first look to working document.
Edit the MNX documentation examples in the Playground, browse the broader example library, or convert an existing score. Each path ends with notation you can inspect, render, and keep.
About the format
What is MNX?
MNX is an emerging format for representing music notation as structured data. It records notes, rhythms, parts, and the relationships between them, so software can work with the music rather than a fixed picture of a page.
MNX documents are written as JSON. Musical content is organized into source parts and measures, while score-wide information such as time signatures, repeats, and tempo has its own global timeline. The format can also describe how source music is arranged into staves for a score or instrumental part.
The W3C Music Notation Community Group, which also maintains MusicXML, develops MNX in the open. MNX is still a draft. The official MNX specification is the source for current definitions and implementation decisions.
Two different jobs
MNX and MusicXML
MusicXML is the established interchange format for notation software. Its broad support makes it the practical choice when moving a score between existing applications.
MNX is intended for interchange and for use as an application's working format. It represents relationships such as voices, chords, and tuplets more directly. The tradeoff is maturity and reach: MusicXML works with a large software ecosystem, while MNX is still a draft with limited support.
In Viritura, MusicXML is an import format for bringing in an existing score. MNX is the document Viritura works in after import.
Common questions
A few useful distinctions
- What does MNX stand for?
- MNX is the name of the format. The official documentation does not expand it into a longer phrase. The X does not mean that MNX is an XML format.
- Is MNX replacing MusicXML?
- Not in the practical sense that applications should stop supporting MusicXML. MusicXML remains the common route for exchanging scores today. MNX is newer work by the same community with a different model and a broader goal.
- Where can I find MNX examples?
- The Viritura Playground includes a featured sample and 52 examples from the MNX documentation, each editable beside its rendered score. The example libraryis broader, adding Viritura extensions and engraving behavior cases in Storybook.
A clear boundary
The format stays open. Our choices stay visible.
Viritura stores scores as MNX. When a notation concept is not yet covered by the format, we keep it in the documented _x.viritura extension namespace instead of changing the standard document model. Separate examples identify Viritura’s engraving choices so they are never mistaken for MNX requirements.
Keep MNX close to the code
Preview MNX without leaving VS Code.
Open a .mnx file beside its rendered score. The viewer bundles the WebAssembly engine and music fonts, so local previews continue to work offline.
Work with MNX in Viritura
Open the full notation editor.
Create a score, open an example, or import MusicXML. Viritura keeps MNX at the center of the complete writing workspace.
Open the Viritura editor