Readonly schema schema : { attributes : { color : { type : "optional" ; value : { pattern : RegExp ; type : "regex" ; zero : "#000000" ; } ; } ; default-x : { label : "default-x" ; type : "label" ; value : { type : "optional" ; value : { max : number ; min : number ; type : "float" ; } ; } ; } ; default-y : { label : "default-y" ; type : "label" ; value : { type : "optional" ; value : { max : number ; min : number ; type : "float" ; } ; } ; } ; font-family : { type : "optional" ; value : { pattern : RegExp ; type : "regex" ; zero : " " ; } ; } ; font-size : { type : "optional" ; value : { choices : readonly [ { choices : readonly [ "xx-small" , "x-small" , "small" , "medium" , "large" , "x-large" , "xx-large" ] ; type : "choices" ; } , { max : number ; min : number ; type : "float" ; } ] ; type : "choices" ; } ; } ; font-style : { type : "optional" ; value : { choices : readonly [ "normal" , "italic" ] ; type : "choices" ; } ; } ; font-weight : { type : "optional" ; value : { choices : readonly [ "normal" , "bold" ] ; type : "choices" ; } ; } ; halign : { type : "optional" ; value : { choices : readonly [ "left" , "center" , "right" ] ; type : "choices" ; } ; } ; id : { type : "optional" ; value : { pattern : RegExp ; type : "regex" ; zero : "_" ; } ; } ; justify : { type : "optional" ; value : { choices : readonly [ "left" , "center" , "right" ] ; type : "choices" ; } ; } ; parentheses : { type : "optional" ; value : { choices : readonly [ "yes" , "no" ] ; type : "choices" ; } ; } ; print-object : { type : "optional" ; value : { choices : readonly [ "yes" , "no" ] ; type : "choices" ; } ; } ; relative-x : { label : "relative-x" ; type : "label" ; value : { type : "optional" ; value : { max : number ; min : number ; type : "float" ; } ; } ; } ; relative-y : { label : "relative-y" ; type : "label" ; value : { type : "optional" ; value : { max : number ; min : number ; type : "float" ; } ; } ; } ; valign : { type : "optional" ; value : { choices : readonly [ "top" , "middle" , "bottom" , "baseline" ] ; type : "choices" ; } ; } ; } ; contents : readonly [ { label : "metronome" ; type : "label" ; value : { choices : readonly [ { label : "beat-spec" ; type : "label" ; value : readonly [ { type : "required" ; value : typeof BeatUnit ; } , { type : "zeroOrMore" ; value : typeof BeatUnitDot ; } , { type : "zeroOrMore" ; value : typeof BeatUnitTied ; } , { choices : readonly [ typeof PerMinute , readonly [ { type : "required" ; value : typeof BeatUnit ; } , { type : "zeroOrMore" ; value : typeof BeatUnitDot ; } , { type : "zeroOrMore" ; value : typeof BeatUnitTied ; } ] ] ; type : "choices" ; } ] ; } , { label : "metronome-spec" ; type : "label" ; value : readonly [ { type : "optional" ; value : typeof MetronomeArrows ; } , { type : "oneOrMore" ; value : typeof MetronomeNote ; } , { type : "optional" ; value : readonly [ { type : "required" ; value : typeof MetronomeRelation ; } , { type : "oneOrMore" ; value : typeof MetronomeNote ; } ] ; } ] ; } ] ; type : "choices" ; } ; } ] ; name : "metronome" ; } = Metronome.schema Type declaration Readonly attributes : { color : { type : "optional" ; value : { pattern : RegExp ; type : "regex" ; zero : "#000000" ; } ; } ; default-x : { label : "default-x" ; type : "label" ; value : { type : "optional" ; value : { max : number ; min : number ; type : "float" ; } ; } ; } ; default-y : { label : "default-y" ; type : "label" ; value : { type : "optional" ; value : { max : number ; min : number ; type : "float" ; } ; } ; } ; font-family : { type : "optional" ; value : { pattern : RegExp ; type : "regex" ; zero : " " ; } ; } ; font-size : { type : "optional" ; value : { choices : readonly [ { choices : readonly [ "xx-small" , "x-small" , "small" , "medium" , "large" , "x-large" , "xx-large" ] ; type : "choices" ; } , { max : number ; min : number ; type : "float" ; } ] ; type : "choices" ; } ; } ; font-style : { type : "optional" ; value : { choices : readonly [ "normal" , "italic" ] ; type : "choices" ; } ; } ; font-weight : { type : "optional" ; value : { choices : readonly [ "normal" , "bold" ] ; type : "choices" ; } ; } ; halign : { type : "optional" ; value : { choices : readonly [ "left" , "center" , "right" ] ; type : "choices" ; } ; } ; id : { type : "optional" ; value : { pattern : RegExp ; type : "regex" ; zero : "_" ; } ; } ; justify : { type : "optional" ; value : { choices : readonly [ "left" , "center" , "right" ] ; type : "choices" ; } ; } ; parentheses : { type : "optional" ; value : { choices : readonly [ "yes" , "no" ] ; type : "choices" ; } ; } ; print-object : { type : "optional" ; value : { choices : readonly [ "yes" , "no" ] ; type : "choices" ; } ; } ; relative-x : { label : "relative-x" ; type : "label" ; value : { type : "optional" ; value : { max : number ; min : number ; type : "float" ; } ; } ; } ; relative-y : { label : "relative-y" ; type : "label" ; value : { type : "optional" ; value : { max : number ; min : number ; type : "float" ; } ; } ; } ; valign : { type : "optional" ; value : { choices : readonly [ "top" , "middle" , "bottom" , "baseline" ] ; type : "choices" ; } ; } ; } Readonly color : { type : "optional" ; value : { pattern : RegExp ; type : "regex" ; zero : "#000000" ; } ; } Readonly type : "optional" Readonly value : { pattern : RegExp ; type : "regex" ; zero : "#000000" ; } Readonly pattern : RegExp Readonly type : "regex" Readonly zero : "#000000" Readonly default- x : { label : "default-x" ; type : "label" ; value : { type : "optional" ; value : { max : number ; min : number ; type : "float" ; } ; } ; } Readonly label : "default-x" Readonly type : "label" Readonly value : { type : "optional" ; value : { max : number ; min : number ; type : "float" ; } ; } Readonly type : "optional" Readonly value : { max : number ; min : number ; type : "float" ; } Readonly max : number Readonly min : number Readonly type : "float" Readonly default- y : { label : "default-y" ; type : "label" ; value : { type : "optional" ; value : { max : number ; min : number ; type : "float" ; } ; } ; } Readonly label : "default-y" Readonly type : "label" Readonly value : { type : "optional" ; value : { max : number ; min : number ; type : "float" ; } ; } Readonly type : "optional" Readonly value : { max : number ; min : number ; type : "float" ; } Readonly max : number Readonly min : number Readonly type : "float" Readonly font- family : { type : "optional" ; value : { pattern : RegExp ; type : "regex" ; zero : " " ; } ; } Readonly type : "optional" Readonly value : { pattern : RegExp ; type : "regex" ; zero : " " ; } Readonly pattern : RegExp Readonly type : "regex" Readonly zero : " " Readonly font- size : { type : "optional" ; value : { choices : readonly [ { choices : readonly [ "xx-small" , "x-small" , "small" , "medium" , "large" , "x-large" , "xx-large" ] ; type : "choices" ; } , { max : number ; min : number ; type : "float" ; } ] ; type : "choices" ; } ; } Readonly type : "optional" Readonly value : { choices : readonly [ { choices : readonly [ "xx-small" , "x-small" , "small" , "medium" , "large" , "x-large" , "xx-large" ] ; type : "choices" ; } , { max : number ; min : number ; type : "float" ; } ] ; type : "choices" ; } Readonly choices : readonly [ { choices : readonly [ "xx-small" , "x-small" , "small" , "medium" , "large" , "x-large" , "xx-large" ] ; type : "choices" ; } , { max : number ; min : number ; type : "float" ; } ] Readonly type : "choices" Readonly font- style : { type : "optional" ; value : { choices : readonly [ "normal" , "italic" ] ; type : "choices" ; } ; } Readonly type : "optional" Readonly value : { choices : readonly [ "normal" , "italic" ] ; type : "choices" ; } Readonly choices : readonly [ "normal" , "italic" ] Readonly type : "choices" Readonly font- weight : { type : "optional" ; value : { choices : readonly [ "normal" , "bold" ] ; type : "choices" ; } ; } Readonly type : "optional" Readonly value : { choices : readonly [ "normal" , "bold" ] ; type : "choices" ; } Readonly choices : readonly [ "normal" , "bold" ] Readonly type : "choices" Readonly halign : { type : "optional" ; value : { choices : readonly [ "left" , "center" , "right" ] ; type : "choices" ; } ; } Readonly type : "optional" Readonly value : { choices : readonly [ "left" , "center" , "right" ] ; type : "choices" ; } Readonly choices : readonly [ "left" , "center" , "right" ] Readonly type : "choices" Readonly id : { type : "optional" ; value : { pattern : RegExp ; type : "regex" ; zero : "_" ; } ; } Readonly type : "optional" Readonly value : { pattern : RegExp ; type : "regex" ; zero : "_" ; } Readonly pattern : RegExp Readonly type : "regex" Readonly zero : "_" Readonly justify : { type : "optional" ; value : { choices : readonly [ "left" , "center" , "right" ] ; type : "choices" ; } ; } Readonly type : "optional" Readonly value : { choices : readonly [ "left" , "center" , "right" ] ; type : "choices" ; } Readonly choices : readonly [ "left" , "center" , "right" ] Readonly type : "choices" Readonly parentheses : { type : "optional" ; value : { choices : readonly [ "yes" , "no" ] ; type : "choices" ; } ; } Readonly type : "optional" Readonly value : { choices : readonly [ "yes" , "no" ] ; type : "choices" ; } Readonly choices : readonly [ "yes" , "no" ] Readonly type : "choices" Readonly print- object : { type : "optional" ; value : { choices : readonly [ "yes" , "no" ] ; type : "choices" ; } ; } Readonly type : "optional" Readonly value : { choices : readonly [ "yes" , "no" ] ; type : "choices" ; } Readonly choices : readonly [ "yes" , "no" ] Readonly type : "choices" Readonly relative- x : { label : "relative-x" ; type : "label" ; value : { type : "optional" ; value : { max : number ; min : number ; type : "float" ; } ; } ; } Readonly label : "relative-x" Readonly type : "label" Readonly value : { type : "optional" ; value : { max : number ; min : number ; type : "float" ; } ; } Readonly type : "optional" Readonly value : { max : number ; min : number ; type : "float" ; } Readonly max : number Readonly min : number Readonly type : "float" Readonly relative- y : { label : "relative-y" ; type : "label" ; value : { type : "optional" ; value : { max : number ; min : number ; type : "float" ; } ; } ; } Readonly label : "relative-y" Readonly type : "label" Readonly value : { type : "optional" ; value : { max : number ; min : number ; type : "float" ; } ; } Readonly type : "optional" Readonly value : { max : number ; min : number ; type : "float" ; } Readonly max : number Readonly min : number Readonly type : "float" Readonly valign : { type : "optional" ; value : { choices : readonly [ "top" , "middle" , "bottom" , "baseline" ] ; type : "choices" ; } ; } Readonly type : "optional" Readonly value : { choices : readonly [ "top" , "middle" , "bottom" , "baseline" ] ; type : "choices" ; } Readonly choices : readonly [ "top" , "middle" , "bottom" , "baseline" ] Readonly type : "choices" Readonly contents : readonly [ { label : "metronome" ; type : "label" ; value : { choices : readonly [ { label : "beat-spec" ; type : "label" ; value : readonly [ { type : "required" ; value : typeof BeatUnit ; } , { type : "zeroOrMore" ; value : typeof BeatUnitDot ; } , { type : "zeroOrMore" ; value : typeof BeatUnitTied ; } , { choices : readonly [ typeof PerMinute , readonly [ { type : "required" ; value : typeof BeatUnit ; } , { type : "zeroOrMore" ; value : typeof BeatUnitDot ; } , { type : "zeroOrMore" ; value : typeof BeatUnitTied ; } ] ] ; type : "choices" ; } ] ; } , { label : "metronome-spec" ; type : "label" ; value : readonly [ { type : "optional" ; value : typeof MetronomeArrows ; } , { type : "oneOrMore" ; value : typeof MetronomeNote ; } , { type : "optional" ; value : readonly [ { type : "required" ; value : typeof MetronomeRelation ; } , { type : "oneOrMore" ; value : typeof MetronomeNote ; } ] ; } ] ; } ] ; type : "choices" ; } ; } ] Readonly name : "metronome"
The
<metronome>elementParent element:
<direction-type>The
<metronome>element represents metronome marks and other metric relationships. The<beat-unit>element group and<per-minute>element specify regular metronome marks. The<metronome-note>and<metronome-relation>elements allow for the specification of metric modulations and other metric relationships, such as swing tempo marks where two eighths are equated to a quarter note / eighth note triplet. Tied notes can be represented in both types of metronome marks by using the<beat-unit-tied>and<metronome-tied>elements. The print-object attribute is set to no in cases where the<metronome>element represents a relationship or range that is not displayed in the music notation.https://www.w3.org/2021/06/musicxml40/musicxml-reference/elements/metronome/