UNPKG

vexflow

Version:

A JavaScript library for rendering music notation and guitar tablature.

6 lines 356 kB
/*! * VexFlow 4.2.1 2023-06-21T20:24:17.916Z 6c05deea44902a09a017507a8ddc810d2e2a9922 * Copyright (c) 2010 Mohit Muthanna Cheppudira <mohit@muthanna.com> * https://www.vexflow.com https://github.com/0xfe/vexflow */ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Vex=e():t.Vex=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),t.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var e={};t.d(e,{default:()=>i});var i={};function s(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.r(i),t.d(i,{Accidental:()=>st,Annotation:()=>gt,AnnotationHorizontalJustify:()=>dt,AnnotationVerticalJustify:()=>lt,Articulation:()=>yt,BEAM_BOTH:()=>Oe,BEAM_LEFT:()=>Me,BEAM_RIGHT:()=>Re,BarNote:()=>Dt,Barline:()=>kt,BarlineType:()=>Et,Beam:()=>Le,Bend:()=>Ft,BoundingBox:()=>C,BoundingBoxComputation:()=>N,Builder:()=>Ke,CanvasContext:()=>Zt,Category:()=>u,ChordSymbol:()=>Rt,ChordSymbolHorizontalJustify:()=>Bt,ChordSymbolVerticalJustify:()=>Ct,Clef:()=>_e,ClefNote:()=>We,Crescendo:()=>Ie,Curve:()=>Ue,CurvePosition:()=>Ge,Dot:()=>Ot,EasyScore:()=>Qe,EasyScoreGrammar:()=>Ve,Element:()=>L,Factory:()=>bi,Flow:()=>ki,Font:()=>M,FontStyle:()=>A,FontWeight:()=>P,Formatter:()=>Ae,Fraction:()=>E,FretHandFinger:()=>Lt,GhostNote:()=>ti,Glyph:()=>Z,GlyphNote:()=>ei,GraceNote:()=>ii,GraceNoteGroup:()=>Vt,GraceTabNote:()=>wi,KeyManager:()=>Ei,KeySigNote:()=>si,KeySignature:()=>ue,Modifier:()=>tt,ModifierContext:()=>me,ModifierPosition:()=>J,MultiMeasureRest:()=>ai,Music:()=>et,Note:()=>bt,NoteHead:()=>Wt,NoteSubGroup:()=>zt,Ornament:()=>$t,OutlineCode:()=>$,Parenthesis:()=>Jt,Parser:()=>je,PedalMarking:()=>ri,Piece:()=>ze,Registry:()=>O,RenderContext:()=>St,Renderer:()=>he,RendererBackends:()=>ne,RendererLineEndType:()=>ae,RepeatNote:()=>ci,Repetition:()=>pe,RuntimeError:()=>p,SVGContext:()=>se,Stave:()=>Be,StaveConnector:()=>Ne,StaveHairpin:()=>Bi,StaveLine:()=>li,StaveModifier:()=>At,StaveModifierPosition:()=>wt,StaveNote:()=>Ut,StaveSection:()=>xe,StaveTempo:()=>fe,StaveText:()=>Se,StaveTie:()=>Ht,Stem:()=>nt,StemmableNote:()=>It,StringNumber:()=>ce,Stroke:()=>de,SymbolModifiers:()=>Pt,SymbolTypes:()=>Nt,System:()=>gi,TabNote:()=>mi,TabSlide:()=>Ci,TabStave:()=>_i,TabTie:()=>Yt,TextBracket:()=>xi,TextBracketPosition:()=>pi,TextDynamics:()=>yi,TextFormatter:()=>ct,TextJustification:()=>oe,TextNote:()=>ye,TickContext:()=>Kt,Tickable:()=>vt,TimeSigNote:()=>Si,TimeSignature:()=>be,TimeSignatureGlyph:()=>ve,Tremolo:()=>Ni,Tuning:()=>Pi,Tuplet:()=>De,TupletLocation:()=>ke,Vex:()=>Li,Vibrato:()=>le,VibratoBracket:()=>Ti,Voice:()=>Xt,VoiceMode:()=>jt,Volta:()=>Te,VoltaType:()=>re,defined:()=>f,drawDot:()=>Tt,globalObject:()=>x,isAccidental:()=>n,isAnnotation:()=>a,isBarline:()=>o,isCategory:()=>s,isDot:()=>r,isGraceNote:()=>h,isGraceNoteGroup:()=>c,isHTMLCanvas:()=>qt,isHTMLDiv:()=>Qt,isNote:()=>d,isRenderContext:()=>l,isStaveNote:()=>g,isStemmableNote:()=>m,isTabNote:()=>_,log:()=>y,midLine:()=>T,normalizeAngle:()=>b,prefix:()=>v,sumArray:()=>w,warn:()=>S});const n=t=>s(t,u.Accidental),a=t=>s(t,u.Annotation),o=t=>s(t,u.Barline),r=t=>s(t,u.Dot),h=t=>s(t,u.GraceNote),c=t=>s(t,u.GraceNoteGroup),d=t=>s(t,u.Note),l=t=>s(t,u.RenderContext),g=t=>s(t,u.StaveNote),m=t=>s(t,u.StemmableNote),_=t=>s(t,u.TabNote);var u;!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.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"}(u||(u={}));class p extends Error{constructor(t,e=""){super("[RuntimeError] "+t+": "+e),this.code=t}}function x(){return"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==t.g?t.g:Function("return this")()}function f(t,e="undefined",i=""){if(void 0===t)throw new p(e,i);return t}function y(t,...e){if(!e)return;const i=Array.prototype.slice.call(e).join(" ");x().console.log(t+": "+i)}function S(...t){const e=t.join(" "),i=new Error;x().console.log("Warning: ",e,i.stack)}function T(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 v(t){return`vf-${t}`}function b(t){return(t%=2*Math.PI)<0&&(t+=2*Math.PI),t}function w(t){return t.reduce(((t,e)=>t+e),0)}class E{static get CATEGORY(){return u.Fraction}static GCD(t,e){if("number"!=typeof t||Number.isNaN(t)||"number"!=typeof e||Number.isNaN(e))throw new p("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/E.GCD(t,e)}static LCMM(t){return 0===t.length?0:1===t.length?t[0]:2===t.length?E.LCM(t[0],t[1]):E.LCM(t.shift(),E.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=E.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]=B(t,e),n=E.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]=B(t,e),n=E.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]=B(t,e);return this.set(this.numerator*i,this.denominator*s)}divide(t=1,e=1){const[i,s]=B(t,e);return this.set(this.numerator*s,this.denominator*i)}equals(t){const e=E.__staticFractionA.copy(t).simplify(),i=E.__staticFractionB.copy(this).simplify();return e.numerator===i.numerator&&e.denominator===i.denominator}greaterThan(t){const e=E.__staticFractionB.copy(this);return e.subtract(t),e.numerator>0}greaterThanEquals(t){const e=E.__staticFractionB.copy(this);return e.subtract(t),e.numerator>=0}lessThan(t){return!this.greaterThanEquals(t)}lessThanEquals(t){return!this.greaterThan(t)}clone(){return new E(this.numerator,this.denominator)}copy(t){return"number"==typeof t?this.set(t,1):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 E.__staticFractionTmp.copy(this).simplify().toString()}toMixedString(){let t="";const e=this.quotient(),i=E.__staticFractionTmp.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 B(t,e=1){return"number"==typeof t?[t,e]:[t.numerator,t.denominator]}E.__staticFractionA=new E,E.__staticFractionB=new E,E.__staticFractionTmp=new E;class C{static copy(t){return new C(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 C.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}}class N{constructor(){this.x1=Number.NaN,this.y1=Number.NaN,this.x2=Number.NaN,this.y2=Number.NaN}getX1(){return this.x1}getY1(){return this.y1}width(){return this.x2-this.x1}height(){return this.y2-this.y1}addPoint(t,e){(isNaN(this.x1)||t<this.x1)&&(this.x1=t),(isNaN(this.x2)||t>this.x2)&&(this.x2=t),(isNaN(this.y1)||e<this.y1)&&(this.y1=e),(isNaN(this.y2)||e>this.y2)&&(this.y2=e)}addX(t){this.addPoint(t,this.y1)}addY(t){this.addPoint(this.x1,t)}addQuadraticCurve(t,e,i,s,n,a){this.addPoint(t,e),this.addPoint(n,a);const o=i-t;let r=o-(n-i);if(0!=r){const e=o/r;if(e>0&&e<1){const s=1-e;this.addX(s*s*t+2*s*e*i+e*e*n)}}const h=s-e;if(r=h-(a-s),0!=r){const t=h/r;if(t>0&&t<1){const i=1-t;this.addY(i*i*e+2*i*t*s+t*t*a)}}}addBezierCurve(t,e,i,s,n,a,o,r){const h=[t,e],c=[i,s],d=[n,a],l=[o,r];let g;this.addPoint(h[0],h[1]),this.addPoint(l[0],l[1]);const m=(t,e)=>Math.pow(1-t,3)*h[e]+3*Math.pow(1-t,2)*t*c[e]+3*(1-t)*Math.pow(t,2)*d[e]+Math.pow(t,3)*l[e];for(g=0;g<=1;g++){const t=6*h[g]-12*c[g]+6*d[g],e=-3*h[g]+9*c[g]-9*d[g]+3*l[g],i=3*c[g]-3*h[g];if(0===e){if(0===t)continue;const e=-i/t;0<e&&e<1&&(0===g&&this.addX(m(e,g)),1===g&&this.addY(m(e,g)));continue}const s=Math.pow(t,2)-4*i*e;if(s<0)continue;const n=(-t+Math.sqrt(s))/(2*e);0<n&&n<1&&(0===g&&this.addX(m(n,g)),1===g&&this.addY(m(n,g)));const a=(-t-Math.sqrt(s))/(2*e);0<a&&a<1&&(0===g&&this.addX(m(a,g)),1===g&&this.addY(m(a,g)))}}}var P,A,k=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 D;!function(t){t.NORMAL="normal",t.BOLD="bold"}(P||(P={})),function(t){t.NORMAL="normal",t.ITALIC="italic"}(A||(A={}));const F={};class M{static convertSizeToPixelValue(t=M.SIZE){var e;if("number"==typeof t)return t*M.scaleToPxFrom.pt;{const i=parseFloat(t);if(isNaN(i))return 0;const s=t.replace(/[\d.\s]/g,"").toLowerCase();return i*(null!==(e=M.scaleToPxFrom[s])&&void 0!==e?e:1)}}static convertSizeToPointValue(t=M.SIZE){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=M.scaleToPxFrom[s])&&void 0!==e?e:1)/M.scaleToPxFrom.pt)}}static validate(t,e,i,s){if("string"==typeof t&&void 0===e&&void 0===i&&void 0===s)return M.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:M.SANS_SERIF,e=null!=e?e:M.SIZE+"pt",i=null!=i?i:P.NORMAL,s=null!=s?s:A.NORMAL,""===i&&(i=P.NORMAL),""===s&&(s=A.NORMAL),"number"==typeof e&&(e=`${e}pt`),"number"==typeof i&&(i=i.toString()),{family:n,size:e,weight:i,style:s}}static fromCSSString(t){D||(D=document.createElement("span")),D.style.font=t;const{fontFamily:e,fontSize:i,fontWeight:s,fontStyle:n}=D.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===A.NORMAL||""===s||void 0===s?"":s.trim()+" ";const a=t.weight;let o;n=a===P.NORMAL||""===a||void 0===a?"":"number"==typeof a?a+" ":a.trim()+" ";const r=t.size;o=void 0===r?M.SIZE+"pt ":"number"==typeof r?r+"pt ":r.trim()+" ";return`${i}${n}${o}${null!==(e=t.family)&&void 0!==e?e:M.SANS_SERIF}`}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()===A.ITALIC}static loadWebFont(t,e,i=!0){return k(this,void 0,void 0,(function*(){const s=new FontFace(t,(i?`url(${e}2) format('woff2'), `:"")+`url(${e}) format('woff')`);return yield s.load(),document.fonts.add(s),s}))}static loadWebFonts(){return k(this,void 0,void 0,(function*(){const t=M.WEB_FONT_HOST,e=M.WEB_FONT_FILES;for(const i in e){const s=e[i];M.loadWebFont(i,t+s)}}))}static load(t,e,i){let s=F[t];return s||(s=new M(t),F[t]=s),e&&s.setData(e),i&&s.setMetrics(i),s}constructor(t){this.name=t}getName(){return this.name}getData(){return f(this.data,"FontError","Missing font data")}getMetrics(){return f(this.metrics,"FontError","Missing metrics")}setData(t){this.data=t}setMetrics(t){this.metrics=t}hasData(){return void 0!==this.data}getResolution(){return this.getData().resolution}getGlyphs(){return this.getData().glyphs}lookupMetric(t,e){const i=t.split(".");let s=this.getMetrics();for(let t=0;t<i.length;t++){const n=s[i[t]];if(void 0===n)return e;s=n}return s}toString(){return"["+this.name+" Font]"}}M.SANS_SERIF="Arial, sans-serif",M.SERIF="Times New Roman, serif",M.SIZE=10,M.scaleToPxFrom={pt:4/3,px:1,em:16,"%":.16,in:96,mm:96/25.4,cm:96/2.54},M.WEB_FONT_HOST="https://unpkg.com/vexflow-fonts@1.0.3/",M.WEB_FONT_FILES={"Roboto Slab":"robotoslab/RobotoSlab-Medium_2.001.woff",PetalumaScript:"petaluma/PetalumaScript_1.10_FS.woff"};class R{constructor(){this.id={},this.type={},this.class={}}}class O{static getDefaultRegistry(){return O.defaultRegistry}static enableDefaultRegistry(t){O.defaultRegistry=t}static disableDefaultRegistry(){O.defaultRegistry=void 0}constructor(){this.index=new R}clear(){return this.index=new R,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 p("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 L{static get CATEGORY(){return u.Element}static newID(){return"auto"+L.ID++}constructor(){var t;this.children=[],this.attrs={id:L.newID(),type:this.getCategory(),class:""},this.rendered=!1,null===(t=O.getDefaultRegistry())||void 0===t||t.register(this)}addChildElement(t){return this.children.push(t),this}getCategory(){return this.constructor.CATEGORY}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 e&&t?(t.save(),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),this):this}restoreStyle(t=this.context,e=this.getStyle()){return e&&t?(t.restore(),this):this}drawWithStyle(){this.checkContext(),this.applyStyle(),this.draw(),this.restoreStyle()}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=v(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 this.boundingBox}getContext(){return this.context}setContext(t){return this.context=t,this}checkContext(){return f(this.context,"NoContext","No rendering context attached to instance.")}set font(t){this.setFont(t)}get font(){return M.toCSSString(this.textFont)}setFont(t,e,i,s){const n=this.constructor.TEXT_FONT,a="object"==typeof t,o="string"==typeof t,r=void 0===t,h=void 0===e&&void 0===i&&void 0===s;return this.textFont=a?Object.assign(Object.assign({},n),t):o&&h?M.fromCSSString(t):r&&h?Object.assign({},n):M.validate(null!=t?t:n.family,null!=e?e:n.size,null!=i?i:n.weight,null!=s?s:n.style),this}getFont(){return this.textFont||this.resetFont(),M.toCSSString(this.textFont)}resetFont(){this.setFont()}get fontInfo(){return this.textFont||this.resetFont(),Object.assign({},this.textFont)}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}set fontSize(t){this.setFontSize(t)}get fontSize(){let t=this.fontInfo.size;return"number"==typeof t&&(t=`${t}pt`),t}get fontSizeInPoints(){return M.convertSizeToPointValue(this.fontSize)}get fontSizeInPixels(){return M.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)}}L.ID=1e3,L.TEXT_FONT={family:M.SANS_SERIF,size:M.SIZE,weight:P.NORMAL,style:A.NORMAL};const W=16384,I={"1/2":32768,1:16384,2:8192,4:4096,8:2048,16:1024,32:512,64:256,128:128,256:64},G={w:"1",h:"2",q:"4",b:"256"},U={C:{num:0},Am:{num:0},F:{acc:"b",num:1},Dm:{acc:"b",num:1},Bb:{acc:"b",num:2},Gm:{acc:"b",num:2},Eb:{acc:"b",num:3},Cm:{acc:"b",num:3},Ab:{acc:"b",num:4},Fm:{acc:"b",num:4},Db:{acc:"b",num:5},Bbm:{acc:"b",num:5},Gb:{acc:"b",num:6},Ebm:{acc:"b",num:6},Cb:{acc:"b",num:7},Abm:{acc:"b",num:7},G:{acc:"#",num:1},Em:{acc:"#",num:1},D:{acc:"#",num:2},Bm:{acc:"#",num:2},A:{acc:"#",num:3},"F#m":{acc:"#",num:3},E:{acc:"#",num:4},"C#m":{acc:"#",num:4},B:{acc:"#",num:5},"G#m":{acc:"#",num:5},"F#":{acc:"#",num:6},"D#m":{acc:"#",num:6},"C#":{acc:"#",num:7},"A#m":{acc:"#",num:7}},H={treble:{line_shift:0},bass:{line_shift:6},tenor:{line_shift:4},alto:{line_shift:3},soprano:{line_shift:1},percussion:{line_shift:0},"mezzo-soprano":{line_shift:2},"baritone-c":{line_shift:5},"baritone-f":{line_shift:5},subbass:{line_shift:7},french:{line_shift:-1}},Y={C:{index:0,int_val:0},CN:{index:0,int_val:0,accidental:"n"},"C#":{index:0,int_val:1,accidental:"#"},"C##":{index:0,int_val:2,accidental:"##"},CB:{index:0,int_val:11,accidental:"b"},CBB:{index:0,int_val:10,accidental:"bb"},D:{index:1,int_val:2},DN:{index:1,int_val:2,accidental:"n"},"D#":{index:1,int_val:3,accidental:"#"},"D##":{index:1,int_val:4,accidental:"##"},DB:{index:1,int_val:1,accidental:"b"},DBB:{index:1,int_val:0,accidental:"bb"},E:{index:2,int_val:4},EN:{index:2,int_val:4,accidental:"n"},"E#":{index:2,int_val:5,accidental:"#"},"E##":{index:2,int_val:6,accidental:"##"},EB:{index:2,int_val:3,accidental:"b"},EBB:{index:2,int_val:2,accidental:"bb"},F:{index:3,int_val:5},FN:{index:3,int_val:5,accidental:"n"},"F#":{index:3,int_val:6,accidental:"#"},"F##":{index:3,int_val:7,accidental:"##"},FB:{index:3,int_val:4,accidental:"b"},FBB:{index:3,int_val:3,accidental:"bb"},G:{index:4,int_val:7},GN:{index:4,int_val:7,accidental:"n"},"G#":{index:4,int_val:8,accidental:"#"},"G##":{index:4,int_val:9,accidental:"##"},GB:{index:4,int_val:6,accidental:"b"},GBB:{index:4,int_val:5,accidental:"bb"},A:{index:5,int_val:9},AN:{index:5,int_val:9,accidental:"n"},"A#":{index:5,int_val:10,accidental:"#"},"A##":{index:5,int_val:11,accidental:"##"},AB:{index:5,int_val:8,accidental:"b"},ABB:{index:5,int_val:7,accidental:"bb"},B:{index:6,int_val:11},BN:{index:6,int_val:11,accidental:"n"},"B#":{index:6,int_val:12,accidental:"#"},"B##":{index:6,int_val:13,accidental:"##"},BB:{index:6,int_val:10,accidental:"b"},BBB:{index:6,int_val:9,accidental:"bb"},R:{index:6,rest:!0},X:{index:6,accidental:"",octave:4,code:"noteheadXBlack",shift_right:5.5}},j={"#":{code:"accidentalSharp",parenRightPaddingAdjustment:-1},"##":{code:"accidentalDoubleSharp",parenRightPaddingAdjustment:-1},b:{code:"accidentalFlat",parenRightPaddingAdjustment:-2},bb:{code:"accidentalDoubleFlat",parenRightPaddingAdjustment:-2},n:{code:"accidentalNatural",parenRightPaddingAdjustment:-1},"{":{code:"accidentalParensLeft",parenRightPaddingAdjustment:-1},"}":{code:"accidentalParensRight",parenRightPaddingAdjustment:-1},db:{code:"accidentalThreeQuarterTonesFlatZimmermann",parenRightPaddingAdjustment:-1},d:{code:"accidentalQuarterToneFlatStein",parenRightPaddingAdjustment:0},"++":{code:"accidentalThreeQuarterTonesSharpStein",parenRightPaddingAdjustment:-1},"+":{code:"accidentalQuarterToneSharpStein",parenRightPaddingAdjustment:-1},"+-":{code:"accidentalKucukMucennebSharp",parenRightPaddingAdjustment:-1},bs:{code:"accidentalBakiyeFlat",parenRightPaddingAdjustment:-1},bss:{code:"accidentalBuyukMucennebFlat",parenRightPaddingAdjustment:-1},o:{code:"accidentalSori",parenRightPaddingAdjustment:-1},k:{code:"accidentalKoron",parenRightPaddingAdjustment:-1},bbs:{code:"vexAccidentalMicrotonal1",parenRightPaddingAdjustment:-1},"++-":{code:"accidentalBuyukMucennebSharp",parenRightPaddingAdjustment:-1},ashs:{code:"vexAccidentalMicrotonal3",parenRightPaddingAdjustment:-1},afhf:{code:"vexAccidentalMicrotonal4",parenRightPaddingAdjustment:-1},accSagittal5v7KleismaUp:{code:"accSagittal5v7KleismaUp",parenRightPaddingAdjustment:-1},accSagittal5v7KleismaDown:{code:"accSagittal5v7KleismaDown",parenRightPaddingAdjustment:-1},accSagittal5CommaUp:{code:"accSagittal5CommaUp",parenRightPaddingAdjustment:-1},accSagittal5CommaDown:{code:"accSagittal5CommaDown",parenRightPaddingAdjustment:-1},accSagittal7CommaUp:{code:"accSagittal7CommaUp",parenRightPaddingAdjustment:-1},accSagittal7CommaDown:{code:"accSagittal7CommaDown",parenRightPaddingAdjustment:-1},accSagittal25SmallDiesisUp:{code:"accSagittal25SmallDiesisUp",parenRightPaddingAdjustment:-1},accSagittal25SmallDiesisDown:{code:"accSagittal25SmallDiesisDown",parenRightPaddingAdjustment:-1},accSagittal35MediumDiesisUp:{code:"accSagittal35MediumDiesisUp",parenRightPaddingAdjustment:-1},accSagittal35MediumDiesisDown:{code:"accSagittal35MediumDiesisDown",parenRightPaddingAdjustment:-1},accSagittal11MediumDiesisUp:{code:"accSagittal11MediumDiesisUp",parenRightPaddingAdjustment:-1},accSagittal11MediumDiesisDown:{code:"accSagittal11MediumDiesisDown",parenRightPaddingAdjustment:-1},accSagittal11LargeDiesisUp:{code:"accSagittal11LargeDiesisUp",parenRightPaddingAdjustment:-1},accSagittal11LargeDiesisDown:{code:"accSagittal11LargeDiesisDown",parenRightPaddingAdjustment:-1},accSagittal35LargeDiesisUp:{code:"accSagittal35LargeDiesisUp",parenRightPaddingAdjustment:-1},accSagittal35LargeDiesisDown:{code:"accSagittal35LargeDiesisDown",parenRightPaddingAdjustment:-1},accSagittalSharp25SDown:{code:"accSagittalSharp25SDown",parenRightPaddingAdjustment:-1},accSagittalFlat25SUp:{code:"accSagittalFlat25SUp",parenRightPaddingAdjustment:-1},accSagittalSharp7CDown:{code:"accSagittalSharp7CDown",parenRightPaddingAdjustment:-1},accSagittalFlat7CUp:{code:"accSagittalFlat7CUp",parenRightPaddingAdjustment:-1},accSagittalSharp5CDown:{code:"accSagittalSharp5CDown",parenRightPaddingAdjustment:-1},accSagittalFlat5CUp:{code:"accSagittalFlat5CUp",parenRightPaddingAdjustment:-1},accSagittalSharp5v7kDown:{code:"accSagittalSharp5v7kDown",parenRightPaddingAdjustment:-1},accSagittalFlat5v7kUp:{code:"accSagittalFlat5v7kUp",parenRightPaddingAdjustment:-1},accSagittalSharp:{code:"accSagittalSharp",parenRightPaddingAdjustment:-1},accSagittalFlat:{code:"accSagittalFlat",parenRightPaddingAdjustment:-1},accSagittalSharp5v7kUp:{code:"accSagittalSharp5v7kUp",parenRightPaddingAdjustment:-1},accSagittalFlat5v7kDown:{code:"accSagittalFlat5v7kDown",parenRightPaddingAdjustment:-1},accSagittalSharp5CUp:{code:"accSagittalSharp5CUp",parenRightPaddingAdjustment:-1},accSagittalFlat5CDown:{code:"accSagittalFlat5CDown",parenRightPaddingAdjustment:-1},accSagittalSharp7CUp:{code:"accSagittalSharp7CUp",parenRightPaddingAdjustment:-1},accSagittalFlat7CDown:{code:"accSagittalFlat7CDown",parenRightPaddingAdjustment:-1},accSagittalSharp25SUp:{code:"accSagittalSharp25SUp",parenRightPaddingAdjustment:-1},accSagittalFlat25SDown:{code:"accSagittalFlat25SDown",parenRightPaddingAdjustment:-1},accSagittalSharp35MUp:{code:"accSagittalSharp35MUp",parenRightPaddingAdjustment:-1},accSagittalFlat35MDown:{code:"accSagittalFlat35MDown",parenRightPaddingAdjustment:-1},accSagittalSharp11MUp:{code:"accSagittalSharp11MUp",parenRightPaddingAdjustment:-1},accSagittalFlat11MDown:{code:"accSagittalFlat11MDown",parenRightPaddingAdjustment:-1},accSagittalSharp11LUp:{code:"accSagittalSharp11LUp",parenRightPaddingAdjustment:-1},accSagittalFlat11LDown:{code:"accSagittalFlat11LDown",parenRightPaddingAdjustment:-1},accSagittalSharp35LUp:{code:"accSagittalSharp35LUp",parenRightPaddingAdjustment:-1},accSagittalFlat35LDown:{code:"accSagittalFlat35LDown",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp25SDown:{code:"accSagittalDoubleSharp25SDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat25SUp:{code:"accSagittalDoubleFlat25SUp",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp7CDown:{code:"accSagittalDoubleSharp7CDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat7CUp:{code:"accSagittalDoubleFlat7CUp",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp5CDown:{code:"accSagittalDoubleSharp5CDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat5CUp:{code:"accSagittalDoubleFlat5CUp",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp5v7kDown:{code:"accSagittalDoubleSharp5v7kDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat5v7kUp:{code:"accSagittalDoubleFlat5v7kUp",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp:{code:"accSagittalDoubleSharp",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat:{code:"accSagittalDoubleFlat",parenRightPaddingAdjustment:-1},accSagittal7v11KleismaUp:{code:"accSagittal7v11KleismaUp",parenRightPaddingAdjustment:-1},accSagittal7v11KleismaDown:{code:"accSagittal7v11KleismaDown",parenRightPaddingAdjustment:-1},accSagittal17CommaUp:{code:"accSagittal17CommaUp",parenRightPaddingAdjustment:-1},accSagittal17CommaDown:{code:"accSagittal17CommaDown",parenRightPaddingAdjustment:-1},accSagittal55CommaUp:{code:"accSagittal55CommaUp",parenRightPaddingAdjustment:-1},accSagittal55CommaDown:{code:"accSagittal55CommaDown",parenRightPaddingAdjustment:-1},accSagittal7v11CommaUp:{code:"accSagittal7v11CommaUp",parenRightPaddingAdjustment:-1},accSagittal7v11CommaDown:{code:"accSagittal7v11CommaDown",parenRightPaddingAdjustment:-1},accSagittal5v11SmallDiesisUp:{code:"accSagittal5v11SmallDiesisUp",parenRightPaddingAdjustment:-1},accSagittal5v11SmallDiesisDown:{code:"accSagittal5v11SmallDiesisDown",parenRightPaddingAdjustment:-1},accSagittalSharp5v11SDown:{code:"accSagittalSharp5v11SDown",parenRightPaddingAdjustment:-1},accSagittalFlat5v11SUp:{code:"accSagittalFlat5v11SUp",parenRightPaddingAdjustment:-1},accSagittalSharp7v11CDown:{code:"accSagittalSharp7v11CDown",parenRightPaddingAdjustment:-1},accSagittalFlat7v11CUp:{code:"accSagittalFlat7v11CUp",parenRightPaddingAdjustment:-1},accSagittalSharp55CDown:{code:"accSagittalSharp55CDown",parenRightPaddingAdjustment:-1},accSagittalFlat55CUp:{code:"accSagittalFlat55CUp",parenRightPaddingAdjustment:-1},accSagittalSharp17CDown:{code:"accSagittalSharp17CDown",parenRightPaddingAdjustment:-1},accSagittalFlat17CUp:{code:"accSagittalFlat17CUp",parenRightPaddingAdjustment:-1},accSagittalSharp7v11kDown:{code:"accSagittalSharp7v11kDown",parenRightPaddingAdjustment:-1},accSagittalFlat7v11kUp:{code:"accSagittalFlat7v11kUp",parenRightPaddingAdjustment:-1},accSagittalSharp7v11kUp:{code:"accSagittalSharp7v11kUp",parenRightPaddingAdjustment:-1},accSagittalFlat7v11kDown:{code:"accSagittalFlat7v11kDown",parenRightPaddingAdjustment:-1},accSagittalSharp17CUp:{code:"accSagittalSharp17CUp",parenRightPaddingAdjustment:-1},accSagittalFlat17CDown:{code:"accSagittalFlat17CDown",parenRightPaddingAdjustment:-1},accSagittalSharp55CUp:{code:"accSagittalSharp55CUp",parenRightPaddingAdjustment:-1},accSagittalFlat55CDown:{code:"accSagittalFlat55CDown",parenRightPaddingAdjustment:-1},accSagittalSharp7v11CUp:{code:"accSagittalSharp7v11CUp",parenRightPaddingAdjustment:-1},accSagittalFlat7v11CDown:{code:"accSagittalFlat7v11CDown",parenRightPaddingAdjustment:-1},accSagittalSharp5v11SUp:{code:"accSagittalSharp5v11SUp",parenRightPaddingAdjustment:-1},accSagittalFlat5v11SDown:{code:"accSagittalFlat5v11SDown",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp5v11SDown:{code:"accSagittalDoubleSharp5v11SDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat5v11SUp:{code:"accSagittalDoubleFlat5v11SUp",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp7v11CDown:{code:"accSagittalDoubleSharp7v11CDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat7v11CUp:{code:"accSagittalDoubleFlat7v11CUp",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp55CDown:{code:"accSagittalDoubleSharp55CDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat55CUp:{code:"accSagittalDoubleFlat55CUp",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp17CDown:{code:"accSagittalDoubleSharp17CDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat17CUp:{code:"accSagittalDoubleFlat17CUp",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp7v11kDown:{code:"accSagittalDoubleSharp7v11kDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat7v11kUp:{code:"accSagittalDoubleFlat7v11kUp",parenRightPaddingAdjustment:-1},accSagittal23CommaUp:{code:"accSagittal23CommaUp",parenRightPaddingAdjustment:-1},accSagittal23CommaDown:{code:"accSagittal23CommaDown",parenRightPaddingAdjustment:-1},accSagittal5v19CommaUp:{code:"accSagittal5v19CommaUp",parenRightPaddingAdjustment:-1},accSagittal5v19CommaDown:{code:"accSagittal5v19CommaDown",parenRightPaddingAdjustment:-1},accSagittal5v23SmallDiesisUp:{code:"accSagittal5v23SmallDiesisUp",parenRightPaddingAdjustment:-1},accSagittal5v23SmallDiesisDown:{code:"accSagittal5v23SmallDiesisDown",parenRightPaddingAdjustment:-1},accSagittalSharp5v23SDown:{code:"accSagittalSharp5v23SDown",parenRightPaddingAdjustment:-1},accSagittalFlat5v23SUp:{code:"accSagittalFlat5v23SUp",parenRightPaddingAdjustment:-1},accSagittalSharp5v19CDown:{code:"accSagittalSharp5v19CDown",parenRightPaddingAdjustment:-1},accSagittalFlat5v19CUp:{code:"accSagittalFlat5v19CUp",parenRightPaddingAdjustment:-1},accSagittalSharp23CDown:{code:"accSagittalSharp23CDown",parenRightPaddingAdjustment:-1},accSagittalFlat23CUp:{code:"accSagittalFlat23CUp",parenRightPaddingAdjustment:-1},accSagittalSharp23CUp:{code:"accSagittalSharp23CUp",parenRightPaddingAdjustment:-1},accSagittalFlat23CDown:{code:"accSagittalFlat23CDown",parenRightPaddingAdjustment:-1},accSagittalSharp5v19CUp:{code:"accSagittalSharp5v19CUp",parenRightPaddingAdjustment:-1},accSagittalFlat5v19CDown:{code:"accSagittalFlat5v19CDown",parenRightPaddingAdjustment:-1},accSagittalSharp5v23SUp:{code:"accSagittalSharp5v23SUp",parenRightPaddingAdjustment:-1},accSagittalFlat5v23SDown:{code:"accSagittalFlat5v23SDown",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp5v23SDown:{code:"accSagittalDoubleSharp5v23SDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat5v23SUp:{code:"accSagittalDoubleFlat5v23SUp",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp5v19CDown:{code:"accSagittalDoubleSharp5v19CDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat5v19CUp:{code:"accSagittalDoubleFlat5v19CUp",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp23CDown:{code:"accSagittalDoubleSharp23CDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat23CUp:{code:"accSagittalDoubleFlat23CUp",parenRightPaddingAdjustment:-1},accSagittal19SchismaUp:{code:"accSagittal19SchismaUp",parenRightPaddingAdjustment:-1},accSagittal19SchismaDown:{code:"accSagittal19SchismaDown",parenRightPaddingAdjustment:-1},accSagittal17KleismaUp:{code:"accSagittal17KleismaUp",parenRightPaddingAdjustment:-1},accSagittal17KleismaDown:{code:"accSagittal17KleismaDown",parenRightPaddingAdjustment:-1},accSagittal143CommaUp:{code:"accSagittal143CommaUp",parenRightPaddingAdjustment:-1},accSagittal143CommaDown:{code:"accSagittal143CommaDown",parenRightPaddingAdjustment:-1},accSagittal11v49CommaUp:{code:"accSagittal11v49CommaUp",parenRightPaddingAdjustment:-1},accSagittal11v49CommaDown:{code:"accSagittal11v49CommaDown",parenRightPaddingAdjustment:-1},accSagittal19CommaUp:{code:"accSagittal19CommaUp",parenRightPaddingAdjustment:-1},accSagittal19CommaDown:{code:"accSagittal19CommaDown",parenRightPaddingAdjustment:-1},accSagittal7v19CommaUp:{code:"accSagittal7v19CommaUp",parenRightPaddingAdjustment:-1},accSagittal7v19CommaDown:{code:"accSagittal7v19CommaDown",parenRightPaddingAdjustment:-1},accSagittal49SmallDiesisUp:{code:"accSagittal49SmallDiesisUp",parenRightPaddingAdjustment:-1},accSagittal49SmallDiesisDown:{code:"accSagittal49SmallDiesisDown",parenRightPaddingAdjustment:-1},accSagittal23SmallDiesisUp:{code:"accSagittal23SmallDiesisUp",parenRightPaddingAdjustment:-1},accSagittal23SmallDiesisDown:{code:"accSagittal23SmallDiesisDown",parenRightPaddingAdjustment:-1},accSagittal5v13MediumDiesisUp:{code:"accSagittal5v13MediumDiesisUp",parenRightPaddingAdjustment:-1},accSagittal5v13MediumDiesisDown:{code:"accSagittal5v13MediumDiesisDown",parenRightPaddingAdjustment:-1},accSagittal11v19MediumDiesisUp:{code:"accSagittal11v19MediumDiesisUp",parenRightPaddingAdjustment:-1},accSagittal11v19MediumDiesisDown:{code:"accSagittal11v19MediumDiesisDown",parenRightPaddingAdjustment:-1},accSagittal49MediumDiesisUp:{code:"accSagittal49MediumDiesisUp",parenRightPaddingAdjustment:-1},accSagittal49MediumDiesisDown:{code:"accSagittal49MediumDiesisDown",parenRightPaddingAdjustment:-1},accSagittal5v49MediumDiesisUp:{code:"accSagittal5v49MediumDiesisUp",parenRightPaddingAdjustment:-1},accSagittal5v49MediumDiesisDown:{code:"accSagittal5v49MediumDiesisDown",parenRightPaddingAdjustment:-1},accSagittal49LargeDiesisUp:{code:"accSagittal49LargeDiesisUp",parenRightPaddingAdjustment:-1},accSagittal49LargeDiesisDown:{code:"accSagittal49LargeDiesisDown",parenRightPaddingAdjustment:-1},accSagittal11v19LargeDiesisUp:{code:"accSagittal11v19LargeDiesisUp",parenRightPaddingAdjustment:-1},accSagittal11v19LargeDiesisDown:{code:"accSagittal11v19LargeDiesisDown",parenRightPaddingAdjustment:-1},accSagittal5v13LargeDiesisUp:{code:"accSagittal5v13LargeDiesisUp",parenRightPaddingAdjustment:-1},accSagittal5v13LargeDiesisDown:{code:"accSagittal5v13LargeDiesisDown",parenRightPaddingAdjustment:-1},accSagittalSharp23SDown:{code:"accSagittalSharp23SDown",parenRightPaddingAdjustment:-1},accSagittalFlat23SUp:{code:"accSagittalFlat23SUp",parenRightPaddingAdjustment:-1},accSagittalSharp49SDown:{code:"accSagittalSharp49SDown",parenRightPaddingAdjustment:-1},accSagittalFlat49SUp:{code:"accSagittalFlat49SUp",parenRightPaddingAdjustment:-1},accSagittalSharp7v19CDown:{code:"accSagittalSharp7v19CDown",parenRightPaddingAdjustment:-1},accSagittalFlat7v19CUp:{code:"accSagittalFlat7v19CUp",parenRightPaddingAdjustment:-1},accSagittalSharp19CDown:{code:"accSagittalSharp19CDown",parenRightPaddingAdjustment:-1},accSagittalFlat19CUp:{code:"accSagittalFlat19CUp",parenRightPaddingAdjustment:-1},accSagittalSharp11v49CDown:{code:"accSagittalSharp11v49CDown",parenRightPaddingAdjustment:-1},accSagittalFlat11v49CUp:{code:"accSagittalFlat11v49CUp",parenRightPaddingAdjustment:-1},accSagittalSharp143CDown:{code:"accSagittalSharp143CDown",parenRightPaddingAdjustment:-1},accSagittalFlat143CUp:{code:"accSagittalFlat143CUp",parenRightPaddingAdjustment:-1},accSagittalSharp17kDown:{code:"accSagittalSharp17kDown",parenRightPaddingAdjustment:-1},accSagittalFlat17kUp:{code:"accSagittalFlat17kUp",parenRightPaddingAdjustment:-1},accSagittalSharp19sDown:{code:"accSagittalSharp19sDown",parenRightPaddingAdjustment:-1},accSagittalFlat19sUp:{code:"accSagittalFlat19sUp",parenRightPaddingAdjustment:-1},accSagittalSharp19sUp:{code:"accSagittalSharp19sUp",parenRightPaddingAdjustment:-1},accSagittalFlat19sDown:{code:"accSagittalFlat19sDown",parenRightPaddingAdjustment:-1},accSagittalSharp17kUp:{code:"accSagittalSharp17kUp",parenRightPaddingAdjustment:-1},accSagittalFlat17kDown:{code:"accSagittalFlat17kDown",parenRightPaddingAdjustment:-1},accSagittalSharp143CUp:{code:"accSagittalSharp143CUp",parenRightPaddingAdjustment:-1},accSagittalFlat143CDown:{code:"accSagittalFlat143CDown",parenRightPaddingAdjustment:-1},accSagittalSharp11v49CUp:{code:"accSagittalSharp11v49CUp",parenRightPaddingAdjustment:-1},accSagittalFlat11v49CDown:{code:"accSagittalFlat11v49CDown",parenRightPaddingAdjustment:-1},accSagittalSharp19CUp:{code:"accSagittalSharp19CUp",parenRightPaddingAdjustment:-1},accSagittalFlat19CDown:{code:"accSagittalFlat19CDown",parenRightPaddingAdjustment:-1},accSagittalSharp7v19CUp:{code:"accSagittalSharp7v19CUp",parenRightPaddingAdjustment:-1},accSagittalFlat7v19CDown:{code:"accSagittalFlat7v19CDown",parenRightPaddingAdjustment:-1},accSagittalSharp49SUp:{code:"accSagittalSharp49SUp",parenRightPaddingAdjustment:-1},accSagittalFlat49SDown:{code:"accSagittalFlat49SDown",parenRightPaddingAdjustment:-1},accSagittalSharp23SUp:{code:"accSagittalSharp23SUp",parenRightPaddingAdjustment:-1},accSagittalFlat23SDown:{code:"accSagittalFlat23SDown",parenRightPaddingAdjustment:-1},accSagittalSharp5v13MUp:{code:"accSagittalSharp5v13MUp",parenRightPaddingAdjustment:-1},accSagittalFlat5v13MDown:{code:"accSagittalFlat5v13MDown",parenRightPaddingAdjustment:-1},accSagittalSharp11v19MUp:{code:"accSagittalSharp11v19MUp",parenRightPaddingAdjustment:-1},accSagittalFlat11v19MDown:{code:"accSagittalFlat11v19MDown",parenRightPaddingAdjustment:-1},accSagittalSharp49MUp:{code:"accSagittalSharp49MUp",parenRightPaddingAdjustment:-1},accSagittalFlat49MDown:{code:"accSagittalFlat49MDown",parenRightPaddingAdjustment:-1},accSagittalSharp5v49MUp:{code:"accSagittalSharp5v49MUp",parenRightPaddingAdjustment:-1},accSagittalFlat5v49MDown:{code:"accSagittalFlat5v49MDown",parenRightPaddingAdjustment:-1},accSagittalSharp49LUp:{code:"accSagittalSharp49LUp",parenRightPaddingAdjustment:-1},accSagittalFlat49LDown:{code:"accSagittalFlat49LDown",parenRightPaddingAdjustment:-1},accSagittalSharp11v19LUp:{code:"accSagittalSharp11v19LUp",parenRightPaddingAdjustment:-1},accSagittalFlat11v19LDown:{code:"accSagittalFlat11v19LDown",parenRightPaddingAdjustment:-1},accSagittalSharp5v13LUp:{code:"accSagittalSharp5v13LUp",parenRightPaddingAdjustment:-1},accSagittalFlat5v13LDown:{code:"accSagittalFlat5v13LDown",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp23SDown:{code:"accSagittalDoubleSharp23SDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat23SUp:{code:"accSagittalDoubleFlat23SUp",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp49SDown:{code:"accSagittalDoubleSharp49SDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat49SUp:{code:"accSagittalDoubleFlat49SUp",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp7v19CDown:{code:"accSagittalDoubleSharp7v19CDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat7v19CUp:{code:"accSagittalDoubleFlat7v19CUp",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp19CDown:{code:"accSagittalDoubleSharp19CDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat19CUp:{code:"accSagittalDoubleFlat19CUp",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp11v49CDown:{code:"accSagittalDoubleSharp11v49CDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat11v49CUp:{code:"accSagittalDoubleFlat11v49CUp",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp143CDown:{code:"accSagittalDoubleSharp143CDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat143CUp:{code:"accSagittalDoubleFlat143CUp",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp17kDown:{code:"accSagittalDoubleSharp17kDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat17kUp:{code:"accSagittalDoubleFlat17kUp",parenRightPaddingAdjustment:-1},accSagittalDoubleSharp19sDown:{code:"accSagittalDoubleSharp19sDown",parenRightPaddingAdjustment:-1},accSagittalDoubleFlat19sUp:{code:"accSagittalDoubleFlat19sUp",parenRightPaddingAdjustment:-1},accSagittalShaftUp:{code:"accSagittalShaftUp",parenRightPaddingAdjustment:-1},accSagittalShaftDown:{code:"accSagittalShaftDown",parenRightPaddingAdjustment:-1},accSagittalAcute:{code:"accSagittalAcute",parenRightPaddingAdjustment:-1},accSagittalGrave:{code:"accSagittalGrave",parenRightPaddingAdjustment:-1},accSagittal1MinaUp:{code:"accSagittal1MinaUp",parenRightPaddingAdjustment:-1},accSagittal1MinaDown:{code:"accSagittal1MinaDown",parenRightPaddingAdjustment:-1},accSagittal2MinasUp:{code:"accSagittal2MinasUp",parenRightPaddingAdjustment:-1},accSagittal2MinasDown:{code:"accSagittal2MinasDown",parenRightPaddingAdjustment:-1},accSagittal1TinaUp:{code:"accSagittal1TinaUp",parenRightPaddingAdjustment:-1},accSagittal1TinaDown:{code:"accSagittal1TinaDown",parenRightPaddingAdjustment:-1},accSagittal2TinasUp:{code:"accSagittal2TinasUp",parenRightPaddingAdjustment:-1},accSagittal2TinasDown:{code:"accSagittal2TinasDown",parenRightPaddingAdjustment:-1},accSagittal3TinasUp:{code:"accSagittal3TinasUp",parenRightPaddingAdjustment:-1},accSagittal3TinasDown:{code:"accSagittal3TinasDown",parenRightPaddingAdjustment:-1},accSagittal4TinasUp:{code:"accSagittal4TinasUp",parenRightPaddingAdjustment:-1},accSagittal4TinasDown:{code:"accSagittal4TinasDown",parenRightPaddingAdjustment:-1},accSagittal5TinasUp:{code:"accSagittal5TinasUp",parenRightPaddingAdjustment:-1},accSagittal5TinasDown:{code:"accSagittal5TinasDown",parenRightPaddingAdjustment:-1},accSagittal6TinasUp:{code:"accSagittal6TinasUp",parenRightPaddingAdjustment:-1},accSagittal6TinasDown:{code:"accSagittal6TinasDown",parenRightPaddingAdjustment:-1},accSagittal7TinasUp:{code:"accSagittal7TinasUp",parenRightPaddingAdjustment:-1},accSagittal7TinasDown:{code:"accSagittal7TinasDown",parenRightPaddingAdjustment:-1},accSagittal8TinasUp:{code:"accSagittal8TinasUp",parenRightPaddingAdjustment:-1},accSagittal8TinasDown:{code:"accSagittal8TinasDown",parenRightPaddingAdjustment:-1},accSagittal9TinasUp:{code:"accSagittal9TinasUp",parenRightPaddingAdjustment:-1},accSagittal9TinasDown:{code:"accSagittal9TinasDown",parenRightPaddingAdjustment:-1},accSagittalFractionalTinaUp:{code:"accSagittalFractionalTinaUp",parenRightPaddingAdjustment:-1},accSagittalFractionalTinaDown:{code:"accSagittalFractionalTinaDown",parenRightPaddingAdjustment:-1},accidentalNarrowReversedFlat:{code:"accidentalNarrowReversedFlat",parenRightPaddingAdjustment:-1},accidentalNarrowReversedFlatAndFlat:{code:"accidentalNarrowReversedFlatAndFlat",parenRightPaddingAdjustment:-1},accidentalWilsonPlus:{code:"accidentalWilsonPlus",parenRightPaddingAdjustment:-1},accidentalWilsonMinus:{code:"accidentalWilsonMinus",parenRightPaddingAdjustment:-1}},X={"a.":{code:"augmentationDot",between_lines:!0},av:{aboveCode:"articStaccatissimoAbove",belowCode:"articStaccatissimoBelow",between_lines:!0},"a>":{aboveCode:"articAccentAbove",belowCode:"articAccentBelow",between_lines:!0},"a-":{aboveCode:"articTenutoAbove",belowCode:"articTenutoBelow",between_lines:!0},"a^":{aboveCode:"articMarcatoAbove",belowCode:"articMarcatoBelow",between_lines:!1},"a+":{code:"pluckedLeftHandPizzicato",between_lines:!1},ao:{aboveCode:"pluckedSnapPizzicatoAbove",belowCode:"pluckedSnapPizzicatoBelow",between_lines:!1},ah:{code:"stringsHarmonic",between_lines:!1},"a@":{aboveCode:"fermataAbove",belowCode:"fermataBelow",between_lines:!1},"a@a":{code:"fermataAbove",between_lines:!1},"a@u":{code:"fermataBelow",between_lines:!1},"a@s":{aboveCode:"fermataShortAbove",belowCode:"fermataShortBelow",between_lines:!1},"a@as":{code:"fermataShortAbove",between_lines:!1},"a@us":{code:"fermataShortBelow",between_lines:!1},"a@l":{aboveCode:"fermataLongAbove",belowCode:"fermataLongBelow",between_lines:!1},"a@al":{code:"fermataLongAbove",between_lines:!1},"a@ul":{code:"fermataLongBelow",between_lines:!1},"a@vl":{aboveCode:"fermataVeryLongAbove",belowCode:"fermataVeryLongBelow",between_lines:!1},"a@avl":{code:"fermataVeryLongAbove",between_lines:!1},"a@uvl":{code:"fermataVeryLongBelow",between_lines:!1},"a|":{code:"stringsUpBow",between_lines:!1},am:{code:"stringsDownBow",between_lines:!1},"a,":{code:"pictChokeCymbal",between_lines:!1}},V={mordent:{code:"ornamentShortTrill"},mordent_inverted:{code:"ornamentMordent"},turn:{code:"ornamentTurn"},turn_inverted:{code:"ornamentTurnSlash"},tr:{code:"ornamentTrill"},upprall:{code:"ornamentPrecompSlideTrillDAnglebert"},downprall:{code:"ornamentPrecompDoubleCadenceUpperPrefix"},prallup:{code:"ornamentPrecompTrillSuffixDandrieu"},pralldown:{code:"ornamentPrecompTrillLowerSuffix"},upmordent:{code:"ornamentPrecompSlideTrillBach"},downmordent:{code:"ornamentPrecompDoubleCadenceUpperPrefixTurn"},lineprall:{code:"ornamentPrecompAppoggTrill"},prallprall:{code:"ornamentTremblement"},scoop:{code:"brassScoop"},doit:{code:"brassDoitMedium"},fall:{code:"brassFallLipShort"},doitLong:{code:"brassLiftMedium"},fallLong:{code:"brassFallRoughMedium"},bend:{code:"brassBend"},plungerClosed:{code:"brassMuteClosed"},plungerOpen:{code:"brassMuteOpen"},flip:{code:"brassFlip"},jazzTurn:{code:"brassJazzTurn"},smear:{code:"brassSmear"}};class z{static currentMusicFont(){if(0===z.MUSIC_FONT_STACK.length)throw new p("NoFonts","The font stack is empty. See: await Flow.fetchMusicFont(...); Flow.setMusicFont(...).");return z.MUSIC_FONT_STACK[0]}static clefProperties(t){if(!t||!(t in H))throw new p("BadArgument","Invalid clef: "+t);return H[t]}static keyProperties(t,e="treble",i){let s={octave_shift:0,duration:"4"};"object"==typeof i&&(s=Object.assign(Object.assign({},s),i));const n=z.sanitizeDuration(s.duration),a=t.split("/");if(a.length<2)throw new p("BadArguments",`First argument must be note/octave or note/octave/glyph-code: ${t}`);const o=a[0].toUpperCase(),r=Y[o];if(!r)throw new p("BadArguments","Invalid key name: "+o);r.octave&&(a[1]=r.octave.toString());let h=parseInt(a[1],10);h+=-1*s.octave_shift;let c=(7*h-28+r.index)/2;c+=z.clefProperties(e).line_shift;let d=0;c<=0&&2*c%2==0&&(d=1),c>=6&&2*c%2==0&&(d=-1);const l=void 0!==r.int_val?12*h+r.int_val:void 0,g=r.code,m=r.shift_right;let _={};if(a.length>2&&a[2]){const t=a[2].toUpperCase();_={code:this.codeNoteHead(t,n)}||{}}return Object.assign({key:o,octave:h,line:c,int_value:l,accidental:r.accidental,code:g,stroke:d,shift_right:m,displaced:!1},_)}static integerToNote(t){if(void 0===t||t<0||t>11)throw new p("BadArguments",`integerToNote() requires an integer in the range [0, 11]: ${t}`);const e={0:"C",1:"C#",2:"D",3:"D#",4:"E",5:"F",6:"F#",7:"G",8:"G#",9:"A",10:"A#",11:"B"}[t];if(!e)throw new p("BadArguments",`Unknown note value for integer: ${t}`);return e}static tabToGlyphProps(t,e=1){let i,s=0,n=0;if("X"===t.toUpperCase()){const t=new Z("accidentalDoubleSharp",z.TABLATURE_FONT_SCALE).getMetrics();if(i="accidentalDoubleSharp",null==t.width||null==t.height)throw new p("InvalidMetrics","Width and height required");s=t.width,n=-t.height/2}else s=z.textWidth(t);return{text:t,code:i,getWidth:()=>s*e,shift_y:n}}static textWidth(t){return 7*t.toString().length}static articulationCodes(t){return X[t]}static accidentalCodes(t){return j[t]}static ornamentCodes(t){return V[t]}static keySignature(t){const e=U[t];if(!e)throw new p("BadKeySignature",`Bad key signature spec: '${t}'`);if(!e.acc)return[];const i={b:[2,.5,2.5,1,3,1.5,3.5],"#":[0,1.5,-.5,1,2.5,.5,2]}[e.acc],s=[];for(let t=0;t<e.num;++t){const n=i[t];s.push({type:e.acc,line:n})}return s}static getKeySignatures(){return U}static hasKeySignature(t){return t in U}static sanitizeDuration(t){const e=G[t];if(void 0!==e&&(t=e),void 0===I[t])throw new p("BadArguments",`The provided duration is not valid: ${t}`);return t}static durationToFraction(t){return(new E).parse(z.sanitizeDuration(t))}static durationToNumber(t){return z