vexflow
Version:
A JavaScript library for rendering music notation and guitar tablature.
5 lines • 337 kB
JavaScript
/*!
* VexFlow 5.0.0 2025-03-05T17:05:43.991Z 0ca6f889545c33cce851b420c24945f6eb685aeb
* Copyright (c) 2023-present VexFlow contributors (see https://github.com/vexflow/vexflow/blob/main/AUTHORS.md).
*/
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.VexFlow=e():t.VexFlow=e()}("undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:this,(()=>(()=>{"use strict";var t={d:(e,i)=>{for(var s in i)t.o(i,s)&&!t.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:i[s]})}};t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),t.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var e={};function i(t,e,i=!0){if("object"!=typeof t||null===t)return!1;let s=t.constructor;if(i){for(;null!==t;){if(s=t.constructor,"CATEGORY"in s&&s.CATEGORY===e)return!0;t=Object.getPrototypeOf(t)}return!1}return"CATEGORY"in s&&s.CATEGORY===e}t.d(e,{default:()=>li});const s=t=>i(t,l.Barline),n=t=>i(t,l.GraceNote),a=t=>i(t,l.Note),o=t=>i(t,l.StaveNote),r=t=>i(t,l.StemmableNote),h=t=>i(t,l.TabNote);var l;!function(t){t.Accidental="Accidental",t.Annotation="Annotation",t.Articulation="Articulation",t.Barline="Barline",t.BarNote="BarNote",t.Beam="Beam",t.Bend="Bend",t.ChordSymbol="ChordSymbol",t.Clef="Clef",t.ClefNote="ClefNote",t.Crescendo="Crescendo",t.Curve="Curve",t.Dot="Dot",t.Element="Element",t.Flag="Flag",t.Fraction="Fraction",t.FretHandFinger="FretHandFinger",t.GhostNote="GhostNote",t.Glyph="Glyph",t.GlyphNote="GlyphNote",t.GraceNote="GraceNote",t.GraceNoteGroup="GraceNoteGroup",t.GraceTabNote="GraceTabNote",t.KeySignature="KeySignature",t.KeySigNote="KeySigNote",t.Modifier="Modifier",t.MultiMeasureRest="MultiMeasureRest",t.Note="Note",t.NoteHead="NoteHead",t.NoteSubGroup="NoteSubGroup",t.Ornament="Ornament",t.Parenthesis="Parenthesis",t.PedalMarking="PedalMarking",t.RenderContext="RenderContext",t.RepeatNote="RepeatNote",t.Repetition="Repetition",t.Stave="Stave",t.StaveConnector="StaveConnector",t.StaveHairpin="StaveHairpin",t.StaveLine="StaveLine",t.StaveModifier="StaveModifier",t.StaveNote="StaveNote",t.StaveSection="StaveSection",t.StaveTempo="StaveTempo",t.StaveText="StaveText",t.StaveTie="StaveTie",t.Stem="Stem",t.StemmableNote="StemmableNote",t.StringNumber="StringNumber",t.Stroke="Stroke",t.System="System",t.TabNote="TabNote",t.TabSlide="TabSlide",t.TabStave="TabStave",t.TabTie="TabTie",t.TextBracket="TextBracket",t.TextDynamics="TextDynamics",t.TextNote="TextNote",t.Tickable="Tickable",t.TimeSignature="TimeSignature",t.TimeSigNote="TimeSigNote",t.Tremolo="Tremolo",t.Tuplet="Tuplet",t.Vibrato="Vibrato",t.VibratoBracket="VibratoBracket",t.Voice="Voice",t.Volta="Volta"}(l||(l={}));class c extends Error{constructor(t,e=""){super("[RuntimeError] "+t+": "+e),this.code=t}}function d(){return"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==t.g?t.g:Function("return this")()}function u(t,e="undefined",i=""){if(void 0===t)throw new c(e,i);return t}function g(t,...e){if(!e)return;const i=Array.prototype.slice.call(e).join(" ");d().console.log(t+": "+i)}function p(t,e){let i=e+(t-e)/2;var s,n;return i%2>0&&(i=((s=10*i)%(n=5)>=n/2?parseInt(""+s/n,10)*n+n:parseInt(""+s/n,10)*n)/10),i}function m(t){return`vf-${t}`}function f(t){return(t%=2*Math.PI)<0&&(t+=2*Math.PI),t}function S(t){return t.reduce(((t,e)=>t+e),0)}class T{static get CATEGORY(){return l.Fraction}static GCD(t,e){if("number"!=typeof t||Number.isNaN(t)||"number"!=typeof e||Number.isNaN(e))throw new c("BadArgument",`Invalid numbers: ${t}, ${e}`);let i;for(;0!==e;)i=e,e=t%e,t=i;return t}static LCM(t,e){return t*e/T.GCD(t,e)}static LCMM(t){return 0===t.length?0:1===t.length?t[0]:2===t.length?T.LCM(t[0],t[1]):T.LCM(t.shift(),T.LCMM(t))}constructor(t,e){this.numerator=1,this.denominator=1,this.set(t,e)}set(t=1,e=1){return this.numerator=t,this.denominator=e,this}value(){return this.numerator/this.denominator}simplify(){let t=this.numerator,e=this.denominator;const i=T.GCD(t,e);return t/=i,e/=i,e<0&&(e=-e,t=-t),this.set(t,e)}add(t=0,e=1){const[i,s]=x(t,e),n=T.LCM(this.denominator,s),a=n/this.denominator,o=n/s,r=this.numerator*a+i*o;return this.set(r,n)}subtract(t=0,e=1){const[i,s]=x(t,e),n=T.LCM(this.denominator,s),a=n/this.denominator,o=n/s,r=this.numerator*a-i*o;return this.set(r,n)}multiply(t=1,e=1){const[i,s]=x(t,e);return this.set(this.numerator*i,this.denominator*s)}divide(t=1,e=1){const[i,s]=x(t,e);return this.set(this.numerator*s,this.denominator*i)}equals(t){const e=T.fractionA.copy(t).simplify(),i=T.fractionB.copy(this).simplify();return e.numerator===i.numerator&&e.denominator===i.denominator}greaterThan(t){const e=T.fractionA.copy(this);return e.subtract(t),e.numerator>0}greaterThanEquals(t){const e=T.fractionA.copy(this);return e.subtract(t),e.numerator>=0}lessThan(t){return!this.greaterThanEquals(t)}lessThanEquals(t){return!this.greaterThan(t)}clone(){return new T(this.numerator,this.denominator)}copy(t){return"number"==typeof t?this.set(t):this.set(t.numerator,t.denominator)}quotient(){return Math.floor(this.numerator/this.denominator)}remainder(){return this.numerator%this.denominator}makeAbs(){return this.denominator=Math.abs(this.denominator),this.numerator=Math.abs(this.numerator),this}toString(){return`${this.numerator}/${this.denominator}`}toSimplifiedString(){return T.fractionA.copy(this).simplify().toString()}toMixedString(){let t="";const e=this.quotient(),i=T.fractionA.copy(this);return e<0&&i.makeAbs(),0!==e?(t+=e,0!==i.numerator&&(t+=` ${i.toSimplifiedString()}`)):t=0===i.numerator?"0":i.toSimplifiedString(),t}parse(t){const e=t.split("/"),i=parseInt(e[0],10),s=e[1]?parseInt(e[1],10):1;return this.set(i,s)}}function x(t,e=1){return"number"==typeof t?[t,e]:[t.numerator,t.denominator]}T.fractionA=new T,T.fractionB=new T;class w{static clear(t){t?(this.cacheFont.delete(t),this.cacheStyle.delete(t)):(this.cacheFont.clear(),this.cacheStyle.clear())}static getFontInfo(t){let e=this.cacheFont.get(t);return e||(e={family:w.get(`${t}.fontFamily`),size:w.get(`${t}.fontSize`)*w.get(`${t}.fontScale`),weight:w.get(`${t}.fontWeight`),style:w.get(`${t}.fontStyle`)},this.cacheFont.set(t,e)),structuredClone(e)}static getStyle(t){let e=this.cacheStyle.get(t);return e||(e={fillStyle:w.get(`${t}.fillStyle`),strokeStyle:w.get(`${t}.strokeStyle`),lineWidth:w.get(`${t}.lineWidth`),lineDash:w.get(`${t}.lineDash`),shadowBlur:w.get(`${t}.shadowBlur`),shadowColor:w.get(`${t}.shadowColor`)},this.cacheStyle.set(t,e)),structuredClone(e)}static get(t,e){var i;const s=t.split("."),n=s.pop();let a=b,o=e;for(;a;){o=null!==(i=a[n])&&void 0!==i?i:o;const t=s.shift();if(!t)break;a=a[t]}return o}}w.cacheStyle=new Map,w.cacheFont=new Map;const b={fontFamily:"Bravura,Academico",fontSize:30,fontScale:1,fontWeight:"normal",fontStyle:"normal",Accidental:{cautionary:{fontSize:20},grace:{fontSize:20},noteheadAccidentalPadding:1,leftPadding:2,accidentalSpacing:3},Annotation:{fontSize:10},Bend:{fontSize:10,line:{strokeStyle:"#777777",lineWidth:1}},ChordSymbol:{fontSize:12,spacing:.05,subscriptOffset:.2,superscriptOffset:-.4,superSubRatio:.6},FretHandFinger:{fontSize:9,fontWeight:"bold"},GraceNote:{fontScale:2/3},GraceTabNote:{fontScale:2/3},NoteHead:{minPadding:2},PedalMarking:{text:{fontSize:12,fontStyle:"italic"}},Repetition:{text:{fontSize:12,fontWeight:"bold",offsetX:12,offsetY:25,spacing:5},coda:{offsetY:25},segno:{offsetY:10}},Stave:{strokeStyle:"#999999",fontSize:8,padding:12,endPaddingMax:10,endPaddingMin:5,unalignedNotePadding:10},StaveConnector:{text:{fontSize:16}},StaveLine:{fontSize:10},StaveSection:{fontSize:10,fontWeight:"bold",lineWidth:2,padding:2,strokeStyle:"black"},StaveTempo:{fontSize:14,glyph:{fontSize:25},name:{fontWeight:"bold"}},StaveText:{fontSize:16},StaveTie:{fontSize:10},Stem:{strokeStyle:"black"},StringNumber:{fontSize:10,fontWeight:"bold",verticalPadding:8,stemPadding:2,leftPadding:5,rightPadding:6},Stroke:{text:{fontSize:10,fontStyle:"italic",fontWeight:"bold"}},TabNote:{text:{fontSize:9}},TabSlide:{fontSize:10,fontStyle:"italic",fontWeight:"bold"},TabStave:{strokeStyle:"#999999",fontSize:8},TabTie:{fontSize:10},TextBracket:{fontSize:15,fontStyle:"italic"},TextNote:{text:{fontSize:12}},Tremolo:{spacing:7},Tuplet:{yOffset:0,textYOffset:2},Volta:{fontSize:9,fontWeight:"bold"}};class y{static copy(t){return new y(t.x,t.y,t.w,t.h)}constructor(t,e,i,s){this.x=t,this.y=e,this.w=i,this.h=s}getX(){return this.x}getY(){return this.y}getW(){return this.w}getH(){return this.h}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setW(t){return this.w=t,this}setH(t){return this.h=t,this}move(t,e){return this.x+=t,this.y+=e,this}clone(){return y.copy(this)}mergeWith(t){const e=t,i=this.x<e.x?this.x:e.x,s=this.y<e.y?this.y:e.y,n=Math.max(this.x+this.w,e.x+e.w)-i,a=Math.max(this.y+this.h,e.y+e.h)-s;return this.x=i,this.y=s,this.w=n,this.h=a,this}}var C,k,D=function(t,e,i,s){return new(i||(i=Promise))((function(n,a){function o(t){try{h(s.next(t))}catch(t){a(t)}}function r(t){try{h(s.throw(t))}catch(t){a(t)}}function h(t){var e;t.done?n(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(o,r)}h((s=s.apply(t,e||[])).next())}))};let v;!function(t){t.NORMAL="normal",t.BOLD="bold"}(C||(C={})),function(t){t.NORMAL="normal",t.ITALIC="italic"}(k||(k={}));class B{static convertSizeToPixelValue(t){var e;if("number"==typeof t)return t*B.scaleToPxFrom.pt;{const i=parseFloat(t);if(isNaN(i))return 0;const s=t.replace(/[\d.\s]/g,"").toLowerCase();return i*(null!==(e=B.scaleToPxFrom[s])&&void 0!==e?e:1)}}static convertSizeToPointValue(t){var e;if("number"==typeof t)return t;{const i=parseFloat(t);if(isNaN(i))return 0;const s=t.replace(/[\d.\s]/g,"").toLowerCase();return i*((null!==(e=B.scaleToPxFrom[s])&&void 0!==e?e:1)/B.scaleToPxFrom.pt)}}static validate(t,e,i,s){if("string"==typeof t&&void 0===e&&void 0===i&&void 0===s)return B.fromCSSString(t);let n;return"object"==typeof t?(n=t.family,e=t.size,i=t.weight,s=t.style):n=t,n=null!=n?n:w.get("fontFamily"),e=null!=e?e:w.get("fontSize")+"pt",i=null!=i?i:C.NORMAL,s=null!=s?s:k.NORMAL,""===i&&(i=C.NORMAL),""===s&&(s=k.NORMAL),"number"==typeof e&&(e=`${e}pt`),"number"==typeof i&&(i=i.toString()),{family:n,size:e,weight:i,style:s}}static fromCSSString(t){v||(v=document.createElement("span")),v.style.font=t;const{fontFamily:e,fontSize:i,fontWeight:s,fontStyle:n}=v.style;return{family:e,size:i,weight:s,style:n}}static toCSSString(t){var e;if(!t)return"";let i;const s=t.style;let n;i=s===k.NORMAL||""===s||void 0===s?"":s.trim()+" ";const a=t.weight;let o;n=a===C.NORMAL||""===a||void 0===a?"":"number"==typeof a?a+" ":a.trim()+" ";const r=t.size;o=void 0===r?w.get("fontSize")+"pt":"number"==typeof r?r+"pt ":r.trim()+" ";return`${i}${n}${o}${null!==(e=t.family)&&void 0!==e?e:w.get("fontFamily")}`}static scaleSize(t,e){if("number"==typeof t)return t*e;return`${parseFloat(t)*e}${t.replace(/[\d.\s]/g,"")}`}static isBold(t){if(t){if("number"==typeof t)return t>=600;{const e=parseInt(t,10);return isNaN(e)?"bold"===t.toLowerCase():e>=600}}return!1}static isItalic(t){return!!t&&t.toLowerCase()===k.ITALIC}static load(t,e,i){return D(this,void 0,void 0,(function*(){if("undefined"==typeof FontFace)return Promise.reject(new Error("FontFace API is not available in this environment. Cannot load fonts."));if(void 0===e){const i=B.FILES;if(!(t in i))return Promise.reject(new Error(`Font ${t} not found in Font.FILES`));e=B.HOST_URL+i[t]}const s=new FontFace(t,`url(${e})`,i),n=s.load();let a;return"undefined"!=typeof document?a=document.fonts:"undefined"!=typeof self&&"fonts"in self&&(a=self.fonts),null==a||a.add(s),n}))}static getURLForFont(t){const e=B.FILES;if(t in e)return B.HOST_URL+e[t]}}B.scaleToPxFrom={pt:4/3,px:1,em:16,"%":.16,in:96,mm:96/25.4,cm:96/2.54},B.HOST_URL="https://cdn.jsdelivr.net/npm/@vexflow-fonts/",B.FILES={Academico:"academico/academico.woff2",Bravura:"bravura/bravura.woff2","Bravura Text":"bravuratext/bravuratext.woff2",Edwin:"edwin/edwin-roman.woff2","Finale Ash":"finaleash/finaleash.woff2","Finale Ash Text":"finaleashtext/finaleashtext.woff2","Finale Broadway":"finalebroadway/finalebroadway.woff2","Finale Broadway Text":"finalebroadwaytext/finalebroadwaytext.woff2","Finale Jazz":"finalejazz/finalejazz.woff2","Finale Jazz Text":"finalejazztext/finalejazztext.woff2","Finale Maestro":"finalemaestro/finalemaestro.woff2","Finale Maestro Text":"finalemaestrotext/finalemaestrotext-regular.woff2",Gonville:"gonville/gonville.woff2",Gootville:"gootville/gootville.woff2","Gootville Text":"gootvilletext/gootvilletext.woff2",Leipzig:"leipzig/leipzig.woff2",Leland:"leland/leland.woff2","Leland Text":"lelandtext/lelandtext.woff2",MuseJazz:"musejazz/musejazz.woff2","MuseJazz Text":"musejazztext/musejazztext.woff2",Nepomuk:"nepomuk/nepomuk.woff2",Petaluma:"petaluma/petaluma.woff2","Petaluma Script":"petalumascript/petalumascript.woff2","Petaluma Text":"petalumatext/petalumatext.woff2","Roboto Slab":"robotoslab/robotoslab-regular-400.woff2",Sebastian:"sebastian/sebastian.woff2","Sebastian Text":"sebastiantext/sebastiantext.woff2"};class L{constructor(){this.id={},this.type={},this.class={}}}class E{static getDefaultRegistry(){return E.defaultRegistry}static enableDefaultRegistry(t){E.defaultRegistry=t}static disableDefaultRegistry(){E.defaultRegistry=void 0}constructor(){this.index=new L}clear(){return this.index=new L,this}setIndexValue(t,e,i,s){const n=this.index;n[t][e]||(n[t][e]={}),n[t][e][i]=s}updateIndex({id:t,name:e,value:i,oldValue:s}){const n=this.getElementById(t);void 0!==s&&this.index[e][s]&&delete this.index[e][s][t],i&&n&&this.setIndexValue(e,i,n.getAttribute("id"),n)}register(t,e){if(!(e=e||t.getAttribute("id")))throw new c("Can't add element without `id` attribute to registry");return t.setAttribute("id",e),this.setIndexValue("id",e,e,t),this.updateIndex({id:e,name:"type",value:t.getAttribute("type"),oldValue:void 0}),t.onRegister(this),this}getElementById(t){var e,i;return null===(i=null===(e=this.index.id)||void 0===e?void 0:e[t])||void 0===i?void 0:i[t]}getElementsByAttribute(t,e){const i=this.index[t];if(i){const t=i[e];if(t){return Object.keys(t).map((e=>t[e]))}}return[]}getElementsByType(t){return this.getElementsByAttribute("type",t)}getElementsByClass(t){return this.getElementsByAttribute("class",t)}onUpdate(t){return["id","type","class"].includes(t.name)&&this.updateIndex(t),this}}class N{static get CATEGORY(){return l.Element}static newID(){return"auto"+N.ID++}static setTextMeasurementCanvas(t){N.txtCanvas=t}static getTextMeasurementCanvas(){let t=N.txtCanvas;return t||("undefined"!=typeof document?t=document.createElement("canvas"):"undefined"!=typeof OffscreenCanvas&&(t=new OffscreenCanvas(300,150)),N.txtCanvas=t),t}constructor(t){var e;this.children=[],this.style={},this._text="",this.metricsValid=!1,this._textMetrics={fontBoundingBoxAscent:0,fontBoundingBoxDescent:0,actualBoundingBoxAscent:0,actualBoundingBoxDescent:0,actualBoundingBoxLeft:0,actualBoundingBoxRight:0,width:0,alphabeticBaseline:0,emHeightAscent:0,emHeightDescent:0,hangingBaseline:0,ideographicBaseline:0},this._height=0,this._width=0,this.xShift=0,this.yShift=0,this.x=0,this.y=0,this.attrs={id:N.newID(),type:null!=t?t:this.constructor.CATEGORY,class:""},this.rendered=!1,this._fontInfo=w.getFontInfo(this.attrs.type),this.style=w.getStyle(this.attrs.type),this.fontScale=w.get(`${this.attrs.type}.fontScale`),null===(e=E.getDefaultRegistry())||void 0===e||e.register(this)}addChild(t){if(t.parent)throw new c("Element","Parent already defined");return t.parent=this,this.children.push(t),this}getCategory(){return this.attrs.type}setStyle(t){return this.style=t,this}setGroupStyle(t){return this.style=t,this.children.forEach((e=>e.setGroupStyle(t))),this}getStyle(){return this.style}applyStyle(t=this.context,e=this.getStyle()){return t?(e.shadowColor&&t.setShadowColor(e.shadowColor),e.shadowBlur&&t.setShadowBlur(e.shadowBlur),e.fillStyle&&t.setFillStyle(e.fillStyle),e.strokeStyle&&t.setStrokeStyle(e.strokeStyle),e.lineWidth&&t.setLineWidth(e.lineWidth),e.lineDash&&t.setLineDash(e.lineDash.split(" ").map(Number)),this):this}drawWithStyle(){const t=this.checkContext();return t.save(),this.applyStyle(t),this.draw(),t.restore(),this}draw(){throw new c("Element","Draw not defined")}hasClass(t){var e;return!!this.attrs.class&&-1!==(null===(e=this.attrs.class)||void 0===e?void 0:e.split(" ").indexOf(t))}addClass(t){var e;return this.hasClass(t)||(this.attrs.class?this.attrs.class=`${this.attrs.class} ${t}`:this.attrs.class=`${t}`,null===(e=this.registry)||void 0===e||e.onUpdate({id:this.attrs.id,name:"class",value:t,oldValue:void 0})),this}removeClass(t){var e,i;if(!this.hasClass(t))return this;const s=null===(e=this.attrs.class)||void 0===e?void 0:e.split(" ");return s&&(s.splice(s.indexOf(t)),this.attrs.class=s.join(" ")),null===(i=this.registry)||void 0===i||i.onUpdate({id:this.attrs.id,name:"class",value:void 0,oldValue:t}),this}onRegister(t){return this.registry=t,this}isRendered(){return this.rendered}setRendered(t=!0){return this.rendered=t,this}getAttributes(){return this.attrs}getAttribute(t){return this.attrs[t]}getSVGElement(t=""){const e=m(this.attrs.id+t),i=document.getElementById(e);if(i)return i}setAttribute(t,e){var i;const s=this.attrs.id,n=this.attrs[t];return this.attrs[t]=e,null===(i=this.registry)||void 0===i||i.onUpdate({id:s,name:t,value:e,oldValue:n}),this}getBoundingBox(){return new y(this.x+this.xShift,this.y+this.yShift-this.textMetrics.actualBoundingBoxAscent,this.width,this.height)}getContext(){return this.context}setContext(t){return this.context=t,this}checkContext(){return u(this.context,"NoContext","No rendering context attached to instance.")}set font(t){this.setFont(t)}get font(){return B.toCSSString(this._fontInfo)}setFont(t,e,i,s){const n=w.getFontInfo(this.attrs.type),a="object"==typeof t,o="string"==typeof t,r=void 0===e&&void 0===i&&void 0===s;return this.metricsValid=!1,this._fontInfo=a?Object.assign(Object.assign({},n),t):o&&r?B.fromCSSString(t):B.validate(null!=t?t:n.family,null!=e?e:n.size,null!=i?i:n.weight,null!=s?s:n.style),this}getFont(){return B.toCSSString(this._fontInfo)}get fontInfo(){return this._fontInfo}set fontInfo(t){this.setFont(t)}setFontSize(t){const e=this.fontInfo;return this.setFont(e.family,t,e.weight,e.style),this}getFontSize(){return this.fontSize}getFontScale(){return this.fontScale}set fontSize(t){this.setFontSize(t)}get fontSize(){let t=this.fontInfo.size;return"number"==typeof t&&(t=`${t}pt`),t}get fontSizeInPoints(){return B.convertSizeToPointValue(this.fontSize)}get fontSizeInPixels(){return B.convertSizeToPixelValue(this.fontSize)}get fontStyle(){return this.fontInfo.style}set fontStyle(t){const e=this.fontInfo;this.setFont(e.family,e.size,e.weight,t)}get fontWeight(){return this.fontInfo.weight+""}set fontWeight(t){const e=this.fontInfo;this.setFont(e.family,e.size,t,e.style)}getWidth(){return this.width}get width(){return this.metricsValid||this.measureText(),this._width}setWidth(t){return this.width=t,this}set width(t){this.metricsValid||this.measureText(),this._width=t}setX(t){return this.x=t,this}getX(){return this.x}getY(){return this.y}setY(t){return this.y=t,this}setYShift(t){return this.yShift=t,this}getYShift(){return this.yShift}setXShift(t){return this.xShift=t,this}getXShift(){return this.xShift}setText(t){return this.text=t,this}set text(t){this.metricsValid=!1,this._text=t}getText(){return this._text}get text(){return this._text}renderText(t,e,i){t.setFont(this._fontInfo),t.fillText(this._text,e+this.x+this.xShift,i+this.y+this.yShift),this.children.forEach((s=>{t.setFont(s.fontInfo),t.fillText(s.text,e+s.x+s.xShift,i+s.y+s.yShift)}))}measureText(){var t;const e=null===(t=N.getTextMeasurementCanvas())||void 0===t?void 0:t.getContext("2d");return e?(e.font=B.toCSSString(B.validate(this.fontInfo)),this._textMetrics=e.measureText(this.text),this._height=this._textMetrics.actualBoundingBoxAscent+this._textMetrics.actualBoundingBoxDescent,this._width=this._textMetrics.width,this.metricsValid=!0,this._textMetrics):(console.warn("Element: No context for txtCanvas. Returning empty text metrics."),this._textMetrics)}static measureWidth(t,e=""){var i;const s=null===(i=N.getTextMeasurementCanvas())||void 0===i?void 0:i.getContext("2d");return s?(s.font=B.toCSSString(w.getFontInfo(e)),s.measureText(t).width):(console.warn("Element: No context for txtCanvas. Returning empty text metrics."),0)}getTextMetrics(){return this.textMetrics}get textMetrics(){return this.metricsValid||this.measureText(),this._textMetrics}getHeight(){return this.height}get height(){return this.metricsValid||this.measureText(),this._height}set height(t){this.metricsValid||this.measureText(),this._height=t}setOriginX(t){const e=this.getBoundingBox(),i=(t-Math.abs((e.getX()-this.xShift)/e.getW()))*e.getW();this.xShift=-i}setOriginY(t){const e=this.getBoundingBox(),i=(t-Math.abs((e.getY()-this.yShift)/e.getH()))*e.getH();this.yShift=-i}setOrigin(t,e){this.setOriginX(t),this.setOriginY(e)}}var F,O;N.ID=1e3,function(t){t[t.CENTER=0]="CENTER",t[t.LEFT=1]="LEFT",t[t.RIGHT=2]="RIGHT",t[t.ABOVE=3]="ABOVE",t[t.BELOW=4]="BELOW"}(F||(F={}));class P extends N{static get CATEGORY(){return l.Modifier}static get Position(){return F}static get PositionString(){return{center:F.CENTER,above:F.ABOVE,below:F.BELOW,left:F.LEFT,right:F.RIGHT}}constructor(){super(),this.width=0,this.textLine=0,this.position=P.Position.LEFT,this.spacingFromNextModifier=0}reset(){}getNote(){return u(this.note,"NoNote","Modifier has no note.")}checkAttachedNote(){const t=this.getCategory();return u(this.index,"NoIndex",`Can't draw ${t} without an index.`),u(this.note,"NoNote",`Can't draw ${t} without a note.`)}setNote(t){return this.note=t,this}getIndex(){return this.index}checkIndex(){return u(this.index,"NoIndex","Modifier has an invalid index.")}setIndex(t){return this.index=t,this}getModifierContext(){return this.modifierContext}checkModifierContext(){return u(this.modifierContext,"NoModifierContext","Modifier Context Required")}setModifierContext(t){return this.modifierContext=t,this}getPosition(){return this.position}setPosition(t){return this.position="string"==typeof t?P.PositionString[t]:t,this.reset(),this}setTextLine(t){return this.textLine=t,this}setYShift(t){return this.yShift=t,this}setSpacingFromNextModifier(t){this.spacingFromNextModifier=t}getSpacingFromNextModifier(){return this.spacingFromNextModifier}setXShift(t){return this.xShift=0,this.position===P.Position.LEFT?this.xShift-=t:this.xShift+=t,this}getXShift(){return this.xShift}draw(){throw this.checkContext(),new c("NotImplemented","draw() not implemented for this modifier.")}alignSubNotesWithNote(t,e,i=P.Position.LEFT){const s=e.getTickContext(),n=s.getMetrics(),a=e.getStave(),o=i===P.Position.RIGHT?s.getX()+this.getSpacingFromNextModifier()*t.length+10:s.getX()-n.modLeftPx-n.modRightPx+this.getSpacingFromNextModifier();t.forEach((t=>{const e=t.getTickContext();a&&t.setStave(a),e.setXOffset(o)}))}}class A{static get NUM_TONES(){return this.canonicalNotes.length}static get roots(){return["c","d","e","f","g","a","b"]}static get rootValues(){return[0,2,4,5,7,9,11]}static get rootIndexes(){return{c:0,d:1,e:2,f:3,g:4,a:5,b:6}}static get canonicalNotes(){return["c","c#","d","d#","e","f","f#","g","g#","a","a#","b"]}static get diatonicIntervals(){return["unison","m2","M2","m3","M3","p4","dim5","p5","m6","M6","b7","M7","octave"]}static get diatonicAccidentals(){return{unison:{note:0,accidental:0},m2:{note:1,accidental:-1},M2:{note:1,accidental:0},m3:{note:2,accidental:-1},M3:{note:2,accidental:0},p4:{note:3,accidental:0},dim5:{note:4,accidental:-1},p5:{note:4,accidental:0},m6:{note:5,accidental:-1},M6:{note:5,accidental:0},b7:{note:6,accidental:-1},M7:{note:6,accidental:0},octave:{note:7,accidental:0}}}static get intervals(){return{u:0,unison:0,m2:1,b2:1,min2:1,S:1,H:1,2:2,M2:2,maj2:2,T:2,W:2,m3:3,b3:3,min3:3,M3:4,3:4,maj3:4,4:5,p4:5,"#4":6,b5:6,aug4:6,dim5:6,5:7,p5:7,"#5":8,b6:8,aug5:8,6:9,M6:9,maj6:9,b7:10,m7:10,min7:10,dom7:10,M7:11,maj7:11,8:12,octave:12}}static get scales(){return{major:[2,2,1,2,2,2,1],minor:[2,1,2,2,1,2,2],ionian:[2,2,1,2,2,2,1],dorian:[2,1,2,2,2,1,2],phyrgian:[1,2,2,2,1,2,2],lydian:[2,2,2,1,2,2,1],mixolydian:[2,2,1,2,2,1,2],aeolian:[2,1,2,2,1,2,2],locrian:[1,2,2,1,2,2,2]}}static get scaleTypes(){return{M:A.scales.major,m:A.scales.minor}}static get accidentals(){return["bb","b","n","#","##"]}static get noteValues(){return{c:{rootIndex:0,intVal:0},cn:{rootIndex:0,intVal:0},"c#":{rootIndex:0,intVal:1},"c##":{rootIndex:0,intVal:2},cb:{rootIndex:0,intVal:11},cbb:{rootIndex:0,intVal:10},d:{rootIndex:1,intVal:2},dn:{rootIndex:1,intVal:2},"d#":{rootIndex:1,intVal:3},"d##":{rootIndex:1,intVal:4},db:{rootIndex:1,intVal:1},dbb:{rootIndex:1,intVal:0},e:{rootIndex:2,intVal:4},en:{rootIndex:2,intVal:4},"e#":{rootIndex:2,intVal:5},"e##":{rootIndex:2,intVal:6},eb:{rootIndex:2,intVal:3},ebb:{rootIndex:2,intVal:2},f:{rootIndex:3,intVal:5},fn:{rootIndex:3,intVal:5},"f#":{rootIndex:3,intVal:6},"f##":{rootIndex:3,intVal:7},fb:{rootIndex:3,intVal:4},fbb:{rootIndex:3,intVal:3},g:{rootIndex:4,intVal:7},gn:{rootIndex:4,intVal:7},"g#":{rootIndex:4,intVal:8},"g##":{rootIndex:4,intVal:9},gb:{rootIndex:4,intVal:6},gbb:{rootIndex:4,intVal:5},a:{rootIndex:5,intVal:9},an:{rootIndex:5,intVal:9},"a#":{rootIndex:5,intVal:10},"a##":{rootIndex:5,intVal:11},ab:{rootIndex:5,intVal:8},abb:{rootIndex:5,intVal:7},b:{rootIndex:6,intVal:11},bn:{rootIndex:6,intVal:11},"b#":{rootIndex:6,intVal:0},"b##":{rootIndex:6,intVal:1},bb:{rootIndex:6,intVal:10},bbb:{rootIndex:6,intVal:9}}}isValidNoteValue(t){return t>=0&&t<A.canonicalNotes.length}isValidIntervalValue(t){return t>=0&&t<A.diatonicIntervals.length}getNoteParts(t){if(!t||t.length<1)throw new c("BadArguments","Invalid note name: "+t);if(t.length>3)throw new c("BadArguments","Invalid note name: "+t);const e=t.toLowerCase(),i=/^([cdefgab])(b|bb|n|#|##)?$/.exec(e);if(null!==i){return{root:i[1],accidental:i[2]}}throw new c("BadArguments","Invalid note name: "+t)}getKeyParts(t){if(!t||t.length<1)throw new c("BadArguments","Invalid key: "+t);const e=t.toLowerCase(),i=/^([cdefgab])(b|#)?(mel|harm|m|M)?$/.exec(e);if(null!==i){const t=i[1],e=i[2];let s=i[3];return s||(s="M"),{root:t,accidental:e,type:s}}throw new c("BadArguments",`Invalid key: ${t}`)}getNoteValue(t){const e=A.noteValues[t];if(void 0===e)throw new c("BadArguments",`Invalid note name: ${t}`);return e.intVal}getIntervalValue(t){const e=A.intervals[t];if(void 0===e)throw new c("BadArguments",`Invalid interval name: ${t}`);return e}getCanonicalNoteName(t){if(!this.isValidNoteValue(t))throw new c("BadArguments",`Invalid note value: ${t}`);return A.canonicalNotes[t]}getCanonicalIntervalName(t){if(!this.isValidIntervalValue(t))throw new c("BadArguments",`Invalid interval value: ${t}`);return A.diatonicIntervals[t]}getRelativeNoteValue(t,e,i=1){if(1!==i&&-1!==i)throw new c("BadArguments",`Invalid direction: ${i}`);let s=(t+i*e)%A.NUM_TONES;return s<0&&(s+=A.NUM_TONES),s}getRelativeNoteName(t,e){const i=this.getNoteParts(t),s=this.getNoteValue(i.root);let n=e-s;if(Math.abs(n)>A.NUM_TONES-3){let i=1;n>0&&(i=-1);const a=(e+1+(s+1))%A.NUM_TONES*i;if(Math.abs(a)>2)throw new c("BadArguments",`Notes not related: ${t}, ${e})`);n=a}if(Math.abs(n)>2)throw new c("BadArguments",`Notes not related: ${t}, ${e})`);let a=i.root;if(n>0)for(let t=1;t<=n;++t)a+="#";else if(n<0)for(let t=-1;t>=n;--t)a+="b";return a}getScaleTones(t,e){const i=[t];let s=t;for(let n=0;n<e.length;n++)s=this.getRelativeNoteValue(s,e[n]),s!==t&&i.push(s);return i}getIntervalBetween(t,e,i=1){if(1!==i&&-1!==i)throw new c("BadArguments",`Invalid direction: ${i}`);if(!this.isValidNoteValue(t)||!this.isValidNoteValue(e))throw new c("BadArguments",`Invalid notes: ${t}, ${e}`);let s=1===i?e-t:t-e;return s<0&&(s+=A.NUM_TONES),s}createScaleMap(t){const e=this.getKeyParts(t);if(!e.type)throw new c("BadArguments","Unsupported key type: undefined");const i=A.scaleTypes[e.type];let s=e.root;if(e.accidental&&(s+=e.accidental),!i)throw new c("BadArguments","Unsupported key type: "+t);const n=this.getScaleTones(this.getNoteValue(s),i),a=A.rootIndexes[e.root],o={};for(let t=0;t<A.roots.length;++t){const e=(a+t)%A.roots.length,i=A.roots[e];let s=this.getRelativeNoteName(i,n[t]);1===s.length&&(s+="n"),o[i]=s}return o}}!function(t){t.null="\0",t.fourStringTabClef="",t.sixStringTabClef="",t.accSagittal11LargeDiesisDown="",t.accSagittal11LargeDiesisUp="",t.accSagittal11MediumDiesisDown="",t.accSagittal11MediumDiesisUp="",t.accSagittal11v19LargeDiesisDown="",t.accSagittal11v19LargeDiesisUp="",t.accSagittal11v19MediumDiesisDown="",t.accSagittal11v19MediumDiesisUp="",t.accSagittal11v49CommaDown="",t.accSagittal11v49CommaUp="",t.accSagittal143CommaDown="",t.accSagittal143CommaUp="",t.accSagittal17CommaDown="",t.accSagittal17CommaUp="",t.accSagittal17KleismaDown="",t.accSagittal17KleismaUp="",t.accSagittal19CommaDown="",t.accSagittal19CommaUp="",t.accSagittal19SchismaDown="",t.accSagittal19SchismaUp="",t.accSagittal1MinaDown="",t.accSagittal1MinaUp="",t.accSagittal1TinaDown="",t.accSagittal1TinaUp="",t.accSagittal23CommaDown="",t.accSagittal23CommaUp="",t.accSagittal23SmallDiesisDown="",t.accSagittal23SmallDiesisUp="",t.accSagittal25SmallDiesisDown="",t.accSagittal25SmallDiesisUp="",t.accSagittal2MinasDown="",t.accSagittal2MinasUp="",t.accSagittal2TinasDown="",t.accSagittal2TinasUp="",t.accSagittal35LargeDiesisDown="",t.accSagittal35LargeDiesisUp="",t.accSagittal35MediumDiesisDown="",t.accSagittal35MediumDiesisUp="",t.accSagittal3TinasDown="",t.accSagittal3TinasUp="",t.accSagittal49LargeDiesisDown="",t.accSagittal49LargeDiesisUp="",t.accSagittal49MediumDiesisDown="",t.accSagittal49MediumDiesisUp="",t.accSagittal49SmallDiesisDown="",t.accSagittal49SmallDiesisUp="",t.accSagittal4TinasDown="",t.accSagittal4TinasUp="",t.accSagittal55CommaDown="",t.accSagittal55CommaUp="",t.accSagittal5CommaDown="",t.accSagittal5CommaUp="",t.accSagittal5TinasDown="",t.accSagittal5TinasUp="",t.accSagittal5v11SmallDiesisDown="",t.accSagittal5v11SmallDiesisUp="",t.accSagittal5v13LargeDiesisDown="",t.accSagittal5v13LargeDiesisUp="",t.accSagittal5v13MediumDiesisDown="",t.accSagittal5v13MediumDiesisUp="",t.accSagittal5v19CommaDown="",t.accSagittal5v19CommaUp="",t.accSagittal5v23SmallDiesisDown="",t.accSagittal5v23SmallDiesisUp="",t.accSagittal5v49MediumDiesisDown="",t.accSagittal5v49MediumDiesisUp="",t.accSagittal5v7KleismaDown="",t.accSagittal5v7KleismaUp="",t.accSagittal6TinasDown="",t.accSagittal6TinasUp="",t.accSagittal7CommaDown="",t.accSagittal7CommaUp="",t.accSagittal7TinasDown="",t.accSagittal7TinasUp="",t.accSagittal7v11CommaDown="",t.accSagittal7v11CommaUp="",t.accSagittal7v11KleismaDown="",t.accSagittal7v11KleismaUp="",t.accSagittal7v19CommaDown="",t.accSagittal7v19CommaUp="",t.accSagittal8TinasDown="",t.accSagittal8TinasUp="",t.accSagittal9TinasDown="",t.accSagittal9TinasUp="",t.accSagittalAcute="",t.accSagittalDoubleFlat="",t.accSagittalDoubleFlat11v49CUp="",t.accSagittalDoubleFlat143CUp="",t.accSagittalDoubleFlat17CUp="",t.accSagittalDoubleFlat17kUp="",t.accSagittalDoubleFlat19CUp="",t.accSagittalDoubleFlat19sUp="",t.accSagittalDoubleFlat23CUp="",t.accSagittalDoubleFlat23SUp="",t.accSagittalDoubleFlat25SUp="",t.accSagittalDoubleFlat49SUp="",t.accSagittalDoubleFlat55CUp="",t.accSagittalDoubleFlat5CUp="",t.accSagittalDoubleFlat5v11SUp="",t.accSagittalDoubleFlat5v19CUp="",t.accSagittalDoubleFlat5v23SUp="",t.accSagittalDoubleFlat5v7kUp="",t.accSagittalDoubleFlat7CUp="",t.accSagittalDoubleFlat7v11CUp="",t.accSagittalDoubleFlat7v11kUp="",t.accSagittalDoubleFlat7v19CUp="",t.accSagittalDoubleSharp="",t.accSagittalDoubleSharp11v49CDown="",t.accSagittalDoubleSharp143CDown="",t.accSagittalDoubleSharp17CDown="",t.accSagittalDoubleSharp17kDown="",t.accSagittalDoubleSharp19CDown="",t.accSagittalDoubleSharp19sDown="",t.accSagittalDoubleSharp23CDown="",t.accSagittalDoubleSharp23SDown="",t.accSagittalDoubleSharp25SDown="",t.accSagittalDoubleSharp49SDown="",t.accSagittalDoubleSharp55CDown="",t.accSagittalDoubleSharp5CDown="",t.accSagittalDoubleSharp5v11SDown="",t.accSagittalDoubleSharp5v19CDown="",t.accSagittalDoubleSharp5v23SDown="",t.accSagittalDoubleSharp5v7kDown="",t.accSagittalDoubleSharp7CDown="",t.accSagittalDoubleSharp7v11CDown="",t.accSagittalDoubleSharp7v11kDown="",t.accSagittalDoubleSharp7v19CDown="",t.accSagittalFlat="",t.accSagittalFlat11LDown="",t.accSagittalFlat11MDown="",t.accSagittalFlat11v19LDown="",t.accSagittalFlat11v19MDown="",t.accSagittalFlat11v49CDown="",t.accSagittalFlat11v49CUp="",t.accSagittalFlat143CDown="",t.accSagittalFlat143CUp="",t.accSagittalFlat17CDown="",t.accSagittalFlat17CUp="",t.accSagittalFlat17kDown="",t.accSagittalFlat17kUp="",t.accSagittalFlat19CDown="",t.accSagittalFlat19CUp="",t.accSagittalFlat19sDown="",t.accSagittalFlat19sUp="",t.accSagittalFlat23CDown="",t.accSagittalFlat23CUp="",t.accSagittalFlat23SDown="",t.accSagittalFlat23SUp="",t.accSagittalFlat25SDown="",t.accSagittalFlat25SUp="",t.accSagittalFlat35LDown="",t.accSagittalFlat35MDown="",t.accSagittalFlat49LDown="",t.accSagittalFlat49MDown="",t.accSagittalFlat49SDown="",t.accSagittalFlat49SUp="",t.accSagittalFlat55CDown="",t.accSagittalFlat55CUp="",t.accSagittalFlat5CDown="",t.accSagittalFlat5CUp="",t.accSagittalFlat5v11SDown="",t.accSagittalFlat5v11SUp="",t.accSagittalFlat5v13LDown="",t.accSagittalFlat5v13MDown="",t.accSagittalFlat5v19CDown="",t.accSagittalFlat5v19CUp="",t.accSagittalFlat5v23SDown="",t.accSagittalFlat5v23SUp="",t.accSagittalFlat5v49MDown="",t.accSagittalFlat5v7kDown="",t.accSagittalFlat5v7kUp="",t.accSagittalFlat7CDown="",t.accSagittalFlat7CUp="",t.accSagittalFlat7v11CDown="",t.accSagittalFlat7v11CUp="",t.accSagittalFlat7v11kDown="",t.accSagittalFlat7v11kUp="",t.accSagittalFlat7v19CDown="",t.accSagittalFlat7v19CUp="",t.accSagittalFractionalTinaDown="",t.accSagittalFractionalTinaUp="",t.accSagittalGrave="",t.accSagittalShaftDown="",t.accSagittalShaftUp="",t.accSagittalSharp="",t.accSagittalSharp11LUp="",t.accSagittalSharp11MUp="",t.accSagittalSharp11v19LUp="",t.accSagittalSharp11v19MUp="",t.accSagittalSharp11v49CDown="",t.accSagittalSharp11v49CUp="",t.accSagittalSharp143CDown="",t.accSagittalSharp143CUp="",t.accSagittalSharp17CDown="",t.accSagittalSharp17CUp="",t.accSagittalSharp17kDown="",t.accSagittalSharp17kUp="",t.accSagittalSharp19CDown="",t.accSagittalSharp19CUp="",t.accSagittalSharp19sDown="",t.accSagittalSharp19sUp="",t.accSagittalSharp23CDown="",t.accSagittalSharp23CUp="",t.accSagittalSharp23SDown="",t.accSagittalSharp23SUp="",t.accSagittalSharp25SDown="",t.accSagittalSharp25SUp="",t.accSagittalSharp35LUp="",t.accSagittalSharp35MUp="",t.accSagittalSharp49LUp="",t.accSagittalSharp49MUp="",t.accSagittalSharp49SDown="",t.accSagittalSharp49SUp="",t.accSagittalSharp55CDown="",t.accSagittalSharp55CUp="",t.accSagittalSharp5CDown="",t.accSagittalSharp5CUp="",t.accSagittalSharp5v11SDown="",t.accSagittalSharp5v11SUp="",t.accSagittalSharp5v13LUp="",t.accSagittalSharp5v13MUp="",t.accSagittalSharp5v19CDown="",t.accSagittalSharp5v19CUp="",t.accSagittalSharp5v23SDown="",t.accSagittalSharp5v23SUp="",t.accSagittalSharp5v49MUp="",t.accSagittalSharp5v7kDown="",t.accSagittalSharp5v7kUp="",t.accSagittalSharp7CDown="",t.accSagittalSharp7CUp="",t.accSagittalSharp7v11CDown="",t.accSagittalSharp7v11CUp="",t.accSagittalSharp7v11kDown="",t.accSagittalSharp7v11kUp="",t.accSagittalSharp7v19CDown="",t.accSagittalSharp7v19CUp="",t.accSagittalUnused1="",t.accSagittalUnused2="",t.accSagittalUnused3="",t.accSagittalUnused4="",t.accdnCombDot="",t.accdnCombLH2RanksEmpty="",t.accdnCombLH3RanksEmptySquare="",t.accdnCombRH3RanksEmpty="",t.accdnCombRH4RanksEmpty="",t.accdnDiatonicClef="",t.accdnLH2Ranks16Round="",t.accdnLH2Ranks8Plus16Round="",t.accdnLH2Ranks8Round="",t.accdnLH2RanksFullMasterRound="",t.accdnLH2RanksMasterPlus16Round="",t.accdnLH2RanksMasterRound="",t.accdnLH3Ranks2Plus8Square="",t.accdnLH3Ranks2Square="",t.accdnLH3Ranks8Square="",t.accdnLH3RanksDouble8Square="",t.accdnLH3RanksTuttiSquare="",t.accdnPull="",t.accdnPush="",t.accdnRH3RanksAccordion="",t.accdnRH3RanksAuthenticMusette="",t.accdnRH3RanksBandoneon="",t.accdnRH3RanksBassoon="",t.accdnRH3RanksClarinet="",t.accdnRH3RanksDoubleTremoloLower8ve="",t.accdnRH3RanksDoubleTremoloUpper8ve="",t.accdnRH3RanksFullFactory="",t.accdnRH3RanksHarmonium="",t.accdnRH3RanksImitationMusette="",t.accdnRH3RanksLowerTremolo8="",t.accdnRH3RanksMaster="",t.accdnRH3RanksOboe="",t.accdnRH3RanksOrgan="",t.accdnRH3RanksPiccolo="",t.accdnRH3RanksTremoloLower8ve="",t.accdnRH3RanksTremoloUpper8ve="",t.accdnRH3RanksTwoChoirs="",t.accdnRH3RanksUpperTremolo8="",t.accdnRH3RanksViolin="",t.accdnRH4RanksAlto="",t.accdnRH4RanksBassAlto="",t.accdnRH4RanksMaster="",t.accdnRH4RanksSoftBass="",t.accdnRH4RanksSoftTenor="",t.accdnRH4RanksSoprano="",t.accdnRH4RanksTenor="",t.accdnRicochet2="",t.accdnRicochet3="",t.accdnRicochet4="",t.accdnRicochet5="",t.accdnRicochet6="",t.accdnRicochetStem2="",t.accdnRicochetStem3="",t.accdnRicochetStem4="",t.accdnRicochetStem5="",t.accdnRicochetStem6="",t.accidental1CommaFlat="",t.accidental1CommaSharp="",t.accidental2CommaFlat="",t.accidental2CommaSharp="",t.accidental3CommaFlat="",t.accidental3CommaSharp="",t.accidental4CommaFlat="",t.accidental5CommaSharp="",t.accidentalArrowDown="",t.accidentalArrowUp="",t.accidentalBakiyeFlat="",t.accidentalBakiyeSharp="",t.accidentalBracketLeft="",t.accidentalBracketRight="",t.accidentalBuyukMucennebFlat="",t.accidentalBuyukMucennebSharp="",t.accidentalCombiningCloseCurlyBrace="",t.accidentalCombiningLower17Schisma="",t.accidentalCombiningLower19Schisma="",t.accidentalCombiningLower23Limit29LimitComma="",t.accidentalCombiningLower29LimitComma="",t.accidentalCombiningLower31Schisma="",t.accidentalCombiningLower37Quartertone="",t.accidentalCombiningLower41Comma="",t.accidentalCombiningLower43Comma="",t.accidentalCombiningLower47Quartertone="",t.accidentalCombiningLower53LimitComma="",t.accidentalCombiningOpenCurlyBrace="",t.accidentalCombiningRaise17Schisma="",t.accidentalCombiningRaise19Schisma="",t.accidentalCombiningRaise23Limit29LimitComma="",t.accidentalCombiningRaise29LimitComma="",t.accidentalCombiningRaise31Schisma="",t.accidentalCombiningRaise37Quartertone="",t.accidentalCombiningRaise41Comma="",t.accidentalCombiningRaise43Comma="",t.accidentalCombiningRaise47Quartertone="",t.accidentalCombiningRaise53LimitComma="",t.accidentalCommaSlashDown="",t.accidentalCommaSlashUp="",t.accidentalDoubleFlat="",t.accidentalDoubleFlatArabic="",t.accidentalDoubleFlatEqualTempered="",t.accidentalDoubleFlatOneArrowDown="",t.accidentalDoubleFlatOneArrowUp="",t.accidentalDoubleFlatReversed="",t.accidentalDoubleFlatThreeArrowsDown="",t.accidentalDoubleFlatThreeArrowsUp="",t.accidentalDoubleFlatTurned="",t.accidentalDoubleFlatTwoArrowsDown="",t.accidentalDoubleFlatTwoArrowsUp="",t.accidentalDoubleSharp="",t.accidentalDoubleSharpArabic="",t.accidentalDoubleSharpEqualTempered="",t.accidentalDoubleSharpOneArrowDown="",t.accidentalDoubleSharpOneArrowUp="",t.accidentalDoubleSharpThreeArrowsDown="",t.accidentalDoubleSharpThreeArrowsUp="",t.accidentalDoubleSharpTwoArrowsDown="",t.accidentalDoubleSharpTwoArrowsUp="",t.accidentalEnharmonicAlmostEqualTo="",t.accidentalEnharmonicEquals="",t.accidentalEnharmonicTilde="",t.accidentalFilledReversedFlatAndFlat="",t.accidentalFilledReversedFlatAndFlatArrowDown="",t.accidentalFilledReversedFlatAndFlatArrowUp="",t.accidentalFilledReversedFlatArrowDown="",t.accidentalFilledReversedFlatArrowUp="",t.accidentalFiveQuarterTonesFlatArrowDown="",t.accidentalFiveQuarterTonesSharpArrowUp="",t.accidentalFlat="",t.accidentalFlatArabic="",t.accidentalFlatEqualTempered="",t.accidentalFlatLoweredStockhausen="",t.accidentalFlatOneArrowDown="",t.accidentalFlatOneArrowUp="",t.accidentalFlatRaisedStockhausen="",t.accidentalFlatRepeatedLineStockhausen="",t.accidentalFlatRepeatedSpaceStockhausen="",t.accidentalFlatThreeArrowsDown="",t.accidentalFlatThreeArrowsUp="",t.accidentalFlatTurned="",t.accidentalFlatTwoArrowsDown="",t.accidentalFlatTwoArrowsUp="",t.accidentalHabaFlatQuarterToneHigher="",t.accidentalHabaFlatThreeQuarterTonesLower="",t.accidentalHabaQuarterToneHigher="",t.accidentalHabaQuarterToneLower="",t.accidentalHabaSharpQuarterToneLower="",t.accidentalHabaSharpThreeQuarterTonesHigher="",t.accidentalHalfSharpArrowDown="",t.accidentalHalfSharpArrowUp="",t.accidentalJohnston13="",t.accidentalJohnston31="",t.accidentalJohnstonDown="",t.accidentalJohnstonEl="",t.accidentalJohnstonMinus="",t.accidentalJohnstonPlus="",t.accidentalJohnstonSeven="",t.accidentalJohnstonUp="",t.accidentalKomaFlat="",t.accidentalKomaSharp="",t.accidentalKoron="",t.accidentalKucukMucennebFlat="",t.accidentalKucukMucennebSharp="",t.accidentalLargeDoubleSharp="",t.accidentalLowerOneSeptimalComma="",t.accidentalLowerOneTridecimalQuartertone="",t.accidentalLowerOneUndecimalQuartertone="",t.accidentalLowerTwoSeptimalCommas="",t.accidentalLoweredStockhausen="",t.accidentalNarrowReversedFlat="",t.accidentalNarrowReversedFlatAndFlat="",t.accidentalNatural="",t.accidentalNaturalArabic="",t.accidentalNaturalEqualTempered="",t.accidentalNaturalFlat="",t.accidentalNaturalLoweredStockhausen="",t.accidentalNaturalOneArrowDown="",t.accidentalNaturalOneArrowUp="",t.accidentalNaturalRaisedStockhausen="",t.accidentalNaturalReversed="",t.accidentalNaturalSharp="",t.accidentalNaturalThreeArrowsDown="",t.accidentalNaturalThreeArrowsUp="",t.accidentalNaturalTwoArrowsDown="",t.accidentalNaturalTwoArrowsUp="",t.accidentalOneAndAHalfSharpsArrowDown="",t.accidentalOneAndAHalfSharpsArrowUp="",t.accidentalOneQuarterToneFlatFerneyhough="",t.accidentalOneQuarterToneFlatStockhausen="",t.accidentalOneQuarterToneSharpFerneyhough="",t.accidentalOneQuarterToneSharpStockhausen="",t.accidentalOneThirdToneFlatFerneyhough="",t.accidentalOneThirdToneSharpFerneyhough="",t.accidentalParensLeft="",t.accidentalParensRight="",t.accidentalQuarterFlatEqualTempered="",t.accidentalQuarterSharpEqualTempered="",t.accidentalQuarterToneFlat4="",t.accidentalQuarterToneFlatArabic="",t.accidentalQuarterToneFlatArrowUp="",t.accidentalQuarterToneFlatFilledReversed="",t.accidentalQuarterToneFlatNaturalArrowDown="",t.accidentalQuarterToneFlatPenderecki="",t.accidentalQuarterToneFlatStein="",t.accidentalQuarterToneFlatVanBlankenburg="",t.accidentalQuarterToneSharp4="",t.accidentalQuarterToneSharpArabic="",t.accidentalQuarterToneSharpArrowDown="",t.accidentalQuarterToneSharpBusotti="",t.accidentalQuarterToneSharpNaturalArrowUp="",t.accidentalQuarterToneSharpStein="",t.accidentalQuarterToneSharpWiggle="",t.accidentalRaiseOneSeptimalComma="",t.accidentalRaiseOneTridecimalQuartertone="",t.accidentalRaiseOneUndecimalQuartertone="",t.accidentalRaiseTwoSeptimalCommas="",t.accidentalRaisedStockhausen="",t.accidentalReversedFlatAndFlatArrowDown="",t.accidentalReversedFlatAndFlatArrowUp="",t.accidentalReversedFlatArrowDown="",t.accidentalReversedFlatArrowUp="",t.accidentalSharp="",t.accidentalSharpArabic="",t.accidentalSharpEqualTempered="",t.accidentalSharpLoweredStockhausen="",t.accidentalSharpOneArrowDown="",t.accidentalSharpOneArrowUp="",t.accidentalSharpOneHorizontalStroke="",t.accidentalSharpRaisedStockhausen="",t.accidentalSharpRepeatedLineStockhausen="",t.accidentalSharpRepeatedSpaceStockhausen="",t.accidentalSharpReversed="",t.accidentalSharpSharp="",t.accidentalSharpThreeArrowsDown="",t.accidentalSharpThreeArrowsUp="",t.accidentalSharpTwoArrowsDown="",t.accidentalSharpTwoArrowsUp="",t.accidentalSims12Down="",t.accidentalSims12Up="",t.accidentalSims4Down="",t.accidentalSims4Up="",t.accidentalSims6Down="",t.accidentalSims6Up="",t.accidentalSori="",t.accidentalTavenerFlat="",t.accidentalTavenerSharp="",t.accidentalThreeQuarterTonesFlatArabic="",t.accidentalThreeQuarterTonesFlatArrowDown="",t.accidentalThreeQuarterTonesFlatArrowUp="",t.accidentalThreeQuarterTonesFlatCouper="",t.accidentalThreeQuarterTonesFlatGrisey="",t.accidentalThreeQuarterTonesFlatTartini="",t.accidentalThreeQuarterTonesFlatZimmermann="",t.accidentalThreeQuarterTonesSharpArabic="",t.accidentalThreeQuarterTonesSharpArrowDown="",t.accidentalThreeQuarterTonesSharpArrowUp="",t.accidentalThreeQuarterTonesSharpBusotti="",t.accidentalThreeQuarterTonesSharpStein="",t.accidentalThreeQuarterTonesSharpStockhausen="",t.accidentalTripleFlat="",t.accidentalTripleSharp="",t.accidentalTwoThirdTonesFlatFerneyhough="",t.accidentalTwoThirdTonesSharpFerneyhough="",t.accidentalUpsAndDownsDown="",t.accidentalUpsAndDownsLess="",t.accidentalUpsAndDownsMore="",t.accidentalUpsAndDownsUp="",t.accidentalWilsonMinus="",t.accidentalWilsonPlus="",t.accidentalWyschnegradsky10TwelfthsFlat="",t.accidentalWyschnegradsky10TwelfthsSharp="",t.accidentalWyschnegradsky11TwelfthsFlat="",t.accidentalWyschnegradsky11TwelfthsSharp="",t.accidentalWyschnegradsky1TwelfthsFlat="",t.accidentalWyschnegradsky1TwelfthsSharp="",t.accidentalWyschnegradsky2TwelfthsFlat="",t.accidentalWyschnegradsky2TwelfthsSharp="",t.accidentalWyschnegradsky3TwelfthsFlat="",t.accidentalWyschnegradsky3TwelfthsSharp="",t.accidentalWyschnegradsky4TwelfthsFlat="",t.accidentalWyschnegradsky4TwelfthsSharp="",t.accidentalWyschnegradsky5TwelfthsFlat="",t.accidentalWyschnegradsky5TwelfthsSharp="",t.accidentalWyschnegradsky6TwelfthsFlat="",t.accidentalWyschnegradsky6TwelfthsSharp="",t.accidentalWyschnegradsky7TwelfthsFlat="",t.accidentalWyschnegradsky7TwelfthsSharp="",t.accidentalWyschnegradsky8TwelfthsFlat="",t.accidentalWyschnegradsky8TwelfthsSharp="",t.accidentalWyschnegradsky9TwelfthsFlat="",t.accidentalWyschnegradsky9TwelfthsSharp="",t.accidentalXenakisOneThirdToneSharp="",t.accidentalXenakisTwoThirdTonesSharp="",t.analyticsChoralmelodie="",t.analyticsEndStimme="",t.analyticsHauptrhythmus="",t.analyticsHauptstimme="",t.analyticsInversion1="",t.analyticsNebenstimme="",t.analyticsStartStimme="",t.analyticsTheme="",t.analyticsTheme1="",t.analyticsThemeInversion="",t.analyticsThemeRetrograde="",t.analyticsThemeRetrogradeInversion="",t.arpeggiato="",t.arpeggiatoDown="",t.arpeggiatoUp="",t.arrowBlackDown="",t.arrowBlackDownLeft="",t.arrowBlackDownRight="",t.arrowBlackLeft="",t.arrowBlackRight="",t.arrowBlackUp="",t.arrowBlackUpLeft="",t.arrowBlackUpRight="",t.arrowOpenDown="",t.arrowOpenDownLeft="",t.arrowOpenDownRight="",t.arrowOpenLeft="",t.arrowOpenRight="",t.arrowOpenUp="",t.arrowOpenUpLeft="",t.arrowOpenUpRight="",t.arrowWhiteDown="",t.arrowWhiteDownLeft="",t.arrowWhiteDownRight="",t.arrowWhiteLeft="",t.arrowWhiteRight="",t.arrowWhiteUp="",t.arrowWhiteUpLeft="",t.arrowWhiteUpRight="",t.arrowheadBlackDown="",t.arrowheadBlackDownLeft="",t.arrowheadBlackDownRight="",t.arrowheadBlackLeft="",t.arrowheadBlackRight="",t.arrowheadBlackUp="",t.arrowheadBlackUpLeft="",t.arrowheadBlackUpRight="",t.arrowheadOpenDown="",t.arrowheadOpenDownLeft="",t.arrowheadOpenDownRight="",t.arrowheadOpenLeft="",t.arrowheadOpenRight="",t.arrowheadOpenUp="",t.arrowheadOpenUpLeft="",t.arrowheadOpenUpRight="",t.arrowheadWhiteDown="",t.arrowheadWhiteDownLeft="",t.arrowheadWhiteDownRight="",t.arrowheadWhiteLeft="",t.arrowheadWhiteRight="",t.arrowheadWhiteUp="",t.arrowheadWhiteUpLeft="",t.arrowheadWhiteUpRight="",t.articAccentAbove="",t.articAccentBelow="",t.articAccentStaccatoAbove="",t.articAccentStaccatoBelow="",t.articLaissezVibrerAbove="",t.articLaissezVibrerBelow="",t.articMarcatoAbove="",t.articMarcatoBelow="",t.articMarcatoStaccatoAbove="",t.articMarcatoStaccatoBelow="",t.articMarcatoTenutoAbove="",t.articMarcatoTenutoBelow="",t.articSoftAccentAbove="",t.articSoftAccentBelow="",t.articSoftAccentStaccatoAbove="",t.articSoftAccentStaccatoBelow="",t.articSoftAccentTenutoAbove="",t.articSoftAccentTenutoBelow="",t.articSoftAccentTenutoStaccatoAbove="",t.articSoftAccentTenutoStaccatoBelow="",t.articStaccatissimoAbove="",t.articStaccatissimoBelow="",t.articStaccatissimoStrokeAbove="",t.articStaccatissimoStrokeBelow="",t.articStaccatissimoWedgeAbove="",t.articStaccatissimoWedgeBelow="",t.articStaccatoAbove="",t.articStaccatoBelow="",t.articStressAbove="",t.articStressBelow="",t.articTenutoAbove="",t.articTenutoAccentAbove="",t.articTenutoAccentBelow="",t.articTenutoBelow="",t.articTenutoStaccatoAbove="",t.articTenutoStaccatoBelow="",t.articUnstressAbove="",t.articUnstressBelow="",t.augmentationDot="",t.barlineDashed="",t.barlineDotted="",t.barlineDouble="",t.barlineFinal="",t.barlineHeavy="",t.barlineHeavyHeavy="",t.barlineReverseFinal="",t.barlineShort="",t.barlineSingle="",t.barlineTick="",t.beamAccelRit1="",t.beamAccelRit10="",t.beamAccelRit11="",t.beamAccelRit12="",t.beamAccelRit13="",t.beamAccelRit14="",t.beamAccelRit15="",t.beamAccelRit2="",t.beamAccelRit3="",t.beamAccelRit4="",t.beamAccelRit5="",t.beamAccelRit6="",t.beamAccelRit7="",t.beamAccelRit8="",t.beamAccelRit9="",t.beamAccelRitFinal="",t.brace="",t.bracket="",t.bracketBottom="",t.bracketTop="",t.brassBend="",t.brassDoitLong="",t.brassDoitMedium="",t.brassDoitShort="",t.brassFallLipLong="",t.brassFallLipMedium="",t.brassFallLipShort="",t.brassFallRoughLong="",t.brassFallRoughMedium="",t.brassFallRoughShort="",t.brassFallSmoothLong="",t.brassFallSmoothMedium="",t.brassFallSmoothShort="",t.brassFlip="",t.brassHarmonMuteClosed="",t.brassHa