[ { "model": "auth.user", "pk": 1, "fields": { "password": "pbkdf2_sha256$390000$CgVLpFpOgj6EIXBGkUxRN7$4AZ+TDsgvfl8lI3BK30m5p1/WD50Qv8FtsOWS2j4Rm0=", "last_login": "2021-01-19T00:00:00Z", "is_superuser": true, "username": "admin", "first_name": "", "last_name": "", "email": "", "is_staff": true, "is_active": true, "date_joined": "2021-01-19T00:00:00Z", "groups": [], "user_permissions": [] } }, { "model": "spec.xmlschema", "pk": 1, "fields": { "name": "MNX", "slug": "mnx", "is_json": true } }, { "model": "spec.siteoptions", "pk": 1, "fields": { "site_name": "MNX specification", "xml_format_name": "MNX", "sidebar_html": "" } }, { "model": "spec.datatype", "pk": 1, "fields": { "name": "Time signature", "slug": "time-signature", "schema": 1, "description": "

A time signature in MNX is defined as a sum of ordered, undotted note value quantities that define the meter of a measure. Some examples:

\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
Time signatureEncoding
Four-four time4/4
Three quarters time3/4
A compound time signature of 2/8, 3/8 and 2/8, with 2+3+2 over the shared denominator 8.2+3+2/8
A compound time signature of 2/8, 3/4 and 2/8 as separate fractions (note that the spaces are ignored).2/8 + 3/4 + 2/8
\r\n\r\n

Algorithm for parsing

\r\n\r\n

To parse a time signature, use the following procedure:

\r\n\r\n
    \r\n
  1. Let input be the string being parsed.
  2. \r\n
  3. Let tokens be the result of strictly splitting the string input using U+002B PLUS as a delimiter.
  4. \r\n
  5. If tokens is empty, return an error.
  6. \r\n
  7. Let shared denominator be true.
  8. \r\n
  9. Let fractions be an empty list.
  10. \r\n
  11. While tokens is not empty,\r\n
      \r\n
    1. Remove the first element of tokens and assign it to t after stripping leading and trailing whitespace.
    2. \r\n
    3. If t contains the characters U+002F SLASH or U+002A ASTERISK,<\r\n
        \r\n
      1. Let nv be the result of parsing t as a note value quantity.
      2. \r\n
      3. If nv has a number of dots greater than zero, return an error.
      4. \r\n
      5. If shared denominator is true,\r\n
          \r\n
        1. Replace the denominator in each element of fractions with the denominator of nv.
        2. \r\n
        3. If more elements remain in tokens, set shared denominator to false.
        4. \r\n
        5. Append nv to fractions.
        6. \r\n
        \r\n
      6. \r\n
      7. Else,\r\n
          \r\n
        1. If tokens is empty, return an error.
        2. \r\n
        3. If shared denominator is false, return an error.
        4. \r\n
        5. Let numerator be the result of parsing t as a valid integer.
        6. \r\n
        7. Append the fraction composed of numerator and the denominator 1 to fractions.
        8. \r\n
        \r\n
      8. \r\n
      \r\n
    4. \r\n
    \r\n
  12. \r\n
  13. Return fractions and shared denominator as the result.
  14. \r\n
", "description_format": 2, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 2, "fields": { "name": "Clef sign", "slug": "clef-sign", "schema": 1, "description": "", "description_format": 1, "is_featured": true, "xsd_name": "", "base_type": 33, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 3, "fields": { "name": "Staff line", "slug": "staff-line", "schema": 1, "description": "A specific line of the staff, as represented by a number. The bottom line on the staff is 1, and higher staff lines increase upward in value.", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "\\d", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 4, "fields": { "name": "Note value", "slug": "note-value", "schema": 1, "description": "

MNX encodes note values in a microsyntax. Some examples:

\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
Note valueEncoding
A whole note/1
A half note/2
A quarter note/4
An eighth note/8
A dotted eighth note/8d
A double-dotted eighth note/8dd
A breve (double whole note)*2
A dotted breve*2d
\r\n\r\n

Syntax definition

\r\n\r\n

Note values less than or equal to a whole note consist of the following, in order:

\r\n\r\n
    \r\n
  1. The character U+002F SLASH.
  2. \r\n
  3. One or more ASCII digits encoding the rhythmic duration as a power-of-two fractional denominator.
  4. \r\n
  5. Zero or more occurrences of U+0064 LOWERCASE D characters — one for each augmentation dot.
  6. \r\n
\r\n\r\n

Note values greater than a whole note consist of the following, in order:

\r\n\r\n
    \r\n
  1. The character U+002A ASTERISK.
  2. \r\n
  3. One or more ASCII digits encoding the base note value as a power-of-two multiplying factor.
  4. \r\n
  5. Zero or more occurrences of U+0064 LOWERCASE D characters — one for each augmentation dot.
  6. \r\n
\r\n\r\n

Algorithm for parsing

\r\n\r\n

To parse a note value, use the following procedure:

\r\n\r\n
    \r\n
  1. Let input be the string being parsed.
  2. \r\n
  3. Let position be a pointer into input, initially pointing at the start of the string.
  4. \r\n
  5. Let number of dots be 0.
  6. \r\n
  7. If the character indicated by position is a U+002A ASTERISK character (*), let fractional be false and advance position by 1.
  8. \r\n
  9. Else, if the character indicated by position is a U+002E SLASH character (/), let fractional be true and advance position by 1.
  10. \r\n
  11. Else, return an error.
  12. \r\n
  13. Collect a sequence of characters that are ASCII digits only and let unparsed number be the result.
  14. \r\n
  15. Let base value be the result of parsing unparsed number using the rules for parsing integers.
  16. \r\n
  17. Collect a sequence of characters that are U+0064 LOWERCASE D characters. Set number of dots to the length of this sequence.
  18. \r\n
  19. If position is not at the end of the string, return an error.
  20. \r\n
  21. If base value is not equal to a power of 2, return an error.
  22. \r\n
  23. If base value is equal to 1 and fractional is false, return an error.
  24. \r\n
  25. If fractional is true, set base value to (1 / base value).
  26. \r\n
  27. Return base value and number of dots.
  28. \r\n
", "description_format": 2, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 5, "fields": { "name": "Chromatic pitch", "slug": "chromatic-pitch", "schema": 1, "description": "

MNX encodes chromatic pitches in a microsyntax. Some examples:

\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
Chromatic pitchEncoding
Middle CC4
The C-sharp above middle CC#4
The D-flat above middle CDb4
The D-double-flat very near middle CDbb4
The pitch one quarter-tone above middle CC4+0.5
The pitch one quarter-tone above middle C (identical to the above, but expressed in whole tone units)C4+0.25w
The pitch one quarter-tone above middle C (identical to the above, but expressed as whole tone fraction)C4+1/4w
The pitch one quarter-tone above middle C (identical to the above, but expressed as octave fraction)C4+1/24o
\r\n\r\n

Algorithm for parsing

\r\n\r\n

To parse a chromatic pitch, use the following procedure:

\r\n\r\n
    \r\n
  1. Let input be the string being parsed.
  2. \r\n
  3. Let position be a pointer into input, initially pointing at the start of the string.
  4. \r\n
  5. Let alteration be 0.
  6. \r\n
  7. If the character at position is not an uppercase ASCII letter in the range from U+0041 UPPERCASE A - U+0047 UPPERCASE G, return an error.
  8. \r\n
  9. Let step be the character at position, and advance position by 1.
  10. \r\n
  11. If the character at position is U+0023 HASH,\r\n
      \r\n
    1. While the character at position is U+0023 HASH,\r\n
        \r\n
      1. Increase alteration by 1.
      2. \r\n
      3. Advance position by 1.
      4. \r\n
      \r\n
    2. \r\n
    \r\n
  12. \r\n
  13. Else, if the character at position is U+0062 b,\r\n
      \r\n
    1. While the character at position is U+0062 b,\r\n
        \r\n
      1. Decrease alteration by 1.
      2. \r\n
      3. Advance position by 1.
      4. \r\n
      \r\n
    \r\n
  14. \r\n
  15. Collect a sequence of characters that are ASCII digits only and let unparsed number be the result.
  16. \r\n
  17. Let octave be the result of parsing unparsed number using the rules for parsing integers.
  18. \r\n
  19. Let alteration factor be 0.
  20. \r\n
  21. If the character at position is U+002B PLUS,\r\n
      \r\n
    1. Set alteration factor to 1.
    2. \r\n
    3. Advance position by 1.
    4. \r\n
    \r\n
  22. \r\n
  23. If the character at position is U+002D HYPHEN-MINUS,\r\n
      \r\n
    1. Set alteration factor to -1.
    2. \r\n
    3. Advance position by 1.
    4. \r\n
    \r\n
  24. \r\n
  25. If alteration factor is not equal to zero,\r\n
      \r\n
    1. Collect a sequence of characters that are ASCII digits, U+002E FULL STOP, or U+002F SLASH and place the result in unparsed number.
    2. \r\n
    3. If the character at position is U+006F LOWERCASE o,\r\n
        \r\n
      1. Multiply alteration factor by 12.
      2. \r\n
      3. Advance position by 1.
      4. \r\n
      \r\n
    4. \r\n
    5. Else, if the character at position is U+0077 LOWERCASE w,\r\n
        \r\n
      1. Multiply alteration factor by 2.
      2. \r\n
      3. Advance position by 1.
      4. \r\n
      \r\n
    6. \r\n
    7. If unparsed number contains U+002F SLASH, parse it as a rational number. Otherwise parse it as a valid floating-point number. Multiply the result by alteration factor and add this to alteration.
    8. \r\n
    \r\n
  26. \r\n
  27. If position is not at the end of the string, return an error.
  28. \r\n
  29. Return step, octave and alteration.
  30. \r\n
", "description_format": 2, "is_featured": true, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 6, "fields": { "name": "Accidental", "slug": "accidental", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 7, "fields": { "name": "Note ID", "slug": "note-id", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 8, "fields": { "name": "Event ID", "slug": "event-id", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 9, "fields": { "name": "Event ID list", "slug": "event-id-list", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 10, "fields": { "name": "Beam hook direction", "slug": "beam-hook-direction", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": 33, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 11, "fields": { "name": "Note value quantity", "slug": "note-value-quantity", "schema": 1, "description": "

A note value quantity is an integer multiple of a note value. Some examples:

\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
Note value quantityEncoding
A single eighth note/8
Six eighth notes6/8
Six dotted eighth notes6/8d
Five whole notes5/1
\r\n\r\n

Syntax definition

\r\n\r\n

A note value quantity consists of the following, in order:

\r\n\r\n
    \r\n
  1. Zero or more ASCII digits encoding the multiplier.
  2. \r\n
  3. A note value.
  4. \r\n
\r\n\r\n

Algorithm for parsing

\r\n\r\n

To parse a note value quantity, use the following procedure:

\r\n\r\n
    \r\n
  1. Let input be the string being parsed.
  2. \r\n
  3. Let position be a pointer into input, initially pointing at the start of the string.
  4. \r\n
  5. Let multiplier be 1.
  6. \r\n
  7. Collect a sequence of characters that are ASCII digits only, and let unparsed number be the result.
  8. \r\n
  9. If unparsed number is not empty, assign unparsed number to multiplier using the rules for parsing integers.
  10. \r\n
  11. Let note value be the result of parsing the remainder of the string beginning at position according to the algorithm for parsing a note value.
  12. \r\n
  13. Return multiplier and note value.
  14. \r\n
", "description_format": 2, "is_featured": true, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 12, "fields": { "name": "Octave shift type", "slug": "octave-shift-type", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": 34, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 13, "fields": { "name": "Measure location", "slug": "measure-location", "schema": 1, "description": "

An MNX measure location describes a specific location of a musical event in terms of a measure's content. Some examples:

\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
Measure locationEncoding
One quarter note after the start of the containing measure0.25
Three eighth notes after the start of the containing measure3/8
One quarter note after the start of the measure with index 44:0.25
The same as the preceding example4:1/4
The same metrical position as the event whose ID is event235#event235
\r\n\r\n

Syntax definition

\r\n\r\n

There are three possible syntaxes for measure locations:

\r\n\r\n
    \r\n
  1. If the measure location is a metrical position in the context of the containing measure, then it is specified as a valid floating-point number or note value quantity that gives the number of whole notes from the start of the measure.
  2. \r\n
  3. If the measure location is a metrical position in the context of an arbitrary <measure> in the document, then it is specified as a pair of tokens separated by U+003A COLON. The first token is a measure number identifying the measure, and the second token is a valid floating-point number or note value quantity that gives the number of whole notes from the start of the identified measure. The identified measure must belong to the same measure content as the element in which the measure location is given. This requirement has the effect of ensuring that the measure index is unique, since measure locations cannot reference measures in other systems with different barring.
  4. \r\n
  5. If the measure location is identical to the metrical position of some known <event> in the score, then it can be specified as a element location identifying the event. The identified event must belong to the same measure content as the element in which the measure location is given.
  6. \r\n
", "description_format": 2, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 14, "fields": { "name": "Slur side", "slug": "slur-side", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": 33, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 15, "fields": { "name": "Slur/tie end location", "slug": "slur-tie-end-location", "schema": 1, "description": "This is a measure location representing the \"other\" end of a slur or tie, with two special values \"incoming\" or \"outgoing\".", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 16, "fields": { "name": "Line type", "slug": "line-type", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 17, "fields": { "name": "Repeat type", "slug": "repeat-type", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 18, "fields": { "name": "Repeat times", "slug": "repeat-times", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 19, "fields": { "name": "Ending type", "slug": "ending-type", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 20, "fields": { "name": "Ending number", "slug": "ending-number", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 21, "fields": { "name": "Jump type", "slug": "jump-type", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 26, "fields": { "name": "Grace note type", "slug": "grace-note-type", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": 33, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 27, "fields": { "name": "Yes or no", "slug": "yes-or-no", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": 33, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 28, "fields": { "name": "Yes, no or auto", "slug": "yes-no-or-auto", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 29, "fields": { "name": "Orientation", "slug": "orientation", "schema": 1, "description": "This specifies the placement and rendering of content.", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": 33, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 30, "fields": { "name": "Staff index", "slug": "staff-index", "schema": 1, "description": "The one-based numeric index of a staff within a part. In a single-staff part, this will be \"1\". In a grand staff part (which has two staves), the top staff has staff index \"1\" and the bottom staff has staff index \"2\".\r\n\r\nWithin a part, staff indexes should always increment by 1. For example, it's an error for a two-staff part to use staff indexes \"1\" and \"3\".", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 31, "fields": { "name": "Dynamic type", "slug": "dynamic-type", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": 33, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 32, "fields": { "name": "Wedge type", "slug": "wedge-type", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": 33, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 33, "fields": { "name": "String", "slug": "string", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "string", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 34, "fields": { "name": "Integer (signed)", "slug": "integer-signed", "schema": 1, "description": "As defined at https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#signed-integers", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 35, "fields": { "name": "Simple color", "slug": "simple-color", "schema": 1, "description": "A simple color is a seven-character string representing the red, green and blue components of a color, as defined in the HTML standard. This is commonly known as a hexcode or hex value.\r\n\r\nExamples: #000000 (black), #ff0000 (red).", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": 33, "min_value": "", "max_value": "", "regex": "#[a-f0-9]{6}", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 36, "fields": { "name": "SMuFL glyph name", "slug": "smufl-glyph-name", "schema": 1, "description": "A string representing a glyph name in the SMuFL music-font-encoding specification.\r\n\r\nIn MNX, this is generally used to override default engraving behavior.\r\n\r\nExample SMuFL glyph name: noteheadXOrnateEllipse", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": 33, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 37, "fields": { "name": "Stem direction", "slug": "stem-direction", "schema": 1, "description": "Describes whether the stem is pointed up or down.", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": 33, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 38, "fields": { "name": "Measure number", "slug": "measure-number", "schema": 1, "description": "An integer representing a measure number, where the first measure in a score is generally 1.", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "\\d+", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 39, "fields": { "name": "Barline", "slug": "barline", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 40, "fields": { "name": "Voice ID", "slug": "voice-id", "schema": 1, "description": "A string used to identify a voice within an MNX document.\r\n\r\nThis is an opaque identifier that does not supply information from producers to consumers.", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": 33, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 41, "fields": { "name": "Tuplet display setting", "slug": "tuplet-display-setting", "schema": 1, "description": "Controls the display of a tuplet's note value units.", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 42, "fields": { "name": "SMuFL font name", "slug": "smufl-font-name", "schema": 1, "description": "The name of a SMuFL-compliant font.", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": 33, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 43, "fields": { "name": "Display option", "slug": "display-option", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 44, "fields": { "name": "Visibility option", "slug": "visibility-option", "schema": 1, "description": "This controls whether an element's contents (including all of its descendents) are displayed by a consumer.\r\n\r\nIn contrast to \"display: none\", \"visibility: hidden\" does not affect the layout of any other elements in the document. For example, the contents of a hidden <event> will not be shown, but the place where the event would have appeared will still occupy space in the containing measure.", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 45, "fields": { "name": "Perform option", "slug": "perform-option", "schema": 1, "description": "This specifies whether an element is performed by consuming software.\r\n\r\nFor example, if consuming software offers synthetic playback, specifying perform=\"none\" for a <note> element means the note will be excluded from playback (but still visually rendered).", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 46, "fields": { "name": "Stave count", "slug": "stave-count", "schema": 1, "description": "The number of staves used in a given part. This must be an integer greater than or equal to 1.", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "1", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 47, "fields": { "name": "System layout ID", "slug": "system-layout-id", "schema": 1, "description": "A string used to identify a system layout in the MNX document. This must contain no spaces, and it is case-sensitive.\r\n\r\nExamples: \"fullscorelayout\", \"flutepartlayout\".", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": 1, "union_types": [] } }, { "model": "spec.datatype", "pk": 49, "fields": { "name": "Grouping symbol", "slug": "grouping-symbol", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 50, "fields": { "name": "Staff label type", "slug": "staff-label-type", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 51, "fields": { "name": "Part ID", "slug": "part-id", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 52, "fields": { "name": "Element location", "slug": "element-location", "schema": 1, "description": "An element location constitutes a reference to a specific element in the current document. It consists of the character #, immediately followed by the XML ID of the referenced element.", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 53, "fields": { "name": "Floating point number", "slug": "floating-point-number", "schema": 1, "description": "

A valid floating point number, as described here.

", "description_format": 2, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 54, "fields": { "name": "Voice stem direction", "slug": "voice-stem-direction", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 55, "fields": { "name": "Part stem direction", "slug": "part-stem-direction", "schema": 1, "description": "", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 56, "fields": { "name": "Style class", "slug": "style-class", "schema": 1, "description": "A style class is a string, defined by a <style>, that styleable MNX elements can use to declare they should be styled.", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": 33, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 58, "fields": { "name": "CSS selector", "slug": "css-selector", "schema": 1, "description": "

A CSS-style selector that is used by the <style> element to define which element(s) are targeted.

\r\n\r\n

MNX does not support the full complexity of CSS. For now, only two types of selectors are supported:

\r\n\r\n\r\n\r\n

An element selector is simply the element name without any additional syntax:

\r\n\r\n

<style selector=\"note\" ...>

\r\n\r\n

A class selector is the class name with a dot in front of it:

\r\n\r\n

<style selector=\".bolded\" ...>

", "description_format": 2, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "", "max_value": "", "regex": "", "min_length": null, "union_types": [] } }, { "model": "spec.datatype", "pk": 59, "fields": { "name": "Measure count", "slug": "measure-count", "schema": 1, "description": "The number of measures used in a given multimeasure rest. This must be an integer greater than or equal to 1.", "description_format": 1, "is_featured": false, "xsd_name": "", "base_type": null, "min_value": "1", "max_value": "", "regex": "\\d+", "min_length": null, "union_types": [] } }, { "model": "spec.datatypeoption", "pk": 1, "fields": { "data_type": 27, "value": "yes", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 2, "fields": { "data_type": 27, "value": "no", "description": "", "order": 1 } }, { "model": "spec.datatypeoption", "pk": 3, "fields": { "data_type": 26, "value": "steal-previous", "description": "The run of grace notes occupies a time interval that ends before the expected onset of the next non-grace event, shortening the duration of the preceding non-grace event.", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 4, "fields": { "data_type": 26, "value": "steal-following", "description": "The run of grace notes occupies a time interval starting at the expected onset of the next non-grace event, both delaying its onset and shortening its duration.", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 5, "fields": { "data_type": 26, "value": "make-time", "description": "The run of grace notes delays the onset of the next non-grace event.", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 6, "fields": { "data_type": 28, "value": "yes", "description": "Yes.", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 7, "fields": { "data_type": 28, "value": "no", "description": "No.", "order": 1 } }, { "model": "spec.datatypeoption", "pk": 8, "fields": { "data_type": 28, "value": "auto", "description": "Consuming software should decide on its own.", "order": 2 } }, { "model": "spec.datatypeoption", "pk": 9, "fields": { "data_type": 29, "value": "up", "description": "Upward.", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 10, "fields": { "data_type": 29, "value": "down", "description": "Downward.", "order": 1 } }, { "model": "spec.datatypeoption", "pk": 11, "fields": { "data_type": 31, "value": "p", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 12, "fields": { "data_type": 31, "value": "pp", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 13, "fields": { "data_type": 31, "value": "ppp", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 14, "fields": { "data_type": 31, "value": "pppp", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 15, "fields": { "data_type": 31, "value": "ppppp", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 16, "fields": { "data_type": 31, "value": "pppppp", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 17, "fields": { "data_type": 31, "value": "f", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 18, "fields": { "data_type": 31, "value": "ff", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 19, "fields": { "data_type": 31, "value": "fff", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 20, "fields": { "data_type": 31, "value": "ffff", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 21, "fields": { "data_type": 31, "value": "fffff", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 22, "fields": { "data_type": 31, "value": "ffffff", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 23, "fields": { "data_type": 31, "value": "mp", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 24, "fields": { "data_type": 31, "value": "mf", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 25, "fields": { "data_type": 31, "value": "sf", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 26, "fields": { "data_type": 31, "value": "sfp", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 27, "fields": { "data_type": 31, "value": "sfpp", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 28, "fields": { "data_type": 31, "value": "fp", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 29, "fields": { "data_type": 31, "value": "rf", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 30, "fields": { "data_type": 31, "value": "rfz", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 31, "fields": { "data_type": 31, "value": "sfz", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 32, "fields": { "data_type": 31, "value": "sffz", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 33, "fields": { "data_type": 31, "value": "fz", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 34, "fields": { "data_type": 31, "value": "n", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 35, "fields": { "data_type": 31, "value": "pf", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 36, "fields": { "data_type": 31, "value": "sfzp", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 37, "fields": { "data_type": 32, "value": "diminuendo", "description": "A decrease in dynamic level.", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 38, "fields": { "data_type": 32, "value": "crescendo", "description": "An increase in dynamic level.", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 39, "fields": { "data_type": 2, "value": "G", "description": "G (treble) clef", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 40, "fields": { "data_type": 2, "value": "F", "description": "F (bass) clef", "order": 1 } }, { "model": "spec.datatypeoption", "pk": 41, "fields": { "data_type": 2, "value": "C", "description": "C clef", "order": 2 } }, { "model": "spec.datatypeoption", "pk": 42, "fields": { "data_type": 2, "value": "percussion", "description": "Percussion clef", "order": 3 } }, { "model": "spec.datatypeoption", "pk": 43, "fields": { "data_type": 2, "value": "jianpu", "description": "Jianpu clef", "order": 4 } }, { "model": "spec.datatypeoption", "pk": 44, "fields": { "data_type": 14, "value": "up", "description": "The slur is above the notes.", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 45, "fields": { "data_type": 14, "value": "down", "description": "The slur is below the notes.", "order": 1 } }, { "model": "spec.datatypeoption", "pk": 46, "fields": { "data_type": 10, "value": "left", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 47, "fields": { "data_type": 10, "value": "right", "description": "", "order": 1 } }, { "model": "spec.datatypeoption", "pk": 48, "fields": { "data_type": 12, "value": "-8", "description": "8va (notes are rendered down one octave from sounding pitch)", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 49, "fields": { "data_type": 12, "value": "8", "description": "8vb (notes are rendered up one octave from sounding pitch)", "order": 1 } }, { "model": "spec.datatypeoption", "pk": 50, "fields": { "data_type": 12, "value": "-15", "description": "15ma (notes are rendered down two octaves from sounding pitch)", "order": 2 } }, { "model": "spec.datatypeoption", "pk": 51, "fields": { "data_type": 12, "value": "15", "description": "15mb (notes are rendered up two octaves from sounding pitch)", "order": 3 } }, { "model": "spec.datatypeoption", "pk": 52, "fields": { "data_type": 12, "value": "-22", "description": "22ma (notes are rendered down three octaves from sounding pitch)", "order": 4 } }, { "model": "spec.datatypeoption", "pk": 53, "fields": { "data_type": 12, "value": "22", "description": "22mb (notes are rendered up three octaves from sounding pitch)", "order": 5 } }, { "model": "spec.datatypeoption", "pk": 54, "fields": { "data_type": 37, "value": "up", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 55, "fields": { "data_type": 37, "value": "down", "description": "", "order": 1 } }, { "model": "spec.datatypeoption", "pk": 56, "fields": { "data_type": 39, "value": "regular", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 57, "fields": { "data_type": 39, "value": "dotted", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 58, "fields": { "data_type": 39, "value": "dashed", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 59, "fields": { "data_type": 39, "value": "heavy", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 60, "fields": { "data_type": 39, "value": "light-light", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 61, "fields": { "data_type": 39, "value": "light-heavy", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 62, "fields": { "data_type": 39, "value": "heavy-light", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 63, "fields": { "data_type": 39, "value": "heavy-heavy", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 64, "fields": { "data_type": 39, "value": "tick", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 65, "fields": { "data_type": 39, "value": "short", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 66, "fields": { "data_type": 39, "value": "none", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 67, "fields": { "data_type": 15, "value": "incoming", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 68, "fields": { "data_type": 15, "value": "outgoing", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 69, "fields": { "data_type": 41, "value": "none", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 70, "fields": { "data_type": 41, "value": "inner", "description": "", "order": 1 } }, { "model": "spec.datatypeoption", "pk": 71, "fields": { "data_type": 41, "value": "both", "description": "", "order": 2 } }, { "model": "spec.datatypeoption", "pk": 72, "fields": { "data_type": 43, "value": "normal", "description": "The default value. The element should be displayed normally.", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 73, "fields": { "data_type": 43, "value": "none", "description": "The element is not processed for display, and layout proceeds as if the element did not exist.\r\n\r\nThis is inspired by \"display: none\" from CSS.", "order": 1 } }, { "model": "spec.datatypeoption", "pk": 74, "fields": { "data_type": 44, "value": "visible", "description": "Default. The element is visible.", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 75, "fields": { "data_type": 44, "value": "hidden", "description": "The element is hidden.", "order": 1 } }, { "model": "spec.datatypeoption", "pk": 76, "fields": { "data_type": 45, "value": "normal", "description": "Default. The element is performed.", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 77, "fields": { "data_type": 45, "value": "none", "description": "The element is omitted from performance.", "order": 1 } }, { "model": "spec.datatypeoption", "pk": 78, "fields": { "data_type": 49, "value": "brace", "description": "A curved symbol, similar to \"{\", that sits to the left of the system barline without touching it.\r\n\r\n", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 79, "fields": { "data_type": 49, "value": "bracket", "description": "A straight line with curved ends that intersects the system barline just above and below the staves it includes.\r\n\r\n", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 80, "fields": { "data_type": 49, "value": "line", "description": "A straight line that sits to the left of the system barline without touching it.\r\n\r\n", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 81, "fields": { "data_type": 49, "value": "none", "description": "No symbol is displayed.", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 82, "fields": { "data_type": 49, "value": "square", "description": "A straight line with straight ends that connect to the top and bottom staff lines of the staves it includes.\r\n\r\n", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 83, "fields": { "data_type": 50, "value": "name", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 84, "fields": { "data_type": 50, "value": "short-name", "description": "", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 85, "fields": { "data_type": 54, "value": "part", "description": "Use stem directions as defined by the first <part-layout> within this <voice-layout>.", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 86, "fields": { "data_type": 54, "value": "up", "description": "Set all stem directions to up.", "order": 1 } }, { "model": "spec.datatypeoption", "pk": 87, "fields": { "data_type": 54, "value": "down", "description": "Set all stem directions to down.", "order": 2 } }, { "model": "spec.datatypeoption", "pk": 88, "fields": { "data_type": 54, "value": "float", "description": "Determine stem directions algorithmically according to notehead staff position.", "order": 3 } }, { "model": "spec.datatypeoption", "pk": 89, "fields": { "data_type": 55, "value": "up", "description": "Set all stem directions to up.", "order": 0 } }, { "model": "spec.datatypeoption", "pk": 90, "fields": { "data_type": 55, "value": "down", "description": "Set all stem directions to down.", "order": 1 } }, { "model": "spec.datatypeoption", "pk": 91, "fields": { "data_type": 55, "value": "float", "description": "Determine stem directions algorithmically according to notehead staff position.", "order": 2 } }, { "model": "spec.documentformat", "pk": 1, "fields": { "name": "MusicXML", "slug": "musicxml" } }, { "model": "spec.xmlattributegroup", "pk": 1, "fields": { "name": "Direction", "description": "", "child_groups": [] } }, { "model": "spec.xmlattributegroup", "pk": 2, "fields": { "name": "Span", "description": "", "child_groups": [] } }, { "model": "spec.xmlattributegroup", "pk": 3, "fields": { "name": "Display and visibility", "description": "", "child_groups": [] } }, { "model": "spec.xmlattributegroup", "pk": 4, "fields": { "name": "Styleable", "description": "", "child_groups": [] } }, { "model": "spec.xmlattribute", "pk": 39, "fields": { "element": null, "attribute_group": 1, "name": "staff", "is_required": false, "description": "The staff index to which this direction applies, if such a designation makes sense. If not provided, the value is inherited from any sequence ancestor that specified it. If no ancestor did so, the consuming software should determine the value automatically according to its own logic.", "data_type": 30 } }, { "model": "spec.xmlattribute", "pk": 40, "fields": { "element": null, "attribute_group": 1, "name": "orient", "is_required": false, "description": "A specific orientation for this direction. If not provided, the value is inherited from any sequence ancestor that specified it. If no ancestor did so, the consuming software should determine the value automatically according to its own logic.", "data_type": 29 } }, { "model": "spec.xmlattribute", "pk": 41, "fields": { "element": null, "attribute_group": 2, "name": "end", "is_required": true, "description": "The measure location of the last event that is affected by this direction.\r\n\r\nThis measure location must lie within the same run of measure content as this direction's start position.", "data_type": 13 } }, { "model": "spec.xmlattribute", "pk": 79, "fields": { "element": null, "attribute_group": 3, "name": "display", "is_required": false, "description": "", "data_type": 43 } }, { "model": "spec.xmlattribute", "pk": 80, "fields": { "element": null, "attribute_group": 3, "name": "visibility", "is_required": false, "description": "", "data_type": 44 } }, { "model": "spec.xmlattribute", "pk": 116, "fields": { "element": null, "attribute_group": 4, "name": "class", "is_required": false, "description": "An optional style class to use for this element and all child elements.", "data_type": 56 } }, { "model": "spec.xmlattribute", "pk": 117, "fields": { "element": null, "attribute_group": 4, "name": "color", "is_required": false, "description": "An optional color to be used when rendering this element and all child elements.", "data_type": 35 } }, { "model": "spec.jsonobject", "pk": 1, "fields": { "name": "global data", "slug": "global", "schema": 1, "object_type": 1, "description": "

The global object represents a set of measures, each of which provides content that is shared by a set of parts within the score. Examples of such content are key signatures and time signatures.

" } }, { "model": "spec.jsonobject", "pk": 2, "fields": { "name": "parts", "slug": "parts", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 3, "fields": { "name": "__root__", "slug": "root", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 4, "fields": { "name": "measures-global", "slug": "measures-global", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 5, "fields": { "name": "styles-global", "slug": "styles-global", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 6, "fields": { "name": "measure global", "slug": "measure-global", "schema": 1, "object_type": 1, "description": "

The measure-global object is the place to encode global information about a measure — that is, the measure's metadata that applies to every part in the score. Examples are key signatures and time signatures.

" } }, { "model": "spec.jsonobject", "pk": 7, "fields": { "name": "style-selector", "slug": "style-selector", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 8, "fields": { "name": "style-global", "slug": "style-global", "schema": 1, "object_type": 1, "description": "The style object is a way to define visual styling within an MNX document. Its required \"selector\" specifies which MNX element(s) the style applies to.\r\n\r\nSee Styling an MNX document for more.\r\n\r\nThis example defines a style class \"emphasized\", which means to use the color red:\r\n\r\n{\"selector\": \".emphasized\", \"color\": \"#ff0000\"}\r\n\r\nA note object can then use \"class\" to use this style class.\r\n\r\nThis example says \"all notes must be blue\":\r\n\r\n{\"selector\": \"note\", \"color\": \"#0000ff\"}\r\n\r\nAt the moment, the only available style property is \"color\"." } }, { "model": "spec.jsonobject", "pk": 9, "fields": { "name": "color", "slug": "color", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 10, "fields": { "name": "fifths", "slug": "fifths", "schema": 1, "object_type": 4, "description": "" } }, { "model": "spec.jsonobject", "pk": 11, "fields": { "name": "key signature", "slug": "key", "schema": 1, "object_type": 1, "description": "

The key object defines a key signature applicable to this and all following measure content, until changed. This is a staff direction.

\r\n\r\n

The measure location of a key object is ignored and is assumed to be zero.

\r\n\r\n

The staff index of a key object is ignored, as the direction always applies to all the staves in a given part (if not the whole score).

\r\n\r\n

It is invalid to place more than one key object within a single measure.

\r\n\r\n

Key objects are required for every key change.

" } }, { "model": "spec.jsonobject", "pk": 13, "fields": { "name": "time signature", "slug": "time", "schema": 1, "object_type": 1, "description": "

This object defines a time signature, applicable to this and all following measure content, until changed. This is a staff direction.

\r\n\r\n

It is invalid to place more than one time signature within the same measure.

" } }, { "model": "spec.jsonobject", "pk": 14, "fields": { "name": "part", "slug": "part", "schema": 1, "object_type": 1, "description": "

The part object represents a set of measures which describe a single part within the score — generally corresponding to a single instrument. The sequence of measures must match the measures found in the \"global\" object.

" } }, { "model": "spec.jsonobject", "pk": 15, "fields": { "name": "part name", "slug": "part-name", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 16, "fields": { "name": "part measure", "slug": "part-measure", "schema": 1, "object_type": 1, "description": "

The part measure object is the place to encode the musical information for a given measure in a given part. This constitutes the majority of musical content in an MNX document.

" } }, { "model": "spec.jsonobject", "pk": 17, "fields": { "name": "part measures", "slug": "part-measures", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 19, "fields": { "name": "clef", "slug": "clef", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 20, "fields": { "name": "sequence", "slug": "sequence", "schema": 1, "object_type": 1, "description": "

The sequence object organizes a set of musical events within a measure into a strict temporal sequence, accompanied by relevant directions.

\r\n\r\n

To determine the measure position of each event within a sequence, you sequence the content, with a starting position 0 and time modification ratio 1.

\r\n\r\n

The content within each sequence supplies the music for a single polyphonic voice within its containing measure, including notes, chords, rests, tuplets and grace notes.

" } }, { "model": "spec.jsonobject", "pk": 22, "fields": { "name": "clef sign", "slug": "clef-sign", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 25, "fields": { "name": "sequence-content", "slug": "sequence-content", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 26, "fields": { "name": "event", "slug": "event", "schema": 1, "object_type": 1, "description": "

The event object represents a discrete period of time during which one or more notes are performed, or in which a rest occurs.

\r\n\r\n

All events other than whole-measure events require a value attribute to provide their duration as a note value. This duration is implicitly multiplied by the current time modification ratio, as specified by the process of sequencing the content of the event’s containing element.

" } }, { "model": "spec.jsonobject", "pk": 29, "fields": { "name": "notes", "slug": "notes", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 30, "fields": { "name": "pitch", "slug": "pitch", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 31, "fields": { "name": "note", "slug": "note", "schema": 1, "object_type": 1, "description": "

The note object defines a single note within an event, along with other information pertaining to the note itself rather than to its containing event.

" } }, { "model": "spec.jsonobject", "pk": 33, "fields": { "name": "barline", "slug": "barline", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 34, "fields": { "name": "barline type", "slug": "barline-type", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 35, "fields": { "name": "rest", "slug": "rest", "schema": 1, "object_type": 1, "description": "

The rest object defines a rest within an event, along with other information pertaining to the rest rather than to its containing event.

" } }, { "model": "spec.jsonobject", "pk": 36, "fields": { "name": "tie", "slug": "tie", "schema": 1, "object_type": 1, "description": "The \"tie\" object is used to indicate that a note is tied to a subsequent note." } }, { "model": "spec.jsonobject", "pk": 37, "fields": { "name": "id", "slug": "id", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 38, "fields": { "name": "beam list", "slug": "beam-list", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 39, "fields": { "name": "beam", "slug": "beam", "schema": 1, "object_type": 1, "description": "

Describes a single beam.

\r\n\r\n

For music that uses secondary beams (i.e., sixteenth notes or smaller), the secondary beams are encoded explicitly, within \"inner\".

" } }, { "model": "spec.jsonobject", "pk": 40, "fields": { "name": "ID list", "slug": "id-list", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 41, "fields": { "name": "beam hook", "slug": "beam-hook", "schema": 1, "object_type": 1, "description": "

Describes a \"hook\" within a beam.

" } }, { "model": "spec.jsonobject", "pk": 42, "fields": { "name": "hook list", "slug": "hook-list", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 43, "fields": { "name": "beam hook direction", "slug": "beam-hook-direction", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 45, "fields": { "name": "literal string event", "slug": "literal-string-event", "schema": 1, "object_type": 6, "description": "event" } }, { "model": "spec.jsonobject", "pk": 46, "fields": { "name": "grace", "slug": "grace", "schema": 1, "object_type": 1, "description": "

A grace object encodes grace notes. Its \"content\" contains the note data.

\r\n\r\n

Within \"content\", each inner event's \"value\" encodes the visual rhythmic appearance of the grace note — e.g., \"/8\" for an eighth note.

\r\n\r\n

Any direction content that lacks a location attribute and lives within a grace object is considered to be in alignment with the following event, even though grace notes in the same run technically share the same measure location." } }, { "model": "spec.jsonobject", "pk": 47, "fields": { "name": "literal string grace", "slug": "literal-string-grace", "schema": 1, "object_type": 6, "description": "grace" } }, { "model": "spec.jsonobject", "pk": 48, "fields": { "name": "grace sequence content", "slug": "grace-sequence-content", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 49, "fields": { "name": "tuplet", "slug": "tuplet", "schema": 1, "object_type": 1, "description": "

The tuplet object organizes a set of musical events that form a distinct and contiguous run within a sequence, and which are subject to a common time modification ratio expressed as the quotient of two rational numbers. A tuplet behaves much like a sequence with respect to its contents.

\r\n\r\n

The contents of the tuplet are placed into a temporal sequence by performing the procedure sequencing the content with a starting position determined by the parent context, and a time modification ratio equal to the tuplet’s outer value divided by its inner value. Following this procedure, the value of the sequence cursor MUST equal the value of inner, or the contents are considered to be in error.

" } }, { "model": "spec.jsonobject", "pk": 50, "fields": { "name": "literal string tuplet", "slug": "literal-string-tuplet", "schema": 1, "object_type": 6, "description": "tuplet" } }, { "model": "spec.jsonobject", "pk": 51, "fields": { "name": "note value quantity", "slug": "note-value-quantity", "schema": 1, "object_type": 1, "description": "A note value quantity is an integer multiple of a note value. For example, this can represent the concepts of \"two eighth notes\" or \"six dotted quarter notes.\"" } }, { "model": "spec.jsonobject", "pk": 52, "fields": { "name": "tuplet sequence content", "slug": "tuplet-sequence-content", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 53, "fields": { "name": "octave shift", "slug": "octave-shift", "schema": 1, "object_type": 1, "description": "

An octave shift, traditionally notated with a marking such as \"8va\", tells a musician that the affected note(s) are being rendered a number of octaves up or down from their normal appearance on the staff, for sake of readability.

\r\n\r\n

Note: the \"pitch\" attribute of any affected note should be encoded as the sounded pitch. In other words, the absence or presence of an octave shift does not affect a note's \"pitch\" attribute; the octave shift only affects the note's graphical display.

" } }, { "model": "spec.jsonobject", "pk": 54, "fields": { "name": "literal string octave shift", "slug": "literal-string-octave-shift", "schema": 1, "object_type": 6, "description": "octave-shift" } }, { "model": "spec.jsonobject", "pk": 55, "fields": { "name": "octave shift amount", "slug": "octave-shift-amount", "schema": 1, "object_type": 4, "description": "" } }, { "model": "spec.jsonobject", "pk": 56, "fields": { "name": "measure location", "slug": "measure-location", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 57, "fields": { "name": "slur list", "slug": "slur-list", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 58, "fields": { "name": "slur", "slug": "slur", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 59, "fields": { "name": "slur side", "slug": "slur-side", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 60, "fields": { "name": "slur/tie end location", "slug": "slur-tie-end-location", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 61, "fields": { "name": "repeat start", "slug": "repeat-start", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 62, "fields": { "name": "repeat end", "slug": "repeat-end", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 63, "fields": { "name": "repeat times", "slug": "repeat-times", "schema": 1, "object_type": 4, "description": "" } }, { "model": "spec.jsonobject", "pk": 64, "fields": { "name": "ending", "slug": "ending", "schema": 1, "object_type": 1, "description": "The ending object encodes an alternate ending, sometimes known as a \"volta bracket.\"" } }, { "model": "spec.jsonobject", "pk": 65, "fields": { "name": "ending numbers", "slug": "ending-numbers", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 66, "fields": { "name": "ending duration", "slug": "ending-duration", "schema": 1, "object_type": 4, "description": "" } }, { "model": "spec.jsonobject", "pk": 67, "fields": { "name": "ending number", "slug": "ending-number", "schema": 1, "object_type": 4, "description": "" } }, { "model": "spec.jsonobject", "pk": 68, "fields": { "name": "ending open", "slug": "ending-open", "schema": 1, "object_type": 5, "description": "" } }, { "model": "spec.jsonobject", "pk": 69, "fields": { "name": "segno", "slug": "segno", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 70, "fields": { "name": "jump", "slug": "jump", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 71, "fields": { "name": "jump type", "slug": "jump-type", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 72, "fields": { "name": "fine", "slug": "fine", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 73, "fields": { "name": "staff count", "slug": "staff-count", "schema": 1, "object_type": 4, "description": "" } }, { "model": "spec.jsonobject", "pk": 74, "fields": { "name": "layouts", "slug": "layouts", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 75, "fields": { "name": "system layout", "slug": "system-layout", "schema": 1, "object_type": 1, "description": "

The system-layout object defines a visual layout that can be used by \"score\", \"page\" or \"system\" objects.

\r\n\r\n

For example, a layout might say \"Include the vocal part, with the piano part directly below. For the piano part, use a grand-staff brace.\"

" } }, { "model": "spec.jsonobject", "pk": 76, "fields": { "name": "part short name", "slug": "part-short-name", "schema": 1, "object_type": 3, "description": "

The part's name in abbreviated form. For example, \"Vln\" for violin.

" } }, { "model": "spec.jsonobject", "pk": 77, "fields": { "name": "scores", "slug": "scores", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 78, "fields": { "name": "score", "slug": "score", "schema": 1, "object_type": 1, "description": "

The score object represents a particular graphical rendering of the music, with a defined subset of which parts are included, how they're visually arranged, where system breaks happen and where page breaks happen.

\r\n\r\n

An MNX document can contain multiple scores. For example, you can use this to define a \"full score\" vs. individual printed parts, within a single MNX file.

\r\n\r\n

MNX documents are not required to contain a score object. If a score object isn't provided, the default rendering behavior is to include all parts — in the same order as defined in the top-level \"parts\" object — with line breaks and page breaks determined automatically by the consuming software.

\r\n\r\n

A score object also is not required to contain a \"pages\" array. If \"pages\" is omitted, page breaks are to be determined automatically by the consuming software.

" } }, { "model": "spec.jsonobject", "pk": 79, "fields": { "name": "score name", "slug": "score-name", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 80, "fields": { "name": "pages", "slug": "pages", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 81, "fields": { "name": "page", "slug": "page", "schema": 1, "object_type": 1, "description": "

The page object represents a single page of music — either printed (as on paper) or digitally rendered.

\r\n\r\n

It's part of a score and contains a system object for each system of music in the page.

" } }, { "model": "spec.jsonobject", "pk": 82, "fields": { "name": "systems", "slug": "systems", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 83, "fields": { "name": "system", "slug": "system", "schema": 1, "object_type": 1, "description": "

The system object describes a system of notation — that is, a collection of staves that represent one or more measures across one or more parts.

\r\n\r\n

This element is used in context of a \"page\". Each system specifies its starting measure number and can optionally specify a layout.

" } }, { "model": "spec.jsonobject", "pk": 84, "fields": { "name": "measure number", "slug": "measure-number", "schema": 1, "object_type": 4, "description": "" } }, { "model": "spec.jsonobject", "pk": 85, "fields": { "name": "system layout content", "slug": "system-layout-content", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 86, "fields": { "name": "staff group", "slug": "staff-group", "schema": 1, "object_type": 1, "description": "The staff group object is a way to group staff layouts together, for the purposes of giving them a unified name and/or grouping symbol.\r\n\r\nYou can also nest staff group objects within another, to represent more complex groupings of staves, as in large orchestral scores." } }, { "model": "spec.jsonobject", "pk": 88, "fields": { "name": "literal string group", "slug": "literal-string-group", "schema": 1, "object_type": 6, "description": "group" } }, { "model": "spec.jsonobject", "pk": 89, "fields": { "name": "staff symbol", "slug": "staff-symbol", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 90, "fields": { "name": "staff label", "slug": "staff-label", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 91, "fields": { "name": "literal string staff", "slug": "literal-string-staff", "schema": 1, "object_type": 6, "description": "staff" } }, { "model": "spec.jsonobject", "pk": 92, "fields": { "name": "staff labelref", "slug": "staff-labelref", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 93, "fields": { "name": "staff sources", "slug": "staff-sources", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 94, "fields": { "name": "staff source", "slug": "staff-source", "schema": 1, "object_type": 1, "description": "

The staff source object is the way to specify which parts are included in a given layout. You can optionally target a specific voice or staff (for multi-voice parts).

" } }, { "model": "spec.jsonobject", "pk": 95, "fields": { "name": "stem direction", "slug": "stem-direction", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 96, "fields": { "name": "tempos", "slug": "tempos", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 97, "fields": { "name": "tempo", "slug": "tempo", "schema": 1, "object_type": 1, "description": "

The tempo object defines a tempo, from the point of its occurrence forward until changed. The tempo is rendered as a conventional pairing of a small beat unit notation equated to a metronome marking.

" } }, { "model": "spec.jsonobject", "pk": 98, "fields": { "name": "bpm", "slug": "bpm", "schema": 1, "object_type": 4, "description": "" } }, { "model": "spec.jsonobject", "pk": 99, "fields": { "name": "layout changes", "slug": "layout-changes", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 100, "fields": { "name": "layout change", "slug": "layout-change", "schema": 1, "object_type": 1, "description": "

The layout change object lets you indicate a change in layout in the middle of a system — usually, but not necessarily, due to changes in stemming.

" } }, { "model": "spec.jsonobject", "pk": 101, "fields": { "name": "voice name", "slug": "voice-name", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 102, "fields": { "name": "multimeasure rests", "slug": "multimeasure-rests", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 103, "fields": { "name": "multimeasure rest", "slug": "multimeasure-rest", "schema": 1, "object_type": 1, "description": "

Encodes a single multimeasure rest. The required attributes \"start\" and \"duration\" specify the multimeasure rest's location and length, respectively.

\r\n\r\n

When rendering MNX into graphical notation, applications are expected to use the value of \"duration\" as the number above the rest. If the optional \"label\" attribute is provided, that must be used instead.

" } }, { "model": "spec.jsonobject", "pk": 104, "fields": { "name": "measure count", "slug": "measure-count", "schema": 1, "object_type": 4, "description": "" } }, { "model": "spec.jsonobject", "pk": 105, "fields": { "name": "staff number", "slug": "staff-number", "schema": 1, "object_type": 4, "description": "" } }, { "model": "spec.jsonobject", "pk": 106, "fields": { "name": "smufl glyph", "slug": "smufl-glyph", "schema": 1, "object_type": 3, "description": "A string representing a glyph name in the SMuFL music-font-encoding specification.\r\n\r\nIn MNX, this is generally used to override default engraving behavior.\r\n\r\nExample SMuFL glyph name: noteheadXOrnateEllipse" } }, { "model": "spec.jsonobject", "pk": 107, "fields": { "name": "integer (signed)", "slug": "integer-signed", "schema": 1, "object_type": 4, "description": "" } }, { "model": "spec.jsonobject", "pk": 108, "fields": { "name": "style class", "slug": "style-class", "schema": 1, "object_type": 3, "description": "A style class is a string that styleable MNX elements can use to declare they should be styled." } }, { "model": "spec.jsonobject", "pk": 109, "fields": { "name": "simple color", "slug": "simple-color", "schema": 1, "object_type": 3, "description": "A simple color is a seven-character string representing the red, green and blue components of a color, as defined in the HTML standard. This is commonly known as a hexcode or hex value.\r\n\r\nExamples: #000000 (black), #ff0000 (red)." } }, { "model": "spec.jsonobject", "pk": 110, "fields": { "name": "string", "slug": "string", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 111, "fields": { "name": "grace type", "slug": "grace-type", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 112, "fields": { "name": "boolean", "slug": "boolean", "schema": 1, "object_type": 5, "description": "" } }, { "model": "spec.jsonobject", "pk": 114, "fields": { "name": "staff", "slug": "staff", "schema": 1, "object_type": 1, "description": "

The staff object describes the visual display of a single staff within a layout.

\r\n\r\n

Generally this corresponds to a single part (from the top-level \"parts\" array), but MNX supports encoding multiple parts in the same staff — as might be used, for example, when combining soprano and alto vocal parts into a single staff.

" } }, { "model": "spec.jsonobject", "pk": 115, "fields": { "name": "orientation", "slug": "orientation", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 116, "fields": { "name": "literal string space", "slug": "literal string space", "schema": 1, "object_type": 6, "description": "space" } }, { "model": "spec.jsonobject", "pk": 117, "fields": { "name": "space", "slug": "space", "schema": 1, "object_type": 1, "description": "

The space object represents a discrete period of time within a sequence in which no sequence content occurs. It embodies the idea of blank space within a measure.

" } }, { "model": "spec.jsonobject", "pk": 118, "fields": { "name": "smufl font", "slug": "smufl-font", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 119, "fields": { "name": "perform options", "slug": "perform-options", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 120, "fields": { "name": "line type", "slug": "line-type", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 121, "fields": { "name": "tuplet display setting", "slug": "tuplet-display-setting", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 122, "fields": { "name": "yes, no or auto", "slug": "yes-no-auto", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 123, "fields": { "name": "literal string dynamic", "slug": "literal-string-dynamic", "schema": 1, "object_type": 6, "description": "dynamic" } }, { "model": "spec.jsonobject", "pk": 124, "fields": { "name": "dynamic type", "slug": "dynamic-type", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 125, "fields": { "name": "dynamic", "slug": "dynamic", "schema": 1, "object_type": 1, "description": "

Describes a textual dynamic direction to the performer.

\r\n\r\n

The metrical position of this dynamic direction is determined by sequencing the content.

" } }, { "model": "spec.jsonobject", "pk": 126, "fields": { "name": "MNX metadata", "slug": "mnx", "schema": 1, "object_type": 1, "description": "

Holds technical MNX metadata about the document, including the MNX version.

" } }, { "model": "spec.jsonobject", "pk": 127, "fields": { "name": "version number", "slug": "version-number", "schema": 1, "object_type": 4, "description": "" } }, { "model": "spec.jsonobject", "pk": 128, "fields": { "name": "positive integer", "slug": "positive-integer", "schema": 1, "object_type": 4, "description": "" } }, { "model": "spec.jsonobject", "pk": 129, "fields": { "name": "time signature unit", "slug": "time-signature-unit", "schema": 1, "object_type": 4, "description": "1, 2, 4, 8, 16" } }, { "model": "spec.jsonobject", "pk": 130, "fields": { "name": "note value base", "slug": "note-value-base", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 131, "fields": { "name": "note value", "slug": "note-value", "schema": 1, "object_type": 1, "description": "A rhythmic value for a note, such as a \"dotted quarter note.\" This is encoded via a base note type, such as \"quarter\", and an optional number of dots." } }, { "model": "spec.jsonobject", "pk": 132, "fields": { "name": "note step", "slug": "step", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 133, "fields": { "name": "note octave", "slug": "octave", "schema": 1, "object_type": 4, "description": "A number representing an octave in Scientific Pitch Notation. The octave for middle C is 4." } }, { "model": "spec.jsonobject", "pk": 134, "fields": { "name": "note alter", "slug": "alter", "schema": 1, "object_type": 4, "description": "Describes the alteration to a note's pitch, as an integer in the range -3 to 3, inclusive." } }, { "model": "spec.jsonobject", "pk": 135, "fields": { "name": "accidental display", "slug": "accidental-display", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 136, "fields": { "name": "positioned clef list", "slug": "positioned-clef-list", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 137, "fields": { "name": "sequence list", "slug": "sequence-list", "schema": 1, "object_type": 2, "description": "" } }, { "model": "spec.jsonobject", "pk": 139, "fields": { "name": "positioned clef", "slug": "positioned-clef", "schema": 1, "object_type": 1, "description": "

Represents a clef as positioned at a specific location within a measure.

\r\n\r\n

If the position isn't encoded, the position is assumed to be the start of the measure.

" } }, { "model": "spec.jsonobject", "pk": 140, "fields": { "name": "rhythmic position", "slug": "rhythmic-position", "schema": 1, "object_type": 1, "description": "

Describes the rhythmic position of a notational object within a bar.

" } }, { "model": "spec.jsonobject", "pk": 141, "fields": { "name": "fraction", "slug": "fraction", "schema": 1, "object_type": 2, "description": "A two-element array that represents a fraction. The first element represents the numerator, and the second element represents the denominator.\r\n\r\nThe first element must be a non-zero positive integer or zero. The second element must be a non-zero positive integer." } }, { "model": "spec.jsonobject", "pk": 142, "fields": { "name": "integer (unsigned)", "slug": "integer-unsigned", "schema": 1, "object_type": 4, "description": "A non-negative integer." } }, { "model": "spec.jsonobject", "pk": 143, "fields": { "name": "staff position", "slug": "staff-position", "schema": 1, "object_type": 4, "description": "

Represents a vertical position in a staff, where 0 is the middle of the staff. This number is positive for positions above the middle of the staff, and it's negative for positions below the middle of the staff.

\r\n\r\n

This value is expressed in \"half staff spaces.\" In other words, the staff position values of two consecutive staff lines are always 2 apart. This allows both lines and spaces to be encoded with simple integer values.

\r\n\r\n

For example: in a standard five-line staff, the middle line is position 0. The space directly above the middle line is position 1. The line directly above the middle line is position 2. The space directly below the middle line is position -1. The line directly below the middle line is position -2.

\r\n\r\n

In a single-line staff, position 0 represents the line itself, position 1 represents the space directly above the line, and position -1 represents the space directly below the line.

\r\n\r\n

In a two-line staff, position 0 represents the space between the two lines, position 1 represents the top line, and position -1 represents the bottom line.

" } }, { "model": "spec.jsonobject", "pk": 144, "fields": { "name": "event markings", "slug": "event-markings", "schema": 1, "object_type": 1, "description": "

\"Markings\" is a catch-all container for notations that apply to an entire event, such as articulations and single-note tremolos.

" } }, { "model": "spec.jsonobject", "pk": 145, "fields": { "name": "staccato", "slug": "staccato", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 146, "fields": { "name": "accent", "slug": "accent", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 147, "fields": { "name": "strong accent", "slug": "strong-accent", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 148, "fields": { "name": "tenuto", "slug": "tenuto", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 149, "fields": { "name": "staccatissimo", "slug": "staccatissimo", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 150, "fields": { "name": "spiccato", "slug": "spiccato", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 152, "fields": { "name": "breath mark", "slug": "breath-mark", "schema": 1, "object_type": 1, "description": "

Defines a breath mark. This is always encoded on the event before the breath happens — generally the event that contains note(s) that are performed directly before the breath.

" } }, { "model": "spec.jsonobject", "pk": 153, "fields": { "name": "stress marking", "slug": "stress-marking", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 154, "fields": { "name": "unstress marking", "slug": "unstress-marking", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 155, "fields": { "name": "soft accent", "slug": "soft-accent", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 156, "fields": { "name": "single-note tremolo", "slug": "tremolo-single", "schema": 1, "object_type": 1, "description": "" } }, { "model": "spec.jsonobject", "pk": 157, "fields": { "name": "up or down", "slug": "up-or-down", "schema": 1, "object_type": 3, "description": "" } }, { "model": "spec.jsonobject", "pk": 158, "fields": { "name": "breath mark symbol", "slug": "breath-mark-symbol", "schema": 1, "object_type": 3, "description": "See https://w3c.github.io/musicxml/musicxml-reference/data-types/breath-mark-value/" } }, { "model": "spec.jsonobjectrelationship", "pk": 1, "fields": { "parent": 3, "child_key": "global", "child": 1, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 2, "fields": { "parent": 3, "child_key": "parts", "child": 2, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 3, "fields": { "parent": 1, "child_key": "measures", "child": 4, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 4, "fields": { "parent": 1, "child_key": "styles", "child": 5, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 5, "fields": { "parent": 4, "child_key": "0", "child": 6, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 6, "fields": { "parent": 8, "child_key": "selector", "child": 7, "is_required": true, "description": "A CSS-style selector that specifies which MNX object(s) this style applies to.\r\n\r\nCurrently MNX supports two types of selectors, object selectors and style selectors." } }, { "model": "spec.jsonobjectrelationship", "pk": 7, "fields": { "parent": 5, "child_key": "0", "child": 8, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 8, "fields": { "parent": 8, "child_key": "color", "child": 9, "is_required": false, "description": "The color to apply to any elements targeted by this style." } }, { "model": "spec.jsonobjectrelationship", "pk": 9, "fields": { "parent": 11, "child_key": "fifths", "child": 10, "is_required": true, "description": "The number of fifths distance from a signature with no accidentals." } }, { "model": "spec.jsonobjectrelationship", "pk": 11, "fields": { "parent": 6, "child_key": "key", "child": 11, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 12, "fields": { "parent": 6, "child_key": "time", "child": 13, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 13, "fields": { "parent": 2, "child_key": "0", "child": 14, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 14, "fields": { "parent": 17, "child_key": "0", "child": 16, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 15, "fields": { "parent": 14, "child_key": "name", "child": 15, "is_required": false, "description": "An optional name for this part. Notation software might use this in instrument-selection UI, and/or it might be rendered to the left of this part's staves (see the \"staff\" object)." } }, { "model": "spec.jsonobjectrelationship", "pk": 16, "fields": { "parent": 14, "child_key": "measures", "child": 17, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 21, "fields": { "parent": 19, "child_key": "sign", "child": 22, "is_required": true, "description": "The clef sign." } }, { "model": "spec.jsonobjectrelationship", "pk": 22, "fields": { "parent": 19, "child_key": "staffPosition", "child": 143, "is_required": true, "description": "The staff position at which the clef is drawn. For example, a standard G glef is drawn at position -2." } }, { "model": "spec.jsonobjectrelationship", "pk": 24, "fields": { "parent": 20, "child_key": "content", "child": 25, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 25, "fields": { "parent": 25, "child_key": "0", "child": 26, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 27, "fields": { "parent": 26, "child_key": "duration", "child": 131, "is_required": false, "description": "The duration of this event. This is required unless this event has measure=true." } }, { "model": "spec.jsonobjectrelationship", "pk": 28, "fields": { "parent": 26, "child_key": "notes", "child": 29, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 29, "fields": { "parent": 31, "child_key": "pitch", "child": 30, "is_required": true, "description": "The note's sounded pitch." } }, { "model": "spec.jsonobjectrelationship", "pk": 30, "fields": { "parent": 29, "child_key": "0", "child": 31, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 32, "fields": { "parent": 6, "child_key": "barline", "child": 33, "is_required": false, "description": "The barline drawn at the end of this measure. If not provided, the barline should be interpreted as follows:\r\n\r\n* If the measure is the last in the document, use \"light-heavy\".\r\n* Otherwise, use \"regular\"." } }, { "model": "spec.jsonobjectrelationship", "pk": 33, "fields": { "parent": 33, "child_key": "type", "child": 34, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 34, "fields": { "parent": 26, "child_key": "rest", "child": 35, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 35, "fields": { "parent": 31, "child_key": "tie", "child": 36, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 36, "fields": { "parent": 36, "child_key": "target", "child": 37, "is_required": false, "description": "The ID of a note that lies in the same part, and whose containing event begins directly after the end of the of this note’s event. The step, alteration and octave values for the target note must be identical to this one.\r\n\r\nIf target is not provided, the tie does not connect to a particular destination note. In this case, the \"location\" attribute may be used to specify the location of the other end of the tie." } }, { "model": "spec.jsonobjectrelationship", "pk": 37, "fields": { "parent": 31, "child_key": "id", "child": 37, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 38, "fields": { "parent": 26, "child_key": "id", "child": 37, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 39, "fields": { "parent": 16, "child_key": "beams", "child": 38, "is_required": false, "description": "All beams that begin within this part-measure.\r\n\r\nBeams that are rendered in multiple measures (i.e., beams that cross barlines) are encoded in the first measure in which they appear." } }, { "model": "spec.jsonobjectrelationship", "pk": 40, "fields": { "parent": 38, "child_key": "0", "child": 39, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 41, "fields": { "parent": 39, "child_key": "events", "child": 40, "is_required": true, "description": "IDs of the events that comprise this beam — in order by their position in the beam." } }, { "model": "spec.jsonobjectrelationship", "pk": 42, "fields": { "parent": 40, "child_key": "0", "child": 37, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 43, "fields": { "parent": 39, "child_key": "inner", "child": 38, "is_required": false, "description": "Secondary beams within this beam." } }, { "model": "spec.jsonobjectrelationship", "pk": 44, "fields": { "parent": 42, "child_key": "0", "child": 41, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 45, "fields": { "parent": 39, "child_key": "hooks", "child": 42, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 46, "fields": { "parent": 41, "child_key": "direction", "child": 43, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 47, "fields": { "parent": 41, "child_key": "event", "child": 37, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 49, "fields": { "parent": 26, "child_key": "type", "child": 45, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 50, "fields": { "parent": 25, "child_key": "1", "child": 46, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 51, "fields": { "parent": 46, "child_key": "type", "child": 47, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 52, "fields": { "parent": 46, "child_key": "content", "child": 48, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 53, "fields": { "parent": 48, "child_key": "0", "child": 26, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 54, "fields": { "parent": 25, "child_key": "2", "child": 49, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 55, "fields": { "parent": 49, "child_key": "type", "child": 50, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 56, "fields": { "parent": 49, "child_key": "inner", "child": 51, "is_required": true, "description": "The duration of the enclosed content, as notated.\r\n\r\nFor example, a quarter-note triplet would use the value {\"multiple\": \"3\", \"duration\": {\"base\": \"quarter\"}}." } }, { "model": "spec.jsonobjectrelationship", "pk": 57, "fields": { "parent": 49, "child_key": "outer", "child": 51, "is_required": true, "description": "The duration of this tuplet with respect to its containing element. This is how much time the tuplet occupies in the measure (or parent tuplet, in case of nested tuplets) in which it is placed.\r\n\r\nFor example, a quarter-note triplet would use the value {\"multiple\": \"2\", \"duration\": {\"base\": \"quarter\"}}." } }, { "model": "spec.jsonobjectrelationship", "pk": 58, "fields": { "parent": 49, "child_key": "content", "child": 52, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 59, "fields": { "parent": 52, "child_key": "0", "child": 26, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 60, "fields": { "parent": 25, "child_key": "3", "child": 53, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 61, "fields": { "parent": 53, "child_key": "type", "child": 54, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 62, "fields": { "parent": 53, "child_key": "value", "child": 55, "is_required": true, "description": "The type of octave shift." } }, { "model": "spec.jsonobjectrelationship", "pk": 63, "fields": { "parent": 53, "child_key": "end", "child": 56, "is_required": true, "description": "The measure location of the last event that is affected by this direction.\r\n\r\nThis measure location must lie within the same run of measure content as this direction's start position." } }, { "model": "spec.jsonobjectrelationship", "pk": 64, "fields": { "parent": 26, "child_key": "slurs", "child": 57, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 65, "fields": { "parent": 57, "child_key": "0", "child": 58, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 66, "fields": { "parent": 58, "child_key": "side", "child": 59, "is_required": false, "description": "The slur's side. If not provided, the consuming software should determine the value automatically according to its own logic." } }, { "model": "spec.jsonobjectrelationship", "pk": 67, "fields": { "parent": 58, "child_key": "target", "child": 37, "is_required": false, "description": "If provided, this specifies the ID of the slur’s end event — that is, the last event over which this slur is rendered. This ID must exist in the document and must identify an event.\r\n\r\nIf not provided, the slur does not connect to a particular destination event. In this case, \"location\" may be used to specify the location of the other end of the slur." } }, { "model": "spec.jsonobjectrelationship", "pk": 68, "fields": { "parent": 58, "child_key": "start-note", "child": 37, "is_required": false, "description": "The ID of the specific note at which this slur starts. This note must be within the event that contains this slur.\r\n\r\nFor example, you can use start-note to encode which specific note, within a chord, a slur is intended to start on — in cases when music has multiple slurs starting on the same event." } }, { "model": "spec.jsonobjectrelationship", "pk": 69, "fields": { "parent": 58, "child_key": "end-note", "child": 37, "is_required": false, "description": "The ID of the specific note at which this slur ends. This note must be within the event specified by this slur's \"target\" attribute.\r\n\r\nFor example, you can use end-note to encode which specific note, within a chord, a slur is intended to end on — in cases when music has multiple slurs end on the same event." } }, { "model": "spec.jsonobjectrelationship", "pk": 70, "fields": { "parent": 58, "child_key": "location", "child": 60, "is_required": false, "description": "The value of location may lie either before or after the slur’s event, or it may use the special values \"incoming\" or \"outgoing\". The handling is as follows:\r\n\r\n* If the location precedes the start of the current event, this signifies a slur starting at the given location and ending on the current event.\r\n\r\n* If the location occurs after the start of the current event, this signifies a slur starting at the current event and ending at the given location.\r\n\r\n* A value of \"incoming\" places the start location at a conventionally short distance before the current event, and ends on the current event.\r\n\r\n* A value of \"outgoing\" starts on the current event, and places the end location at a conventionally short distance after the current event.\r\n\r\nIf neither target nor location is given, the effect is as if location=\"outgoing\" was specified." } }, { "model": "spec.jsonobjectrelationship", "pk": 71, "fields": { "parent": 6, "child_key": "repeat-start", "child": 61, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 72, "fields": { "parent": 6, "child_key": "repeat-end", "child": 62, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 73, "fields": { "parent": 62, "child_key": "times", "child": 63, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 74, "fields": { "parent": 6, "child_key": "ending", "child": 64, "is_required": false, "description": "Alternate endings (aka \"voltas\") that begin in this measure." } }, { "model": "spec.jsonobjectrelationship", "pk": 75, "fields": { "parent": 64, "child_key": "numbers", "child": 65, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 76, "fields": { "parent": 64, "child_key": "duration", "child": 66, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 77, "fields": { "parent": 65, "child_key": "0", "child": 67, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 78, "fields": { "parent": 64, "child_key": "open", "child": 68, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 79, "fields": { "parent": 6, "child_key": "segno", "child": 69, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 80, "fields": { "parent": 6, "child_key": "jump", "child": 70, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 81, "fields": { "parent": 69, "child_key": "location", "child": 56, "is_required": true, "description": "The measure location of this segno." } }, { "model": "spec.jsonobjectrelationship", "pk": 82, "fields": { "parent": 70, "child_key": "type", "child": 71, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 83, "fields": { "parent": 70, "child_key": "location", "child": 56, "is_required": true, "description": "The measure location of this direction." } }, { "model": "spec.jsonobjectrelationship", "pk": 84, "fields": { "parent": 6, "child_key": "fine", "child": 72, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 85, "fields": { "parent": 72, "child_key": "location", "child": 56, "is_required": true, "description": "The measure location of this fine direction." } }, { "model": "spec.jsonobjectrelationship", "pk": 86, "fields": { "parent": 14, "child_key": "id", "child": 37, "is_required": false, "description": "An optional ID for this part. This is used by other elements in the same MNX document in cases when they need to refer to a specific part (or parts)." } }, { "model": "spec.jsonobjectrelationship", "pk": 87, "fields": { "parent": 14, "child_key": "staves", "child": 73, "is_required": false, "description": "The number of staves that this part uses. For example, use the value 2 for a grand staff (as used in piano music).\r\n\r\nIf not provided, the default is 1." } }, { "model": "spec.jsonobjectrelationship", "pk": 88, "fields": { "parent": 3, "child_key": "layouts", "child": 74, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 89, "fields": { "parent": 74, "child_key": "0", "child": 75, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 90, "fields": { "parent": 14, "child_key": "short-name", "child": 76, "is_required": false, "description": "An optional abbreviated name for this part. Notation software might use this in instrument-selection UI, and/or it might be rendered to the left of this part's staves (see the \"staff\" object).\r\n\r\nFor example, the system in a piece of music might use the name \"Guitar\", while subsequent systems might use the abbreviated \"Gtr.\" instead." } }, { "model": "spec.jsonobjectrelationship", "pk": 91, "fields": { "parent": 3, "child_key": "scores", "child": 77, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 92, "fields": { "parent": 77, "child_key": "0", "child": 78, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 93, "fields": { "parent": 78, "child_key": "name", "child": 79, "is_required": true, "description": "The score name, suitable for display to people viewing or selecting this particular score within music notation software.\r\n\r\nExamples: \"Full score\", \"Flute 1 part\"." } }, { "model": "spec.jsonobjectrelationship", "pk": 94, "fields": { "parent": 78, "child_key": "layout", "child": 37, "is_required": false, "description": "An optional layout to use for all systems in this score. If provided, this should be the ID of a system layout object in the same MNX document.\r\n\r\nNote that individual page and system objects within this score can optionally override this." } }, { "model": "spec.jsonobjectrelationship", "pk": 95, "fields": { "parent": 78, "child_key": "pages", "child": 80, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 96, "fields": { "parent": 80, "child_key": "0", "child": 81, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 97, "fields": { "parent": 81, "child_key": "layout", "child": 37, "is_required": false, "description": "An optional layout to use for the systems in this page. If provided, this should be the ID of a system-layout object in the same MNX document.\r\n\r\nThis overrides the layout specified by the parent score object. It can be further overridden, on a per-system basis, in child system objects." } }, { "model": "spec.jsonobjectrelationship", "pk": 98, "fields": { "parent": 81, "child_key": "systems", "child": 82, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 99, "fields": { "parent": 82, "child_key": "0", "child": 83, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 100, "fields": { "parent": 83, "child_key": "measure", "child": 84, "is_required": true, "description": "Specifies the starting measure in this system. This corresponds to the \"index\" value of the measure object." } }, { "model": "spec.jsonobjectrelationship", "pk": 101, "fields": { "parent": 83, "child_key": "layout", "child": 37, "is_required": false, "description": "An optional layout to use for this system. If provided, this should be the ID of a system-layout object in the same MNX document.\r\n\r\nThis overrides any layout specified by the parent \"page\" or \"score\" objects." } }, { "model": "spec.jsonobjectrelationship", "pk": 102, "fields": { "parent": 75, "child_key": "id", "child": 37, "is_required": true, "description": "A unique identifier for this system layout. This is used by \"score\", \"page\" or \"system\" objects to specify which layout the score (or page, or system) uses." } }, { "model": "spec.jsonobjectrelationship", "pk": 103, "fields": { "parent": 75, "child_key": "content", "child": 85, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 104, "fields": { "parent": 85, "child_key": "0", "child": 86, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 106, "fields": { "parent": 86, "child_key": "type", "child": 88, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 107, "fields": { "parent": 86, "child_key": "symbol", "child": 89, "is_required": false, "description": "The symbol to use along the left vertical edge of this group of staves. If omitted, the default value is \"none\".\r\n\r\nNote that the child objects might also define their own own \"symbol\" attributes." } }, { "model": "spec.jsonobjectrelationship", "pk": 108, "fields": { "parent": 86, "child_key": "content", "child": 85, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 109, "fields": { "parent": 86, "child_key": "label", "child": 90, "is_required": false, "description": "An optional name for this group of staves. If provided, this should be rendered to the left of the staff group." } }, { "model": "spec.jsonobjectrelationship", "pk": 114, "fields": { "parent": 93, "child_key": "0", "child": 94, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 115, "fields": { "parent": 94, "child_key": "part", "child": 37, "is_required": true, "description": "A reference to the appropriate part." } }, { "model": "spec.jsonobjectrelationship", "pk": 116, "fields": { "parent": 94, "child_key": "stem", "child": 95, "is_required": false, "description": "The stem direction to use for all notes within the associated part. Default is \"float\", meaning the stem directions should be determined algorithmically." } }, { "model": "spec.jsonobjectrelationship", "pk": 119, "fields": { "parent": 6, "child_key": "tempos", "child": 96, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 120, "fields": { "parent": 96, "child_key": "0", "child": 97, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 121, "fields": { "parent": 97, "child_key": "value", "child": 131, "is_required": true, "description": "A note value which is asserted to occur with a frequency of bpm times per minute." } }, { "model": "spec.jsonobjectrelationship", "pk": 122, "fields": { "parent": 97, "child_key": "bpm", "child": 98, "is_required": true, "description": "The number of times per minute the given value should occur." } }, { "model": "spec.jsonobjectrelationship", "pk": 123, "fields": { "parent": 97, "child_key": "location", "child": 56, "is_required": false, "description": "The measure location of this tempo marking. If not provided, the default value is zero." } }, { "model": "spec.jsonobjectrelationship", "pk": 124, "fields": { "parent": 83, "child_key": "layout-changes", "child": 99, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 125, "fields": { "parent": 99, "child_key": "0", "child": 100, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 126, "fields": { "parent": 100, "child_key": "layout", "child": 37, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 127, "fields": { "parent": 100, "child_key": "location", "child": 56, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 128, "fields": { "parent": 94, "child_key": "voice", "child": 101, "is_required": false, "description": "Optional voice within the given part. This allows you to filter the associated part's sequence data by voice.\r\n\r\nThis is useful for complex orchestral scores, where individual parts are sometimes placed on multiple staves but sometimes placed on a single staff.\r\n\r\nIf this is not provided, the layout will use all the notation data from the part (i.e., applying no filter)." } }, { "model": "spec.jsonobjectrelationship", "pk": 129, "fields": { "parent": 78, "child_key": "multimeasure-rests", "child": 102, "is_required": false, "description": "Defines all of the multimeasure rests within this particular score." } }, { "model": "spec.jsonobjectrelationship", "pk": 130, "fields": { "parent": 102, "child_key": "0", "child": 103, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 131, "fields": { "parent": 103, "child_key": "start", "child": 84, "is_required": true, "description": "The measure number in which this multimeasure rest begins." } }, { "model": "spec.jsonobjectrelationship", "pk": 132, "fields": { "parent": 103, "child_key": "duration", "child": 104, "is_required": true, "description": "The number of measures that this multimeasure rest spans. Generally this corresponds to the number graphically rendered in the score." } }, { "model": "spec.jsonobjectrelationship", "pk": 133, "fields": { "parent": 20, "child_key": "staff", "child": 105, "is_required": false, "description": "The default staff index of the content in this sequence. If not provided, the orientation is determined automatically according to the implementation’s rendering rules and may be overridden by descendant elements." } }, { "model": "spec.jsonobjectrelationship", "pk": 134, "fields": { "parent": 20, "child_key": "voice", "child": 101, "is_required": false, "description": "A string that identifies the voice to which this sequence belongs. All sequences in a given part having the same value of \"voice\" belong to the same voice. Within a given measure, no two sequences may share the same value for voice. The value of voice is an opaque identifier that does not supply information from producers to consumers." } }, { "model": "spec.jsonobjectrelationship", "pk": 135, "fields": { "parent": 19, "child_key": "glyph", "child": 106, "is_required": false, "description": "A specific SMuFL glyph name to be used when rendering this clef, e.g. gClefArrowUp. See SMuFL clef glyphs." } }, { "model": "spec.jsonobjectrelationship", "pk": 136, "fields": { "parent": 19, "child_key": "octave", "child": 107, "is_required": false, "description": "The number of octaves by which the pitches normally indicated by the given clef sign should be transposed. Default is zero." } }, { "model": "spec.jsonobjectrelationship", "pk": 137, "fields": { "parent": 19, "child_key": "class", "child": 108, "is_required": false, "description": "An optional style class to use for this element and all child elements." } }, { "model": "spec.jsonobjectrelationship", "pk": 138, "fields": { "parent": 19, "child_key": "color", "child": 109, "is_required": false, "description": "An optional color to be used when rendering this element and all child elements." } }, { "model": "spec.jsonobjectrelationship", "pk": 139, "fields": { "parent": 103, "child_key": "label", "child": 110, "is_required": false, "description": "The label to use when rendering this multimeasure rest. This attribute is provided as a way to override the default rendering." } }, { "model": "spec.jsonobjectrelationship", "pk": 140, "fields": { "parent": 69, "child_key": "class", "child": 108, "is_required": false, "description": "An optional style class to use for this object and all child objects." } }, { "model": "spec.jsonobjectrelationship", "pk": 141, "fields": { "parent": 69, "child_key": "color", "child": 9, "is_required": false, "description": "An optional color to be used when rendering this object and all child objects." } }, { "model": "spec.jsonobjectrelationship", "pk": 142, "fields": { "parent": 69, "child_key": "glyph", "child": 106, "is_required": false, "description": "A specific SMuFL glyph name to be used when rendering this segno." } }, { "model": "spec.jsonobjectrelationship", "pk": 143, "fields": { "parent": 46, "child_key": "grace-type", "child": 111, "is_required": false, "description": "The kind of grace notes to use. The default value is \"steal-previous\"." } }, { "model": "spec.jsonobjectrelationship", "pk": 144, "fields": { "parent": 46, "child_key": "slash", "child": 112, "is_required": false, "description": "Whether grace notes are notated with a slash.\r\n\r\nThe default value (true) specifies a slash, indicating that the grace notes are displayed with a diagonal stroke and are to be performed quickly and not in their notated rhythm. Otherwise, they are performed with the notated note values according to the performance characteristics given by \"grace-type\"." } }, { "model": "spec.jsonobjectrelationship", "pk": 145, "fields": { "parent": 46, "child_key": "color", "child": 9, "is_required": false, "description": "An optional color to be used when rendering this object and all child objects." } }, { "model": "spec.jsonobjectrelationship", "pk": 146, "fields": { "parent": 46, "child_key": "class", "child": 108, "is_required": false, "description": "An optional style class to use for this object and all child objects." } }, { "model": "spec.jsonobjectrelationship", "pk": 147, "fields": { "parent": 72, "child_key": "class", "child": 108, "is_required": false, "description": "An optional style class to use for this fine direction." } }, { "model": "spec.jsonobjectrelationship", "pk": 148, "fields": { "parent": 72, "child_key": "color", "child": 9, "is_required": false, "description": "An optional color to be used when rendering this fine direction." } }, { "model": "spec.jsonobjectrelationship", "pk": 149, "fields": { "parent": 64, "child_key": "class", "child": 108, "is_required": false, "description": "An optional style class to use for this ending." } }, { "model": "spec.jsonobjectrelationship", "pk": 150, "fields": { "parent": 64, "child_key": "color", "child": 9, "is_required": false, "description": "An optional color to use when rendering this ending." } }, { "model": "spec.jsonobjectrelationship", "pk": 153, "fields": { "parent": 114, "child_key": "label", "child": 90, "is_required": false, "description": "An optional name for this staff. If provided, this should be rendered to the left of the staff.\r\n\r\nGenerally we recommend using \"labelref\" instead of \"label\", to avoid duplication of data within an MNX document." } }, { "model": "spec.jsonobjectrelationship", "pk": 154, "fields": { "parent": 114, "child_key": "labelref", "child": 92, "is_required": false, "description": "If provided, this specifies that the corresponding part's name (or short-name) should be rendered to the left of the staff.\r\n\r\nBy using this instead of the \"label\" attribute, you can avoid needing to duplicate a part's name in an MNX document." } }, { "model": "spec.jsonobjectrelationship", "pk": 155, "fields": { "parent": 114, "child_key": "sources", "child": 93, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 156, "fields": { "parent": 114, "child_key": "type", "child": 91, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 157, "fields": { "parent": 114, "child_key": "symbol", "child": 89, "is_required": false, "description": "The symbol to use along the left vertical edge of this staff. If omitted, the default value is \"none\".\r\n\r\nNote that parent objects might also define their own \"symbol\" attributes." } }, { "model": "spec.jsonobjectrelationship", "pk": 158, "fields": { "parent": 85, "child_key": "1", "child": 114, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 159, "fields": { "parent": 53, "child_key": "orient", "child": 115, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 160, "fields": { "parent": 53, "child_key": "staff", "child": 105, "is_required": false, "description": "The staff index to which this octave shift applies, if such a designation makes sense. If not provided, the value is inherited from any sequence ancestor that specified it. If no ancestor did so, the consuming software should determine the value automatically according to its own logic." } }, { "model": "spec.jsonobjectrelationship", "pk": 161, "fields": { "parent": 6, "child_key": "index", "child": 84, "is_required": false, "description": "The one-based index of this measure within the document's score order. The default value is 1 for the first measure in \"global\". For all other measures, the default value is the value of the previous measure plus 1.\r\n\r\nThis is used within the MNX document in cases when content needs to refer to a specific measure." } }, { "model": "spec.jsonobjectrelationship", "pk": 162, "fields": { "parent": 6, "child_key": "number", "child": 84, "is_required": false, "description": "A visual label for the measure. It is not required to be unique in the document. If omitted, its value is the same as \"index\"." } }, { "model": "spec.jsonobjectrelationship", "pk": 163, "fields": { "parent": 117, "child_key": "type", "child": 116, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 164, "fields": { "parent": 117, "child_key": "duration", "child": 51, "is_required": true, "description": "The metrical duration of this space.\r\n\r\nNote that, in contrast to the event's \"value\", this duration attribute is not constrained to a single note value, but may be a multiple of one." } }, { "model": "spec.jsonobjectrelationship", "pk": 165, "fields": { "parent": 25, "child_key": "4", "child": 117, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 166, "fields": { "parent": 31, "child_key": "staff", "child": 105, "is_required": false, "description": "A specific staff index for this note. If not provided, the value is inherited from any ancestor element that specified it. If no ancestor did so, the value is determined automatically according to the implementation’s rendering rules.\r\n\r\nThe primary purpose of this attribute is to override a default staff assignment at the sequence or event level — as in cross-staff keyboard notation." } }, { "model": "spec.jsonobjectrelationship", "pk": 167, "fields": { "parent": 31, "child_key": "smufl-font", "child": 118, "is_required": false, "description": "The SMuFL-compliant font to be used when rendering this note.\r\n\r\nThe primary purpose of this attribute is to override a global font assignment." } }, { "model": "spec.jsonobjectrelationship", "pk": 168, "fields": { "parent": 31, "child_key": "perform", "child": 119, "is_required": false, "description": "Controls whether this note is performed by consuming software." } }, { "model": "spec.jsonobjectrelationship", "pk": 169, "fields": { "parent": 58, "child_key": "line-type", "child": 120, "is_required": false, "description": "The slur's line type. If not provided, the consuming software should determine the value automatically according to its own logic." } }, { "model": "spec.jsonobjectrelationship", "pk": 170, "fields": { "parent": 58, "child_key": "side-end", "child": 59, "is_required": false, "description": "The slur’s side at the end of the slur, in cases where it differs from its initial side — for example, in cross-staff notation. If not provided, it's interpreted to have the same value as \"side\"." } }, { "model": "spec.jsonobjectrelationship", "pk": 171, "fields": { "parent": 11, "child_key": "class", "child": 108, "is_required": false, "description": "An optional style class to use for this object." } }, { "model": "spec.jsonobjectrelationship", "pk": 172, "fields": { "parent": 11, "child_key": "color", "child": 9, "is_required": false, "description": "An optional color to be used when rendering this key signature." } }, { "model": "spec.jsonobjectrelationship", "pk": 173, "fields": { "parent": 14, "child_key": "smufl-font", "child": 118, "is_required": false, "description": "The SMuFL-compliant font to be used to render notational objects in this part. Can be overridden by certain child elements." } }, { "model": "spec.jsonobjectrelationship", "pk": 174, "fields": { "parent": 35, "child_key": "staffPosition", "child": 143, "is_required": false, "description": "If provided, this specifies the vertical position of the rest on the staff. If not provided, the rest should be positioned automatically according to convention.\r\n\r\nThis vertical position is the \"origin point\" from which the rest symbol's SMuFL glyph is drawn. For example, a quarter rest is drawn from its vertical midpoint. See the SMuFL rests documentation for more." } }, { "model": "spec.jsonobjectrelationship", "pk": 175, "fields": { "parent": 36, "child_key": "location", "child": 60, "is_required": false, "description": "The value of location may lie either before or after the tie’s event, or it may use the special values \"incoming\" or \"outgoing\". The handling is as follows:\r\n\r\n* If the location precedes the start of the current event, this signifies a tie starting at the given location and ending on the current note.\r\n\r\n* If the location occurs after the start of the current event, this signifies a tie starting at the current note and ending at the given location.\r\n\r\n* A value of \"incoming\" places the start location at a conventionally short distance before the current note, and ends on the current note.\r\n\r\n* A value of \"outgoing\" starts on the current note, and places the end location at a conventionally short distance after the current note.\r\n\r\nIf neither target nor location is given, the effect is as if location=\"outgoing\" was specified." } }, { "model": "spec.jsonobjectrelationship", "pk": 176, "fields": { "parent": 49, "child_key": "orient", "child": 115, "is_required": false, "description": "A specific orientation for this tuplet. If not provided, the orientation is inherited from any ancestor element that specified it. If no ancestor did so, the orientation is determined automatically according to the implementation’s rendering rules." } }, { "model": "spec.jsonobjectrelationship", "pk": 177, "fields": { "parent": 49, "child_key": "staff", "child": 105, "is_required": false, "description": "A specific staff index for this tuplet. If not provided, the value is inherited from any ancestor element that specified it. If no ancestor did so, the value is determined automatically according to the implementation’s rendering rules.\r\n\r\nThe primary purpose of this attribute is to override a default staff assignment at the sequence level — as in cross-staff keyboard notation." } }, { "model": "spec.jsonobjectrelationship", "pk": 178, "fields": { "parent": 49, "child_key": "show-number", "child": 121, "is_required": false, "description": "Controls the display of the quantity of inner and outer note value units for the tuplet.\r\n\r\n* \"none\" — do not show any tuplet number.\r\n\r\n* \"inner\" (default) — display only the numerator of the tuplet's \"inner\" attribute.\r\n\r\n* \"both\" — display both the numerators of the tuplet's \"inner\" and \"outer\" attributes." } }, { "model": "spec.jsonobjectrelationship", "pk": 179, "fields": { "parent": 49, "child_key": "show-value", "child": 121, "is_required": false, "description": "Controls the display of the note value units used inside and outside the tuplet.\r\n\r\n* \"none\" (default) — do not show any tuplet units.\r\n\r\n* \"inner\" — display only the note value unit of the tuplet’s \"inner\" attribute.\r\n\r\n* \"both\" — display both the note value units of the tuplet's \"inner\" and \"outer\" attributes." } }, { "model": "spec.jsonobjectrelationship", "pk": 180, "fields": { "parent": 49, "child_key": "bracket", "child": 122, "is_required": false, "description": "Controls the display of a bracket in conjunction with the tuplet. This is disregarded if \"show-number\" has a value of \"none\".\r\n\r\n* \"auto\" (default) — a bracket is shown for the tuplet if and only if the notes are unbeamed.\r\n\r\n* \"yes\" — always display a bracket.\r\n\r\n* \"no\" — never display a bracket." } }, { "model": "spec.jsonobjectrelationship", "pk": 181, "fields": { "parent": 26, "child_key": "stem-direction", "child": 95, "is_required": false, "description": "Whether the stem of the note(s) in this event is up or down. If not provided, this is left to consuming software to decide automatically." } }, { "model": "spec.jsonobjectrelationship", "pk": 182, "fields": { "parent": 26, "child_key": "measure", "child": 112, "is_required": false, "description": "Whether this event is a whole-measure event — meaning its duration lasts the entire measure. This is used, for example, for rests that last an entire measure.\r\n\r\nIf this value is set to true, then this event may not specify \"value\" and this event must either be empty or contain exactly one rest." } }, { "model": "spec.jsonobjectrelationship", "pk": 183, "fields": { "parent": 26, "child_key": "orient", "child": 115, "is_required": false, "description": "A specific orientation for this event. If not provided, the orientation is inherited from any ancestor element that specified it. If no ancestor did so, the orientation is determined automatically according to the implementation’s rendering rules." } }, { "model": "spec.jsonobjectrelationship", "pk": 184, "fields": { "parent": 26, "child_key": "staff", "child": 105, "is_required": false, "description": "A specific staff index for this event. If not provided, the value is inherited from any ancestor element that specified it. If no ancestor did so, the value is determined automatically according to the implementation’s rendering rules.\r\n\r\nThe primary purpose of this attribute is to override a default staff assignment at the sequence level — as in cross-staff keyboard notation." } }, { "model": "spec.jsonobjectrelationship", "pk": 186, "fields": { "parent": 26, "child_key": "smufl-font", "child": 118, "is_required": false, "description": "The SMuFL-compliant font to be used when rendering this event.\r\n\r\nThe primary purpose of this attribute is to override a global font assignment." } }, { "model": "spec.jsonobjectrelationship", "pk": 187, "fields": { "parent": 20, "child_key": "orient", "child": 115, "is_required": false, "description": "The default orientation of the content in this sequence. If not provided, the orientation is determined automatically according to the implementation’s rendering rules and may be overridden by descendant elements." } }, { "model": "spec.jsonobjectrelationship", "pk": 188, "fields": { "parent": 125, "child_key": "type", "child": 123, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 189, "fields": { "parent": 125, "child_key": "value", "child": 124, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 190, "fields": { "parent": 125, "child_key": "glyph", "child": 106, "is_required": false, "description": "A specific SMuFL glyph name to be used when rendering this dynamic." } }, { "model": "spec.jsonobjectrelationship", "pk": 191, "fields": { "parent": 25, "child_key": "5", "child": 125, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 192, "fields": { "parent": 3, "child_key": "mnx", "child": 126, "is_required": true, "description": "This required object serves two purposes:\r\n\r\n1. It provides a way for consuming applications to quickly test whether a document is intended to be parsed as MNX. Consuming applications should check the top-level object for the presence of an \"mnx\" key.\r\n\r\n2. It provides metadata about the specific MNX implementation used (namely, the version number)." } }, { "model": "spec.jsonobjectrelationship", "pk": 193, "fields": { "parent": 126, "child_key": "version", "child": 127, "is_required": true, "description": "The MNX version number, as an integer.\r\n\r\nMNX uses simple integers for version numbers, as opposed to strings or multi-part version numbers (\"3.1\"). Each release of MNX increments the version number.\r\n\r\nBecause MNX aims to be backward compatible — i.e., an older MNX version should always be openable by future software — version numbers are mostly useful for determining which new MNX features are available." } }, { "model": "spec.jsonobjectrelationship", "pk": 194, "fields": { "parent": 13, "child_key": "count", "child": 128, "is_required": true, "description": "The number of beats. Generally this corresponds to the top number of the rendered time signature." } }, { "model": "spec.jsonobjectrelationship", "pk": 195, "fields": { "parent": 13, "child_key": "unit", "child": 129, "is_required": true, "description": "The unit value. Generally this corresponds to the bottom number of the rendered time signature." } }, { "model": "spec.jsonobjectrelationship", "pk": 196, "fields": { "parent": 131, "child_key": "base", "child": 130, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 197, "fields": { "parent": 131, "child_key": "dots", "child": 128, "is_required": false, "description": "Number of augmentation dots. If not specified, this value is assumed to be 0. Though MNX has no limit on number of dots encoded, we advise software implementations not to worry about supporting more than 5." } }, { "model": "spec.jsonobjectrelationship", "pk": 198, "fields": { "parent": 51, "child_key": "multiple", "child": 128, "is_required": true, "description": "The integer multiple." } }, { "model": "spec.jsonobjectrelationship", "pk": 199, "fields": { "parent": 51, "child_key": "duration", "child": 131, "is_required": true, "description": "The base note value to be multiplied." } }, { "model": "spec.jsonobjectrelationship", "pk": 200, "fields": { "parent": 30, "child_key": "step", "child": 132, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 201, "fields": { "parent": 30, "child_key": "octave", "child": 133, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 202, "fields": { "parent": 30, "child_key": "alter", "child": 134, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 203, "fields": { "parent": 94, "child_key": "staff", "child": 105, "is_required": false, "description": "Optional staff within the given part. This allows you to choose which staff to use from a multi-staff part." } }, { "model": "spec.jsonobjectrelationship", "pk": 204, "fields": { "parent": 94, "child_key": "label", "child": 90, "is_required": false, "description": "An optional name for this source's part of the staff. If provided, this should be rendered to the left of the staff, vertically aligned to communicate the label is for this particular source (as opposed to other sources in the same staff).\r\n\r\nThis should only be used in cases where a single staff is sourced from more than one staff source and you want to more than one label for that staff. Otherwise, use a label on the staff object instead." } }, { "model": "spec.jsonobjectrelationship", "pk": 205, "fields": { "parent": 94, "child_key": "labelref", "child": 92, "is_required": false, "description": "If provided, this specifies that the corresponding part's name (or short-name) should be rendered to the left of the staff. See the documentation for \"label\".\r\n\r\nBy using this instead of the \"label\" attribute, you can avoid needing to duplicate a part's name in an MNX document." } }, { "model": "spec.jsonobjectrelationship", "pk": 206, "fields": { "parent": 31, "child_key": "class", "child": 108, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 207, "fields": { "parent": 31, "child_key": "accidentalDisplay", "child": 135, "is_required": false, "description": "Information about the displayed accidental for this note. This is required for any note that has a displayed accidental." } }, { "model": "spec.jsonobjectrelationship", "pk": 208, "fields": { "parent": 135, "child_key": "show", "child": 112, "is_required": true, "description": "Whether the accidental is to be displayed." } }, { "model": "spec.jsonobjectrelationship", "pk": 209, "fields": { "parent": 135, "child_key": "editorial", "child": 112, "is_required": false, "description": "Whether the accidental is considered an editorial marking (traditionally rendered in square brackets). Default is false." } }, { "model": "spec.jsonobjectrelationship", "pk": 210, "fields": { "parent": 135, "child_key": "cautionary", "child": 112, "is_required": false, "description": "Whether the accidental is considered cautionary (traditionally rendered in parentheses). Default is false." } }, { "model": "spec.jsonobjectrelationship", "pk": 211, "fields": { "parent": 136, "child_key": "0", "child": 139, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 212, "fields": { "parent": 137, "child_key": "0", "child": 20, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 213, "fields": { "parent": 16, "child_key": "clefs", "child": 136, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 215, "fields": { "parent": 16, "child_key": "sequences", "child": 137, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 216, "fields": { "parent": 139, "child_key": "clef", "child": 19, "is_required": true, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 218, "fields": { "parent": 139, "child_key": "position", "child": 140, "is_required": false, "description": "If this position isn't provided, the clef's position is assumed to be the start of the bar." } }, { "model": "spec.jsonobjectrelationship", "pk": 219, "fields": { "parent": 140, "child_key": "fraction", "child": 141, "is_required": true, "description": "The rhythmic position, as a fraction. For example, \"the position a quarter note's duration into a bar\" would be encoded as [1, 4]." } }, { "model": "spec.jsonobjectrelationship", "pk": 220, "fields": { "parent": 140, "child_key": "graceIndex", "child": 142, "is_required": false, "description": "This allows targeting of grace notes. Given that a grace note has the same rhythmic position as its target (non-grace) note, it's necessary to provide a way to distinguish between a target note and a grace note. And in the case of multiple grace notes, it's necessary to provide a way to target a specific one of them.\r\n\r\nThe graceIndex value is a non-negative integer that counts \"backwards\" from the target note. The target note gets graceIndex=0. The right-most grace note gets graceIndex=1. Then, going leftward from the right-most grace note, the graceIndex increments by 1 for each additional grace note.\r\n\r\nIf graceIndex isn't specified, the position should be interpreted as before all grace notes." } }, { "model": "spec.jsonobjectrelationship", "pk": 221, "fields": { "parent": 141, "child_key": "0", "child": 142, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 222, "fields": { "parent": 26, "child_key": "markings", "child": 144, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 223, "fields": { "parent": 144, "child_key": "staccato", "child": 145, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 224, "fields": { "parent": 144, "child_key": "accent", "child": 146, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 225, "fields": { "parent": 144, "child_key": "strongAccent", "child": 147, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 226, "fields": { "parent": 144, "child_key": "tenuto", "child": 148, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 227, "fields": { "parent": 144, "child_key": "staccatissimo", "child": 149, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 228, "fields": { "parent": 144, "child_key": "spiccato", "child": 150, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 229, "fields": { "parent": 144, "child_key": "breath", "child": 152, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 230, "fields": { "parent": 144, "child_key": "stress", "child": 153, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 231, "fields": { "parent": 144, "child_key": "unstress", "child": 154, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 232, "fields": { "parent": 144, "child_key": "softAccent", "child": 155, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 233, "fields": { "parent": 144, "child_key": "tremolo", "child": 156, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectrelationship", "pk": 234, "fields": { "parent": 156, "child_key": "marks", "child": 128, "is_required": true, "description": "The number of marks to use in this tremolo. Must be between 0 and 8, inclusive." } }, { "model": "spec.jsonobjectrelationship", "pk": 235, "fields": { "parent": 146, "child_key": "pointing", "child": 157, "is_required": false, "description": "Specifies whether this accent should point upward or downward. If not provided, consuming applications should use their own automatic algorithms to determine this." } }, { "model": "spec.jsonobjectrelationship", "pk": 236, "fields": { "parent": 147, "child_key": "pointing", "child": 157, "is_required": false, "description": "Specifies whether this accent should point upward or downward. If not provided, consuming applications should use their own automatic algorithms to determine this." } }, { "model": "spec.jsonobjectrelationship", "pk": 237, "fields": { "parent": 152, "child_key": "symbol", "child": 158, "is_required": false, "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 1, "fields": { "parent": 111, "name": "make-time", "description": "The run of grace notes delays the onset of the next non-grace event." } }, { "model": "spec.jsonobjectenum", "pk": 2, "fields": { "parent": 111, "name": "steal-following", "description": "The run of grace notes occupies a time interval starting at the expected onset of the next non-grace event, both delaying its onset and shortening its duration." } }, { "model": "spec.jsonobjectenum", "pk": 3, "fields": { "parent": 111, "name": "steal-previous", "description": "The run of grace notes occupies a time interval that ends before the expected onset of the next non-grace event, shortening the duration of the preceding non-grace event." } }, { "model": "spec.jsonobjectenum", "pk": 4, "fields": { "parent": 43, "name": "left", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 5, "fields": { "parent": 43, "name": "right", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 6, "fields": { "parent": 22, "name": "C", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 7, "fields": { "parent": 22, "name": "F", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 8, "fields": { "parent": 22, "name": "G", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 9, "fields": { "parent": 71, "name": "dsalfine", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 10, "fields": { "parent": 71, "name": "segno", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 11, "fields": { "parent": 132, "name": "A", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 12, "fields": { "parent": 132, "name": "B", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 13, "fields": { "parent": 132, "name": "C", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 14, "fields": { "parent": 132, "name": "D", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 15, "fields": { "parent": 132, "name": "E", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 16, "fields": { "parent": 132, "name": "F", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 17, "fields": { "parent": 132, "name": "G", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 18, "fields": { "parent": 130, "name": "duplexMaxima", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 19, "fields": { "parent": 130, "name": "maxima", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 20, "fields": { "parent": 130, "name": "longa", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 21, "fields": { "parent": 130, "name": "breve", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 22, "fields": { "parent": 130, "name": "whole", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 23, "fields": { "parent": 130, "name": "half", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 24, "fields": { "parent": 130, "name": "quarter", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 25, "fields": { "parent": 130, "name": "eighth", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 26, "fields": { "parent": 130, "name": "16th", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 27, "fields": { "parent": 130, "name": "32nd", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 28, "fields": { "parent": 130, "name": "64th", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 29, "fields": { "parent": 130, "name": "128th", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 30, "fields": { "parent": 130, "name": "256th", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 31, "fields": { "parent": 130, "name": "512th", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 32, "fields": { "parent": 130, "name": "1024th", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 33, "fields": { "parent": 130, "name": "2048th", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 34, "fields": { "parent": 130, "name": "4096th", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 35, "fields": { "parent": 59, "name": "up", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 36, "fields": { "parent": 59, "name": "down", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 37, "fields": { "parent": 89, "name": "bracket", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 38, "fields": { "parent": 89, "name": "brace", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 39, "fields": { "parent": 95, "name": "up", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 40, "fields": { "parent": 95, "name": "down", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 41, "fields": { "parent": 157, "name": "up", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 42, "fields": { "parent": 157, "name": "down", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 43, "fields": { "parent": 122, "name": "yes", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 44, "fields": { "parent": 122, "name": "no", "description": "" } }, { "model": "spec.jsonobjectenum", "pk": 45, "fields": { "parent": 122, "name": "auto", "description": "" } }, { "model": "spec.exampledocument", "pk": 1, "fields": { "name": "“Hello world”", "slug": "hello-world", "schema": 1, "blurb": "This basic MNX document contains a single middle C whole note, on a treble clef staff, in 4/4 time.", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"barline\": {\"type\": \"regular\"},\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 4}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/hello-world.png", "is_featured": true } }, { "model": "spec.exampledocument", "pk": 2, "fields": { "name": "Two-bar C major scale", "slug": "two-bar-c-major-scale", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n },\r\n {\r\n \"barline\": {\"type\": \"regular\"}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 4}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"A\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"B\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/two-bar-c-major-scale.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 3, "fields": { "name": "Three-note chord and half rest", "slug": "three-note-chord-and-half-rest", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"barline\": {\"type\": \"regular\"},\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 4}},\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 4}},\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"rest\": {}\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/three-note-chord-and-half-rest.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 4, "fields": { "name": "Time signatures", "slug": "time-signatures", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n },\r\n {},\r\n {\r\n \"time\": {\"count\": 2, \"unit\": 4}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"B\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/time-signatures.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 5, "fields": { "name": "Key signatures", "slug": "key-signatures", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"key\": {\"fifths\": 4},\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n },\r\n {},\r\n {\r\n \"key\": {\"fifths\": -4}\r\n },\r\n {}\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5, \"alter\": 1}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 5, \"alter\": 1}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 5, \"alter\": 1}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"A\", \"octave\": 4, \"alter\": -1}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"B\", \"octave\": 4, \"alter\": -1}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"A\", \"octave\": 4, \"alter\": -1}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/key-signatures.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 6, "fields": { "name": "Accidentals", "slug": "accidentals", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"key\": {\"fifths\": -2},\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n },\r\n {},\r\n {}\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\r\n \"pitch\": {\"step\": \"G\", \"octave\": 4, \"alter\": 1},\r\n \"accidentalDisplay\": {\"show\": true}\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"A\", \"octave\": 4}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"B\", \"octave\": 4, \"alter\": -1}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\r\n \"pitch\": {\"step\": \"D\", \"octave\": 5, \"alter\": -1},\r\n \"accidentalDisplay\": {\"show\": true}\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5, \"alter\": -1}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\r\n \"pitch\": {\"step\": \"D\", \"octave\": 5},\r\n \"accidentalDisplay\": {\"show\": true}\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/accidentals.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 7, "fields": { "name": "Dotted notes (augmentation dots)", "slug": "dotted-notes", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\", \"dots\": 1},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}},\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\", \"dots\": 1},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 4}},\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/dotted-notes.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 8, "fields": { "name": "Ties", "slug": "ties", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n },\r\n {}\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}, \"tie\": {\"target\": \"note3\"}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}, \"id\": \"note3\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}, \"tie\": {\"target\": \"note5\"}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}, \"id\": \"note5\", \"tie\": {\"target\": \"note6\"}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}, \"id\": \"note6\"}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/ties.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 9, "fields": { "name": "Beams", "slug": "beams", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n },\r\n {}\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"beams\": [\r\n {\"events\": [\"ev1\", \"ev2\", \"ev3\", \"ev4\"]},\r\n {\"events\": [\"ev5\", \"ev6\", \"ev7\", \"ev8\"]}\r\n ],\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev1\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev2\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev3\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev4\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev5\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev6\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev7\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev8\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"beams\": [\r\n {\r\n \"events\": [\"ev9\", \"ev10\", \"ev11\", \"ev12\", \"ev13\"],\r\n \"inner\": [\r\n {\"events\": [\"ev11\", \"ev12\"]}\r\n ]\r\n },\r\n {\"events\": [\"ev15\", \"ev15\"]}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev9\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev10\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"rest\": {}\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev11\",\r\n \"duration\": {\"base\": \"16th\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev12\",\r\n \"duration\": {\"base\": \"16th\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev13\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev14\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev15\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 4}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/beams.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 10, "fields": { "name": "Beams (secondary beam breaks)", "slug": "beams-secondary-beam-breaks", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"beams\": [\r\n {\r\n \"events\": [\"ev1\", \"ev2\", \"ev3\", \"ev4\", \"ev5\", \"ev6\", \"ev7\", \"ev8\"],\r\n \"inner\": [\r\n {\r\n \"events\": [\"ev1\", \"ev2\", \"ev3\", \"ev4\"],\r\n \"inner\": [{\r\n \"events\": [\"ev1\", \"ev2\", \"ev3\", \"ev4\"]\r\n }]\r\n },\r\n {\r\n \"events\": [\"ev5\", \"ev6\", \"ev7\", \"ev8\"],\r\n \"inner\": [{\r\n \"events\": [\"ev5\", \"ev6\", \"ev7\", \"ev8\"]\r\n }]\r\n }\r\n ]\r\n },\r\n {\r\n \"events\": [\"ev9\", \"ev10\", \"ev11\", \"ev12\", \"ev13\", \"ev14\", \"ev15\", \"ev16\"],\r\n \"inner\": [\r\n {\r\n \"events\": [\"ev9\", \"ev10\", \"ev11\", \"ev12\"],\r\n \"inner\": [\r\n {\"events\": [\"ev9\", \"ev10\"]},\r\n {\"events\": [\"ev11\", \"ev12\"]}\r\n ]\r\n },\r\n {\r\n \"events\": [\"ev13\", \"ev14\", \"ev15\", \"ev16\"],\r\n \"inner\": [\r\n {\"events\": [\"ev13\", \"ev14\"]},\r\n {\"events\": [\"ev15\", \"ev16\"]}\r\n ]\r\n }\r\n ]\r\n }\r\n ],\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev1\",\r\n \"duration\": {\"base\": \"32nd\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev2\",\r\n \"duration\": {\"base\": \"32nd\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev3\",\r\n \"duration\": {\"base\": \"32nd\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev4\",\r\n \"duration\": {\"base\": \"32nd\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev5\",\r\n \"duration\": {\"base\": \"32nd\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev6\",\r\n \"duration\": {\"base\": \"32nd\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev7\",\r\n \"duration\": {\"base\": \"32nd\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev8\",\r\n \"duration\": {\"base\": \"32nd\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev9\",\r\n \"duration\": {\"base\": \"32nd\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev10\",\r\n \"duration\": {\"base\": \"32nd\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev11\",\r\n \"duration\": {\"base\": \"32nd\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev12\",\r\n \"duration\": {\"base\": \"32nd\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev13\",\r\n \"duration\": {\"base\": \"32nd\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev14\",\r\n \"duration\": {\"base\": \"32nd\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev15\",\r\n \"duration\": {\"base\": \"32nd\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev16\",\r\n \"duration\": {\"base\": \"32nd\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"rest\": {}\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/beams-secondary-beam-breaks.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 11, "fields": { "name": "Beams (hooks)", "slug": "beam-hooks", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"beams\": [\r\n {\r\n \"events\": [\"ev1\", \"ev2\", \"ev3\"],\r\n \"hooks\": [\r\n {\"direction\": \"right\", \"event\": \"ev1\"},\r\n {\"direction\": \"left\", \"event\": \"ev3\"}\r\n ]\r\n },\r\n {\r\n \"events\": [\"ev4\", \"ev5\", \"ev6\"],\r\n \"hooks\": [\r\n {\"direction\": \"right\", \"event\": \"ev4\"},\r\n {\"direction\": \"left\", \"event\": \"ev6\"}\r\n ]\r\n },\r\n {\r\n \"events\": [\"ev7\", \"ev8\", \"ev9\"],\r\n \"hooks\": [\r\n {\"direction\": \"right\", \"event\": \"ev7\"},\r\n {\"direction\": \"left\", \"event\": \"ev9\"}\r\n ]\r\n }\r\n ],\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev1\",\r\n \"duration\": {\"base\": \"16th\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev2\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev3\",\r\n \"duration\": {\"base\": \"16th\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev4\",\r\n \"duration\": {\"base\": \"16th\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev5\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev6\",\r\n \"duration\": {\"base\": \"16th\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev7\",\r\n \"duration\": {\"base\": \"16th\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev8\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"A\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev9\",\r\n \"duration\": {\"base\": \"16th\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 6}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/beam-hooks.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 12, "fields": { "name": "Beams (with inner grace notes)", "slug": "beams-inner-grace-notes", "schema": 1, "blurb": "", "document": "{\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\r\n \"count\": 4,\r\n \"unit\": 4\r\n }\r\n }\r\n ]\r\n },\r\n \"mnx\": {\r\n \"version\": 1\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"beams\": [\r\n {\r\n \"events\": [\r\n \"ev1\",\r\n \"ev3\",\r\n \"ev4\",\r\n \"ev5\"\r\n ]\r\n }\r\n ],\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"id\": \"ev1\",\r\n \"type\": \"event\",\r\n \"duration\": {\r\n \"base\": \"eighth\"\r\n },\r\n \"notes\": [\r\n {\r\n \"pitch\": {\r\n \"octave\": 5,\r\n \"step\": \"C\"\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"grace\",\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\r\n \"base\": \"eighth\"\r\n },\r\n \"notes\": [\r\n {\r\n \"pitch\": {\r\n \"octave\": 4,\r\n \"step\": \"B\"\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev3\",\r\n \"duration\": {\r\n \"base\": \"eighth\"\r\n },\r\n \"notes\": [\r\n {\r\n \"pitch\": {\r\n \"octave\": 5,\r\n \"step\": \"D\"\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev4\",\r\n \"duration\": {\r\n \"base\": \"eighth\"\r\n },\r\n \"notes\": [\r\n {\r\n \"pitch\": {\r\n \"octave\": 5,\r\n \"step\": \"E\"\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev5\",\r\n \"duration\": {\r\n \"base\": \"eighth\"\r\n },\r\n \"notes\": [\r\n {\r\n \"pitch\": {\r\n \"octave\": 5,\r\n \"step\": \"F\"\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\r\n \"base\": \"half\"\r\n },\r\n \"rest\": {}\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/beams-inner-grace-notes.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 13, "fields": { "name": "Beams (across barlines)", "slug": "beams-across-barlines", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n },\r\n {}\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"beams\": [\r\n {\r\n \"events\": [\"ev3\", \"ev4\", \"ev5\", \"ev6\"]\r\n }\r\n ],\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"rest\": {}\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"rest\": {}\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev3\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev4\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev5\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev6\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"rest\": {}\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"rest\": {}\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/beams-across-barlines.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 14, "fields": { "name": "Tuplets", "slug": "tuplets", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n },\r\n {}\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"beams\": [\r\n {\r\n \"events\": [\"ev3\", \"ev4\", \"ev5\"]\r\n }\r\n ],\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"tuplet\",\r\n \"inner\": {\"multiple\": 3, \"duration\": {\"base\": \"eighth\"}},\r\n \"outer\": {\"multiple\": 2, \"duration\": {\"base\": \"eighth\"}},\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"tuplet\",\r\n \"inner\": {\"multiple\": 3, \"duration\": {\"base\": \"eighth\"}},\r\n \"outer\": {\"multiple\": 2, \"duration\": {\"base\": \"eighth\"}},\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev3\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev4\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev5\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"tuplet\",\r\n \"inner\": {\"multiple\": 6, \"duration\": {\"base\": \"quarter\"}},\r\n \"outer\": {\"multiple\": 4, \"duration\": {\"base\": \"quarter\"}},\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/tuplets.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 15, "fields": { "name": "Multiple voices", "slug": "multiple-voices", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n },\r\n {}\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 3}}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"B\", \"octave\": 4}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 4}}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 6}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/multiple-voices.png", "is_featured": true } }, { "model": "spec.exampledocument", "pk": 16, "fields": { "name": "Octave shifts (8va)", "slug": "octave-shifts-8va", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n },\r\n {}\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"octave-shift\",\r\n \"value\": -8,\r\n \"end\": \"2:1/2\"\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 7}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 7}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 7}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 6}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/octave-shifts-8va.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 17, "fields": { "name": "Slurs", "slug": "slurs", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n },\r\n {}\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev1\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ],\r\n \"slurs\": [\r\n {\"side\": \"up\", \"target\": \"ev4\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev2\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev3\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev4\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev5\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}}\r\n ],\r\n \"slurs\": [\r\n {\"side\": \"down\", \"target\": \"ev8\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev6\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"A\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev7\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev8\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 4}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/slurs.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 18, "fields": { "name": "Slurs (for chords)", "slug": "slurs-chords", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev1\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}},\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ],\r\n \"slurs\": [\r\n {\"side\": \"up\", \"target\": \"ev4\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev2\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}},\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev3\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}},\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev4\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}},\r\n {\"pitch\": {\"step\": \"A\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/slurs-chords.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 19, "fields": { "name": "Slurs (targeting specific notes)", "slug": "slurs-targeting-specific-notes", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev1\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}, \"id\": \"note1\"},\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}, \"id\": \"note2\"},\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 5}, \"id\": \"note3\"}\r\n ],\r\n \"slurs\": [\r\n {\"side\": \"down\", \"target\": \"ev2\", \"start-note\": \"note1\", \"end-note\": \"note4\"},\r\n {\"side\": \"up\", \"target\": \"ev2\", \"start-note\": \"note2\", \"end-note\": \"note5\"},\r\n {\"side\": \"up\", \"target\": \"ev2\", \"start-note\": \"note3\", \"end-note\": \"note6\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev2\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"B\", \"octave\": 4}, \"id\": \"note4\"},\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}, \"id\": \"note5\"},\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}, \"id\": \"note6\"}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/slurs-targeting-specific-notes.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 20, "fields": { "name": "Slurs (incomplete slurs)", "slug": "slurs-incomplete-slurs", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ],\r\n \"slurs\": [\r\n {\"side\": \"up\", \"location\": \"outgoing\"}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/slurs-incomplete-slurs.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 21, "fields": { "name": "Parts", "slug": "parts", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n },\r\n {}\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"name\": \"Melody\",\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"name\": \"Harmony\",\r\n \"measures\": [\r\n {\r\n \"beams\": [\r\n {\"events\": [\"ev6\", \"ev7\", \"ev8\", \"ev9\"]}\r\n ],\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"rest\": {}\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev6\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev7\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev8\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ev9\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"rest\": {}\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/parts.png", "is_featured": true } }, { "model": "spec.exampledocument", "pk": 22, "fields": { "name": "Repeats", "slug": "repeats", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4},\r\n \"repeat-start\": {},\r\n \"repeat-end\": {}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/repeats.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 23, "fields": { "name": "Repeats (with implied start repeat)", "slug": "repeats-implied-start-repeat", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4},\r\n \"repeat-end\": {}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/repeats-implied-start-repeat.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 24, "fields": { "name": "Repeats (more than once repeated)", "slug": "repeats-more-once-repeated", "schema": 1, "blurb": "In this example, the measure is to be performed four times (or “repeated three times,” depending on your perspective).", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4},\r\n \"repeat-end\": {\"times\": 4}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/repeats-more-once-repeated.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 25, "fields": { "name": "Repeats (with alternate endings, simple)", "slug": "repeats-alternate-endings-simple", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4},\r\n \"repeat-start\": {}\r\n },\r\n {\r\n \"repeat-end\": {},\r\n \"ending\": {\"numbers\": [1], \"duration\": 1}\r\n },\r\n {\r\n \"repeat-end\": {},\r\n \"ending\": {\"numbers\": [2], \"duration\": 1}\r\n },\r\n {\r\n \"ending\": {\"numbers\": [3], \"duration\": 1, \"open\": true}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/repeats-alternate-endings-simple.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 26, "fields": { "name": "Repeats (with alternate endings, advanced)", "slug": "repeats-alternate-endings-advanced", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 3, \"unit\": 4},\r\n \"repeat-start\": {}\r\n },\r\n {\r\n \"ending\": {\"numbers\": [1, 2], \"duration\": 2}\r\n },\r\n {\r\n \"repeat-end\": {}\r\n },\r\n {\r\n \"ending\": {\"numbers\": [3], \"duration\": 2, \"open\": true}\r\n },\r\n {},\r\n {}\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\", \"dots\": 1},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\", \"dots\": 1},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\", \"dots\": 1},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\", \"dots\": 1},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/repeats-alternate-endings-advanced.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 27, "fields": { "name": "Jumps (Dal Segno)", "slug": "jumps-dal-segno", "schema": 1, "blurb": "In this example, the bars are to be performed in this order: 1, 2, 3, 4, 5, 2, 3, 4, 5.", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n },\r\n {\r\n \"segno\": {\"location\": \"0\"}\r\n },\r\n {},\r\n {},\r\n {\r\n \"jump\": {\"type\": \"segno\", \"location\": \"1\"}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/jumps-dal-segno.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 28, "fields": { "name": "Jumps (D.S. al Fine)", "slug": "jumps-ds-al-fine", "schema": 1, "blurb": "In this example, the bars are to be performed in this order: 1, 2, 3, 4, 5, 2, 3.", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n },\r\n {\r\n \"segno\": {\"location\": \"0\"}\r\n },\r\n {\r\n \"fine\": {\"location\": \"1\"}\r\n },\r\n {},\r\n {\r\n \"jump\": {\"type\": \"dsalfine\", \"location\": \"1\"}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/jumps-ds-al-fine.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 29, "fields": { "name": "Grace note", "slug": "grace-note", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"grace\",\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"B\", \"octave\": 4}}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"whole\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/grace-note.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 30, "fields": { "name": "System layouts", "slug": "system-layouts", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {},\r\n \"parts\": [\r\n {\"name\": \"Flute 1\", \"id\": \"fl1\", \"short-name\": \"1\"},\r\n {\"name\": \"Flute 2\", \"id\": \"fl2\", \"short-name\": \"2\"},\r\n {\"name\": \"Flute 3\", \"id\": \"fl3\", \"short-name\": \"3\"},\r\n {\"name\": \"Oboe 1\", \"id\": \"ob1\", \"short-name\": \"1\"},\r\n {\"name\": \"Oboe 2\", \"id\": \"ob2\", \"short-name\": \"2\"},\r\n {\"name\": \"Piano\", \"id\": \"piano\", \"staves\": 2}\r\n ],\r\n \"layouts\": [\r\n {\r\n \"id\": \"layout1\",\r\n \"content\": [\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"bracket\",\r\n \"content\": [\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"brace\",\r\n \"label\": \"Flutes\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [\r\n {\"part\": \"fl1\", \"stem\": \"up\", \"labelref\": \"short-name\"},\r\n {\"part\": \"fl2\", \"stem\": \"down\", \"labelref\": \"short-name\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"labelref\": \"short-name\",\r\n \"sources\": [\r\n {\"part\": \"fl3\"}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"Oboes\",\r\n \"sources\": [\r\n {\"part\": \"ob1\", \"stem\": \"up\", \"labelref\": \"short-name\"},\r\n {\"part\": \"ob2\", \"stem\": \"down\", \"labelref\": \"short-name\"}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"brace\",\r\n \"label\": \"Piano\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [{\"part\": \"piano\", \"staff\": 1}]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [{\"part\": \"piano\", \"staff\": 2}]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"id\": \"layout2\",\r\n \"content\": [\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"bracket\",\r\n \"content\": [\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"brace\",\r\n \"label\": \"Fl.\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"labelref\": \"short-name\",\r\n \"sources\": [\r\n {\"part\": \"fl1\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"labelref\": \"short-name\",\r\n \"sources\": [\r\n {\"part\": \"fl2\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"labelref\": \"short-name\",\r\n \"sources\": [\r\n {\"part\": \"fl3\"}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"Ob.\",\r\n \"sources\": [\r\n {\"part\": \"ob1\", \"stem\": \"up\", \"labelref\": \"short-name\"},\r\n {\"part\": \"ob2\", \"stem\": \"down\", \"labelref\": \"short-name\"}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"brace\",\r\n \"label\": \"Piano\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [{\"part\": \"piano\", \"staff\": 1}]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [{\"part\": \"piano\", \"staff\": 2}]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n ],\r\n \"scores\": [\r\n {\r\n \"name\": \"Full score\",\r\n \"pages\": [\r\n {\r\n \"systems\": [\r\n {\"measure\": 1, \"layout\": \"layout1\"},\r\n {\"measure\": 4, \"layout\": \"layout2\"}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/system-layouts.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 31, "fields": { "name": "Grace notes (beamed)", "slug": "grace-notes-beamed", "schema": 1, "blurb": "", "document": "{\r\n \"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"beams\": [\r\n {\r\n \"events\": [\"grace1\", \"grace2\"]\r\n },\r\n {\r\n \"events\": [\"grace3\", \"grace4\", \"grace5\"]\r\n },\r\n {\r\n \"events\": [\"grace6\", \"grace7\", \"grace8\", \"grace9\"]\r\n }\r\n ],\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"grace\",\r\n \"content\": [\r\n {\r\n \"id\": \"grace1\",\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"B\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"id\": \"grace2\",\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"grace\",\r\n \"content\": [\r\n {\r\n \"id\": \"grace3\",\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"B\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"id\": \"grace4\",\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"id\": \"grace5\",\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"grace\",\r\n \"content\": [\r\n {\r\n \"id\": \"grace6\",\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"B\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"id\": \"grace7\",\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"id\": \"grace8\",\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"id\": \"grace9\",\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/beams-grace-notes.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 32, "fields": { "name": "Tempo markings", "slug": "tempo-markings", "schema": 1, "blurb": "", "document": "{\r\n\"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4},\r\n \"tempos\": [\r\n {\"value\": {\"base\": \"quarter\"}, \"bpm\": 200}\r\n ]\r\n },\r\n {}\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 6}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/tempo-marking.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 33, "fields": { "name": "Multiple layouts", "slug": "multiple-layouts", "schema": 1, "blurb": "In this image, you see three different representations of the same underlying SATB music — one with four separate staves, one with two staves (using multiple voices) and one with two staves (using notes combined into chords).\r\n\r\nThis can be encoded entirely within a single MNX document. The underlying music (the notes, barlines, etc.) is encoded only once, within the and elements. But there are three separate elements — one for each visual representation of the music.\r\n\r\nA references a particular . The element is where the style information is contained: which parts, in which order.", "document": "{\r\n\"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n },\r\n {}\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"id\": \"soprano\",\r\n \"name\": \"Soprano\",\r\n \"short-name\": \"S\",\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"A\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"A\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 5}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"id\": \"alto\",\r\n \"name\": \"Alto\",\r\n \"short-name\": \"A\",\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 4}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"D\", \"octave\": 4}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"id\": \"tenor\",\r\n \"name\": \"Tenor\",\r\n \"short-name\": \"T\",\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"B\", \"octave\": 3}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"A\", \"octave\": 3}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"A\", \"octave\": 3}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"B\", \"octave\": 3}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"id\": \"bass\",\r\n \"name\": \"Bass\",\r\n \"short-name\": \"B\",\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"F\", \"staffPosition\": 2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"B\", \"octave\": 3}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"A\", \"octave\": 3}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 3}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"F\", \"octave\": 3}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 3}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ],\r\n \"layouts\": [\r\n {\r\n \"id\": \"Choral4Staff\",\r\n \"content\": [\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"bracket\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"labelref\": \"name\",\r\n \"sources\": [\r\n {\"part\": \"soprano\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"labelref\": \"name\",\r\n \"sources\": [\r\n {\"part\": \"alto\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"labelref\": \"name\",\r\n \"sources\": [\r\n {\"part\": \"tenor\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"labelref\": \"name\",\r\n \"sources\": [\r\n {\"part\": \"bass\"}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"id\": \"Choral2StaffStemSplit\",\r\n \"content\": [\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"bracket\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"SA\",\r\n \"sources\": [\r\n {\"part\": \"soprano\", \"stem\": \"up\"},\r\n {\"part\": \"alto\", \"stem\": \"down\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"TB\",\r\n \"sources\": [\r\n {\"part\": \"tenor\", \"stem\": \"up\"},\r\n {\"part\": \"bass\", \"stem\": \"down\"}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"id\": \"Choral2StaffChorded\",\r\n \"content\": [\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"bracket\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"SA\",\r\n \"sources\": [\r\n {\"part\": \"soprano\"},\r\n {\"part\": \"alto\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"TB\",\r\n \"sources\": [\r\n {\"part\": \"tenor\"},\r\n {\"part\": \"bass\"}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"id\": \"Choral2StaffMenSplit\",\r\n \"content\": [\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"bracket\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"SA\",\r\n \"sources\": [\r\n {\"part\": \"soprano\"},\r\n {\"part\": \"alto\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"TB\",\r\n \"sources\": [\r\n {\"part\": \"tenor\", \"stem\": \"up\"},\r\n {\"part\": \"bass\", \"stem\": \"down\"}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ],\r\n \"scores\": [\r\n {\r\n \"name\": \"FourStaff\",\r\n \"pages\": [\r\n {\r\n \"systems\": [\r\n {\"layout\": \"Choral4Staff\", \"measure\": 1}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"name\": \"TwoStaffSplit\",\r\n \"pages\": [\r\n {\r\n \"systems\": [\r\n {\"layout\": \"Choral2StaffStemSplit\", \"measure\": 1}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"name\": \"TwoStaffChord\",\r\n \"pages\": [\r\n {\r\n \"systems\": [\r\n {\r\n \"layout\": \"Choral2StaffChorded\",\r\n \"measure\": 1,\r\n \"layout-changes\": [\r\n {\"layout\": \"Choral2StaffMenSplit\", \"location\": \"2\"}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/multiple-layouts.png", "is_featured": true } }, { "model": "spec.exampledocument", "pk": 34, "fields": { "name": "Orchestral layout", "slug": "orchestral-layout", "schema": 1, "blurb": "", "document": "{\r\n\"mnx\": {\"version\": 1},\r\n \"global\": {},\r\n \"parts\": [\r\n {\"id\": \"Klar1\"},\r\n {\"id\": \"Klar2\"},\r\n {\"id\": \"Klar3\"},\r\n {\"id\": \"Horn1\"},\r\n {\"id\": \"Horn2\"},\r\n {\"id\": \"Horn3\"},\r\n {\"id\": \"Horn4\"},\r\n {\"id\": \"Harfe\", \"staves\": 2},\r\n {\"id\": \"Violin1\"},\r\n {\"id\": \"Violin2\"},\r\n {\"id\": \"Viola\"},\r\n {\"id\": \"Cello\"},\r\n {\"id\": \"Kontra\"}\r\n ],\r\n \"layouts\": [\r\n {\r\n \"id\": \"starting\",\r\n \"content\": [\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"bracket\",\r\n \"content\": [\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"brace\",\r\n \"label\": \"Horns in F.\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"2.\",\r\n \"sources\": [\r\n {\"part\": \"Horn2\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"4.\",\r\n \"sources\": [\r\n {\"part\": \"Horn4\"}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"brace\",\r\n \"label\": \"1. Harfe.\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [\r\n {\"part\": \"Harfe\", \"staff\": 1}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [\r\n {\"part\": \"Harfe\", \"staff\": 2}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"bracket\",\r\n \"content\": [\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"brace\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"1. Violine.\",\r\n \"sources\": [\r\n {\"part\": \"Violin1\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"2. Violine.\",\r\n \"sources\": [\r\n {\"part\": \"Violin2\"}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"Viola.\",\r\n \"sources\": [\r\n {\"part\": \"Viola\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"Violincell.\",\r\n \"sources\": [\r\n {\"part\": \"Cello\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"Kontrabass\",\r\n \"sources\": [\r\n {\"part\": \"Kontra\"}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"id\": \"secondSystem\",\r\n \"content\": [\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"brace\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"1.2.3. Klar. in A\",\r\n \"sources\": [\r\n {\"part\": \"Klar1\", \"stem\": \"up\"},\r\n {\"part\": \"Klar2\", \"stem\": \"up\"},\r\n {\"part\": \"Klar3\", \"stem\": \"down\"}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"bracket\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"2. Hr in F.\",\r\n \"sources\": [\r\n {\"part\": \"Horn2\"}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"brace\",\r\n \"label\": \"1. Harfe.\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [\r\n {\"part\": \"Harfe\", \"staff\": 1}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [\r\n {\"part\": \"Harfe\", \"staff\": 2}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"bracket\",\r\n \"content\": [\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"brace\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"1. Vl.\",\r\n \"sources\": [\r\n {\"part\": \"Violin1\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"2. Vl.\",\r\n \"sources\": [\r\n {\"part\": \"Violin2\"}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"brace\",\r\n \"label\": \"Vla. (get.)\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [\r\n {\"part\": \"Viola\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [\r\n {\"part\": \"Viola\", \"voice\": \"Pizzicato\"}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"brace\",\r\n \"label\": \"Vlc. (get.)\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [\r\n {\"part\": \"Cello\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [\r\n {\"part\": \"Cello\", \"voice\": \"Pizzicato\"}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"label\": \"Kontrabass\",\r\n \"sources\": [\r\n {\"part\": \"Kontra\"}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ],\r\n \"scores\": [\r\n {\r\n \"name\": \"fullScore\",\r\n \"pages\": [\r\n {\"systems\": [\r\n {\"layout\": \"starting\", \"measure\": 1},\r\n {\"layout\": \"secondSystem\", \"measure\": 7}\r\n ]}\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/orchestral-layout.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 35, "fields": { "name": "Organ layout", "slug": "organ-layout", "schema": 1, "blurb": "Note only the music in the first measure is encoded here.", "document": "{\r\n\"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"key\": {\"fifths\": -3},\r\n \"time\": {\"count\": 3, \"unit\": 4}\r\n }\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"id\": \"organ\",\r\n \"staves\": 3,\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"staff\": 1,\r\n \"voice\": \"Main\",\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"rest\": {}\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"rest\": {}\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"main1\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 4}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"main2\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\r\n \"pitch\": {\"step\": \"F\", \"octave\": 4, \"alter\": 1},\r\n \"accidentalDisplay\": {\"show\": true}\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"main3\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\r\n \"pitch\": {\"step\": \"A\", \"octave\": 4},\r\n \"accidentalDisplay\": {\"show\": true}\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"staff\": 1,\r\n \"voice\": \"Oberwerk\",\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"rest\": {}\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"rest\": {}\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ober1\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"B\", \"octave\": 3, \"alter\": -1}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ober2\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\r\n \"pitch\": {\"step\": \"A\", \"octave\": 3},\r\n \"accidentalDisplay\": {\"show\": true}\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"id\": \"ober3\",\r\n \"duration\": {\"base\": \"eighth\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 4}}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"staff\": 2,\r\n \"voice\": \"Hauptwerk\",\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\", \"dots\": 1},\r\n \"rest\": {}\r\n }\r\n ]\r\n },\r\n {\r\n \"staff\": 3,\r\n \"voice\": \"Pedal\",\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"half\", \"dots\": 1},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 3, \"alter\": -1}, \"tie\": {\"target\": \"pedNote2\"}}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ],\r\n \"layouts\": [\r\n {\r\n \"id\": \"organ3Staff\",\r\n \"content\": [\r\n {\r\n \"type\": \"group\",\r\n \"symbol\": \"brace\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [\r\n {\"part\": \"organ\", \"staff\": 1}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [\r\n {\"part\": \"organ\", \"staff\": 2}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [\r\n {\"part\": \"organ\", \"staff\": 3}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"id\": \"organ3StaffSplitOber\",\r\n \"content\": [\r\n {\r\n \"type\": \"group\",\r\n \"content\": [\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [\r\n {\"part\": \"organ\", \"voice\": \"Main\", \"stem\": \"up\"},\r\n {\"part\": \"organ\", \"voice\": \"Oberwerk\", \"stem\": \"down\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [\r\n {\"part\": \"organ\", \"voice\": \"Hauptwerk\"}\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"staff\",\r\n \"sources\": [\r\n {\"part\": \"organ\", \"staff\": 3}\r\n ]\r\n }\r\n ]\r\n }\r\n ],\r\n \"scores\": [\r\n {\r\n \"name\": \"defaultScore\",\r\n \"pages\": [\r\n {\r\n \"systems\": [\r\n {\"layout\": \"organ3Staff\", \"measure\": 1, \"layout-changes\": [{\"layout\": \"organ3StaffSplitOber\", \"location\": \"1:3/8\"}]},\r\n {\"layout\": \"organ3StaffSplitOber\", \"measure\": 6}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/organ-layout.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 36, "fields": { "name": "Styling via a class (basic)", "slug": "style-class-basic", "schema": 1, "blurb": "This document defines a style class called \"emphasized\". Any element with class=\"emphasized\" will be colored blue.", "document": "{\r\n\"mnx\": {\"version\": 1},\r\n \"global\": {\r\n \"measures\": [\r\n {\r\n \"barline\": {\"type\": \"regular\"},\r\n \"time\": {\"count\": 4, \"unit\": 4}\r\n }\r\n ],\r\n \"styles\": [\r\n {\"selector\": \".emphasized\", \"color\": \"#0080FF\"}\r\n ]\r\n },\r\n \"parts\": [\r\n {\r\n \"measures\": [\r\n {\r\n \"clefs\": [\r\n {\"clef\": {\"sign\": \"G\", \"staffPosition\": -2}}\r\n ],\r\n \"sequences\": [\r\n {\r\n \"content\": [\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 5}, \"class\": \"emphasized\"}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"E\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"G\", \"octave\": 5}}\r\n ]\r\n },\r\n {\r\n \"type\": \"event\",\r\n \"duration\": {\"base\": \"quarter\"},\r\n \"notes\": [\r\n {\"pitch\": {\"step\": \"C\", \"octave\": 6}, \"class\": \"emphasized\"}\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", "image_url": "/static/examples/style_class_simple.png", "is_featured": false } }, { "model": "spec.exampledocument", "pk": 37, "fields": { "name": "Styling elements (basic)", "slug": "style-element-basic", "schema": 1, "blurb": "This document contains a