@tspro/web-music-score 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/README.md +4 -3
- package/dist/audio/index.js +1 -1
- package/dist/audio/index.mjs +2 -2
- package/dist/audio-cg/index.js +1 -1
- package/dist/audio-cg/index.mjs +2 -2
- package/dist/{chunk-ZWFAOHYM.mjs → chunk-4AS76G4O.mjs} +2 -2
- package/dist/core/index.js +2 -2
- package/dist/core/index.mjs +3 -3
- package/dist/iife/index.global.js +11 -11
- package/dist/{interface-DXyXwLBB.d.ts → interface-1TQHxSpb.d.ts} +4 -3
- package/dist/{interface-CLb7xa7_.d.mts → interface-DkUnsAjj.d.mts} +4 -3
- package/dist/pieces/index.d.mts +1 -1
- package/dist/pieces/index.d.ts +1 -1
- package/dist/pieces/index.js +1 -1
- package/dist/pieces/index.mjs +2 -2
- package/dist/react-ui/index.d.mts +1 -1
- package/dist/react-ui/index.d.ts +1 -1
- package/dist/react-ui/index.js +1 -1
- package/dist/react-ui/index.mjs +2 -2
- package/dist/score/index.d.mts +3 -3
- package/dist/score/index.d.ts +3 -3
- package/dist/score/index.js +20 -18
- package/dist/score/index.mjs +21 -19
- package/dist/theory/index.js +1 -1
- package/dist/theory/index.mjs +2 -2
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/* WebMusicScore v3.0.
|
|
2
|
-
"use strict";var WebMusicScore=(()=>{var Fn=Object.defineProperty,ym=Object.defineProperties,bm=Object.getOwnPropertyDescriptor,Am=Object.getOwnPropertyDescriptors,Cm=Object.getOwnPropertyNames,Ln=Object.getOwnPropertySymbols;var Ra=Object.prototype.hasOwnProperty,mu=Object.prototype.propertyIsEnumerable;var fu=Math.pow,Oa=(o,t,e)=>t in o?Fn(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,R=(o,t)=>{for(var e in t||(t={}))Ra.call(t,e)&&Oa(o,e,t[e]);if(Ln)for(var e of Ln(t))mu.call(t,e)&&Oa(o,e,t[e]);return o},Z=(o,t)=>ym(o,Am(t));var wr=(o,t)=>{var e={};for(var r in o)Ra.call(o,r)&&t.indexOf(r)<0&&(e[r]=o[r]);if(o!=null&&Ln)for(var r of Ln(o))t.indexOf(r)<0&&mu.call(o,r)&&(e[r]=o[r]);return e};var _i=(o,t)=>{for(var e in t)Fn(o,e,{get:t[e],enumerable:!0})},_m=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Cm(t))!Ra.call(o,i)&&i!==e&&Fn(o,i,{get:()=>t[i],enumerable:!(r=bm(t,i))||r.enumerable});return o};var vm=o=>_m(Fn({},"__esModule",{value:!0}),o);var m=(o,t,e)=>Oa(o,typeof t!="symbol"?t+"":t,e);var X=(o,t,e)=>new Promise((r,i)=>{var n=c=>{try{a(e.next(c))}catch(u){i(u)}},s=c=>{try{a(e.throw(c))}catch(u){i(u)}},a=c=>c.done?r(c.value):Promise.resolve(c.value).then(n,s);a((e=e.apply(o,t)).next())});var ob={};_i(ob,{Audio:()=>tn,Core:()=>ja,Pieces:()=>du,Score:()=>pu,Theory:()=>Qa});var tn={};_i(tn,{getCurrentInstrument:()=>Ny,getInstrumentList:()=>Ty,playNote:()=>Ps,registerInstrument:()=>Oy,setInstrument:()=>um,stop:()=>Kc});var Qa={};_i(Qa,{AccidentalType:()=>Fa,Chord:()=>Va,DefaultGuitarNoteLabel:()=>Bf,DefaultHandedness:()=>lg,DefaultPitchNotation:()=>Lf,DefaultTuningName:()=>dg,GuitarNoteLabel:()=>Vn,GuitarNoteLabelList:()=>Vf,Handedness:()=>qa,Interval:()=>No,KeySignature:()=>Le,MaxNoteLength:()=>Uu,MinNoteLength:()=>Si,Mode:()=>La,Note:()=>G,NoteLength:()=>Vt,PitchNotation:()=>Nr,PitchNotationList:()=>jf,RhythmProps:()=>$t,Scale:()=>Er,ScaleFactory:()=>Yt,ScaleType:()=>Je,SymbolSet:()=>Tr,TimeSignature:()=>pr,TuningNameList:()=>Oo,alterTempoSpeed:()=>Ha,getDefaultKeySignature:()=>Gn,getDefaultScale:()=>ig,getDefaultTempo:()=>zn,getDefaultTimeSignature:()=>Un,getPitchNotationName:()=>Ff,getScale:()=>Rr,getScaleFactory:()=>Gu,getScaleFactoryList:()=>eg,getTempoString:()=>Ya,getTuningStrings:()=>Wn,validateGuitarNoteLabel:()=>Gf,validateHandedness:()=>pg,validateIntervalQuality:()=>Xf,validateNoteLength:()=>zu,validatePitchNotation:()=>Mu,validateScaleType:()=>Ba,validateTuningName:()=>Wa});var xu=Object.defineProperty,Im=(o,t,e)=>t in o?xu(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,hr=(o,t)=>{for(var e in t)xu(o,e,{get:t[e],enumerable:!0})},Xe=(o,t,e)=>Im(o,typeof t!="symbol"?t+"":t,e),I={};hr(I,{Arr:()=>yu,Dom:()=>_u,Enum:()=>vu,Is:()=>Iu,Map:()=>wu,Math:()=>bu,Obj:()=>Tu,Str:()=>Nu});var yu={};hr(yu,{arrayContains:()=>Gm,chunckArray:()=>qm,duplicate:()=>Pm,fillArray:()=>Fm,getRangeArray:()=>Vm,getSequenceArray:()=>Bm,isArray:()=>Ma,mapRangeArray:()=>Cu,mapSequenceArray:()=>Au,removeDuplicates:()=>jm,removeDuplicatesCmp:()=>Lm,toArray:()=>km});var bu={};hr(bu,{calcNormal:()=>Mm,clamp:()=>Em,interpolateCoord:()=>Om,interpolateY:()=>Rm,isInteger:()=>we,linearToDecibels:()=>Sm,mod:()=>wm,romanize:()=>Tm,sum:()=>Dm,toOrdinalNumber:()=>Nm});function we(o){return typeof o=="number"&&isFinite(o)&&o===Math.trunc(o)}function Sm(o){if(isFinite(o))return o<=0?-1/0:20*Math.log10(o);throw new Error("linearToDecibel: Invalid linearVolume = "+o)}function wm(o,t){return(o%t+t)%t}function Tm(o){if(!we(o)||o<0)throw new Error("romanize: Invalid n = "+o);for(var t=String(+o).split(""),e=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"],r="",i=3;i--;)r=(e[+t.pop()+i*10]||"")+r;return Array(+t.join("")+1).join("M")+r}function Nm(o){if(!we(o))throw new Error("toOrdinalNumber: Invalid n = "+o);let t=o.toString(),e=Number(t.charAt(t.length-1));return o===1||o>=20&&e===1?t+"st":o===2||o>=20&&e===2?t+"nd":o===3||o>=20&&e===3?t+"rd":t+"th"}function Om(o,t,e,r,i){return{x:o+(e-o)*i,y:t+(r-t)*i}}function Rm(o,t,e,r,i){let n=(i-o)/(e-o);return t+(r-t)*n}function Em(o,t,e){return Math.min(Math.max(o,t),e)}function Mm(o,t,e,r){let i=e-o,s=-(r-t),a=i,c=Math.sqrt(s*s+a*a);return c>0?(s/=c,a/=c):(s=0,a=1),{nx:s,ny:a}}function Dm(o){return o.reduce((t,e)=>e+t,0)}function Ma(o){return!!o&&Object.prototype.toString.call(o)==="[object Array]"}function km(o){return Ma(o)?o:[o]}function Pm(o){return o===void 0?o:o.slice()}function jm(o){return o.filter((t,e,r)=>r.indexOf(t)===e)}function Lm(o,t){return o.filter((e,r,i)=>r===i.findIndex(n=>t(e,n)))}function Fm(o,t){if(!we(t)||t<0)throw new Error("fillArray: Invalid fillCount = "+t);return new Array(t).fill(o)}function Au(o,t){if(!we(o)||o<0)throw new Error("mapSequenceArray: Invalid len = "+o);let e=new Array(o);for(let r=0;r<o;r++)e[r]=t(r);return e}function Bm(o){return Au(o,t=>t)}function Cu(o,t,e){if(!we(o))throw new Error("mapRangeArray: Invalid start = "+t);if(!we(t))throw new Error("mapRangeArray: Invalid end = "+t);let r=Math.abs(t-o)+1,i=new Array(r);for(let n=0,s=o,a=Math.sign(t-o);n<r;s+=a,n++)i[n]=e(s);return i}function Vm(o,t){return Cu(o,t,e=>e)}function Gm(o,t){return o.indexOf(t)>=0}function qm(o,t){if(!we(t)||t<1)throw new Error("chunckArray: Invalid chunckSize = "+t);let e=[];for(let r=0;r<o.length;r+=t)e.push(o.slice(r,r+t));return e}var _u={};hr(_u,{addClass:()=>Wm,appendTo:()=>Jm,getButton:()=>ef,getCanvas:()=>rf,getCanvasTextWidth:()=>af,getDimension:()=>nf,getHeight:()=>Zm,getOffset:()=>Ym,getPadding:()=>of,getWidth:()=>Hm,hasClass:()=>Da,removeClass:()=>Um,removeFromParent:()=>Km,setHeight:()=>Xm,setOffset:()=>zm,setRect:()=>tf,setVisibility:()=>$m,setWidth:()=>Qm,styleLayoutChanged:()=>sf});var vu={};hr(vu,{getEnumValues:()=>Bn});function Bn(o){return Object.keys(o).filter(t=>Number.isNaN(Number(t))).map(t=>o[t])}var Ea;(o=>{let t=Error;function e(y){t=y!=null?y:Error}o.setErrorClass=e;function r(y,N){throw new t("Assertion Error: "+y+(N?" "+N:""))}function i(y){return typeof y=="number"&&isFinite(y)&&y===Math.trunc(y)}function n(y){return typeof y=="number"}function s(y,N){y||r(N!=null?N:"Assertion failed!")}o.assert=s;function a(y,N,D="value"){if(!Bn(N).some(M=>M===y))throw new TypeError(`Invalid ${D} enum value: ${y}`)}o.assertEnum=a;function c(y){r(y!=null?y:"Interrupted!")}o.interrupt=c;function u(y,N){return i(y)||r(`Expected ${y} to be integer.`,N),y}o.int=u;function h(y,N,D){return y!==N&&r(`Expected ${y} to equal ${N}.`,D),y}o.eq=h;function l(y,N,D){return i(y)&&n(N)&&y===N||r(`Expected ${y} to be integer equal to ${N}.`,D),y}o.int_eq=l;function p(y,N,D){return i(y)&&n(N)&&y<N||r(`Expected ${y} to be integer less than ${N}.`,D),y}o.int_lt=p;function d(y,N,D){return i(y)&&n(N)&&y<=N||r(`Expected ${y} to be integer less than or equal to ${N}.`,D),y}o.int_lte=d;function f(y,N,D){return i(y)&&n(N)&&y>N||r(`Expected ${y} to be integer greater than ${N}.`,D),y}o.int_gt=f;function g(y,N,D){return i(y)&&n(N)&&y>=N||r(`Expected ${y} to be integer greater than or equal to ${N}.`,D),y}o.int_gte=g;function x(y,N,D,M){return i(y)&&n(N)&&n(D)&&y>=N&&y<=D||r(`Expected ${y} to be integer between ${N} and ${D}.`,M),y}o.int_between=x;function b(y,N){return i(y)&&y%2===1||r(`Expected ${y} to be odd number.`,N),y}o.odd=b;function v(y,N){return i(y)&&y%2===0||r(`Expected ${y} to be even number.`,N),y}o.even=v;function S(y,N,D){if(!N.some(M=>M===y)){let M=N.map(O=>String(O)).join(", ");r(`Expected ${y} to be in group [${M}].`,D)}return y}o.in_group=S;function T(y,N){return n(y)&&isFinite(y)||r(`Expected ${y} to be finite number.`,N),y}o.finite=T;function _(y,N,D){return i(N)&&N>=0&&N<y.length||r(`Expected ${N} to be array index in bounds [0..${y.length-1}].`,D),N}o.array_id=_;function C(y,N,D){return y[_(y,N,D)]}o.array_elem=C;function A(y,N){if(y===void 0)r("Required value is undefined.",N);else return y}o.require=A})(Ea||(Ea={}));var wo;(o=>{function t(){let p=document.createElement("div");p.style.width="1in",document.body.appendChild(p);let d=p.offsetWidth;return p.remove(),d||96}function e(){try{let p=document.createElement("div");p.style.visibility="hidden",p.style.width="100px",document.body.appendChild(p);let d=p.offsetWidth;p.style.overflow="scroll";let f=document.createElement("div");f.style.width="100%",p.appendChild(f);let g=f.offsetWidth;return p.parentNode&&p.parentNode.removeChild(p),d-g}catch(p){return 0}}function r(){let p=document.createElement("div");p.style.cssText="display:inline-block; padding:0; line-height:1; position:absolute; visibility:hidden; font-size:1em",p.appendChild(document.createTextNode("M")),document.body.appendChild(p);let d=p.offsetHeight;return document.body.removeChild(p),d}function i(){if("ontouchstart"in window||"DocumentTouch"in window||"createTouch"in document&&"createTouchList"in document)return!0;var p=" -webkit- -moz- -o- -ms- ".split(" "),d=function(g){return window.matchMedia(g).matches},f=["(",p.join("touch-enabled),("),"heartz",")"].join("");return d(f)}function n(){let p=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(p)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(p.substr(0,4))}function s(){return location.protocol+"//"+location.host}let a=/^(mm|cm|in|inch|px|em)$/,c=/^([0-9\\.]+)(.*)$/;o.DPI=t(),o.PxPerMm=o.DPI/25.4,o.ScrollbarWidth=e(),o.FontSize=r(),o.IsTouchDevice=i(),o.IsMobileDevice=n(),o.HostAddress=s();function u(p){return p/o.PxPerMm}o.pxToMm=u;function h(p){return p*o.PxPerMm}o.mmToPx=h;function l(p){if(typeof p=="number")return p;let d=NaN,f,g=p.toString().match(c);if(g&&g[1]){d=parseFloat(g[1]);let x=g[2]?g[2].toLowerCase():"undefined";f=a.test(x)?x:void 0,f||console.log("Unknown unit '"+x+"' => using 'px'.")}else d=parseFloat(p);switch(Ea.finite(d,"value in function toPx"),f){case"mm":return h(d);case"cm":return h(d)*10;case"in":case"inch":return h(d)*25.4;case"em":return o.FontSize*d;default:case"px":return d}}o.toPx=l})(wo||(wo={}));function vt(o){return o===void 0?void 0:wo.toPx(o)}function Da(o,t){return t.length===0?!1:o.classList?o.classList.contains(t):!!o.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))}function Wm(o,t){t.length!==0&&(o.classList?o.classList.add(t):Da(o,t)||(o.className+=" "+t))}function Um(o,t){if(t.length!==0){if(o.classList)o.classList.remove(t);else if(Da(o,t)){var e=new RegExp("(\\s|^)"+t+"(\\s|$)");o.className=o.className.replace(e," ")}}}function zm(o,t,e,r="px"){o.style.left=t+r,o.style.top=e+r}function Ym(o){let t=o.getBoundingClientRect(),e=document.documentElement;return{top:t.top+window.pageYOffset-e.clientTop,left:t.left+window.pageXOffset-e.clientLeft}}function Hm(o){if(o instanceof Window)return o.innerWidth;{let t=parseFloat(getComputedStyle(o,null).width.replace("px",""));return isNaN(t)?0:t}}function Qm(o,t){o.style.width=t+"px"}function Zm(o){if(o instanceof Window)return o.innerHeight;{let t=parseFloat(getComputedStyle(o,null).height.replace("px",""));return isNaN(t)?0:t}}function Xm(o,t){o.style.height=t+"px"}function Jm(o,t){t.appendChild(o)}function Km(o){o.remove()}function $m(o,t){o.style.display=t?"block":"none"}function tf(o,t,e,r,i,n="px"){o.style.left=t+n,o.style.top=e+n,o.style.width=r+n,o.style.height=i+n}function ef(o){let t=typeof o=="string"?document.getElementById(o):o;return t instanceof HTMLButtonElement?t:void 0}function rf(o){let t=typeof o=="string"?document.getElementById(o):o;return t instanceof HTMLCanvasElement?t:void 0}function of(o){var s;if(!o)return{top:0,right:0,bottom:0,left:0};let t=vt(o.paddingTop),e=vt(o.paddingRight),r=vt(o.paddingBottom),i=vt(o.paddingLeft),n=((s=o.padding)!=null?s:"").toString().split(" ").filter(a=>a.length>0);switch(n.length){case 0:break;case 1:t!=null||(t=vt(n[0])),e!=null||(e=vt(n[0])),r!=null||(r=vt(n[0])),i!=null||(i=vt(n[0]));break;case 2:t!=null||(t=vt(n[0])),e!=null||(e=vt(n[1])),r!=null||(r=vt(n[0])),i!=null||(i=vt(n[1]));break;case 3:t!=null||(t=vt(n[0])),e!=null||(e=vt(n[1])),r!=null||(r=vt(n[2])),i!=null||(i=vt(n[1]));break;case 4:default:t!=null||(t=vt(n[0])),e!=null||(e=vt(n[1])),r!=null||(r=vt(n[2])),i!=null||(i=vt(n[3]));break}return t!=null||(t=0),e!=null||(e=0),r!=null||(r=0),i!=null||(i=0),{top:t,right:e,bottom:r,left:i}}function nf(o){let t=vt(o==null?void 0:o.left),e=vt(o==null?void 0:o.right),r=vt(o==null?void 0:o.top),i=vt(o==null?void 0:o.bottom),n=vt(o==null?void 0:o.width),s=vt(o==null?void 0:o.height);return n===void 0&&t!==void 0&&e!==void 0&&(n=e-t),s===void 0&&r!==void 0&&i!==void 0&&(s=i-r),{left:t,top:r,width:n,height:s}}function sf(o,t){return!o&&!t?!1:!o||!t?!0:o.left!==t.left||o.top!==t.top||o.right!==t.right||o.bottom!==t.bottom||o.width!==t.width||o.height!==t.height}var Io;function af(o,t){Io!=null||(Io=document.createElement("canvas"));let e=Io.getContext("2d");return e?(e.font=t,e.measureText(o).width):0}var Iu={};hr(Iu,{isArray:()=>ka,isArrayOrUndefined:()=>lf,isBoolean:()=>mf,isBooleanOrUndefined:()=>ff,isEnumValue:()=>Af,isEnumValueOrUndefined:()=>Cf,isFunction:()=>gf,isFunctionOrUndefined:()=>xf,isInteger:()=>vi,isIntegerEq:()=>_f,isIntegerGt:()=>vf,isIntegerGte:()=>If,isIntegerLt:()=>Sf,isIntegerLte:()=>wf,isNull:()=>uf,isNumber:()=>yf,isNumberOrUndefined:()=>bf,isObject:()=>Su,isObjectOrUndefined:()=>hf,isString:()=>pf,isStringOrUndefined:()=>df,isUndefined:()=>cf});function cf(o){return o===void 0}function uf(o){return o===null}function Su(o){return typeof o=="object"&&o!==null&&!ka(o)}function hf(o){return o===void 0||Su(o)}function ka(o){return!!o&&Object.prototype.toString.call(o)==="[object Array]"}function lf(o){return o===void 0||ka(o)}function pf(o){return typeof o=="string"}function df(o){return o===void 0||typeof o=="string"}function mf(o){return typeof o=="boolean"}function ff(o){return o===void 0||typeof o=="boolean"}function gf(o){return typeof o=="function"}function xf(o){return o===void 0||typeof o=="function"}function yf(o){return typeof o=="number"}function bf(o){return o===void 0||typeof o=="number"}function Af(o,t,e="value"){return Bn(t).some(r=>r===o)}function Cf(o,t,e="value"){return o===void 0||Bn(t).some(r=>r===o)}function vi(o){return typeof o=="number"&&isFinite(o)&&o===Math.trunc(o)}function _f(o,t){return vi(o)&&o===t}function vf(o,t){return vi(o)&&o>t}function If(o,t){return vi(o)&&o>=t}function Sf(o,t){return vi(o)&&o<t}function wf(o,t){return vi(o)&&o<=t}var wu={};hr(wu,{getMapKeys:()=>Tf});function Tf(o){let t=[];return o.forEach((e,r)=>t.push(r)),t}var Tu={};hr(Tu,{isObject:()=>Nf});function Nf(o){return typeof o=="object"&&o!==null&&!Ma(o)}var Nu={};hr(Nu,{chunkString:()=>Ef,insertAt:()=>Mf,makeSentenceFromPascal:()=>kf,removeAt:()=>Df,repeatString:()=>Rf,replaceAt:()=>Pa,toCharArray:()=>Of});function Of(o){return o.split("")}function Rf(o,t){if(!we(t)||t<0)throw new Error("repeatStr: Invalid repeatCount = "+t);return new Array(t+1).join(o)}function Ef(o,t){if(!we(t)||t<1)throw new Error("chunckString: Invalid chuckSize = "+t);let e=[];for(let r=0;r<o.length;r+=t)e.push(o.slice(r,r+t));return e}function Pa(o,t,e,r){if(!we(e)||e<0)throw new Error("replaceAt: Invalid removeCount = "+e);if(!we(t)||t<0||t+e>o.length)throw new Error("replaceAt: Invalid pos = "+t+", removeCount = "+e+", str.length = "+o.length);return o.substring(0,t)+r+o.substring(t+e)}function Mf(o,t,e){return Pa(o,t,0,e)}function Df(o,t,e){return Pa(o,t,e,"")}function kf(o){if(o==="")return"";let t=o.charAt(0),e="",r=()=>{t!==""&&(e===""?e+=t.charAt(0).toUpperCase()+t.substring(1):e+=" "+t,t="")},i=n=>n.toUpperCase()!==n.toLowerCase()&&n===n.toUpperCase();for(let n=1;n<o.length;n++){let s=o.charAt(n);i(s)&&r(),t+=s.toLowerCase()}return r(),e}var gu;(o=>{let t="ConsentCookie",e;(T=>{T.Accept="accept",T.Decline="decline"})(e||(e={}));let r,i,n=p(t);r=n==="accept"||n==="decline"?n:void 0;function s(T){i=new Date,i.setDate(i.getDate()+T)}o.setExpireDays=s;function a(){return r===void 0}o.isConsentPending=a;function c(){r="accept",l(t,r)}o.accept=c;function u(){r="decline",l(t,r)}o.decline=u;function h(){return document.cookie.split(";").map(_=>_.trim())}function l(T,_){let C=T+"="+_.toString()+";sameSite=Lax;";return i&&(C+="expires="+i.toUTCString()+";"),document.cookie=C,_}function p(T,_){let C=h().find(A=>A.startsWith(T+"="));return C===void 0?_:C.substring(T.length+1)}function d(T){document.cookie=T+"=;expires=Thu, 01 Jan 1970 00:00:00 UTC;"}function f(T,_){return r==="accept"&&l(T,_),_}o.save=f;function g(T,_){return r==="accept"&&p(T,_)||_}o.read=g;function x(T,_){if(r==="accept"){let C=p(T);return C===void 0?_:parseInt(C)}else return _}o.readInt=x;function b(T,_){if(r==="accept"){let C=p(T);return C===void 0?_:/true|1/i.test(C)}else return _}o.readBool=b;function v(T){(r==="accept"||T===t)&&d(T)}o.erase=v;function S(){document.cookie.split(";").forEach(T=>v(T.trim().split("=")[0]))}o.eraseAll=S})(gu||(gu={}));var Ou=class So{constructor(t,e){Xe(this,"x"),Xe(this,"y"),this.x=t!=null?t:0,this.y=e!=null?e:0}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}add(t){return new So(this.x+t.x,this.y+t.y)}sub(t){return new So(this.x-t.x,this.y-t.y)}mul(t){return new So(this.x*t,this.y*t)}div(t){return new So(this.x/t,this.y/t)}},Ru=class{constructor(o,t=1/0){Xe(this,"cache"),Xe(this,"next"),Xe(this,"prev"),Xe(this,"head"),Xe(this,"tail"),Xe(this,"capacity"),Xe(this,"size"),Xe(this,"maxKeyLength"),this.cache=Object.create(null),this.next=Object.create(null),this.prev=Object.create(null),this.head=null,this.tail=null,this.capacity=o,this.size=0,this.maxKeyLength=t}get(o){if(!(o.length>this.maxKeyLength)&&this.cache[o]!==void 0)return this.touch(o),this.cache[o]}set(o,t){if(!(o.length>this.maxKeyLength)){if(this.cache[o]!==void 0){this.cache[o]=t,this.touch(o);return}this.size>=this.capacity&&this.evict(),this.cache[o]=t,this.addToTail(o),this.size++}}touch(o){this.tail!==o&&(this.removeKey(o),this.addToTail(o))}evict(){if(this.head!==null){let o=this.head;this.removeKey(o),delete this.cache[o],this.size--}}removeKey(o){let t=this.prev[o],e=this.next[o];t!==void 0?this.next[t]=e:this.head=e!=null?e:null,e!==void 0?this.prev[e]=t:this.tail=t!=null?t:null,delete this.prev[o],delete this.next[o]}addToTail(o){this.tail!==null?(this.next[this.tail]=o,this.prev[o]=this.tail):this.head=o,this.tail=o}};var ja={};_i(ja,{MusicError:()=>E,MusicErrorType:()=>gt,init:()=>Qr});var gt=(a=>(a[a.Unknown=0]="Unknown",a[a.InvalidArg=1]="InvalidArg",a[a.Note=2]="Note",a[a.Scale=3]="Scale",a[a.KeySignature=4]="KeySignature",a[a.Timesignature=5]="Timesignature",a[a.Score=6]="Score",a))(gt||{});function Pf(o){return o===void 0?"":`[${gt[o]}] `}var E=class extends Error{constructor(...e){let[r,i]=e.length===1?[0,e[0]]:e;super(Pf(r)+i);m(this,"type");Object.setPrototypeOf(this,new.target.prototype),this.name="MusicError",this.type=r}};var Eu=!1;function Qr(){Eu||(Eu=!0,console.log("%cWebMusicScore v3.0.0 (iife) initialized.","background: black; color: white; padding: 2px;"))}var Tr=(e=>(e[e.Ascii=0]="Ascii",e[e.Unicode=1]="Unicode",e))(Tr||{}),Nr=(e=>(e[e.Scientific=0]="Scientific",e[e.Helmholtz=1]="Helmholtz",e))(Nr||{}),jf=I.Enum.getEnumValues(Nr),Lf=0;function Mu(o){if(I.Is.isEnumValue(o,Nr))return o;throw new E(1,`Invalid pitchNotation: ${o}`)}function Ff(o){return Nr[Mu(o)]}var Vn=(r=>(r.Default="Default",r.OmitOctave="Omit Octave",r.Interval="Interval",r))(Vn||{}),Bf="Default",Vf=I.Enum.getEnumValues(Vn);function Gf(o){if(I.Is.isEnumValue(o,Vn))return o;throw new E(5,`Invalid guitarNoteLabel: ${o}`)}function Du(o,t){return(o%t+t)%t}var ku=12,Pu=7,qf=new Map([[-2,"bb"],[-1,"b"],[0,""],[1,"#"],[2,"x"]]),Wf=new Map([[-2,"\u{1D12B}"],[-1,"\u266D"],[0,""],[1,"\u266F"],[2,"\u{1D12A}"]]),ju=new Map([["",0],["bb",-2],["b",-1],["#",1],["x",2],["\u{1D12B}",-2],["\u266D",-1],["\u266F",1],["\u{1D12A}",2]]),To=["C","D","E","F","G","A","B"],Lu=[0,2,4,5,7,9,11],Fu=/^([A-G])((?:bb|𝄫|♭|b|#|♯|x|𝄪)?)?(-?\d+)?$/,st=class st{constructor(t,e,r){m(this,"diatonicClass");m(this,"accidental");m(this,"octave");if(typeof t=="number"&&typeof e=="number"&&r===void 0)st.validateDiatonicId(t),this.diatonicClass=st.getDiatonicClass(t),this.accidental=st.validateAccidental(e),this.octave=st.getOctaveFromDiatonicId(t);else if(typeof t=="number"&&typeof e=="number"&&typeof r=="number")this.diatonicClass=st.validateDiatonicClass(t),this.accidental=st.validateAccidental(e),this.octave=st.validateOctave(r);else if(typeof t=="string"&&typeof e=="number"&&typeof r=="number")this.diatonicClass=st.getDiatonicClass(t),this.accidental=st.validateAccidental(e),this.octave=st.validateOctave(r);else throw new E(2,`Invalid args: ${t}, ${e}, ${r}`)}get diatonicId(){return st.getDiatonicIdInOctave(this.diatonicClass,this.octave)}get chromaticId(){return st.getChromaticIdInOctave(Lu[this.diatonicClass]+this.accidental,this.octave)}get midiNumber(){return this.chromaticId}get chromaticClass(){return st.getChromaticClass(Lu[this.diatonicClass]+this.accidental)}get noteLetter(){return To[this.diatonicClass]}format(t,e){let{noteLetter:r,octave:i}=this,n=st.getAccidentalSymbol(this.accidental,e);return t===1?i>=3?r.toLowerCase()+n+"\u2032".repeat(i-3):r.toUpperCase()+n+"\u0375".repeat(2-i):r+n+i}formatOmitOctave(t){let e=To[this.diatonicClass],r=st.getAccidentalSymbol(this.accidental,t);return e+r}static getNote(t){let e=this.noteByNameCache.get(t);if(e===void 0){let r=st.parseNote(t);if(!r)throw new E(2,`Invalid noteName: ${t}`);if(r.octave===void 0)throw new E(2,"Octave is required for note.");e=new st(r.noteLetter,r.accidental,r.octave),this.noteByNameCache.set(t,e)}return e}static getChromaticNote(t){let e=this.chromaticNoteCache.get(t);if(e===void 0){let i=["C/B#","C#/Db","D","D#/Eb","E/Fb","F/E#","F#/Gb","G","G#/Ab","A","A#/Bb","B/Cb"][st.getChromaticClass(t)].split("/")[0]+st.getOctaveFromChromaticId(t),n=st.parseNote(i);if(!n)throw new E(2,`Invalid noteName: ${i}`);if(n.octave===void 0)throw new E(2,"Octave is required for note.");e=new st(n.noteLetter,n.accidental,n.octave),this.chromaticNoteCache.set(t,e)}return e}static getDiatonicClass(t){if(typeof t=="number")return Du(t,7);if(typeof t=="string"&&t.length>0)return To.indexOf(st.validateNoteLetter(t[0]));throw new E(2,`Invalid arg: ${t}`)}static getOctaveFromDiatonicId(t){return Math.floor((t-Pu)/7)}static getDiatonicIdInOctave(t,e){return st.getDiatonicClass(t)+e*7+Pu}static getChromaticClass(t){return Du(t,12)}static getOctaveFromChromaticId(t){return Math.floor((t-ku)/12)}static getChromaticIdInOctave(t,e){return st.getChromaticClass(t)+e*12+ku}static equals(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.diatonicId===e.diatonicId&&t.accidental===e.accidental}static replaceAccidentalSymbols(t,e){return e===1?t.replace("bb","\u{1D12B}").replace("b","\u266D").replace("#","\u266F").replace("x","\u{1D12A}"):t.replace("\u{1D12B}","bb").replace("\u266D","b").replace("\u266F","#").replace("\u{1D12A}","x")}static isValidNoteName(t){return Fu.test(t)}static parseNote(t){var c;let e=Fu.exec(t);if(!e)return;let r=st.validateNoteLetter(e[1]),i=e[2],n=st.validateAccidental((c=ju.get(i))!=null?c:0),s=e[3],a=s?st.validateOctave(+s):void 0;return{noteLetter:r,accidental:n,octave:a}}static getScientificNoteName(t,e){let r=st.parseNote(t);if(!r)throw new E(2,`Invalid noteName: ${t}`);let{noteLetter:i,accidental:n,octave:s}=r;return i+st.getAccidentalSymbol(n,e)+(s!=null?s:"")}static getAccidentalSymbol(t,e){return e===1?Wf.get(t):qf.get(t)}static getAccidental(t){let e=ju.get(t);if(e===void 0)throw new E(2,`Invalid accidental: ${t}`);return e}static getNoteLetter(t){return To[st.getDiatonicClass(t)]}static findNextDiatonicIdAbove(t,e,r){let i=st.getDiatonicClass(t),n=st.getDiatonicClass(e),s=r?i<=n?1:0:i<n?1:0;return st.getDiatonicIdInOctave(i,st.getOctaveFromDiatonicId(e)+s)}static validateDiatonicId(t){if(I.Is.isInteger(t))return t;throw new E(2,`Invalid diatonicId: ${t}`)}static validateDiatonicClass(t){if(I.Is.isInteger(t)&&t>=0&&t<7)return t;throw new E(2,`Invalid diatonicClass: ${t}`)}static validateChromaticId(t){if(I.Is.isInteger(t))return t;throw new E(2,`Invalid chromaticId: ${t}`)}static validatechromaticClass(t){if(I.Is.isInteger(t)&&t>=0&&t<12)return t;throw new E(2,`Invalid chromaticClass: ${t}`)}static validateNoteLetter(t){if(To.some(e=>e===t))return t;throw new E(2,`Invalid note: ${t}`)}static validateOctave(t){if(I.Is.isInteger(t))return t;throw new E(2,`Invalid octave: ${t}`)}static validateAccidental(t){if(I.Is.isInteger(t)&&t>=-2&&t<=2)return t;throw new E(2,`Invalid accidental: ${t}`)}static sort(t){return t.slice().sort(st.compareFunc)}static removeDuplicates(t){let e=[];return t.forEach(r=>{e.find(i=>st.equals(r,i))===void 0&&e.push(r)}),e}static compareFunc(t,e){return t.diatonicId<e.diatonicId?-1:t.diatonicId>e.diatonicId?1:t.accidental<e.accidental?-1:t.accidental>e.accidental?1:0}};m(st,"noteByNameCache",new Map),m(st,"chromaticNoteCache",new Map);var G=st;function Uf(o,t){let e=G.getChromaticClass(o)-new G(t,0).chromaticClass;for(;e>2;)e-=12;for(;e<-2;)e+=12;return G.validateAccidental(e)}var zf=/^(bb?|b?|#?|x?)([0-9]*)$/;function Yf(o){var i,n;let t=zf.exec(""+o);if(!t)throw new E(4,`Invalid degree: ${o}`);let e=(n=G.getAccidental((i=t[1])!=null?i:""))!=null?n:0,r=+t[2];if(!I.Is.isInteger(e)||e<-2||e>2||!I.Is.isInteger(r)||r<1)throw new E(4,`Invalid degree: ${o}`);return{deg:r,acc:e}}var La=(a=>(a[a.Ionian=1]="Ionian",a[a.Dorian=2]="Dorian",a[a.Phrygian=3]="Phrygian",a[a.Lydian=4]="Lydian",a[a.Mixolydian=5]="Mixolydian",a[a.Aeolian=6]="Aeolian",a[a.Locrian=7]="Locrian",a))(La||{}),Fa=(r=>(r[r.Natural=0]="Natural",r[r.Flats=1]="Flats",r[r.Sharps=2]="Sharps",r))(Fa||{});function Gn(){return Rr("C","Major")}var Or=class Or{constructor(t,e){this.tonic=t;this.mode=e;m(this,"naturalScaleNotes");m(this,"accidentalByDiatonicClass");m(this,"orderedAccidentedNotes");if(!I.Is.isEnumValue(e,La))throw new E(4,`Invalid mode: ${e}`);let r=[2,2,1,2,2,2,1];for(let c=1;c<e;c++)r.push(r.shift());this.naturalScaleNotes=[],this.accidentalByDiatonicClass=[];let i=G.getDiatonicClass(t[0]),n=G.getNote(t+"0").chromaticId;for(let c=0;c<7;i++,n+=r[c],c++){let u=new G(G.getDiatonicClass(i),Uf(n,i));if(Math.abs(u.accidental)>=2)throw new E(4,"Key signature contains double accidental.");this.naturalScaleNotes[c]=u,this.accidentalByDiatonicClass[u.diatonicClass]=u.accidental}let s=this.naturalScaleNotes.filter(c=>c.accidental>0).sort((c,u)=>{let h=Or.OrderOfSharps.indexOf(c.noteLetter),l=Or.OrderOfSharps.indexOf(u.noteLetter);if(h===-1||l===-1)throw new E(4,"Unexpected note in key signature.");return h-l}),a=this.naturalScaleNotes.filter(c=>c.accidental<0).sort((c,u)=>{let h=Or.OrderOfFlats.indexOf(c.noteLetter),l=Or.OrderOfFlats.indexOf(u.noteLetter);if(h===-1||l===-1)throw new E(4,"Unexpected note in key signature.");return h-l});if(s.length!==0&&a.length!==0)throw new E(4,"Key Signature has both sharps and flats.");this.orderedAccidentedNotes=a.length>0?a:s}getAccidentalType(){return this.orderedAccidentedNotes.length===0?0:this.orderedAccidentedNotes[0].accidental<0?1:2}getNaturalScaleNotes(){return this.naturalScaleNotes}getAccidental(t){var e;return(e=this.accidentalByDiatonicClass[G.getDiatonicClass(t)])!=null?e:0}getNumAccidentals(){return this.orderedAccidentedNotes.length}getOrderedAccidentalNotes(){return this.orderedAccidentedNotes}getNoteByDegree(t){let{deg:e,acc:r}=Yf(t);if(r===0)return this.naturalScaleNotes[(e-1)%7];{let i=this.naturalScaleNotes[(e-1)%7];return new G(i.diatonicId,i.accidental+r)}}static equals(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.tonic===e.tonic&&t.mode===e.mode}};m(Or,"OrderOfSharps","FCGDAEB"),m(Or,"OrderOfFlats","BEADGCF");var Le=Or;var Hf=new Map([["Major","M"],["minor","m"],["Perfect","P"],["diminished","d"],["Augmented","A"],["doubly diminished","dd"],["Doubly Augmented","AA"]]),Qf={1:{0:"Perfect",1:"Augmented","-1":"diminished",2:"Doubly Augmented","-2":"doubly diminished"},2:{2:"Major",1:"minor",3:"Augmented",0:"diminished",4:"Doubly Augmented","-1":"doubly diminished"},3:{4:"Major",3:"minor",5:"Augmented",2:"diminished",6:"Doubly Augmented",1:"doubly diminished"},4:{5:"Perfect",6:"Augmented",4:"diminished",7:"Doubly Augmented",3:"doubly diminished"},5:{7:"Perfect",8:"Augmented",6:"diminished",9:"Doubly Augmented",5:"doubly diminished"},6:{9:"Major",8:"minor",10:"Augmented",7:"diminished",11:"Doubly Augmented",6:"doubly diminished"},7:{11:"Major",10:"minor",12:"Augmented",9:"diminished",13:"Doubly Augmented",8:"doubly diminished"},8:{12:"Perfect",13:"Augmented",11:"diminished",14:"Doubly Augmented",10:"doubly diminished"}};function Zf(o,t){for(;o<1;)o+=7,t+=12;for(;o>8;)o-=7,t-=12;let e=Qf[o];if(e)return e[t]}function Xf(o){if(o==="Perfect"||o==="Major"||o==="minor"||o==="Augmented"||o==="diminished"||o==="Doubly Augmented"||o==="doubly diminished")return o;throw new E(1,`Invalid interval quality: ${o}`)}function Jf(o){if(I.Is.isIntegerGte(o,1))return I.Math.toOrdinalNumber(o);throw new E(1,`Invalid interval quantity: ${o}`)}var qn=class extends Error{constructor(e){super(e);this.msg=e;this.name="InvalidInterval"}},No=class o{constructor(t,e){this.note1=t;this.note2=e;m(this,"direction");m(this,"semitones");m(this,"quantity");m(this,"quality");e.diatonicId>=t.diatonicId?(this.direction=e.diatonicId===t.diatonicId?"Unison":"Ascending",this.quantity=e.diatonicId-t.diatonicId+1,this.semitones=e.chromaticId-t.chromaticId):(this.direction="Descending",this.quantity=t.diatonicId-e.diatonicId+1,this.semitones=t.chromaticId-e.chromaticId);let r=Zf(this.quantity,this.semitones);if(r)this.quality=r;else throw new qn("Unknown interval quality")}static get(t,e){try{return new o(t,e)}catch(r){if(r instanceof qn)return;throw r}}toString(){let t=this.direction==="Unison"?"":this.direction+" ",e=this.quality+" ",r=this.direction==="Unison"?"Unison":Jf(this.quantity);return t+e+r}toAbbrString(){var i;let t=this.direction==="Descending"?"\u2193":"",e=(i=Hf.get(this.quality))!=null?i:"?",r=this.quantity;return t+e+r}};function Kf(o){let t=G.getDiatonicClass("CCDDEFFGGAAB"[G.getChromaticClass(o)]),e=G.getOctaveFromChromaticId(o);return G.getDiatonicIdInOctave(t,e)}var $f=["Cb","C","C#","Db","D","D#","Eb","E","E#","Fb","F","F#","Gb","G","G#","Ab","A","A#","Bb","B","B#"],Je=(g=>(g.Major="Major",g.NaturalMinor="Natural Minor",g.HarmonicMinor="Harmonic Minor",g.Ionian="Ionian",g.Dorian="Dorian",g.Phrygian="Phrygian",g.Lydian="Lydian",g.Mixolydian="Mixolydian",g.Aeolian="Aeolian",g.Locrian="Locrian",g.MajorPentatonic="Major Pentatonic",g.MinorPentatonic="Minor Pentatonic",g.MajorHexatonicBlues="Major Hexatonic Blues",g.MinorHexatonicBlues="Minor Hexatonic Blues",g.HeptatonicBlues="Heptatonic Blues",g))(Je||{});function tg(o){switch(o){case"Major":return 1;case"Natural Minor":return 6;case"Harmonic Minor":return 6;case"Ionian":return 1;case"Dorian":return 2;case"Phrygian":return 3;case"Lydian":return 4;case"Mixolydian":return 5;case"Aeolian":return 6;case"Locrian":return 7;case"Major Pentatonic":return 1;case"Minor Pentatonic":return 6;case"Major Hexatonic Blues":return 1;case"Minor Hexatonic Blues":return 6;case"Heptatonic Blues":return 1;default:throw new E(3,`Invalid scaleType: ${o}`)}}var Er=class extends Le{constructor(e,r){super(e,tg(r));this.tonic=e;this.scaleType=r;m(this,"scaleDegrees");m(this,"scaleNotes");m(this,"chromaticClassDegree");m(this,"preferredChromaticNoteCache",new Map);switch(r){case"Harmonic Minor":this.scaleDegrees=[1,2,3,4,5,6,"#7"];break;case"Major Pentatonic":this.scaleDegrees=[1,2,3,5,6];break;case"Minor Pentatonic":this.scaleDegrees=[1,3,4,5,7];break;case"Major Hexatonic Blues":this.scaleDegrees=[1,2,"b3",3,5,6];break;case"Minor Hexatonic Blues":this.scaleDegrees=[1,3,4,"b5",5,7];break;case"Heptatonic Blues":this.scaleDegrees=[1,2,"b3",4,"b5",6,"b7"];break;default:this.scaleDegrees=[1,2,3,4,5,6,7];break}this.scaleNotes=this.scaleDegrees.map(i=>this.getNoteByDegree(i)),this.chromaticClassDegree=[0,1,2,3,4,5,6,7,8,9,10,11].map(i=>{let n=this.scaleNotes.findIndex(s=>s.chromaticClass===i);return n>=0?this.scaleDegrees[n]:void 0})}static equals(e,r){return e==null&&r==null?!0:e==null||r==null?!1:e===r||e.getScaleName()===r.getScaleName()}getScaleName(e){switch(e){case 1:return G.getScientificNoteName(this.tonic,e)+" "+this.scaleType;default:return this.tonic+" "+this.scaleType}}getScaleNotes(e,r){if(!I.Is.isIntegerGte(r,1))throw new E(3,`Invalid numOctaves: ${r}`);let i=[];for(let s=1;s<=r;s++)i=[...i,...this.scaleNotes];i.push(this.scaleNotes[0]);let n=G.getNote(e).diatonicId;return i.map(s=>(n=G.findNextDiatonicIdAbove(s.diatonicId,n,!1),new G(n,s.accidental)))}getScaleOverview(){return this.getScaleNotes("C4",1).map(e=>e.formatOmitOctave(1)).join(" - ")}getScaleSteps(){let e=this.getScaleNotes("C4",1).map(i=>i.chromaticId),r=[];for(let i=0;i<e.length-1;i++)r.push(I.Math.mod(e[i+1]-e[i],12));return r}getScaleStringSteps(){return this.getScaleSteps().map(e=>e===1?"H":e===2?"W":e.toString()+"H")}isScaleNote(e){return this.chromaticClassDegree[e.chromaticClass]!==void 0}isScaleRootNote(e){return String(this.chromaticClassDegree[e.chromaticClass])==="1"}getIntervalFromRootNote(e){let r=this.getScaleNotes("C0",1)[0];for(;e.chromaticId>=r.chromaticId+12;)e=new G(e.diatonicClass,e.accidental,e.octave-1);if(e.chromaticId<r.chromaticId)throw new E(3,"Note is below rootNote.");let i=No.get(r,e);if(i===void 0)throw new E(3,"Interval is undefined.");return i}getPreferredChromaticNote(e){G.validateChromaticId(e);let r=this.preferredChromaticNoteCache.get(e);if(r)return r;let i=G.getOctaveFromChromaticId(e);if(r=this.scaleNotes.map(l=>l.noteLetter==="C"&&l.accidental<0?new G(l.diatonicClass,l.accidental,i+1):l.noteLetter==="B"&&l.accidental>0?new G(l.diatonicClass,l.accidental,i-1):new G(l.diatonicClass,l.accidental,i)).find(l=>G.getChromaticClass(e)===l.chromaticClass),r)return this.preferredChromaticNoteCache.set(e,r),r;let s=Kf(e),a=s-2,c=s+2,h=this.getAccidentalType()===1?[0,-1,1,-2,2]:[0,1,-1,2,-2];for(let l=0;l<h.length;l++){let p=h[l];for(let d=Math.max(0,a);d<=c;d++)if(r=new G(d,p),e===r.chromaticId)return this.preferredChromaticNoteCache.set(e,r),r}return r=G.getChromaticNote(e),this.preferredChromaticNoteCache.set(e,r),r}},Yt=class{constructor(t){this.type=t;m(this,"tonicList",[]);m(this,"scaleMap",new Map);let e=[],r=[],i=[];if($f.forEach(s=>{try{let a=new Er(s,this.type);switch(a.getAccidentalType()){case 0:e.push(a);break;case 2:if(s.endsWith("b"))return;r.push(a);break;case 1:if(s.endsWith("#"))return;i.push(a);break}this.scaleMap.set(s,a)}catch(a){}}),e.length===0)throw new E(3,"Expected natural scale.");let n=(s,a)=>s.getNumAccidentals()-a.getNumAccidentals();this.tonicList=[...e.sort(n).map(s=>s.tonic),"- Sharps -",...r.sort(n).map(s=>s.tonic),"- Flats -",...i.sort(n).map(s=>s.tonic)]}getTonicList(){return this.tonicList}getDefaultTonic(){return this.tonicList[0]}getType(){return this.type}getScale(t){let e=this.scaleMap.get(t);if(e)return e;throw new E(3,`Invalid scale: ${t} ${this.type}`)}hasScale(t){return this.scaleMap.get(t)!==void 0}},Bu=[new Yt("Major"),new Yt("Natural Minor"),new Yt("Harmonic Minor"),"- Modes -",new Yt("Ionian"),new Yt("Dorian"),new Yt("Phrygian"),new Yt("Lydian"),new Yt("Mixolydian"),new Yt("Aeolian"),new Yt("Locrian"),"- Pentatonic -",new Yt("Major Pentatonic"),new Yt("Minor Pentatonic"),"- Blues -",new Yt("Major Hexatonic Blues"),new Yt("Minor Hexatonic Blues"),new Yt("Heptatonic Blues")];function eg(){return Bu}var Vu=new Map;Bu.forEach(o=>{o instanceof Yt&&Vu.set(o.getType(),o)});function Gu(o){let t=Vu.get(o);if(t)return t;throw new E(3,`Invalid scaleType: ${o}`)}function Ba(o){if(I.Is.isEnumValue(o,Je))return o;throw new E(3,`Invalid scaleType: ${o}`)}function Rr(o,t){return Gu(t).getScale(o)}var rg=Rr("C","Major");function ig(){return rg}var lr=(o,t)=>o.chromaticClass===t.chromaticClass,og=["C","C#","Db","D","Eb","E","F","F#","Gb","G","Ab","A","Bb","B","Cb"].map(o=>G.getNote(o+"0")),qu=new Map;function ng(o){let t=o.chromaticClass,e=qu.get(t);if(!e){if(e=og.find(r=>lr(r,o)),!e)throw new E(1,`Invalid chord root note: ${o.formatOmitOctave(1)}`);qu.set(t,e)}return e}function sg(o,t){let e=o.formatOmitOctave(0);return Rr(e,"Major").getNoteByDegree(t)}function ag(o){return I.Arr.removeDuplicatesCmp(o,lr)}var cg=[{name:"5",degrees:[1,5]},{name:"",degrees:[1,3,5]},{name:"m",degrees:[1,"b3",5]},{name:"dim",degrees:[1,"b3","b5"]},{name:"aug",degrees:[1,3,"#5"]},{name:"sus2",degrees:[1,2,5]},{name:"sus4",degrees:[1,4,5]},{name:"6",degrees:[1,3,5,6]},{name:"m6",degrees:[1,"b3",5,6]},{name:"m(maj7)",degrees:[1,"b3",5,7]},{name:"7",degrees:[1,3,5,"b7"]},{name:"7\u266D5",degrees:[1,3,"b5","b7"]},{name:"7\u266F5",degrees:[1,3,"#5","b7"]},{name:"7sus2",degrees:[1,2,5,"b7"]},{name:"7sus4",degrees:[1,4,5,"b7"]},{name:"dim7",degrees:[1,"b3","b5","bb7"]},{name:"maj7",degrees:[1,3,5,7]},{name:"maj7\u266D5",degrees:[1,3,"b5",7]},{name:"maj7\u266F5",degrees:[1,3,"#5",7]},{name:"m7",degrees:[1,"b3",5,"b7"]},{name:"m7\u266D5",degrees:[1,"b3","b5","b7"]},{name:"m7\u266F5",degrees:[1,"b3","#5","b7"]},{name:"9",degrees:[1,3,5,"b7",9]},{name:"m9",degrees:[1,"b3",5,"b7",9]},{name:"7\u266F9",degrees:[1,3,5,"b7","#9"]},{name:"7\u266D9",degrees:[1,3,5,"b7","b9"]},{name:"11",degrees:[1,3,5,"b7",9,11]},{name:"m11",degrees:[1,"b3",5,"b7",9,11]},{name:"13",degrees:[1,3,5,"b7",9,11,13]},{name:"m13",degrees:[1,"b3",5,"b7",9,11,13]}];function ug(o,t){return o.degrees.every(e=>e!==t)?!0:o.degrees.length>=4&&t===5||o.degrees.length>=6&&t===9||o.degrees.length>=7&&t===11}var Ii=class extends Error{constructor(e){super(e);this.msg=e;this.name="InvalidChordException"}},Va=class o{constructor(t,e,r,i){this.chordInfo=t;this.rootNote=r;m(this,"name");m(this,"notes");m(this,"omitNotes");m(this,"slashBassNote");this.name=t.name;let n=e.slice();!n.some(a=>lr(a,i))&&n.push(i),this.notes=new Array(this.chordInfo.degrees.length),this.omitNotes=new Array(this.chordInfo.degrees.length);for(let a=0;a<t.degrees.length;a++){let c=t.degrees[a],u=this.notes[a]=sg(this.rootNote,c),h=n.findIndex(l=>lr(l,u));if(h>=0)this.omitNotes[a]=!1,n.splice(h,1);else if(ug(t,c))this.omitNotes[a]=!0;else throw new Ii("Missing chord note!");lr(i,u)&&(i=u)}if(n.length>0)if(n.every(a=>lr(a,i)))this.slashBassNote=i;else throw new Ii("Got some extra notes that are not bass note!");else this.slashBassNote=lr(i,this.rootNote)?void 0:i;if(t.name==="5"&&this.slashBassNote)throw new Ii("Power chord no bass note allowed!")}static getChords(t){let e=[],r=G.sort(t),i=r[0],n=ag(r);for(let s=0;s<n.length;s++){let a=ng(n[s]);cg.forEach(c=>{try{let u=new o(c,n,a,i),h=e.findIndex(l=>l.replaceWith(u));h>=0?e[h]=u:e.push(u)}catch(u){if(!(u instanceof Ii))throw u}})}return e}replaceWith(t){if(t.notes.length<this.notes.length)return!1;if(t.slashBassNote&&this.slashBassNote&&!lr(t.slashBassNote,this.slashBassNote)||t.slashBassNote&&!this.slashBassNote||!t.slashBassNote&&this.slashBassNote)return!1;for(let e=0;e<this.notes.length;e++)if(!lr(t.notes[e],this.notes[e])||t.omitNotes[e]!==this.omitNotes[e])return!1;return!0}toString(){let t=1,e=this.rootNote.formatOmitOctave(t),r=this.slashBassNote?"/"+this.slashBassNote.formatOmitOctave(t):"";return e+this.name+r}getDegreeNotationString(){let t=1,e=this.slashBassNote?this.slashBassNote.formatOmitOctave(t)+" - ":"",r=this.omitNotes.map((i,n)=>this.getDegreeStr(n)+"("+(i?"-":this.getNoteStr(n))+")").join(" - ");return e+r}getOmittedDegreesString(){let t=this.omitNotes.map((e,r)=>e?this.getDegreeStr(r)+"("+this.getNoteStr(r)+")":void 0).filter(e=>e!==void 0);return t.length>0?"Omits "+t.join(", "):""}getDegreeStr(t){return G.replaceAccidentalSymbols(""+this.chordInfo.degrees[t],1)}getNoteStr(t){return this.notes[t].formatOmitOctave(1)}};var Ga={list:[{name:"Standard",strings:["E2","A2","D3","G3","B3","E4"]},{name:"B Standard",strings:["B1","E2","A2","D3","F#3","B3"]},{name:"C Standard",strings:["C2","F2","A#2","D#3","G3","C4"]},{name:"D Modal",strings:["D2","A2","D3","G3","A3","D4"]},{name:"D Standard",strings:["D2","G2","C3","F3","A3","D4"]},{name:"D# Standard",strings:["D#2","G#2","C#3","F#3","A#3","D#4"]},{name:"Double Drop D",strings:["D2","A2","D3","G3","B3","D4"]},{name:"Drop B",strings:["B1","F#2","B2","E3","G#3","C#4"]},{name:"Drop C",strings:["C2","G2","C3","F3","A3","D4"]},{name:"Drop D",strings:["D2","A2","D3","G3","B3","E4"]},{name:"Low C",strings:["C2","G2","D3","G3","A3","D4"]},{name:"New Standard",strings:["C2","G2","D3","A3","E4","G4"]},{name:"Open A",strings:["E2","A2","C#3","E3","A3","E4"]},{name:"Open A Minor",strings:["E2","A2","E3","A3","C4","E4"]},{name:"Open C",strings:["C2","G2","C3","G3","C4","E4"]},{name:"Open C Minor",strings:["C2","G2","C3","G3","C4","D#4"]},{name:"Open D",strings:["D2","A2","D3","F#3","A3","D4"]},{name:"Open D Minor",strings:["D2","A2","D3","F3","A3","D4"]},{name:"Open E",strings:["E2","B2","E3","G#3","B3","E4"]},{name:"Open E Minor",strings:["E2","B2","E3","G3","B3","E4"]},{name:"Open G",strings:["D2","G2","D3","G3","B3","D4"]},{name:"Open G Minor",strings:["D2","G2","D3","G3","A#3","D4"]}]};var qa=(e=>(e[e.RightHanded=0]="RightHanded",e[e.LeftHanded=1]="LeftHanded",e))(qa||{}),lg=0;function pg(o){if(I.Is.isEnumValue(o,qa))return o;throw new E(1,`Invalid handedness: ${o}`)}var Oo=Ga.list.map(o=>o.name),dg=Oo[0];function Wa(o){if(Oo.indexOf(o)<0)throw new E(1,`Invalid tuning name: ${o}`);return o}var Wu=new Ru(100);function Wn(o){let t=Wu.get(o);if(!t){let e=Ga.list.find(r=>r.name===o);if(!e)throw new E(1,`Invalid tuningName: ${o}`);if(t=e.strings.slice().reverse().map(r=>G.getNote(r)),!I.Is.isIntegerEq(t.length,6))throw new E(0,`Tuning has ${t.length} strings.`);Wu.set(o,t)}return t}var Vt=(a=>(a[a.Whole=192]="Whole",a[a.Half=96]="Half",a[a.Quarter=48]="Quarter",a[a.Eighth=24]="Eighth",a[a.Sixteenth=12]="Sixteenth",a[a.ThirtySecond=6]="ThirtySecond",a[a.SixtyFourth=3]="SixtyFourth",a))(Vt||{}),Uu=192,Si=3,mg=new Map([[192,0],[96,0],[48,0],[24,1],[12,2],[6,3],[3,4]]),fg=new Map([[192,"\u{1D15D}"],[96,"\u{1D15E}"],[48,"\u{1D15F}"],[24,"\u{1D160}"],[12,"\u{1D161}"],[6,"\u{1D162}"],[3,"\u{1D163}"]]);function zu(o){if(I.Is.isEnumValue(o,Vt))return o;throw new E(1,`Invalid noteLength: ${o}`)}var $t=class o{constructor(t,e,r){m(this,"noteLength");m(this,"dotted");m(this,"triplet");m(this,"ticks");m(this,"flagCount");var i;if(this.noteLength=zu(t),this.dotted=e===!0,this.triplet=r===!0,this.ticks=this.noteLength,this.flagCount=(i=mg.get(this.noteLength))!=null?i:0,this.dotted&&this.triplet)throw new E(2,"Note cannot be both dotted and triplet!");if(this.dotted&&this.noteLength===Si)throw new E(2,"Shortest note cannot be dotted!");this.dotted&&(this.ticks+=this.noteLength/2),this.triplet&&(this.ticks=this.ticks*2/3)}static createFromNoteSize(t){return new o(Uu/t)}canDot(){return!this.dotted&&this.noteLength!==Si}hasStem(){return this.noteLength<192}toString(){return fg.get(this.noteLength)+(this.dotted?".":"")}};var pr=class{constructor(...t){m(this,"beatCount");m(this,"beatSize");m(this,"beatLength");m(this,"measureTicks");m(this,"beamGroupCount");m(this,"beamGroupLength");if(t.length===1&&typeof t[0]=="string"){let r=t[0].split("/");this.beatCount=+r[0],this.beatSize=+r[1]}else if(t.length===2&&typeof t[0]=="number"&&typeof t[1]=="number")this.beatCount=t[0],this.beatSize=t[1];else throw new E(5,`Invalid args: ${t}`);if(I.Is.isIntegerGte(this.beatCount,1)){if(!I.Is.isIntegerGte(this.beatSize,1))throw new E(5,`Invalid beatSize: ${this.beatSize}`)}else throw new E(5,`Invalid beatCount: ${this.beatCount}`);let e=$t.createFromNoteSize(this.beatSize);if(this.beatLength=e.noteLength,this.measureTicks=this.beatCount*e.ticks,this.is(2,4)||this.is(3,4)||this.is(4,4)?this.beamGroupCount=this.beatCount:this.is(6,8)||this.is(9,8)?this.beamGroupCount=this.beatCount/3:(console.warn("Not necessarily an error, but unsupported time signature: "+this.toString()),this.beamGroupCount=1),this.beamGroupLength=this.measureTicks/this.beamGroupCount,!I.Is.isIntegerGte(this.beamGroupLength,1))throw new E(5,`Invalid beamGroupLength: ${this.beamGroupLength}`)}is(t,e){return this.beatCount===t&&this.beatSize===e}toString(){return this.beatCount+"/"+this.beatSize}},Ua;function Un(){return Ua||(Ua=new pr(4,4)),Ua}var za;function zn(){return za||(za={beatsPerMinute:120,options:{beatLength:48,dotted:!1}}),za}function Ya(o){return new $t(o.options.beatLength,o.options.dotted).toString()+"="+o.beatsPerMinute}function Ha(o,t){return{beatsPerMinute:o.beatsPerMinute*t,options:{beatLength:o.options.beatLength,dotted:o.options.dotted}}}Qr();var Ro="15.1.22";var Za=(o,t,e)=>({endTime:t,insertTime:e,type:"exponentialRampToValue",value:o});var Xa=(o,t,e)=>({endTime:t,insertTime:e,type:"linearRampToValue",value:o});var wi=(o,t)=>({startTime:t,type:"setValue",value:o});var Eo=(o,t,e)=>({duration:e,startTime:t,type:"setValueCurve",values:o});var Yn=(o,t,{startTime:e,target:r,timeConstant:i})=>r+(t-r)*Math.exp((e-o)/i);var dr=o=>o.type==="exponentialRampToValue";var Zr=o=>o.type==="linearRampToValue";var Fe=o=>dr(o)||Zr(o);var Ti=o=>o.type==="setValue";var Te=o=>o.type==="setValueCurve";var Ni=(o,t,e,r)=>{let i=o[t];return i===void 0?r:Fe(i)||Ti(i)?i.value:Te(i)?i.values[i.values.length-1]:Yn(e,Ni(o,t-1,i.startTime,r),i)};var Ja=(o,t,e,r,i)=>e===void 0?[r.insertTime,i]:Fe(e)?[e.endTime,e.value]:Ti(e)?[e.startTime,e.value]:Te(e)?[e.startTime+e.duration,e.values[e.values.length-1]]:[e.startTime,Ni(o,t-1,e.startTime,i)];var Mo=o=>o.type==="cancelAndHold";var Do=o=>o.type==="cancelScheduledValues";var mr=o=>Mo(o)||Do(o)?o.cancelTime:dr(o)||Zr(o)?o.endTime:o.startTime;var Ka=(o,t,e,{endTime:r,value:i})=>e===i?i:0<e&&0<i||e<0&&i<0?e*fu(i/e,(o-t)/(r-t)):0;var $a=(o,t,e,{endTime:r,value:i})=>e+(o-t)/(r-t)*(i-e);var Yu=(o,t)=>{let e=Math.floor(t),r=Math.ceil(t);return e===r?o[e]:(1-(t-e))*o[e]+(1-(r-t))*o[r]};var Hu=(o,{duration:t,startTime:e,values:r})=>{let i=(o-e)/t*(r.length-1);return Yu(r,i)};var ko=o=>o.type==="setTarget";var Po=class{constructor(t){this._automationEvents=[],this._currenTime=0,this._defaultValue=t}[Symbol.iterator](){return this._automationEvents[Symbol.iterator]()}add(t){let e=mr(t);if(Mo(t)||Do(t)){let r=this._automationEvents.findIndex(n=>Do(t)&&Te(n)?n.startTime+n.duration>=e:mr(n)>=e),i=this._automationEvents[r];if(r!==-1&&(this._automationEvents=this._automationEvents.slice(0,r)),Mo(t)){let n=this._automationEvents[this._automationEvents.length-1];if(i!==void 0&&Fe(i)){if(n!==void 0&&ko(n))throw new Error("The internal list is malformed.");let s=n===void 0?i.insertTime:Te(n)?n.startTime+n.duration:mr(n),a=n===void 0?this._defaultValue:Te(n)?n.values[n.values.length-1]:n.value,c=dr(i)?Ka(e,s,a,i):$a(e,s,a,i),u=dr(i)?Za(c,e,this._currenTime):Xa(c,e,this._currenTime);this._automationEvents.push(u)}if(n!==void 0&&ko(n)&&this._automationEvents.push(wi(this.getValue(e),e)),n!==void 0&&Te(n)&&n.startTime+n.duration>e){let s=e-n.startTime,a=(n.values.length-1)/n.duration,c=Math.max(2,1+Math.ceil(s*a)),u=s/(c-1)*a,h=n.values.slice(0,c);if(u<1)for(let l=1;l<c;l+=1){let p=u*l%1;h[l]=n.values[l-1]*(1-p)+n.values[l]*p}this._automationEvents[this._automationEvents.length-1]=Eo(h,n.startTime,s)}}}else{let r=this._automationEvents.findIndex(s=>mr(s)>e),i=r===-1?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[r-1];if(i!==void 0&&Te(i)&&mr(i)+i.duration>e)return!1;let n=dr(t)?Za(t.value,t.endTime,this._currenTime):Zr(t)?Xa(t.value,e,this._currenTime):t;if(r===-1)this._automationEvents.push(n);else{if(Te(t)&&e+t.duration>mr(this._automationEvents[r]))return!1;this._automationEvents.splice(r,0,n)}}return!0}flush(t){let e=this._automationEvents.findIndex(r=>mr(r)>t);if(e>1){let r=this._automationEvents.slice(e-1),i=r[0];ko(i)&&r.unshift(wi(Ni(this._automationEvents,e-2,i.startTime,this._defaultValue),i.startTime)),this._automationEvents=r}}getValue(t){if(this._automationEvents.length===0)return this._defaultValue;let e=this._automationEvents.findIndex(s=>mr(s)>t),r=this._automationEvents[e],i=(e===-1?this._automationEvents.length:e)-1,n=this._automationEvents[i];if(n!==void 0&&ko(n)&&(r===void 0||!Fe(r)||r.insertTime>t))return Yn(t,Ni(this._automationEvents,i-1,n.startTime,this._defaultValue),n);if(n!==void 0&&Ti(n)&&(r===void 0||!Fe(r)))return n.value;if(n!==void 0&&Te(n)&&(r===void 0||!Fe(r)||n.startTime+n.duration>t))return t<n.startTime+n.duration?Hu(t,n):n.values[n.values.length-1];if(n!==void 0&&Fe(n)&&(r===void 0||!Fe(r)))return n.value;if(r!==void 0&&dr(r)){let[s,a]=Ja(this._automationEvents,i,n,r,this._defaultValue);return Ka(t,s,a,r)}if(r!==void 0&&Zr(r)){let[s,a]=Ja(this._automationEvents,i,n,r,this._defaultValue);return $a(t,s,a,r)}return this._defaultValue}};var tc=o=>({cancelTime:o,type:"cancelAndHold"});var ec=o=>({cancelTime:o,type:"cancelScheduledValues"});var rc=(o,t)=>({endTime:t,type:"exponentialRampToValue",value:o});var ic=(o,t)=>({endTime:t,type:"linearRampToValue",value:o});var oc=(o,t,e)=>({startTime:t,target:o,timeConstant:e,type:"setTarget"});var Qu=()=>new DOMException("","AbortError");var Zu=o=>(t,e,[r,i,n],s)=>{o(t[i],[e,r,n],a=>a[0]===e&&a[1]===r,s)};var Xu=o=>(t,e,r)=>{let i=[];for(let n=0;n<r.numberOfInputs;n+=1)i.push(new Set);o.set(t,{activeInputs:i,outputs:new Set,passiveInputs:new WeakMap,renderer:e})};var Ju=o=>(t,e)=>{o.set(t,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:e})};var Ke=new WeakSet,Hn=new WeakMap,Oi=new WeakMap,Qn=new WeakMap,jo=new WeakMap,Ri=new WeakMap,Zn=new WeakMap,Lo=new WeakMap,Fo=new WeakMap,Bo=new WeakMap;var Ku={construct(){return Ku}},$u=o=>{try{let t=new Proxy(o,Ku);new t}catch(t){return!1}return!0};var th=/^import(?:(?:[\s]+[\w]+|(?:[\s]+[\w]+[\s]*,)?[\s]*\{[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?(?:[\s]*,[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?)*[\s]*}|(?:[\s]+[\w]+[\s]*,)?[\s]*\*[\s]+as[\s]+[\w]+)[\s]+from)?(?:[\s]*)("([^"\\]|\\.)+"|'([^'\\]|\\.)+')(?:[\s]*);?/,nc=(o,t)=>{let e=[],r=o.replace(/^[\s]+/,""),i=r.match(th);for(;i!==null;){let n=i[1].slice(1,-1),s=i[0].replace(/([\s]+)?;?$/,"").replace(n,new URL(n,t).toString());e.push(s),r=r.slice(i[0].length).replace(/^[\s]+/,""),i=r.match(th)}return[e.join(";"),r]};var eh=o=>{if(o!==void 0&&!Array.isArray(o))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},rh=o=>{if(!$u(o))throw new TypeError("The given value for processorCtor should be a constructor.");if(o.prototype===null||typeof o.prototype!="object")throw new TypeError("The given value for processorCtor should have a prototype.")},ih=(o,t,e,r,i,n,s,a,c,u,h,l,p)=>{let d=0;return(f,g,x={credentials:"omit"})=>{let b=h.get(f);if(b!==void 0&&b.has(g))return Promise.resolve();let v=u.get(f);if(v!==void 0){let _=v.get(g);if(_!==void 0)return _}let S=n(f),T=S.audioWorklet===void 0?i(g).then(([_,C])=>{let[A,y]=nc(_,C),N=`${A};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${y}
|
|
3
|
-
})})(window,'_AWGS')`;return e(N)}).then(()=>{let _=p._AWGS.pop();if(_===void 0)throw new SyntaxError;r(S.currentTime,S.sampleRate,()=>_(class{},void 0,(C,A)=>{if(C.trim()==="")throw t();let y=Fo.get(S);if(y!==void 0){if(y.has(C))throw t();
|
|
4
|
-
})(${A?"AudioWorkletProcessor":"class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}"},(n,p)=>registerProcessor(n,class extends p{${A?"":"__c = (a) => a.forEach(e=>this.__b.add(e.buffer));"}process(i,o,p){${A?"":"i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));"}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${y}',class extends AudioWorkletProcessor{process(){return !1}})`,L=new Blob([k],{type:"application/javascript; charset=utf-8"}),P=URL.createObjectURL(L);return S.audioWorklet.addModule(P,x).then(()=>{if(a(S))return S;let q=s(S);return q.audioWorklet.addModule(P,x).then(()=>q)}).then(q=>{if(c===null)throw new SyntaxError;try{new c(q,`__sac${y}`)}catch(H){throw new SyntaxError}}).finally(()=>URL.revokeObjectURL(P))});return v===void 0?u.set(f,new Map([[g,T]])):v.set(g,T),T.then(()=>{let _=h.get(f);_===void 0?h.set(f,new Set([g])):_.add(g)}).finally(()=>{let _=u.get(f);_!==void 0&&_.delete(g)}),T}};var Gt=(o,t)=>{let e=o.get(t);if(e===void 0)throw new Error("A value with the given key could not be found.");return e};var Mr=(o,t)=>{let e=Array.from(o).filter(t);if(e.length>1)throw Error("More than one element was found.");if(e.length===0)throw Error("No element was found.");let[r]=e;return o.delete(r),r};var Xn=(o,t,e,r)=>{let i=Gt(o,t),n=Mr(i,s=>s[0]===e&&s[1]===r);return i.size===0&&o.delete(t),n};var $e=o=>Gt(Zn,o);var Be=o=>{if(Ke.has(o))throw new Error("The AudioNode is already stored.");Ke.add(o),$e(o).forEach(t=>t(!0))};var Jn=o=>"port"in o;var tr=o=>{if(!Ke.has(o))throw new Error("The AudioNode is not stored.");Ke.delete(o),$e(o).forEach(t=>t(!1))};var Vo=(o,t)=>{!Jn(o)&&t.every(e=>e.size===0)&&tr(o)};var oh=(o,t,e,r,i,n,s,a,c,u,h,l,p)=>{let d=new WeakMap;return(f,g,x,b,v)=>{let{activeInputs:S,passiveInputs:T}=n(g),{outputs:_}=n(f),C=a(f),A=y=>{let N=c(g),D=c(f);if(y){let M=Xn(T,f,x,b);o(S,f,M,!1),!v&&!l(f)&&e(D,N,x,b),p(g)&&Be(g)}else{let M=r(S,f,x,b);t(T,b,M,!1),!v&&!l(f)&&i(D,N,x,b);let O=s(g);if(O===0)h(g)&&Vo(g,S);else{let W=d.get(g);W!==void 0&&clearTimeout(W),d.set(g,setTimeout(()=>{h(g)&&Vo(g,S)},O*1e3))}}};return u(_,[g,x,b],y=>y[0]===g&&y[1]===x&&y[2]===b,!0)?(C.add(A),h(f)?o(S,f,[x,b,A],!0):t(T,b,[f,x,A],!0),!0):!1}};var nh=o=>(t,e,[r,i,n],s)=>{let a=t.get(r);a===void 0?t.set(r,new Set([[i,e,n]])):o(a,[i,e,n],c=>c[0]===i&&c[1]===e,s)};var sh=o=>(t,e)=>{let r=o(t,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});e.connect(r).connect(t.destination);let i=()=>{e.removeEventListener("ended",i),e.disconnect(r),r.disconnect()};e.addEventListener("ended",i)};var ah=o=>(t,e)=>{o(t).add(e)};var gg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},ch=(o,t,e,r,i,n)=>class extends o{constructor(a,c){let u=i(a),h=R(R({},gg),c),l=r(u,h),p=n(u)?t():null;super(a,!1,l,p),this._nativeAnalyserNode=l}get fftSize(){return this._nativeAnalyserNode.fftSize}set fftSize(a){this._nativeAnalyserNode.fftSize=a}get frequencyBinCount(){return this._nativeAnalyserNode.frequencyBinCount}get maxDecibels(){return this._nativeAnalyserNode.maxDecibels}set maxDecibels(a){let c=this._nativeAnalyserNode.maxDecibels;if(this._nativeAnalyserNode.maxDecibels=a,!(a>this._nativeAnalyserNode.minDecibels))throw this._nativeAnalyserNode.maxDecibels=c,e()}get minDecibels(){return this._nativeAnalyserNode.minDecibels}set minDecibels(a){let c=this._nativeAnalyserNode.minDecibels;if(this._nativeAnalyserNode.minDecibels=a,!(this._nativeAnalyserNode.maxDecibels>a))throw this._nativeAnalyserNode.minDecibels=c,e()}get smoothingTimeConstant(){return this._nativeAnalyserNode.smoothingTimeConstant}set smoothingTimeConstant(a){this._nativeAnalyserNode.smoothingTimeConstant=a}getByteFrequencyData(a){this._nativeAnalyserNode.getByteFrequencyData(a)}getByteTimeDomainData(a){this._nativeAnalyserNode.getByteTimeDomainData(a)}getFloatFrequencyData(a){this._nativeAnalyserNode.getFloatFrequencyData(a)}getFloatTimeDomainData(a){this._nativeAnalyserNode.getFloatTimeDomainData(a)}};var pt=(o,t)=>o.context===t;var uh=(o,t,e)=>()=>{let r=new WeakMap,i=(n,s)=>X(null,null,function*(){let a=t(n);if(!pt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,fftSize:a.fftSize,maxDecibels:a.maxDecibels,minDecibels:a.minDecibels,smoothingTimeConstant:a.smoothingTimeConstant};a=o(s,u)}return r.set(s,a),yield e(n,s,a),a});return{render(n,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):i(n,s)}}};var Ei=o=>{try{o.copyToChannel(new Float32Array(1),0,-1)}catch(t){return!1}return!0};var Ne=()=>new DOMException("","IndexSizeError");var Mi=o=>{o.getChannelData=(t=>e=>{try{return t.call(o,e)}catch(r){throw r.code===12?Ne():r}})(o.getChannelData)};var xg={numberOfChannels:1},hh=(o,t,e,r,i,n,s,a)=>{let c=null;return class lh{constructor(h){if(i===null)throw new Error("Missing the native OfflineAudioContext constructor.");let{length:l,numberOfChannels:p,sampleRate:d}=R(R({},xg),h);c===null&&(c=new i(1,1,44100));let f=r!==null&&t(n,n)?new r({length:l,numberOfChannels:p,sampleRate:d}):c.createBuffer(p,l,d);if(f.numberOfChannels===0)throw e();return typeof f.copyFromChannel!="function"?(s(f),Mi(f)):t(Ei,()=>Ei(f))||a(f),o.add(f),f}static[Symbol.hasInstance](h){return h!==null&&typeof h=="object"&&Object.getPrototypeOf(h)===lh.prototype||o.has(h)}}};var Pt=-34028234663852886e22,Et=-Pt;var ne=o=>Ke.has(o);var yg={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},ph=(o,t,e,r,i,n,s,a)=>class extends o{constructor(u,h){let l=n(u),p=R(R({},yg),h),d=i(l,p),f=s(l),g=f?t():null;super(u,!1,d,g),this._audioBufferSourceNodeRenderer=g,this._isBufferNullified=!1,this._isBufferSet=p.buffer!==null,this._nativeAudioBufferSourceNode=d,this._onended=null,this._playbackRate=e(this,f,d.playbackRate,Et,Pt)}get buffer(){return this._isBufferNullified?null:this._nativeAudioBufferSourceNode.buffer}set buffer(u){if(this._nativeAudioBufferSourceNode.buffer=u,u!==null){if(this._isBufferSet)throw r();this._isBufferSet=!0}}get loop(){return this._nativeAudioBufferSourceNode.loop}set loop(u){this._nativeAudioBufferSourceNode.loop=u}get loopEnd(){return this._nativeAudioBufferSourceNode.loopEnd}set loopEnd(u){this._nativeAudioBufferSourceNode.loopEnd=u}get loopStart(){return this._nativeAudioBufferSourceNode.loopStart}set loopStart(u){this._nativeAudioBufferSourceNode.loopStart=u}get onended(){return this._onended}set onended(u){let h=typeof u=="function"?a(this,u):null;this._nativeAudioBufferSourceNode.onended=h;let l=this._nativeAudioBufferSourceNode.onended;this._onended=l!==null&&l===h?u:l}get playbackRate(){return this._playbackRate}start(u=0,h=0,l){if(this._nativeAudioBufferSourceNode.start(u,h,l),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.start=l===void 0?[u,h]:[u,h,l]),this.context.state!=="closed"){Be(this);let p=()=>{this._nativeAudioBufferSourceNode.removeEventListener("ended",p),ne(this)&&tr(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",p)}}stop(u=0){this._nativeAudioBufferSourceNode.stop(u),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.stop=u)}};var dh=(o,t,e,r,i)=>()=>{let n=new WeakMap,s=null,a=null,c=(u,h)=>X(null,null,function*(){let l=e(u),p=pt(l,h);if(!p){let d={buffer:l.buffer,channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,loop:l.loop,loopEnd:l.loopEnd,loopStart:l.loopStart,playbackRate:l.playbackRate.value};l=t(h,d),s!==null&&l.start(...s),a!==null&&l.stop(a)}return n.set(h,l),p?yield o(h,u.playbackRate,l.playbackRate):yield r(h,u.playbackRate,l.playbackRate),yield i(u,h,l),l});return{set start(u){s=u},set stop(u){a=u},render(u,h){let l=n.get(h);return l!==void 0?Promise.resolve(l):c(u,h)}}};var mh=o=>"playbackRate"in o;var fh=o=>"frequency"in o&&"gain"in o;var gh=o=>"offset"in o;var xh=o=>!("frequency"in o)&&"gain"in o;var yh=o=>"detune"in o&&"frequency"in o&&!("gain"in o);var bh=o=>"pan"in o;var Ht=o=>Gt(Hn,o);var Dr=o=>Gt(Qn,o);var Kn=(o,t)=>{let{activeInputs:e}=Ht(o);e.forEach(i=>i.forEach(([n])=>{t.includes(o)||Kn(n,[...t,o])}));let r=mh(o)?[o.playbackRate]:Jn(o)?Array.from(o.parameters.values()):fh(o)?[o.Q,o.detune,o.frequency,o.gain]:gh(o)?[o.offset]:xh(o)?[o.gain]:yh(o)?[o.detune,o.frequency]:bh(o)?[o.pan]:[];for(let i of r){let n=Dr(i);n!==void 0&&n.activeInputs.forEach(([s])=>Kn(s,t))}ne(o)&&tr(o)};var kr=o=>{Kn(o.destination,[])};var $n=o=>o===void 0||typeof o=="number"||typeof o=="string"&&(o==="balanced"||o==="interactive"||o==="playback");var Ah=(o,t,e,r,i,n,s,a,c)=>class extends o{constructor(h={}){if(c===null)throw new Error("Missing the native AudioContext constructor.");let l;try{l=new c(h)}catch(f){throw f.code===12&&f.message==="sampleRate is not in range"?e():f}if(l===null)throw r();if(!$n(h.latencyHint))throw new TypeError(`The provided value '${h.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(h.sampleRate!==void 0&&l.sampleRate!==h.sampleRate)throw e();super(l,2);let{latencyHint:p}=h,{sampleRate:d}=l;if(this._baseLatency=typeof l.baseLatency=="number"?l.baseLatency:p==="balanced"?512/d:p==="interactive"||p===void 0?256/d:p==="playback"?1024/d:Math.max(2,Math.min(128,Math.round(p*d/128)))*128/d,this._nativeAudioContext=l,c.name==="webkitAudioContext"?(this._nativeGainNode=l.createGain(),this._nativeOscillatorNode=l.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(l.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,l.state==="running"){this._state="suspended";let f=()=>{this._state==="suspended"&&(this._state=null),l.removeEventListener("statechange",f)};l.addEventListener("statechange",f)}}get baseLatency(){return this._baseLatency}get state(){return this._state!==null?this._state:this._nativeAudioContext.state}close(){return this.state==="closed"?this._nativeAudioContext.close().then(()=>{throw t()}):(this._state==="suspended"&&(this._state=null),this._nativeAudioContext.close().then(()=>{this._nativeGainNode!==null&&this._nativeOscillatorNode!==null&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),kr(this)}))}createMediaElementSource(h){return new i(this,{mediaElement:h})}createMediaStreamDestination(){return new n(this)}createMediaStreamSource(h){return new s(this,{mediaStream:h})}createMediaStreamTrackSource(h){return new a(this,{mediaStreamTrack:h})}resume(){return this._state==="suspended"?new Promise((h,l)=>{let p=()=>{this._nativeAudioContext.removeEventListener("statechange",p),this._nativeAudioContext.state==="running"?h():this.resume().then(h,l)};this._nativeAudioContext.addEventListener("statechange",p)}):this._nativeAudioContext.resume().catch(h=>{throw h===void 0||h.code===15?t():h})}suspend(){return this._nativeAudioContext.suspend().catch(h=>{throw h===void 0?t():h})}};var Ch=(o,t,e,r,i,n,s,a)=>class extends o{constructor(u,h){let l=n(u),p=s(l),d=i(l,h,p),f=p?t(a):null;super(u,!1,d,f),this._isNodeOfNativeOfflineAudioContext=p,this._nativeAudioDestinationNode=d}get channelCount(){return this._nativeAudioDestinationNode.channelCount}set channelCount(u){if(this._isNodeOfNativeOfflineAudioContext)throw r();if(u>this._nativeAudioDestinationNode.maxChannelCount)throw e();this._nativeAudioDestinationNode.channelCount=u}get channelCountMode(){return this._nativeAudioDestinationNode.channelCountMode}set channelCountMode(u){if(this._isNodeOfNativeOfflineAudioContext)throw r();this._nativeAudioDestinationNode.channelCountMode=u}get maxChannelCount(){return this._nativeAudioDestinationNode.maxChannelCount}};var _h=o=>{let t=new WeakMap,e=(r,i)=>X(null,null,function*(){let n=i.destination;return t.set(i,n),yield o(r,i,n),n});return{render(r,i){let n=t.get(i);return n!==void 0?Promise.resolve(n):e(r,i)}}};var vh=(o,t,e,r,i,n,s,a)=>(c,u)=>{let h=u.listener,l=()=>{let _=new Float32Array(1),C=t(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:9}),A=s(u),y=!1,N=[0,0,-1,0,1,0],D=[0,0,0],M=()=>{if(y)return;y=!0;let L=r(u,256,9,0);L.onaudioprocess=({inputBuffer:P})=>{let q=[n(P,_,0),n(P,_,1),n(P,_,2),n(P,_,3),n(P,_,4),n(P,_,5)];q.some((Q,rt)=>Q!==N[rt])&&(h.setOrientation(...q),N=q);let H=[n(P,_,6),n(P,_,7),n(P,_,8)];H.some((Q,rt)=>Q!==D[rt])&&(h.setPosition(...H),D=H)},C.connect(L)},O=L=>P=>{P!==N[L]&&(N[L]=P,h.setOrientation(...N))},W=L=>P=>{P!==D[L]&&(D[L]=P,h.setPosition(...D))},k=(L,P,q)=>{let H=e(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:P});H.connect(C,0,L),H.start(),Object.defineProperty(H.offset,"defaultValue",{get(){return P}});let Q=o({context:c},A,H.offset,Et,Pt);return a(Q,"value",rt=>()=>rt.call(Q),rt=>at=>{try{rt.call(Q,at)}catch(yt){if(yt.code!==9)throw yt}M(),A&&q(at)}),Q.cancelAndHoldAtTime=(rt=>A?()=>{throw i()}:(...at)=>{let yt=rt.apply(Q,at);return M(),yt})(Q.cancelAndHoldAtTime),Q.cancelScheduledValues=(rt=>A?()=>{throw i()}:(...at)=>{let yt=rt.apply(Q,at);return M(),yt})(Q.cancelScheduledValues),Q.exponentialRampToValueAtTime=(rt=>A?()=>{throw i()}:(...at)=>{let yt=rt.apply(Q,at);return M(),yt})(Q.exponentialRampToValueAtTime),Q.linearRampToValueAtTime=(rt=>A?()=>{throw i()}:(...at)=>{let yt=rt.apply(Q,at);return M(),yt})(Q.linearRampToValueAtTime),Q.setTargetAtTime=(rt=>A?()=>{throw i()}:(...at)=>{let yt=rt.apply(Q,at);return M(),yt})(Q.setTargetAtTime),Q.setValueAtTime=(rt=>A?()=>{throw i()}:(...at)=>{let yt=rt.apply(Q,at);return M(),yt})(Q.setValueAtTime),Q.setValueCurveAtTime=(rt=>A?()=>{throw i()}:(...at)=>{let yt=rt.apply(Q,at);return M(),yt})(Q.setValueCurveAtTime),Q};return{forwardX:k(0,0,O(0)),forwardY:k(1,0,O(1)),forwardZ:k(2,-1,O(2)),positionX:k(6,0,W(0)),positionY:k(7,0,W(1)),positionZ:k(8,0,W(2)),upX:k(3,0,O(3)),upY:k(4,1,O(4)),upZ:k(5,0,O(5))}},{forwardX:p,forwardY:d,forwardZ:f,positionX:g,positionY:x,positionZ:b,upX:v,upY:S,upZ:T}=h.forwardX===void 0?l():h;return{get forwardX(){return p},get forwardY(){return d},get forwardZ(){return f},get positionX(){return g},get positionY(){return x},get positionZ(){return b},get upX(){return v},get upY(){return S},get upZ(){return T}}};var Xr=o=>"context"in o;var Pr=o=>Xr(o[0]);var Ve=(o,t,e,r)=>{for(let i of o)if(e(i)){if(r)return!1;throw Error("The set contains at least one similar element.")}return o.add(t),!0};var sc=(o,t,[e,r],i)=>{Ve(o,[t,e,r],n=>n[0]===t&&n[1]===e,i)};var ac=(o,[t,e,r],i)=>{let n=o.get(t);n===void 0?o.set(t,new Set([[e,r]])):Ve(n,[e,r],s=>s[0]===e,i)};var Oe=o=>"inputs"in o;var Di=(o,t,e,r)=>{if(Oe(t)){let i=t.inputs[r];return o.connect(i,e,0),[i,e,0]}return o.connect(t,e,r),[t,e,r]};var cc=(o,t,e)=>{for(let r of o)if(r[0]===t&&r[1]===e)return o.delete(r),r;return null};var Ih=(o,t,e)=>Mr(o,r=>r[0]===t&&r[1]===e);var uc=(o,t)=>{if(!$e(o).delete(t))throw new Error("Missing the expected event listener.")};var hc=(o,t,e)=>{let r=Gt(o,t),i=Mr(r,n=>n[0]===e);return r.size===0&&o.delete(t),i};var ki=(o,t,e,r)=>{Oe(t)?o.disconnect(t.inputs[r],e,0):o.disconnect(t,e,r)};var Ct=o=>Gt(Oi,o);var Jr=o=>Gt(jo,o);var fr=o=>Lo.has(o);var Pi=o=>!Ke.has(o);var lc=(o,t)=>new Promise(e=>{if(t!==null)e(!0);else{let r=o.createScriptProcessor(256,1,1),i=o.createGain(),n=o.createBuffer(1,2,44100),s=n.getChannelData(0);s[0]=1,s[1]=1;let a=o.createBufferSource();a.buffer=n,a.loop=!0,a.connect(r).connect(o.destination),a.connect(i),a.disconnect(i),r.onaudioprocess=c=>{let u=c.inputBuffer.getChannelData(0);Array.prototype.some.call(u,h=>h===1)?e(!0):e(!1),a.stop(),r.onaudioprocess=null,a.disconnect(r),r.disconnect(o.destination)},a.start()}});var ts=(o,t)=>{let e=new Map;for(let r of o)for(let i of r){let n=e.get(i);e.set(i,n===void 0?1:n+1)}e.forEach((r,i)=>t(i,r))};var Kr=o=>"context"in o;var Sh=o=>{let t=new Map;o.connect=(e=>(r,i=0,n=0)=>{let s=Kr(r)?e(r,i,n):e(r,i),a=t.get(r);return a===void 0?t.set(r,[{input:n,output:i}]):a.every(c=>c.input!==n||c.output!==i)&&a.push({input:n,output:i}),s})(o.connect.bind(o)),o.disconnect=(e=>(r,i,n)=>{if(e.apply(o),r===void 0)t.clear();else if(typeof r=="number")for(let[s,a]of t){let c=a.filter(u=>u.output!==r);c.length===0?t.delete(s):t.set(s,c)}else if(t.has(r))if(i===void 0)t.delete(r);else{let s=t.get(r);if(s!==void 0){let a=s.filter(c=>c.output!==i&&(c.input!==n||n===void 0));a.length===0?t.delete(r):t.set(r,a)}}for(let[s,a]of t)a.forEach(c=>{Kr(s)?o.connect(s,c.output,c.input):o.connect(s,c.output)})})(o.disconnect)};var bg=(o,t,e,r)=>{let{activeInputs:i,passiveInputs:n}=Dr(t),{outputs:s}=Ht(o),a=$e(o),c=u=>{let h=Ct(o),l=Jr(t);if(u){let p=hc(n,o,e);sc(i,o,p,!1),!r&&!fr(o)&&h.connect(l,e)}else{let p=Ih(i,o,e);ac(n,p,!1),!r&&!fr(o)&&h.disconnect(l,e)}};return Ve(s,[t,e],u=>u[0]===t&&u[1]===e,!0)?(a.add(c),ne(o)?sc(i,o,[e,c],!0):ac(n,[o,e,c],!0),!0):!1},Ag=(o,t,e,r)=>{let{activeInputs:i,passiveInputs:n}=Ht(t),s=cc(i[r],o,e);return s===null?[Xn(n,o,e,r)[2],!1]:[s[2],!0]},Cg=(o,t,e)=>{let{activeInputs:r,passiveInputs:i}=Dr(t),n=cc(r,o,e);return n===null?[hc(i,o,e)[1],!1]:[n[2],!0]},pc=(o,t,e,r,i)=>{let[n,s]=Ag(o,e,r,i);if(n!==null&&(uc(o,n),s&&!t&&!fr(o)&&ki(Ct(o),Ct(e),r,i)),ne(e)){let{activeInputs:a}=Ht(e);Vo(e,a)}},dc=(o,t,e,r)=>{let[i,n]=Cg(o,e,r);i!==null&&(uc(o,i),n&&!t&&!fr(o)&&Ct(o).disconnect(Jr(e),r))},_g=(o,t)=>{let e=Ht(o),r=[];for(let i of e.outputs)Pr(i)?pc(o,t,...i):dc(o,t,...i),r.push(i[0]);return e.outputs.clear(),r},vg=(o,t,e)=>{let r=Ht(o),i=[];for(let n of r.outputs)n[1]===e&&(Pr(n)?pc(o,t,...n):dc(o,t,...n),i.push(n[0]),r.outputs.delete(n));return i},Ig=(o,t,e,r,i)=>{let n=Ht(o);return Array.from(n.outputs).filter(s=>s[0]===e&&(r===void 0||s[1]===r)&&(i===void 0||s[2]===i)).map(s=>(Pr(s)?pc(o,t,...s):dc(o,t,...s),n.outputs.delete(s),s[0]))},wh=(o,t,e,r,i,n,s,a,c,u,h,l,p,d,f,g)=>class extends u{constructor(b,v,S,T){super(S),this._context=b,this._nativeAudioNode=S;let _=h(b);l(_)&&e(lc,()=>lc(_,g))!==!0&&Sh(S),Oi.set(this,S),Zn.set(this,new Set),b.state!=="closed"&&v&&Be(this),o(this,T,S)}get channelCount(){return this._nativeAudioNode.channelCount}set channelCount(b){this._nativeAudioNode.channelCount=b}get channelCountMode(){return this._nativeAudioNode.channelCountMode}set channelCountMode(b){this._nativeAudioNode.channelCountMode=b}get channelInterpretation(){return this._nativeAudioNode.channelInterpretation}set channelInterpretation(b){this._nativeAudioNode.channelInterpretation=b}get context(){return this._context}get numberOfInputs(){return this._nativeAudioNode.numberOfInputs}get numberOfOutputs(){return this._nativeAudioNode.numberOfOutputs}connect(b,v=0,S=0){if(v<0||v>=this._nativeAudioNode.numberOfOutputs)throw i();let T=h(this._context),_=f(T);if(p(b)||d(b))throw n();if(Xr(b)){let y=Ct(b);try{let D=Di(this._nativeAudioNode,y,v,S),M=Pi(this);(_||M)&&this._nativeAudioNode.disconnect(...D),this.context.state!=="closed"&&!M&&Pi(b)&&Be(b)}catch(D){throw D.code===12?n():D}if(t(this,b,v,S,_)){let D=c([this],b);ts(D,r(_))}return b}let C=Jr(b);if(C.name==="playbackRate"&&C.maxValue===1024)throw s();try{this._nativeAudioNode.connect(C,v),(_||Pi(this))&&this._nativeAudioNode.disconnect(C,v)}catch(y){throw y.code===12?n():y}if(bg(this,b,v,_)){let y=c([this],b);ts(y,r(_))}}disconnect(b,v,S){let T,_=h(this._context),C=f(_);if(b===void 0)T=_g(this,C);else if(typeof b=="number"){if(b<0||b>=this.numberOfOutputs)throw i();T=vg(this,C,b)}else{if(v!==void 0&&(v<0||v>=this.numberOfOutputs)||Xr(b)&&S!==void 0&&(S<0||S>=b.numberOfInputs))throw i();if(T=Ig(this,C,b,v,S),T.length===0)throw n()}for(let A of T){let y=c([this],A);ts(y,a)}}};var Th=(o,t,e,r,i,n,s,a,c,u,h,l,p)=>(d,f,g,x=null,b=null)=>{let v=g.value,S=new Po(v),T=f?r(S):null,_={get defaultValue(){return v},get maxValue(){return x===null?g.maxValue:x},get minValue(){return b===null?g.minValue:b},get value(){return g.value},set value(C){g.value=C,_.setValueAtTime(C,d.context.currentTime)},cancelAndHoldAtTime(C){if(typeof g.cancelAndHoldAtTime=="function")T===null&&S.flush(d.context.currentTime),S.add(i(C)),g.cancelAndHoldAtTime(C);else{let A=Array.from(S).pop();T===null&&S.flush(d.context.currentTime),S.add(i(C));let y=Array.from(S).pop();g.cancelScheduledValues(C),A!==y&&y!==void 0&&(y.type==="exponentialRampToValue"?g.exponentialRampToValueAtTime(y.value,y.endTime):y.type==="linearRampToValue"?g.linearRampToValueAtTime(y.value,y.endTime):y.type==="setValue"?g.setValueAtTime(y.value,y.startTime):y.type==="setValueCurve"&&g.setValueCurveAtTime(y.values,y.startTime,y.duration))}return _},cancelScheduledValues(C){return T===null&&S.flush(d.context.currentTime),S.add(n(C)),g.cancelScheduledValues(C),_},exponentialRampToValueAtTime(C,A){if(C===0)throw new RangeError;if(!Number.isFinite(A)||A<0)throw new RangeError;let y=d.context.currentTime;return T===null&&S.flush(y),Array.from(S).length===0&&(S.add(u(v,y)),g.setValueAtTime(v,y)),S.add(s(C,A)),g.exponentialRampToValueAtTime(C,A),_},linearRampToValueAtTime(C,A){let y=d.context.currentTime;return T===null&&S.flush(y),Array.from(S).length===0&&(S.add(u(v,y)),g.setValueAtTime(v,y)),S.add(a(C,A)),g.linearRampToValueAtTime(C,A),_},setTargetAtTime(C,A,y){return T===null&&S.flush(d.context.currentTime),S.add(c(C,A,y)),g.setTargetAtTime(C,A,y),_},setValueAtTime(C,A){return T===null&&S.flush(d.context.currentTime),S.add(u(C,A)),g.setValueAtTime(C,A),_},setValueCurveAtTime(C,A,y){let N=C instanceof Float32Array?C:new Float32Array(C);if(l!==null&&l.name==="webkitAudioContext"){let D=A+y,M=d.context.sampleRate,O=Math.ceil(A*M),W=Math.floor(D*M),k=W-O,L=new Float32Array(k);for(let q=0;q<k;q+=1){let H=(N.length-1)/y*((O+q)/M-A),Q=Math.floor(H),rt=Math.ceil(H);L[q]=Q===rt?N[Q]:(1-(H-Q))*N[Q]+(1-(rt-H))*N[rt]}T===null&&S.flush(d.context.currentTime),S.add(h(L,A,y)),g.setValueCurveAtTime(L,A,y);let P=W/M;P<D&&p(_,L[L.length-1],P),p(_,N[N.length-1],D)}else T===null&&S.flush(d.context.currentTime),S.add(h(N,A,y)),g.setValueCurveAtTime(N,A,y);return _}};return e.set(_,g),t.set(_,d),o(_,T),_};var Nh=o=>({replay(t){for(let e of o)if(e.type==="exponentialRampToValue"){let{endTime:r,value:i}=e;t.exponentialRampToValueAtTime(i,r)}else if(e.type==="linearRampToValue"){let{endTime:r,value:i}=e;t.linearRampToValueAtTime(i,r)}else if(e.type==="setTarget"){let{startTime:r,target:i,timeConstant:n}=e;t.setTargetAtTime(i,r,n)}else if(e.type==="setValue"){let{startTime:r,value:i}=e;t.setValueAtTime(i,r)}else if(e.type==="setValueCurve"){let{duration:r,startTime:i,values:n}=e;t.setValueCurveAtTime(n,i,r)}else throw new Error("Can't apply an unknown automation.")}});var ji=class{constructor(t){this._map=new Map(t)}get size(){return this._map.size}entries(){return this._map.entries()}forEach(t,e=null){return this._map.forEach((r,i)=>t.call(e,r,i,this))}get(t){return this._map.get(t)}has(t){return this._map.has(t)}keys(){return this._map.keys()}values(){return this._map.values()}};var Sg={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,parameterData:{},processorOptions:{}},Oh=(o,t,e,r,i,n,s,a,c,u,h,l,p,d)=>class extends t{constructor(g,x,b){var v;let S=a(g),T=c(S),_=h(R(R({},Sg),b));p(_);let C=Fo.get(S),A=C==null?void 0:C.get(x),y=T||S.state!=="closed"?S:(v=s(S))!==null&&v!==void 0?v:S,N=i(y,T?null:g.baseLatency,u,x,A,_),D=T?r(x,_,A):null;super(g,!0,N,D);let M=[];N.parameters.forEach((W,k)=>{let L=e(this,T,W);M.push([k,L])}),this._nativeAudioWorkletNode=N,this._onprocessorerror=null,this._parameters=new ji(M),T&&o(S,this);let{activeInputs:O}=n(this);l(N,O)}get onprocessorerror(){return this._onprocessorerror}set onprocessorerror(g){let x=typeof g=="function"?d(this,g):null;this._nativeAudioWorkletNode.onprocessorerror=x;let b=this._nativeAudioWorkletNode.onprocessorerror;this._onprocessorerror=b!==null&&b===x?g:b}get parameters(){return this._parameters===null?this._nativeAudioWorkletNode.parameters:this._parameters}get port(){return this._nativeAudioWorkletNode.port}};function Li(o,t,e,r,i){if(typeof o.copyFromChannel=="function")t[e].byteLength===0&&(t[e]=new Float32Array(128)),o.copyFromChannel(t[e],r,i);else{let n=o.getChannelData(r);if(t[e].byteLength===0)t[e]=n.slice(i,i+128);else{let s=new Float32Array(n.buffer,i*Float32Array.BYTES_PER_ELEMENT,128);t[e].set(s)}}}var es=(o,t,e,r,i)=>{typeof o.copyToChannel=="function"?t[e].byteLength!==0&&o.copyToChannel(t[e],r,i):t[e].byteLength!==0&&o.getChannelData(r).set(t[e],i)};var Fi=(o,t)=>{let e=[];for(let r=0;r<o;r+=1){let i=[],n=typeof t=="number"?t:t[r];for(let s=0;s<n;s+=1)i.push(new Float32Array(128));e.push(i)}return e};var Rh=(o,t)=>{let e=Gt(Bo,o),r=Ct(t);return Gt(e,r)};var wg=(o,t,e,r,i,n,s)=>X(null,null,function*(){let a=t===null?Math.ceil(o.context.length/128)*128:t.length,c=r.channelCount*r.numberOfInputs,u=i.reduce((x,b)=>x+b,0),h=u===0?null:e.createBuffer(u,a,e.sampleRate);if(n===void 0)throw new Error("Missing the processor constructor.");let l=Ht(o),p=yield Rh(e,o),d=Fi(r.numberOfInputs,r.channelCount),f=Fi(r.numberOfOutputs,i),g=Array.from(o.parameters.keys()).reduce((x,b)=>Z(R({},x),{[b]:new Float32Array(128)}),{});for(let x=0;x<a;x+=128){if(r.numberOfInputs>0&&t!==null)for(let b=0;b<r.numberOfInputs;b+=1)for(let v=0;v<r.channelCount;v+=1)Li(t,d[b],v,v,x);n.parameterDescriptors!==void 0&&t!==null&&n.parameterDescriptors.forEach(({name:b},v)=>{Li(t,g,b,c+v,x)});for(let b=0;b<r.numberOfInputs;b+=1)for(let v=0;v<i[b];v+=1)f[b][v].byteLength===0&&(f[b][v]=new Float32Array(128));try{let b=d.map((S,T)=>l.activeInputs[T].size===0?[]:S),v=s(x/e.sampleRate,e.sampleRate,()=>p.process(b,f,g));if(h!==null)for(let S=0,T=0;S<r.numberOfOutputs;S+=1){for(let _=0;_<i[S];_+=1)es(h,f[S],_,T+_,x);T+=i[S]}if(!v)break}catch(b){o.dispatchEvent(new ErrorEvent("processorerror",{colno:b.colno,filename:b.filename,lineno:b.lineno,message:b.message}));break}}return h}),Eh=(o,t,e,r,i,n,s,a,c,u,h,l,p,d,f,g)=>(x,b,v)=>{let S=new WeakMap,T=null,_=(C,A)=>X(null,null,function*(){let y=h(C),N=null,D=pt(y,A),M=Array.isArray(b.outputChannelCount)?b.outputChannelCount:Array.from(b.outputChannelCount);if(l===null){let O=M.reduce((P,q)=>P+q,0),W=i(A,{channelCount:Math.max(1,O),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,O)}),k=[];for(let P=0;P<C.numberOfOutputs;P+=1)k.push(r(A,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:M[P]}));let L=s(A,{channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,gain:1});L.connect=t.bind(null,k),L.disconnect=c.bind(null,k),N=[W,k,L]}else D||(y=new l(A,x));if(S.set(A,N===null?y:N[2]),N!==null){if(T===null){if(v===void 0)throw new Error("Missing the processor constructor.");if(p===null)throw new Error("Missing the native OfflineAudioContext constructor.");let q=C.channelCount*C.numberOfInputs,H=v.parameterDescriptors===void 0?0:v.parameterDescriptors.length,Q=q+H;T=wg(C,Q===0?null:yield X(null,null,function*(){let at=new p(Q,Math.ceil(C.context.length/128)*128,A.sampleRate),yt=[],kt=[];for(let At=0;At<b.numberOfInputs;At+=1)yt.push(s(at,{channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,gain:1})),kt.push(i(at,{channelCount:b.channelCount,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:b.channelCount}));let xe=yield Promise.all(Array.from(C.parameters.values()).map(At=>X(null,null,function*(){let ot=n(at,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:At.value});return yield d(at,At,ot.offset),ot}))),ye=r(at,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,q+H)});for(let At=0;At<b.numberOfInputs;At+=1){yt[At].connect(kt[At]);for(let ot=0;ot<b.channelCount;ot+=1)kt[At].connect(ye,ot,At*b.channelCount+ot)}for(let[At,ot]of xe.entries())ot.connect(ye,0,q+At),ot.start(0);return ye.connect(at.destination),yield Promise.all(yt.map(At=>f(C,at,At))),g(at)}),A,b,M,v,u)}let O=yield T,W=e(A,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[k,L,P]=N;O!==null&&(W.buffer=O,W.start(0)),W.connect(k);for(let q=0,H=0;q<C.numberOfOutputs;q+=1){let Q=L[q];for(let rt=0;rt<M[q];rt+=1)k.connect(Q,H+rt,rt);H+=M[q]}return P}if(D)for(let[O,W]of C.parameters.entries())yield o(A,W,y.parameters.get(O));else for(let[O,W]of C.parameters.entries())yield d(A,W,y.parameters.get(O));return yield f(C,A,y),y});return{render(C,A){a(A,C);let y=S.get(A);return y!==void 0?Promise.resolve(y):_(C,A)}}};var Mh=(o,t,e,r,i,n,s,a,c,u,h,l,p,d,f,g,x,b,v,S)=>class extends f{constructor(_,C){super(_,C),this._nativeContext=_,this._audioWorklet=o===void 0?void 0:{addModule:(A,y)=>o(this,A,y)}}get audioWorklet(){return this._audioWorklet}createAnalyser(){return new t(this)}createBiquadFilter(){return new i(this)}createBuffer(_,C,A){return new e({length:C,numberOfChannels:_,sampleRate:A})}createBufferSource(){return new r(this)}createChannelMerger(_=6){return new n(this,{numberOfInputs:_})}createChannelSplitter(_=6){return new s(this,{numberOfOutputs:_})}createConstantSource(){return new a(this)}createConvolver(){return new c(this)}createDelay(_=1){return new h(this,{maxDelayTime:_})}createDynamicsCompressor(){return new l(this)}createGain(){return new p(this)}createIIRFilter(_,C){return new d(this,{feedback:C,feedforward:_})}createOscillator(){return new g(this)}createPanner(){return new x(this)}createPeriodicWave(_,C,A={disableNormalization:!1}){return new b(this,Z(R({},A),{imag:C,real:_}))}createStereoPanner(){return new v(this)}createWaveShaper(){return new S(this)}decodeAudioData(_,C,A){return u(this._nativeContext,_).then(y=>(typeof C=="function"&&C(y),y),y=>{throw typeof A=="function"&&A(y),y})}};var Tg={Q:1,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:350,gain:0,type:"lowpass"},Dh=(o,t,e,r,i,n,s,a)=>class extends o{constructor(u,h){let l=n(u),p=R(R({},Tg),h),d=i(l,p),f=s(l),g=f?e():null;super(u,!1,d,g),this._Q=t(this,f,d.Q,Et,Pt),this._detune=t(this,f,d.detune,1200*Math.log2(Et),-1200*Math.log2(Et)),this._frequency=t(this,f,d.frequency,u.sampleRate/2,0),this._gain=t(this,f,d.gain,40*Math.log10(Et),Pt),this._nativeBiquadFilterNode=d,a(this,1)}get detune(){return this._detune}get frequency(){return this._frequency}get gain(){return this._gain}get Q(){return this._Q}get type(){return this._nativeBiquadFilterNode.type}set type(u){this._nativeBiquadFilterNode.type=u}getFrequencyResponse(u,h,l){try{this._nativeBiquadFilterNode.getFrequencyResponse(u,h,l)}catch(p){throw p.code===11?r():p}if(u.length!==h.length||h.length!==l.length)throw r()}};var kh=(o,t,e,r,i)=>()=>{let n=new WeakMap,s=(a,c)=>X(null,null,function*(){let u=e(a),h=pt(u,c);if(!h){let l={Q:u.Q.value,channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,detune:u.detune.value,frequency:u.frequency.value,gain:u.gain.value,type:u.type};u=t(c,l)}return n.set(c,u),h?(yield o(c,a.Q,u.Q),yield o(c,a.detune,u.detune),yield o(c,a.frequency,u.frequency),yield o(c,a.gain,u.gain)):(yield r(c,a.Q,u.Q),yield r(c,a.detune,u.detune),yield r(c,a.frequency,u.frequency),yield r(c,a.gain,u.gain)),yield i(a,c,u),u});return{render(a,c){let u=n.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var Ph=(o,t)=>(e,r)=>{let i=t.get(e);if(i!==void 0)return i;let n=o.get(e);if(n!==void 0)return n;try{let s=r();return s instanceof Promise?(o.set(e,s),s.catch(()=>!1).then(a=>(o.delete(e),t.set(e,a),a))):(t.set(e,s),s)}catch(s){return t.set(e,!1),!1}};var Ng={channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6},jh=(o,t,e,r,i)=>class extends o{constructor(s,a){let c=r(s),u=R(R({},Ng),a),h=e(c,u),l=i(c)?t():null;super(s,!1,h,l)}};var Lh=(o,t,e)=>()=>{let r=new WeakMap,i=(n,s)=>X(null,null,function*(){let a=t(n);if(!pt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfInputs:a.numberOfInputs};a=o(s,u)}return r.set(s,a),yield e(n,s,a),a});return{render(n,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):i(n,s)}}};var Og={channelCount:6,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:6},Fh=(o,t,e,r,i,n)=>class extends o{constructor(a,c){let u=r(a),h=n(R(R({},Og),c)),l=e(u,h),p=i(u)?t():null;super(a,!1,l,p)}};var Bh=(o,t,e)=>()=>{let r=new WeakMap,i=(n,s)=>X(null,null,function*(){let a=t(n);if(!pt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfOutputs:a.numberOfOutputs};a=o(s,u)}return r.set(s,a),yield e(n,s,a),a});return{render(n,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):i(n,s)}}};var Vh=o=>(t,e,r)=>o(e,t,r);var Gh=o=>(t,e,r=0,i=0)=>{let n=t[r];if(n===void 0)throw o();return Kr(e)?n.connect(e,0,i):n.connect(e,0)};var qh=o=>(t,e)=>{let r=o(t,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),i=t.createBuffer(1,2,44100);return r.buffer=i,r.loop=!0,r.connect(e),r.start(),()=>{r.stop(),r.disconnect(e)}};var Rg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",offset:1},Wh=(o,t,e,r,i,n,s)=>class extends o{constructor(c,u){let h=i(c),l=R(R({},Rg),u),p=r(h,l),d=n(h),f=d?e():null;super(c,!1,p,f),this._constantSourceNodeRenderer=f,this._nativeConstantSourceNode=p,this._offset=t(this,d,p.offset,Et,Pt),this._onended=null}get offset(){return this._offset}get onended(){return this._onended}set onended(c){let u=typeof c=="function"?s(this,c):null;this._nativeConstantSourceNode.onended=u;let h=this._nativeConstantSourceNode.onended;this._onended=h!==null&&h===u?c:h}start(c=0){if(this._nativeConstantSourceNode.start(c),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.start=c),this.context.state!=="closed"){Be(this);let u=()=>{this._nativeConstantSourceNode.removeEventListener("ended",u),ne(this)&&tr(this)};this._nativeConstantSourceNode.addEventListener("ended",u)}}stop(c=0){this._nativeConstantSourceNode.stop(c),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.stop=c)}};var Uh=(o,t,e,r,i)=>()=>{let n=new WeakMap,s=null,a=null,c=(u,h)=>X(null,null,function*(){let l=e(u),p=pt(l,h);if(!p){let d={channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,offset:l.offset.value};l=t(h,d),s!==null&&l.start(s),a!==null&&l.stop(a)}return n.set(h,l),p?yield o(h,u.offset,l.offset):yield r(h,u.offset,l.offset),yield i(u,h,l),l});return{set start(u){s=u},set stop(u){a=u},render(u,h){let l=n.get(h);return l!==void 0?Promise.resolve(l):c(u,h)}}};var zh=o=>t=>(o[0]=t,o[0]);var Eg={buffer:null,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",disableNormalization:!1},Yh=(o,t,e,r,i,n)=>class extends o{constructor(a,c){let u=r(a),h=R(R({},Eg),c),l=e(u,h),d=i(u)?t():null;super(a,!1,l,d),this._isBufferNullified=!1,this._nativeConvolverNode=l,h.buffer!==null&&n(this,h.buffer.duration)}get buffer(){return this._isBufferNullified?null:this._nativeConvolverNode.buffer}set buffer(a){if(this._nativeConvolverNode.buffer=a,a===null&&this._nativeConvolverNode.buffer!==null){let c=this._nativeConvolverNode.context;this._nativeConvolverNode.buffer=c.createBuffer(1,1,c.sampleRate),this._isBufferNullified=!0,n(this,0)}else this._isBufferNullified=!1,n(this,this._nativeConvolverNode.buffer===null?0:this._nativeConvolverNode.buffer.duration)}get normalize(){return this._nativeConvolverNode.normalize}set normalize(a){this._nativeConvolverNode.normalize=a}};var Hh=(o,t,e)=>()=>{let r=new WeakMap,i=(n,s)=>X(null,null,function*(){let a=t(n);if(!pt(a,s)){let u={buffer:a.buffer,channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,disableNormalization:!a.normalize};a=o(s,u)}return r.set(s,a),Oe(a)?yield e(n,s,a.inputs[0]):yield e(n,s,a),a});return{render(n,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):i(n,s)}}};var Qh=(o,t)=>(e,r,i)=>{if(t===null)throw new Error("Missing the native OfflineAudioContext constructor.");try{return new t(e,r,i)}catch(n){throw n.name==="SyntaxError"?o():n}};var Zh=()=>new DOMException("","DataCloneError");var mc=o=>{let{port1:t,port2:e}=new MessageChannel;return new Promise(r=>{let i=()=>{e.onmessage=null,t.close(),e.close(),r()};e.onmessage=()=>i();try{t.postMessage(o,[o])}catch(n){}finally{i()}})};var Xh=(o,t,e,r,i,n,s,a,c,u,h)=>(l,p)=>{let d=s(l)?l:n(l);if(i.has(p)){let f=e();return Promise.reject(f)}try{i.add(p)}catch(f){}return t(c,()=>c(d))?d.decodeAudioData(p).then(f=>(mc(p).catch(()=>{}),t(a,()=>a(f))||h(f),o.add(f),f)):new Promise((f,g)=>{let x=()=>X(null,null,function*(){try{yield mc(p)}catch(v){}}),b=v=>{g(v),x()};try{d.decodeAudioData(p,v=>{typeof v.copyFromChannel!="function"&&(u(v),Mi(v)),o.add(v),x().then(()=>f(v))},v=>{b(v===null?r():v)})}catch(v){b(v)}})};var Jh=(o,t,e,r,i,n,s,a)=>(c,u)=>{let h=t.get(c);if(h===void 0)throw new Error("Missing the expected cycle count.");let l=n(c.context),p=a(l);if(h===u){if(t.delete(c),!p&&s(c)){let d=r(c),{outputs:f}=e(c);for(let g of f)if(Pr(g)){let x=r(g[0]);o(d,x,g[1],g[2])}else{let x=i(g[0]);d.connect(x,g[1])}}}else t.set(c,h-u)};var Mg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},Kh=(o,t,e,r,i,n,s)=>class extends o{constructor(c,u){let h=i(c),l=R(R({},Mg),u),p=r(h,l),d=n(h),f=d?e(l.maxDelayTime):null;super(c,!1,p,f),this._delayTime=t(this,d,p.delayTime),s(this,l.maxDelayTime)}get delayTime(){return this._delayTime}};var $h=(o,t,e,r,i)=>n=>{let s=new WeakMap,a=(c,u)=>X(null,null,function*(){let h=e(c),l=pt(h,u);if(!l){let p={channelCount:h.channelCount,channelCountMode:h.channelCountMode,channelInterpretation:h.channelInterpretation,delayTime:h.delayTime.value,maxDelayTime:n};h=t(u,p)}return s.set(u,h),l?yield o(u,c.delayTime,h.delayTime):yield r(u,c.delayTime,h.delayTime),yield i(c,u,h),h});return{render(c,u){let h=s.get(u);return h!==void 0?Promise.resolve(h):a(c,u)}}};var tl=o=>(t,e,r,i)=>o(t[i],n=>n[0]===e&&n[1]===r);var el=o=>(t,e)=>{o(t).delete(e)};var rl=o=>"delayTime"in o;var il=(o,t,e)=>function r(i,n){let s=Xr(n)?n:e(o,n);if(rl(s))return[];if(i[0]===s)return[i];if(i.includes(s))return[];let{outputs:a}=t(s);return Array.from(a).map(c=>r([...i,s],c[0])).reduce((c,u)=>c.concat(u),[])};var rs=(o,t,e)=>{let r=t[e];if(r===void 0)throw o();return r},ol=o=>(t,e=void 0,r=void 0,i=0)=>e===void 0?t.forEach(n=>n.disconnect()):typeof e=="number"?rs(o,t,e).disconnect():Kr(e)?r===void 0?t.forEach(n=>n.disconnect(e)):i===void 0?rs(o,t,r).disconnect(e,0):rs(o,t,r).disconnect(e,0,i):r===void 0?t.forEach(n=>n.disconnect(e)):rs(o,t,r).disconnect(e,0);var Dg={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},nl=(o,t,e,r,i,n,s,a)=>class extends o{constructor(u,h){let l=n(u),p=R(R({},Dg),h),d=r(l,p),f=s(l),g=f?e():null;super(u,!1,d,g),this._attack=t(this,f,d.attack),this._knee=t(this,f,d.knee),this._nativeDynamicsCompressorNode=d,this._ratio=t(this,f,d.ratio),this._release=t(this,f,d.release),this._threshold=t(this,f,d.threshold),a(this,.006)}get attack(){return this._attack}get channelCount(){return this._nativeDynamicsCompressorNode.channelCount}set channelCount(u){let h=this._nativeDynamicsCompressorNode.channelCount;if(this._nativeDynamicsCompressorNode.channelCount=u,u>2)throw this._nativeDynamicsCompressorNode.channelCount=h,i()}get channelCountMode(){return this._nativeDynamicsCompressorNode.channelCountMode}set channelCountMode(u){let h=this._nativeDynamicsCompressorNode.channelCountMode;if(this._nativeDynamicsCompressorNode.channelCountMode=u,u==="max")throw this._nativeDynamicsCompressorNode.channelCountMode=h,i()}get knee(){return this._knee}get ratio(){return this._ratio}get reduction(){return typeof this._nativeDynamicsCompressorNode.reduction.value=="number"?this._nativeDynamicsCompressorNode.reduction.value:this._nativeDynamicsCompressorNode.reduction}get release(){return this._release}get threshold(){return this._threshold}};var sl=(o,t,e,r,i)=>()=>{let n=new WeakMap,s=(a,c)=>X(null,null,function*(){let u=e(a),h=pt(u,c);if(!h){let l={attack:u.attack.value,channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,knee:u.knee.value,ratio:u.ratio.value,release:u.release.value,threshold:u.threshold.value};u=t(c,l)}return n.set(c,u),h?(yield o(c,a.attack,u.attack),yield o(c,a.knee,u.knee),yield o(c,a.ratio,u.ratio),yield o(c,a.release,u.release),yield o(c,a.threshold,u.threshold)):(yield r(c,a.attack,u.attack),yield r(c,a.knee,u.knee),yield r(c,a.ratio,u.ratio),yield r(c,a.release,u.release),yield r(c,a.threshold,u.threshold)),yield i(a,c,u),u});return{render(a,c){let u=n.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var al=()=>new DOMException("","EncodingError");var cl=o=>t=>new Promise((e,r)=>{if(o===null){r(new SyntaxError);return}let i=o.document.head;if(i===null)r(new SyntaxError);else{let n=o.document.createElement("script"),s=new Blob([t],{type:"application/javascript"}),a=URL.createObjectURL(s),c=o.onerror,u=()=>{o.onerror=c,URL.revokeObjectURL(a)};o.onerror=(h,l,p,d,f)=>{if(l===a||l===o.location.href&&p===1&&d===1)return u(),r(f),!1;if(c!==null)return c(h,l,p,d,f)},n.onerror=()=>{u(),r(new SyntaxError)},n.onload=()=>{u(),e()},n.src=a,n.type="module",i.appendChild(n)}});var ul=o=>class{constructor(e){this._nativeEventTarget=e,this._listeners=new WeakMap}addEventListener(e,r,i){if(r!==null){let n=this._listeners.get(r);n===void 0&&(n=o(this,r),typeof r=="function"&&this._listeners.set(r,n)),this._nativeEventTarget.addEventListener(e,n,i)}}dispatchEvent(e){return this._nativeEventTarget.dispatchEvent(e)}removeEventListener(e,r,i){let n=r===null?void 0:this._listeners.get(r);this._nativeEventTarget.removeEventListener(e,n===void 0?null:n,i)}};var hl=o=>(t,e,r)=>{Object.defineProperties(o,{currentFrame:{configurable:!0,get(){return Math.round(t*e)}},currentTime:{configurable:!0,get(){return t}}});try{return r()}finally{o!==null&&(delete o.currentFrame,delete o.currentTime)}};var ll=o=>t=>X(null,null,function*(){try{let e=yield fetch(t);if(e.ok)return[yield e.text(),e.url]}catch(e){}throw o()});var kg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},pl=(o,t,e,r,i,n)=>class extends o{constructor(a,c){let u=i(a),h=R(R({},kg),c),l=r(u,h),p=n(u),d=p?e():null;super(a,!1,l,d),this._gain=t(this,p,l.gain,Et,Pt)}get gain(){return this._gain}};var dl=(o,t,e,r,i)=>()=>{let n=new WeakMap,s=(a,c)=>X(null,null,function*(){let u=e(a),h=pt(u,c);if(!h){let l={channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,gain:u.gain.value};u=t(c,l)}return n.set(c,u),h?yield o(c,a.gain,u.gain):yield r(c,a.gain,u.gain),yield i(a,c,u),u});return{render(a,c){let u=n.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var ml=(o,t)=>e=>t(o,e);var fl=o=>t=>{let e=o(t);if(e.renderer===null)throw new Error("Missing the renderer of the given AudioNode in the audio graph.");return e.renderer};var gl=o=>t=>{var e;return(e=o.get(t))!==null&&e!==void 0?e:0};var xl=o=>t=>{let e=o(t);if(e.renderer===null)throw new Error("Missing the renderer of the given AudioParam in the audio graph.");return e.renderer};var yl=o=>t=>o.get(t);var wt=()=>new DOMException("","InvalidStateError");var bl=o=>t=>{let e=o.get(t);if(e===void 0)throw wt();return e};var Al=(o,t)=>e=>{let r=o.get(e);if(r!==void 0)return r;if(t===null)throw new Error("Missing the native OfflineAudioContext constructor.");return r=new t(1,1,44100),o.set(e,r),r};var Cl=o=>t=>{let e=o.get(t);if(e===void 0)throw new Error("The context has no set of AudioWorkletNodes.");return e};var Bi=()=>new DOMException("","InvalidAccessError");var _l=o=>{o.getFrequencyResponse=(t=>(e,r,i)=>{if(e.length!==r.length||r.length!==i.length)throw Bi();return t.call(o,e,r,i)})(o.getFrequencyResponse)};var Pg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},vl=(o,t,e,r,i,n)=>class extends o{constructor(a,c){let u=r(a),h=i(u),l=R(R({},Pg),c),p=t(u,h?null:a.baseLatency,l),d=h?e(l.feedback,l.feedforward):null;super(a,!1,p,d),_l(p),this._nativeIIRFilterNode=p,n(this,1)}getFrequencyResponse(a,c,u){return this._nativeIIRFilterNode.getFrequencyResponse(a,c,u)}};var is=(o,t,e,r,i,n,s,a,c,u,h)=>{let l=u.length,p=a;for(let d=0;d<l;d+=1){let f=e[0]*u[d];for(let g=1;g<i;g+=1){let x=p-g&c-1;f+=e[g]*n[x],f-=o[g]*s[x]}for(let g=i;g<r;g+=1)f+=e[g]*n[p-g&c-1];for(let g=i;g<t;g+=1)f-=o[g]*s[p-g&c-1];n[p]=u[d],s[p]=f,p=p+1&c-1,h[d]=f}return p};var jg=(o,t,e,r)=>{let i=e instanceof Float64Array?e:new Float64Array(e),n=r instanceof Float64Array?r:new Float64Array(r),s=i.length,a=n.length,c=Math.min(s,a);if(i[0]!==1){for(let f=0;f<s;f+=1)n[f]/=i[0];for(let f=1;f<a;f+=1)i[f]/=i[0]}let u=32,h=new Float32Array(u),l=new Float32Array(u),p=t.createBuffer(o.numberOfChannels,o.length,o.sampleRate),d=o.numberOfChannels;for(let f=0;f<d;f+=1){let g=o.getChannelData(f),x=p.getChannelData(f);h.fill(0),l.fill(0),is(i,s,n,a,c,h,l,0,u,g,x)}return p},Il=(o,t,e,r,i)=>(n,s)=>{let a=new WeakMap,c=null,u=(h,l)=>X(null,null,function*(){let p=null,d=t(h),f=pt(d,l);if(l.createIIRFilter===void 0?p=o(l,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}):f||(d=l.createIIRFilter(s,n)),a.set(l,p===null?d:p),p!==null){if(c===null){if(e===null)throw new Error("Missing the native OfflineAudioContext constructor.");let x=new e(h.context.destination.channelCount,h.context.length,l.sampleRate);c=X(null,null,function*(){yield r(h,x,x.destination);let b=yield i(x);return jg(b,l,n,s)})}let g=yield c;return p.buffer=g,p.start(0),p}return yield r(h,l,d),d});return{render(h,l){let p=a.get(l);return p!==void 0?Promise.resolve(p):u(h,l)}}};var Sl=(o,t,e,r,i,n)=>s=>(a,c)=>{let u=o.get(a);if(u===void 0){if(!s&&n(a)){let h=r(a),{outputs:l}=e(a);for(let p of l)if(Pr(p)){let d=r(p[0]);t(h,d,p[1],p[2])}else{let d=i(p[0]);h.disconnect(d,p[1])}}o.set(a,c)}else o.set(a,u+c)};var wl=(o,t)=>e=>{let r=o.get(e);return t(r)||t(e)};var Tl=(o,t)=>e=>o.has(e)||t(e);var Nl=(o,t)=>e=>o.has(e)||t(e);var Ol=(o,t)=>e=>{let r=o.get(e);return t(r)||t(e)};var Rl=o=>t=>o!==null&&t instanceof o;var El=o=>t=>o!==null&&typeof o.AudioNode=="function"&&t instanceof o.AudioNode;var Ml=o=>t=>o!==null&&typeof o.AudioParam=="function"&&t instanceof o.AudioParam;var Dl=(o,t)=>e=>o(e)||t(e);var kl=o=>t=>o!==null&&t instanceof o;var Pl=o=>o!==null&&o.isSecureContext;var jl=(o,t,e,r)=>class extends o{constructor(n,s){let a=e(n),c=t(a,s);if(r(a))throw TypeError();super(n,!0,c,null),this._nativeMediaElementAudioSourceNode=c}get mediaElement(){return this._nativeMediaElementAudioSourceNode.mediaElement}};var Lg={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers"},Ll=(o,t,e,r)=>class extends o{constructor(n,s){let a=e(n);if(r(a))throw new TypeError;let c=R(R({},Lg),s),u=t(a,c);super(n,!1,u,null),this._nativeMediaStreamAudioDestinationNode=u}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}};var Fl=(o,t,e,r)=>class extends o{constructor(n,s){let a=e(n),c=t(a,s);if(r(a))throw new TypeError;super(n,!0,c,null),this._nativeMediaStreamAudioSourceNode=c}get mediaStream(){return this._nativeMediaStreamAudioSourceNode.mediaStream}};var Bl=(o,t,e)=>class extends o{constructor(i,n){let s=e(i),a=t(s,n);super(i,!0,a,null)}};var Vl=(o,t,e,r,i)=>class extends r{constructor(s={}){if(i===null)throw new Error("Missing the native AudioContext constructor.");let a;try{a=new i(s)}catch(h){throw h.code===12&&h.message==="sampleRate is not in range"?t():h}if(a===null)throw e();if(!$n(s.latencyHint))throw new TypeError(`The provided value '${s.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(s.sampleRate!==void 0&&a.sampleRate!==s.sampleRate)throw t();super(a,2);let{latencyHint:c}=s,{sampleRate:u}=a;if(this._baseLatency=typeof a.baseLatency=="number"?a.baseLatency:c==="balanced"?512/u:c==="interactive"||c===void 0?256/u:c==="playback"?1024/u:Math.max(2,Math.min(128,Math.round(c*u/128)))*128/u,this._nativeAudioContext=a,i.name==="webkitAudioContext"?(this._nativeGainNode=a.createGain(),this._nativeOscillatorNode=a.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(a.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,a.state==="running"){this._state="suspended";let h=()=>{this._state==="suspended"&&(this._state=null),a.removeEventListener("statechange",h)};a.addEventListener("statechange",h)}}get baseLatency(){return this._baseLatency}get state(){return this._state!==null?this._state:this._nativeAudioContext.state}close(){return this.state==="closed"?this._nativeAudioContext.close().then(()=>{throw o()}):(this._state==="suspended"&&(this._state=null),this._nativeAudioContext.close().then(()=>{this._nativeGainNode!==null&&this._nativeOscillatorNode!==null&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),kr(this)}))}resume(){return this._state==="suspended"?new Promise((s,a)=>{let c=()=>{this._nativeAudioContext.removeEventListener("statechange",c),this._nativeAudioContext.state==="running"?s():this.resume().then(s,a)};this._nativeAudioContext.addEventListener("statechange",c)}):this._nativeAudioContext.resume().catch(s=>{throw s===void 0||s.code===15?o():s})}suspend(){return this._nativeAudioContext.suspend().catch(s=>{throw s===void 0?o():s})}};var Gl=(o,t,e,r,i,n)=>class extends e{constructor(a,c){super(a),this._nativeContext=a,Ri.set(this,a),r(a)&&i.set(a,new Set),this._destination=new o(this,c),this._listener=t(this,a),this._onstatechange=null}get currentTime(){return this._nativeContext.currentTime}get destination(){return this._destination}get listener(){return this._listener}get onstatechange(){return this._onstatechange}set onstatechange(a){let c=typeof a=="function"?n(this,a):null;this._nativeContext.onstatechange=c;let u=this._nativeContext.onstatechange;this._onstatechange=u!==null&&u===c?a:u}get sampleRate(){return this._nativeContext.sampleRate}get state(){return this._nativeContext.state}};var Ge=o=>{let t=new Uint32Array([1179011410,40,1163280727,544501094,16,131073,44100,176400,1048580,1635017060,4,0]);try{let e=o.decodeAudioData(t.buffer,()=>{});return e===void 0?!1:(e.catch(()=>{}),!0)}catch(e){}return!1};var Fg={numberOfChannels:1},ql=(o,t,e,r,i)=>class extends r{constructor(s){let{length:a,numberOfChannels:c,sampleRate:u}=R(R({},Fg),s),h=e(c,a,u);o(Ge,()=>Ge(h))||h.addEventListener("statechange",(()=>{let l=0,p=d=>{this._state==="running"&&(l>0?(h.removeEventListener("statechange",p),d.stopImmediatePropagation(),this._waitForThePromiseToSettle(d)):l+=1)};return p})()),super(h,c),this._length=a,this._nativeOfflineAudioContext=h,this._state=null}get length(){return this._nativeOfflineAudioContext.length===void 0?this._length:this._nativeOfflineAudioContext.length}get state(){return this._state===null?this._nativeOfflineAudioContext.state:this._state}startRendering(){return this._state==="running"?Promise.reject(t()):(this._state="running",i(this.destination,this._nativeOfflineAudioContext).finally(()=>{this._state=null,kr(this)}))}_waitForThePromiseToSettle(s){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(s):setTimeout(()=>this._waitForThePromiseToSettle(s))}};var Wl=(o,t)=>(e,r,i)=>{let n=new Set;return e.connect=(s=>(a,c=0,u=0)=>{let h=n.size===0;if(t(a))return s.call(e,a,c,u),o(n,[a,c,u],l=>l[0]===a&&l[1]===c&&l[2]===u,!0),h&&r(),a;s.call(e,a,c),o(n,[a,c],l=>l[0]===a&&l[1]===c,!0),h&&r()})(e.connect),e.disconnect=(s=>(a,c,u)=>{let h=n.size>0;if(a===void 0)s.apply(e),n.clear();else if(typeof a=="number"){s.call(e,a);for(let p of n)p[1]===a&&n.delete(p)}else{t(a)?s.call(e,a,c,u):s.call(e,a,c);for(let p of n)p[0]===a&&(c===void 0||p[1]===c)&&(u===void 0||p[2]===u)&&n.delete(p)}let l=n.size===0;h&&l&&i()})(e.disconnect),e};var dt=(o,t,e)=>{let r=t[e];r!==void 0&&r!==o[e]&&(o[e]=r)};var ut=(o,t)=>{dt(o,t,"channelCount"),dt(o,t,"channelCountMode"),dt(o,t,"channelInterpretation")};var fc=o=>typeof o.getFloatTimeDomainData=="function";var Ul=o=>{o.getFloatTimeDomainData=t=>{let e=new Uint8Array(t.length);o.getByteTimeDomainData(e);let r=Math.max(e.length,o.fftSize);for(let i=0;i<r;i+=1)t[i]=(e[i]-128)*.0078125;return t}};var zl=(o,t)=>(e,r)=>{let i=e.createAnalyser();if(ut(i,r),!(r.maxDecibels>r.minDecibels))throw t();return dt(i,r,"fftSize"),dt(i,r,"maxDecibels"),dt(i,r,"minDecibels"),dt(i,r,"smoothingTimeConstant"),o(fc,()=>fc(i))||Ul(i),i};var Yl=o=>o===null?null:o.hasOwnProperty("AudioBuffer")?o.AudioBuffer:null;var xt=(o,t,e)=>{let r=t[e];r!==void 0&&r!==o[e].value&&(o[e].value=r)};var Hl=o=>{o.start=(t=>{let e=!1;return(r=0,i=0,n)=>{if(e)throw wt();t.call(o,r,i,n),e=!0}})(o.start)};var Vi=o=>{o.start=(t=>(e=0,r=0,i)=>{if(typeof i=="number"&&i<0||r<0||e<0)throw new RangeError("The parameters can't be negative.");t.call(o,e,r,i)})(o.start)};var Gi=o=>{o.stop=(t=>(e=0)=>{if(e<0)throw new RangeError("The parameter can't be negative.");t.call(o,e)})(o.stop)};var Ql=(o,t,e,r,i,n,s,a,c,u,h)=>(l,p)=>{let d=l.createBufferSource();return ut(d,p),xt(d,p,"playbackRate"),dt(d,p,"buffer"),dt(d,p,"loop"),dt(d,p,"loopEnd"),dt(d,p,"loopStart"),t(e,()=>e(l))||Hl(d),t(r,()=>r(l))||c(d),t(i,()=>i(l))||u(d,l),t(n,()=>n(l))||Vi(d),t(s,()=>s(l))||h(d,l),t(a,()=>a(l))||Gi(d),o(l,d),d};var Zl=o=>o===null?null:o.hasOwnProperty("AudioContext")?o.AudioContext:o.hasOwnProperty("webkitAudioContext")?o.webkitAudioContext:null;var Xl=(o,t)=>(e,r,i)=>{let n=e.destination;if(n.channelCount!==r)try{n.channelCount=r}catch(a){}i&&n.channelCountMode!=="explicit"&&(n.channelCountMode="explicit"),n.maxChannelCount===0&&Object.defineProperty(n,"maxChannelCount",{value:r});let s=o(e,{channelCount:r,channelCountMode:n.channelCountMode,channelInterpretation:n.channelInterpretation,gain:1});return t(s,"channelCount",a=>()=>a.call(s),a=>c=>{a.call(s,c);try{n.channelCount=c}catch(u){if(c>n.maxChannelCount)throw u}}),t(s,"channelCountMode",a=>()=>a.call(s),a=>c=>{a.call(s,c),n.channelCountMode=c}),t(s,"channelInterpretation",a=>()=>a.call(s),a=>c=>{a.call(s,c),n.channelInterpretation=c}),Object.defineProperty(s,"maxChannelCount",{get:()=>n.maxChannelCount}),s.connect(n),s};var Jl=o=>o===null?null:o.hasOwnProperty("AudioWorkletNode")?o.AudioWorkletNode:null;var Kl=o=>{let{port1:t}=new MessageChannel;try{t.postMessage(o)}finally{t.close()}};var $l=(o,t,e,r,i)=>(n,s,a,c,u,h)=>{if(a!==null)try{let l=new a(n,c,h),p=new Map,d=null;if(Object.defineProperties(l,{channelCount:{get:()=>h.channelCount,set:()=>{throw o()}},channelCountMode:{get:()=>"explicit",set:()=>{throw o()}},onprocessorerror:{get:()=>d,set:f=>{typeof d=="function"&&l.removeEventListener("processorerror",d),d=typeof f=="function"?f:null,typeof d=="function"&&l.addEventListener("processorerror",d)}}}),l.addEventListener=(f=>(...g)=>{if(g[0]==="processorerror"){let x=typeof g[1]=="function"?g[1]:typeof g[1]=="object"&&g[1]!==null&&typeof g[1].handleEvent=="function"?g[1].handleEvent:null;if(x!==null){let b=p.get(g[1]);b!==void 0?g[1]=b:(g[1]=v=>{v.type==="error"?(Object.defineProperties(v,{type:{value:"processorerror"}}),x(v)):x(new ErrorEvent(g[0],R({},v)))},p.set(x,g[1]))}}return f.call(l,"error",g[1],g[2]),f.call(l,...g)})(l.addEventListener),l.removeEventListener=(f=>(...g)=>{if(g[0]==="processorerror"){let x=p.get(g[1]);x!==void 0&&(p.delete(g[1]),g[1]=x)}return f.call(l,"error",g[1],g[2]),f.call(l,g[0],g[1],g[2])})(l.removeEventListener),h.numberOfOutputs!==0){let f=e(n,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return l.connect(f).connect(n.destination),i(l,()=>f.disconnect(),()=>f.connect(n.destination))}return l}catch(l){throw l.code===11?r():l}if(u===void 0)throw r();return Kl(h),t(n,s,u,h)};var os=(o,t)=>o===null?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(o*t)))));var tp=o=>new Promise((t,e)=>{let{port1:r,port2:i}=new MessageChannel;r.onmessage=({data:n})=>{r.close(),i.close(),t(n)},r.onmessageerror=({data:n})=>{r.close(),i.close(),e(n)},i.postMessage(o)});var ep=(o,t)=>X(null,null,function*(){let e=yield tp(t);return new o(e)});var rp=(o,t,e,r)=>{let i=Bo.get(o);i===void 0&&(i=new WeakMap,Bo.set(o,i));let n=ep(e,r);return i.set(t,n),n};var ip=(o,t,e,r,i,n,s,a,c,u,h,l,p)=>(d,f,g,x)=>{if(x.numberOfInputs===0&&x.numberOfOutputs===0)throw c();let b=Array.isArray(x.outputChannelCount)?x.outputChannelCount:Array.from(x.outputChannelCount);if(b.some(U=>U<1))throw c();if(b.length!==x.numberOfOutputs)throw t();if(x.channelCountMode!=="explicit")throw c();let v=x.channelCount*x.numberOfInputs,S=b.reduce((U,it)=>U+it,0),T=g.parameterDescriptors===void 0?0:g.parameterDescriptors.length;if(v+T>6||S>6)throw c();let _=new MessageChannel,C=[],A=[];for(let U=0;U<x.numberOfInputs;U+=1)C.push(s(d,{channelCount:x.channelCount,channelCountMode:x.channelCountMode,channelInterpretation:x.channelInterpretation,gain:1})),A.push(i(d,{channelCount:x.channelCount,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:x.channelCount}));let y=[];if(g.parameterDescriptors!==void 0)for(let{defaultValue:U,maxValue:it,minValue:zt,name:Tt}of g.parameterDescriptors){let ft=n(d,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:x.parameterData[Tt]!==void 0?x.parameterData[Tt]:U===void 0?0:U});Object.defineProperties(ft.offset,{defaultValue:{get:()=>U===void 0?0:U},maxValue:{get:()=>it===void 0?Et:it},minValue:{get:()=>zt===void 0?Pt:zt}}),y.push(ft)}let N=r(d,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,v+T)}),D=os(f,d.sampleRate),M=a(d,D,v+T,Math.max(1,S)),O=i(d,{channelCount:Math.max(1,S),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,S)}),W=[];for(let U=0;U<x.numberOfOutputs;U+=1)W.push(r(d,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:b[U]}));for(let U=0;U<x.numberOfInputs;U+=1){C[U].connect(A[U]);for(let it=0;it<x.channelCount;it+=1)A[U].connect(N,it,U*x.channelCount+it)}let k=new ji(g.parameterDescriptors===void 0?[]:g.parameterDescriptors.map(({name:U},it)=>{let zt=y[it];return zt.connect(N,0,v+it),zt.start(0),[U,zt.offset]}));N.connect(M);let L=x.channelInterpretation,P=null,q=x.numberOfOutputs===0?[M]:W,H={get bufferSize(){return D},get channelCount(){return x.channelCount},set channelCount(U){throw e()},get channelCountMode(){return x.channelCountMode},set channelCountMode(U){throw e()},get channelInterpretation(){return L},set channelInterpretation(U){for(let it of C)it.channelInterpretation=U;L=U},get context(){return M.context},get inputs(){return C},get numberOfInputs(){return x.numberOfInputs},get numberOfOutputs(){return x.numberOfOutputs},get onprocessorerror(){return P},set onprocessorerror(U){typeof P=="function"&&H.removeEventListener("processorerror",P),P=typeof U=="function"?U:null,typeof P=="function"&&H.addEventListener("processorerror",P)},get parameters(){return k},get port(){return _.port2},addEventListener(...U){return M.addEventListener(U[0],U[1],U[2])},connect:o.bind(null,q),disconnect:u.bind(null,q),dispatchEvent(...U){return M.dispatchEvent(U[0])},removeEventListener(...U){return M.removeEventListener(U[0],U[1],U[2])}},Q=new Map;_.port1.addEventListener=(U=>(...it)=>{if(it[0]==="message"){let zt=typeof it[1]=="function"?it[1]:typeof it[1]=="object"&&it[1]!==null&&typeof it[1].handleEvent=="function"?it[1].handleEvent:null;if(zt!==null){let Tt=Q.get(it[1]);Tt!==void 0?it[1]=Tt:(it[1]=ft=>{h(d.currentTime,d.sampleRate,()=>zt(ft))},Q.set(zt,it[1]))}}return U.call(_.port1,it[0],it[1],it[2])})(_.port1.addEventListener),_.port1.removeEventListener=(U=>(...it)=>{if(it[0]==="message"){let zt=Q.get(it[1]);zt!==void 0&&(Q.delete(it[1]),it[1]=zt)}return U.call(_.port1,it[0],it[1],it[2])})(_.port1.removeEventListener);let rt=null;Object.defineProperty(_.port1,"onmessage",{get:()=>rt,set:U=>{typeof rt=="function"&&_.port1.removeEventListener("message",rt),rt=typeof U=="function"?U:null,typeof rt=="function"&&(_.port1.addEventListener("message",rt),_.port1.start())}}),g.prototype.port=_.port1;let at=null;rp(d,H,g,x).then(U=>at=U);let kt=Fi(x.numberOfInputs,x.channelCount),xe=Fi(x.numberOfOutputs,b),ye=g.parameterDescriptors===void 0?[]:g.parameterDescriptors.reduce((U,{name:it})=>Z(R({},U),{[it]:new Float32Array(128)}),{}),At=!0,ot=()=>{x.numberOfOutputs>0&&M.disconnect(O);for(let U=0,it=0;U<x.numberOfOutputs;U+=1){let zt=W[U];for(let Tt=0;Tt<b[U];Tt+=1)O.disconnect(zt,it+Tt,Tt);it+=b[U]}},bi=new Map;M.onaudioprocess=({inputBuffer:U,outputBuffer:it})=>{if(at!==null){let zt=l(H);for(let Tt=0;Tt<D;Tt+=128){for(let ft=0;ft<x.numberOfInputs;ft+=1)for(let Rt=0;Rt<x.channelCount;Rt+=1)Li(U,kt[ft],Rt,Rt,Tt);g.parameterDescriptors!==void 0&&g.parameterDescriptors.forEach(({name:ft},Rt)=>{Li(U,ye,ft,v+Rt,Tt)});for(let ft=0;ft<x.numberOfInputs;ft+=1)for(let Rt=0;Rt<b[ft];Rt+=1)xe[ft][Rt].byteLength===0&&(xe[ft][Rt]=new Float32Array(128));try{let ft=kt.map((Se,Sr)=>{if(zt[Sr].size>0)return bi.set(Sr,D/128),Se;let Na=bi.get(Sr);return Na===void 0?[]:(Se.every(gm=>gm.every(xm=>xm===0))&&(Na===1?bi.delete(Sr):bi.set(Sr,Na-1)),Se)});At=h(d.currentTime+Tt/d.sampleRate,d.sampleRate,()=>at.process(ft,xe,ye));for(let Se=0,Sr=0;Se<x.numberOfOutputs;Se+=1){for(let vo=0;vo<b[Se];vo+=1)es(it,xe[Se],vo,Sr+vo,Tt);Sr+=b[Se]}}catch(ft){At=!1,H.dispatchEvent(new ErrorEvent("processorerror",{colno:ft.colno,filename:ft.filename,lineno:ft.lineno,message:ft.message}))}if(!At){for(let ft=0;ft<x.numberOfInputs;ft+=1){C[ft].disconnect(A[ft]);for(let Rt=0;Rt<x.channelCount;Rt+=1)A[Tt].disconnect(N,Rt,ft*x.channelCount+Rt)}if(g.parameterDescriptors!==void 0){let ft=g.parameterDescriptors.length;for(let Rt=0;Rt<ft;Rt+=1){let Se=y[Rt];Se.disconnect(N,0,v+Rt),Se.stop()}}N.disconnect(M),M.onaudioprocess=null,Ao?ot():Ci();break}}}};let Ao=!1,J=s(d,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0}),Ai=()=>M.connect(J).connect(d.destination),Ci=()=>{M.disconnect(J),J.disconnect()},Co=()=>{if(At){Ci(),x.numberOfOutputs>0&&M.connect(O);for(let U=0,it=0;U<x.numberOfOutputs;U+=1){let zt=W[U];for(let Tt=0;Tt<b[U];Tt+=1)O.connect(zt,it+Tt,Tt);it+=b[U]}}Ao=!0},_o=()=>{At&&(Ai(),ot()),Ao=!1};return Ai(),p(H,Co,_o)};var gc=(o,t)=>{let e=o.createBiquadFilter();return ut(e,t),xt(e,t,"Q"),xt(e,t,"detune"),xt(e,t,"frequency"),xt(e,t,"gain"),dt(e,t,"type"),e};var op=(o,t)=>(e,r)=>{let i=e.createChannelMerger(r.numberOfInputs);return o!==null&&o.name==="webkitAudioContext"&&t(e,i),ut(i,r),i};var np=o=>{let t=o.numberOfOutputs;Object.defineProperty(o,"channelCount",{get:()=>t,set:e=>{if(e!==t)throw wt()}}),Object.defineProperty(o,"channelCountMode",{get:()=>"explicit",set:e=>{if(e!=="explicit")throw wt()}}),Object.defineProperty(o,"channelInterpretation",{get:()=>"discrete",set:e=>{if(e!=="discrete")throw wt()}})};var qi=(o,t)=>{let e=o.createChannelSplitter(t.numberOfOutputs);return ut(e,t),np(e),e};var sp=(o,t,e,r,i)=>(n,s)=>{if(n.createConstantSource===void 0)return e(n,s);let a=n.createConstantSource();return ut(a,s),xt(a,s,"offset"),t(r,()=>r(n))||Vi(a),t(i,()=>i(n))||Gi(a),o(n,a),a};var Re=(o,t)=>(o.connect=t.connect.bind(t),o.disconnect=t.disconnect.bind(t),o);var ap=(o,t,e,r)=>(i,a)=>{var c=a,{offset:n}=c,s=wr(c,["offset"]);let u=i.createBuffer(1,2,44100),h=t(i,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),l=e(i,Z(R({},s),{gain:n})),p=u.getChannelData(0);p[0]=1,p[1]=1,h.buffer=u,h.loop=!0;let d={get bufferSize(){},get channelCount(){return l.channelCount},set channelCount(x){l.channelCount=x},get channelCountMode(){return l.channelCountMode},set channelCountMode(x){l.channelCountMode=x},get channelInterpretation(){return l.channelInterpretation},set channelInterpretation(x){l.channelInterpretation=x},get context(){return l.context},get inputs(){return[]},get numberOfInputs(){return h.numberOfInputs},get numberOfOutputs(){return l.numberOfOutputs},get offset(){return l.gain},get onended(){return h.onended},set onended(x){h.onended=x},addEventListener(...x){return h.addEventListener(x[0],x[1],x[2])},dispatchEvent(...x){return h.dispatchEvent(x[0])},removeEventListener(...x){return h.removeEventListener(x[0],x[1],x[2])},start(x=0){h.start.call(h,x)},stop(x=0){h.stop.call(h,x)}},f=()=>h.connect(l),g=()=>h.disconnect(l);return o(i,h),r(Re(d,l),f,g)};var cp=(o,t)=>(e,r)=>{let i=e.createConvolver();if(ut(i,r),r.disableNormalization===i.normalize&&(i.normalize=!r.disableNormalization),dt(i,r,"buffer"),r.channelCount>2||(t(i,"channelCount",n=>()=>n.call(i),n=>s=>{if(s>2)throw o();return n.call(i,s)}),r.channelCountMode==="max"))throw o();return t(i,"channelCountMode",n=>()=>n.call(i),n=>s=>{if(s==="max")throw o();return n.call(i,s)}),i};var xc=(o,t)=>{let e=o.createDelay(t.maxDelayTime);return ut(e,t),xt(e,t,"delayTime"),e};var up=o=>(t,e)=>{let r=t.createDynamicsCompressor();if(ut(r,e),e.channelCount>2||e.channelCountMode==="max")throw o();return xt(r,e,"attack"),xt(r,e,"knee"),xt(r,e,"ratio"),xt(r,e,"release"),xt(r,e,"threshold"),r};var se=(o,t)=>{let e=o.createGain();return ut(e,t),xt(e,t,"gain"),e};var hp=o=>(t,e,r)=>{if(t.createIIRFilter===void 0)return o(t,e,r);let i=t.createIIRFilter(r.feedforward,r.feedback);return ut(i,r),i};function Bg(o,t){let e=t[0]*t[0]+t[1]*t[1];return[(o[0]*t[0]+o[1]*t[1])/e,(o[1]*t[0]-o[0]*t[1])/e]}function Vg(o,t){return[o[0]*t[0]-o[1]*t[1],o[0]*t[1]+o[1]*t[0]]}function lp(o,t){let e=[0,0];for(let r=o.length-1;r>=0;r-=1)e=Vg(e,t),e[0]+=o[r];return e}var pp=(o,t,e,r)=>(i,n,{channelCount:s,channelCountMode:a,channelInterpretation:c,feedback:u,feedforward:h})=>{let l=os(n,i.sampleRate),p=u instanceof Float64Array?u:new Float64Array(u),d=h instanceof Float64Array?h:new Float64Array(h),f=p.length,g=d.length,x=Math.min(f,g);if(f===0||f>20)throw r();if(p[0]===0)throw t();if(g===0||g>20)throw r();if(d[0]===0)throw t();if(p[0]!==1){for(let y=0;y<g;y+=1)d[y]/=p[0];for(let y=1;y<f;y+=1)p[y]/=p[0]}let b=e(i,l,s,s);b.channelCount=s,b.channelCountMode=a,b.channelInterpretation=c;let v=32,S=[],T=[],_=[];for(let y=0;y<s;y+=1){S.push(0);let N=new Float32Array(v),D=new Float32Array(v);N.fill(0),D.fill(0),T.push(N),_.push(D)}b.onaudioprocess=y=>{let N=y.inputBuffer,D=y.outputBuffer,M=N.numberOfChannels;for(let O=0;O<M;O+=1){let W=N.getChannelData(O),k=D.getChannelData(O);S[O]=is(p,f,d,g,x,T[O],_[O],S[O],v,W,k)}};let C=i.sampleRate/2;return Re({get bufferSize(){return l},get channelCount(){return b.channelCount},set channelCount(y){b.channelCount=y},get channelCountMode(){return b.channelCountMode},set channelCountMode(y){b.channelCountMode=y},get channelInterpretation(){return b.channelInterpretation},set channelInterpretation(y){b.channelInterpretation=y},get context(){return b.context},get inputs(){return[b]},get numberOfInputs(){return b.numberOfInputs},get numberOfOutputs(){return b.numberOfOutputs},addEventListener(...y){return b.addEventListener(y[0],y[1],y[2])},dispatchEvent(...y){return b.dispatchEvent(y[0])},getFrequencyResponse(y,N,D){if(y.length!==N.length||N.length!==D.length)throw o();let M=y.length;for(let O=0;O<M;O+=1){let W=-Math.PI*(y[O]/C),k=[Math.cos(W),Math.sin(W)],L=lp(d,k),P=lp(p,k),q=Bg(L,P);N[O]=Math.sqrt(q[0]*q[0]+q[1]*q[1]),D[O]=Math.atan2(q[1],q[0])}},removeEventListener(...y){return b.removeEventListener(y[0],y[1],y[2])}},b)};var dp=(o,t)=>o.createMediaElementSource(t.mediaElement);var mp=(o,t)=>{let e=o.createMediaStreamDestination();return ut(e,t),e.numberOfOutputs===1&&Object.defineProperty(e,"numberOfOutputs",{get:()=>0}),e};var fp=(o,{mediaStream:t})=>{let e=t.getAudioTracks();e.sort((n,s)=>n.id<s.id?-1:n.id>s.id?1:0);let r=e.slice(0,1),i=o.createMediaStreamSource(new MediaStream(r));return Object.defineProperty(i,"mediaStream",{value:t}),i};var gp=(o,t)=>(e,{mediaStreamTrack:r})=>{if(typeof e.createMediaStreamTrackSource=="function")return e.createMediaStreamTrackSource(r);let i=new MediaStream([r]),n=e.createMediaStreamSource(i);if(r.kind!=="audio")throw o();if(t(e))throw new TypeError;return n};var xp=o=>o===null?null:o.hasOwnProperty("OfflineAudioContext")?o.OfflineAudioContext:o.hasOwnProperty("webkitOfflineAudioContext")?o.webkitOfflineAudioContext:null;var yp=(o,t,e,r,i,n)=>(s,a)=>{let c=s.createOscillator();return ut(c,a),xt(c,a,"detune"),xt(c,a,"frequency"),a.periodicWave!==void 0?c.setPeriodicWave(a.periodicWave):dt(c,a,"type"),t(e,()=>e(s))||Vi(c),t(r,()=>r(s))||n(c,s),t(i,()=>i(s))||Gi(c),o(s,c),c};var bp=o=>(t,e)=>{let r=t.createPanner();return r.orientationX===void 0?o(t,e):(ut(r,e),xt(r,e,"orientationX"),xt(r,e,"orientationY"),xt(r,e,"orientationZ"),xt(r,e,"positionX"),xt(r,e,"positionY"),xt(r,e,"positionZ"),dt(r,e,"coneInnerAngle"),dt(r,e,"coneOuterAngle"),dt(r,e,"coneOuterGain"),dt(r,e,"distanceModel"),dt(r,e,"maxDistance"),dt(r,e,"panningModel"),dt(r,e,"refDistance"),dt(r,e,"rolloffFactor"),r)};var Ap=(o,t,e,r,i,n,s,a,c,u)=>(h,D)=>{var M=D,{coneInnerAngle:l,coneOuterAngle:p,coneOuterGain:d,distanceModel:f,maxDistance:g,orientationX:x,orientationY:b,orientationZ:v,panningModel:S,positionX:T,positionY:_,positionZ:C,refDistance:A,rolloffFactor:y}=M,N=wr(M,["coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","orientationX","orientationY","orientationZ","panningModel","positionX","positionY","positionZ","refDistance","rolloffFactor"]);let O=h.createPanner();if(N.channelCount>2||N.channelCountMode==="max")throw s();ut(O,N);let W={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},k=e(h,Z(R({},W),{channelInterpretation:"speakers",numberOfInputs:6})),L=r(h,Z(R({},N),{gain:1})),P=r(h,Z(R({},W),{gain:1})),q=r(h,Z(R({},W),{gain:0})),H=r(h,Z(R({},W),{gain:0})),Q=r(h,Z(R({},W),{gain:0})),rt=r(h,Z(R({},W),{gain:0})),at=r(h,Z(R({},W),{gain:0})),yt=i(h,256,6,1),kt=n(h,Z(R({},W),{curve:new Float32Array([1,1]),oversample:"none"})),xe=[x,b,v],ye=[T,_,C],At=new Float32Array(1);yt.onaudioprocess=({inputBuffer:J})=>{let Ai=[c(J,At,0),c(J,At,1),c(J,At,2)];Ai.some((Co,_o)=>Co!==xe[_o])&&(O.setOrientation(...Ai),xe=Ai);let Ci=[c(J,At,3),c(J,At,4),c(J,At,5)];Ci.some((Co,_o)=>Co!==ye[_o])&&(O.setPosition(...Ci),ye=Ci)},Object.defineProperty(q.gain,"defaultValue",{get:()=>0}),Object.defineProperty(H.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Q.gain,"defaultValue",{get:()=>0}),Object.defineProperty(rt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(at.gain,"defaultValue",{get:()=>0});let ot={get bufferSize(){},get channelCount(){return O.channelCount},set channelCount(J){if(J>2)throw s();L.channelCount=J,O.channelCount=J},get channelCountMode(){return O.channelCountMode},set channelCountMode(J){if(J==="max")throw s();L.channelCountMode=J,O.channelCountMode=J},get channelInterpretation(){return O.channelInterpretation},set channelInterpretation(J){L.channelInterpretation=J,O.channelInterpretation=J},get coneInnerAngle(){return O.coneInnerAngle},set coneInnerAngle(J){O.coneInnerAngle=J},get coneOuterAngle(){return O.coneOuterAngle},set coneOuterAngle(J){O.coneOuterAngle=J},get coneOuterGain(){return O.coneOuterGain},set coneOuterGain(J){if(J<0||J>1)throw t();O.coneOuterGain=J},get context(){return O.context},get distanceModel(){return O.distanceModel},set distanceModel(J){O.distanceModel=J},get inputs(){return[L]},get maxDistance(){return O.maxDistance},set maxDistance(J){if(J<0)throw new RangeError;O.maxDistance=J},get numberOfInputs(){return O.numberOfInputs},get numberOfOutputs(){return O.numberOfOutputs},get orientationX(){return P.gain},get orientationY(){return q.gain},get orientationZ(){return H.gain},get panningModel(){return O.panningModel},set panningModel(J){O.panningModel=J},get positionX(){return Q.gain},get positionY(){return rt.gain},get positionZ(){return at.gain},get refDistance(){return O.refDistance},set refDistance(J){if(J<0)throw new RangeError;O.refDistance=J},get rolloffFactor(){return O.rolloffFactor},set rolloffFactor(J){if(J<0)throw new RangeError;O.rolloffFactor=J},addEventListener(...J){return L.addEventListener(J[0],J[1],J[2])},dispatchEvent(...J){return L.dispatchEvent(J[0])},removeEventListener(...J){return L.removeEventListener(J[0],J[1],J[2])}};l!==ot.coneInnerAngle&&(ot.coneInnerAngle=l),p!==ot.coneOuterAngle&&(ot.coneOuterAngle=p),d!==ot.coneOuterGain&&(ot.coneOuterGain=d),f!==ot.distanceModel&&(ot.distanceModel=f),g!==ot.maxDistance&&(ot.maxDistance=g),x!==ot.orientationX.value&&(ot.orientationX.value=x),b!==ot.orientationY.value&&(ot.orientationY.value=b),v!==ot.orientationZ.value&&(ot.orientationZ.value=v),S!==ot.panningModel&&(ot.panningModel=S),T!==ot.positionX.value&&(ot.positionX.value=T),_!==ot.positionY.value&&(ot.positionY.value=_),C!==ot.positionZ.value&&(ot.positionZ.value=C),A!==ot.refDistance&&(ot.refDistance=A),y!==ot.rolloffFactor&&(ot.rolloffFactor=y),(xe[0]!==1||xe[1]!==0||xe[2]!==0)&&O.setOrientation(...xe),(ye[0]!==0||ye[1]!==0||ye[2]!==0)&&O.setPosition(...ye);let bi=()=>{L.connect(O),o(L,kt,0,0),kt.connect(P).connect(k,0,0),kt.connect(q).connect(k,0,1),kt.connect(H).connect(k,0,2),kt.connect(Q).connect(k,0,3),kt.connect(rt).connect(k,0,4),kt.connect(at).connect(k,0,5),k.connect(yt).connect(h.destination)},Ao=()=>{L.disconnect(O),a(L,kt,0,0),kt.disconnect(P),P.disconnect(k),kt.disconnect(q),q.disconnect(k),kt.disconnect(H),H.disconnect(k),kt.disconnect(Q),Q.disconnect(k),kt.disconnect(rt),rt.disconnect(k),kt.disconnect(at),at.disconnect(k),k.disconnect(yt),yt.disconnect(h.destination)};return u(Re(ot,O),bi,Ao)};var Cp=o=>(t,{disableNormalization:e,imag:r,real:i})=>{let n=r instanceof Float32Array?r:new Float32Array(r),s=i instanceof Float32Array?i:new Float32Array(i),a=t.createPeriodicWave(s,n,{disableNormalization:e});if(Array.from(r).length<2)throw o();return a};var Wi=(o,t,e,r)=>o.createScriptProcessor(t,e,r);var _p=(o,t)=>(e,r)=>{let i=r.channelCountMode;if(i==="clamped-max")throw t();if(e.createStereoPanner===void 0)return o(e,r);let n=e.createStereoPanner();return ut(n,r),xt(n,r,"pan"),Object.defineProperty(n,"channelCountMode",{get:()=>i,set:s=>{if(s!==i)throw t()}}),n};var vp=(o,t,e,r,i,n)=>{let a=new Float32Array([1,1]),c=Math.PI/2,u={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},h=Z(R({},u),{oversample:"none"}),l=(f,g,x,b)=>{let v=new Float32Array(16385),S=new Float32Array(16385);for(let N=0;N<16385;N+=1){let D=N/16384*c;v[N]=Math.cos(D),S[N]=Math.sin(D)}let T=e(f,Z(R({},u),{gain:0})),_=r(f,Z(R({},h),{curve:v})),C=r(f,Z(R({},h),{curve:a})),A=e(f,Z(R({},u),{gain:0})),y=r(f,Z(R({},h),{curve:S}));return{connectGraph(){g.connect(T),g.connect(C.inputs===void 0?C:C.inputs[0]),g.connect(A),C.connect(x),x.connect(_.inputs===void 0?_:_.inputs[0]),x.connect(y.inputs===void 0?y:y.inputs[0]),_.connect(T.gain),y.connect(A.gain),T.connect(b,0,0),A.connect(b,0,1)},disconnectGraph(){g.disconnect(T),g.disconnect(C.inputs===void 0?C:C.inputs[0]),g.disconnect(A),C.disconnect(x),x.disconnect(_.inputs===void 0?_:_.inputs[0]),x.disconnect(y.inputs===void 0?y:y.inputs[0]),_.disconnect(T.gain),y.disconnect(A.gain),T.disconnect(b,0,0),A.disconnect(b,0,1)}}},p=(f,g,x,b)=>{let v=new Float32Array(16385),S=new Float32Array(16385),T=new Float32Array(16385),_=new Float32Array(16385),C=Math.floor(16385/2);for(let q=0;q<16385;q+=1)if(q>C){let H=(q-C)/(16384-C)*c;v[q]=Math.cos(H),S[q]=Math.sin(H),T[q]=0,_[q]=1}else{let H=q/(16384-C)*c;v[q]=1,S[q]=0,T[q]=Math.cos(H),_[q]=Math.sin(H)}let A=t(f,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),y=e(f,Z(R({},u),{gain:0})),N=r(f,Z(R({},h),{curve:v})),D=e(f,Z(R({},u),{gain:0})),M=r(f,Z(R({},h),{curve:S})),O=r(f,Z(R({},h),{curve:a})),W=e(f,Z(R({},u),{gain:0})),k=r(f,Z(R({},h),{curve:T})),L=e(f,Z(R({},u),{gain:0})),P=r(f,Z(R({},h),{curve:_}));return{connectGraph(){g.connect(A),g.connect(O.inputs===void 0?O:O.inputs[0]),A.connect(y,0),A.connect(D,0),A.connect(W,1),A.connect(L,1),O.connect(x),x.connect(N.inputs===void 0?N:N.inputs[0]),x.connect(M.inputs===void 0?M:M.inputs[0]),x.connect(k.inputs===void 0?k:k.inputs[0]),x.connect(P.inputs===void 0?P:P.inputs[0]),N.connect(y.gain),M.connect(D.gain),k.connect(W.gain),P.connect(L.gain),y.connect(b,0,0),W.connect(b,0,0),D.connect(b,0,1),L.connect(b,0,1)},disconnectGraph(){g.disconnect(A),g.disconnect(O.inputs===void 0?O:O.inputs[0]),A.disconnect(y,0),A.disconnect(D,0),A.disconnect(W,1),A.disconnect(L,1),O.disconnect(x),x.disconnect(N.inputs===void 0?N:N.inputs[0]),x.disconnect(M.inputs===void 0?M:M.inputs[0]),x.disconnect(k.inputs===void 0?k:k.inputs[0]),x.disconnect(P.inputs===void 0?P:P.inputs[0]),N.disconnect(y.gain),M.disconnect(D.gain),k.disconnect(W.gain),P.disconnect(L.gain),y.disconnect(b,0,0),W.disconnect(b,0,0),D.disconnect(b,0,1),L.disconnect(b,0,1)}}},d=(f,g,x,b,v)=>{if(g===1)return l(f,x,b,v);if(g===2)return p(f,x,b,v);throw i()};return(f,S)=>{var T=S,{channelCount:g,channelCountMode:x,pan:b}=T,v=wr(T,["channelCount","channelCountMode","pan"]);if(x==="max")throw i();let _=o(f,Z(R({},v),{channelCount:1,channelCountMode:x,numberOfInputs:2})),C=e(f,Z(R({},v),{channelCount:g,channelCountMode:x,gain:1})),A=e(f,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:b}),{connectGraph:y,disconnectGraph:N}=d(f,g,C,A,_);Object.defineProperty(A.gain,"defaultValue",{get:()=>0}),Object.defineProperty(A.gain,"maxValue",{get:()=>1}),Object.defineProperty(A.gain,"minValue",{get:()=>-1});let D={get bufferSize(){},get channelCount(){return C.channelCount},set channelCount(k){C.channelCount!==k&&(M&&N(),{connectGraph:y,disconnectGraph:N}=d(f,k,C,A,_),M&&y()),C.channelCount=k},get channelCountMode(){return C.channelCountMode},set channelCountMode(k){if(k==="clamped-max"||k==="max")throw i();C.channelCountMode=k},get channelInterpretation(){return C.channelInterpretation},set channelInterpretation(k){C.channelInterpretation=k},get context(){return C.context},get inputs(){return[C]},get numberOfInputs(){return C.numberOfInputs},get numberOfOutputs(){return C.numberOfOutputs},get pan(){return A.gain},addEventListener(...k){return C.addEventListener(k[0],k[1],k[2])},dispatchEvent(...k){return C.dispatchEvent(k[0])},removeEventListener(...k){return C.removeEventListener(k[0],k[1],k[2])}},M=!1,O=()=>{y(),M=!0},W=()=>{N(),M=!1};return n(Re(D,_),O,W)}};var Ip=(o,t,e,r,i,n,s)=>(a,c)=>{let u=a.createWaveShaper();if(n!==null&&n.name==="webkitAudioContext"&&a.createGain().gain.automationRate===void 0)return e(a,c);ut(u,c);let h=c.curve===null||c.curve instanceof Float32Array?c.curve:new Float32Array(c.curve);if(h!==null&&h.length<2)throw t();dt(u,{curve:h},"curve"),dt(u,c,"oversample");let l=null,p=!1;return s(u,"curve",g=>()=>g.call(u),g=>x=>(g.call(u,x),p&&(r(x)&&l===null?l=o(a,u):!r(x)&&l!==null&&(l(),l=null)),x)),i(u,()=>{p=!0,r(u.curve)&&(l=o(a,u))},()=>{p=!1,l!==null&&(l(),l=null)})};var Sp=(o,t,e,r,i)=>(n,u)=>{var h=u,{curve:s,oversample:a}=h,c=wr(h,["curve","oversample"]);let l=n.createWaveShaper(),p=n.createWaveShaper();ut(l,c),ut(p,c);let d=e(n,Z(R({},c),{gain:1})),f=e(n,Z(R({},c),{gain:-1})),g=e(n,Z(R({},c),{gain:1})),x=e(n,Z(R({},c),{gain:-1})),b=null,v=!1,S=null,T={get bufferSize(){},get channelCount(){return l.channelCount},set channelCount(A){d.channelCount=A,f.channelCount=A,l.channelCount=A,g.channelCount=A,p.channelCount=A,x.channelCount=A},get channelCountMode(){return l.channelCountMode},set channelCountMode(A){d.channelCountMode=A,f.channelCountMode=A,l.channelCountMode=A,g.channelCountMode=A,p.channelCountMode=A,x.channelCountMode=A},get channelInterpretation(){return l.channelInterpretation},set channelInterpretation(A){d.channelInterpretation=A,f.channelInterpretation=A,l.channelInterpretation=A,g.channelInterpretation=A,p.channelInterpretation=A,x.channelInterpretation=A},get context(){return l.context},get curve(){return S},set curve(A){if(A!==null&&A.length<2)throw t();if(A===null)l.curve=A,p.curve=A;else{let y=A.length,N=new Float32Array(y+2-y%2),D=new Float32Array(y+2-y%2);N[0]=A[0],D[0]=-A[y-1];let M=Math.ceil((y+1)/2),O=(y+1)/2-1;for(let W=1;W<M;W+=1){let k=W/M*O,L=Math.floor(k),P=Math.ceil(k);N[W]=L===P?A[L]:(1-(k-L))*A[L]+(1-(P-k))*A[P],D[W]=L===P?-A[y-1-L]:-((1-(k-L))*A[y-1-L])-(1-(P-k))*A[y-1-P]}N[M]=y%2===1?A[M-1]:(A[M-2]+A[M-1])/2,l.curve=N,p.curve=D}S=A,v&&(r(S)&&b===null?b=o(n,d):b!==null&&(b(),b=null))},get inputs(){return[d]},get numberOfInputs(){return l.numberOfInputs},get numberOfOutputs(){return l.numberOfOutputs},get oversample(){return l.oversample},set oversample(A){l.oversample=A,p.oversample=A},addEventListener(...A){return d.addEventListener(A[0],A[1],A[2])},dispatchEvent(...A){return d.dispatchEvent(A[0])},removeEventListener(...A){return d.removeEventListener(A[0],A[1],A[2])}};s!==null&&(T.curve=s instanceof Float32Array?s:new Float32Array(s)),a!==T.oversample&&(T.oversample=a);let _=()=>{d.connect(l).connect(g),d.connect(f).connect(p).connect(x).connect(g),v=!0,r(S)&&(b=o(n,d))},C=()=>{d.disconnect(l),l.disconnect(g),d.disconnect(f),f.disconnect(p),p.disconnect(x),x.disconnect(g),v=!1,b!==null&&(b(),b=null)};return i(Re(T,g),_,C)};var Zt=()=>new DOMException("","NotSupportedError");var Gg={numberOfChannels:1},wp=(o,t,e,r,i)=>class extends o{constructor(s,a,c){let u;if(typeof s=="number"&&a!==void 0&&c!==void 0)u={length:a,numberOfChannels:s,sampleRate:c};else if(typeof s=="object")u=s;else throw new Error("The given parameters are not valid.");let{length:h,numberOfChannels:l,sampleRate:p}=R(R({},Gg),u),d=r(l,h,p);t(Ge,()=>Ge(d))||d.addEventListener("statechange",(()=>{let f=0,g=x=>{this._state==="running"&&(f>0?(d.removeEventListener("statechange",g),x.stopImmediatePropagation(),this._waitForThePromiseToSettle(x)):f+=1)};return g})()),super(d,l),this._length=h,this._nativeOfflineAudioContext=d,this._state=null}get length(){return this._nativeOfflineAudioContext.length===void 0?this._length:this._nativeOfflineAudioContext.length}get state(){return this._state===null?this._nativeOfflineAudioContext.state:this._state}startRendering(){return this._state==="running"?Promise.reject(e()):(this._state="running",i(this.destination,this._nativeOfflineAudioContext).finally(()=>{this._state=null,kr(this)}))}_waitForThePromiseToSettle(s){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(s):setTimeout(()=>this._waitForThePromiseToSettle(s))}};var qg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},Tp=(o,t,e,r,i,n,s)=>class extends o{constructor(c,u){let h=i(c),l=R(R({},qg),u),p=e(h,l),d=n(h),f=d?r():null,g=c.sampleRate/2;super(c,!1,p,f),this._detune=t(this,d,p.detune,153600,-153600),this._frequency=t(this,d,p.frequency,g,-g),this._nativeOscillatorNode=p,this._onended=null,this._oscillatorNodeRenderer=f,this._oscillatorNodeRenderer!==null&&l.periodicWave!==void 0&&(this._oscillatorNodeRenderer.periodicWave=l.periodicWave)}get detune(){return this._detune}get frequency(){return this._frequency}get onended(){return this._onended}set onended(c){let u=typeof c=="function"?s(this,c):null;this._nativeOscillatorNode.onended=u;let h=this._nativeOscillatorNode.onended;this._onended=h!==null&&h===u?c:h}get type(){return this._nativeOscillatorNode.type}set type(c){this._nativeOscillatorNode.type=c,this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=null)}setPeriodicWave(c){this._nativeOscillatorNode.setPeriodicWave(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=c)}start(c=0){if(this._nativeOscillatorNode.start(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.start=c),this.context.state!=="closed"){Be(this);let u=()=>{this._nativeOscillatorNode.removeEventListener("ended",u),ne(this)&&tr(this)};this._nativeOscillatorNode.addEventListener("ended",u)}}stop(c=0){this._nativeOscillatorNode.stop(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.stop=c)}};var Np=(o,t,e,r,i)=>()=>{let n=new WeakMap,s=null,a=null,c=null,u=(h,l)=>X(null,null,function*(){let p=e(h),d=pt(p,l);if(!d){let f={channelCount:p.channelCount,channelCountMode:p.channelCountMode,channelInterpretation:p.channelInterpretation,detune:p.detune.value,frequency:p.frequency.value,periodicWave:s===null?void 0:s,type:p.type};p=t(l,f),a!==null&&p.start(a),c!==null&&p.stop(c)}return n.set(l,p),d?(yield o(l,h.detune,p.detune),yield o(l,h.frequency,p.frequency)):(yield r(l,h.detune,p.detune),yield r(l,h.frequency,p.frequency)),yield i(h,l,p),p});return{set periodicWave(h){s=h},set start(h){a=h},set stop(h){c=h},render(h,l){let p=n.get(l);return p!==void 0?Promise.resolve(p):u(h,l)}}};var Wg={channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:1,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1},Op=(o,t,e,r,i,n,s)=>class extends o{constructor(c,u){let h=i(c),l=R(R({},Wg),u),p=e(h,l),d=n(h),f=d?r():null;super(c,!1,p,f),this._nativePannerNode=p,this._orientationX=t(this,d,p.orientationX,Et,Pt),this._orientationY=t(this,d,p.orientationY,Et,Pt),this._orientationZ=t(this,d,p.orientationZ,Et,Pt),this._positionX=t(this,d,p.positionX,Et,Pt),this._positionY=t(this,d,p.positionY,Et,Pt),this._positionZ=t(this,d,p.positionZ,Et,Pt),s(this,1)}get coneInnerAngle(){return this._nativePannerNode.coneInnerAngle}set coneInnerAngle(c){this._nativePannerNode.coneInnerAngle=c}get coneOuterAngle(){return this._nativePannerNode.coneOuterAngle}set coneOuterAngle(c){this._nativePannerNode.coneOuterAngle=c}get coneOuterGain(){return this._nativePannerNode.coneOuterGain}set coneOuterGain(c){this._nativePannerNode.coneOuterGain=c}get distanceModel(){return this._nativePannerNode.distanceModel}set distanceModel(c){this._nativePannerNode.distanceModel=c}get maxDistance(){return this._nativePannerNode.maxDistance}set maxDistance(c){this._nativePannerNode.maxDistance=c}get orientationX(){return this._orientationX}get orientationY(){return this._orientationY}get orientationZ(){return this._orientationZ}get panningModel(){return this._nativePannerNode.panningModel}set panningModel(c){this._nativePannerNode.panningModel=c}get positionX(){return this._positionX}get positionY(){return this._positionY}get positionZ(){return this._positionZ}get refDistance(){return this._nativePannerNode.refDistance}set refDistance(c){this._nativePannerNode.refDistance=c}get rolloffFactor(){return this._nativePannerNode.rolloffFactor}set rolloffFactor(c){this._nativePannerNode.rolloffFactor=c}};var Rp=(o,t,e,r,i,n,s,a,c,u)=>()=>{let h=new WeakMap,l=null,p=(d,f)=>X(null,null,function*(){let g=null,x=n(d),b={channelCount:x.channelCount,channelCountMode:x.channelCountMode,channelInterpretation:x.channelInterpretation},v=Z(R({},b),{coneInnerAngle:x.coneInnerAngle,coneOuterAngle:x.coneOuterAngle,coneOuterGain:x.coneOuterGain,distanceModel:x.distanceModel,maxDistance:x.maxDistance,panningModel:x.panningModel,refDistance:x.refDistance,rolloffFactor:x.rolloffFactor}),S=pt(x,f);if("bufferSize"in x)g=r(f,Z(R({},b),{gain:1}));else if(!S){let T=Z(R({},v),{orientationX:x.orientationX.value,orientationY:x.orientationY.value,orientationZ:x.orientationZ.value,positionX:x.positionX.value,positionY:x.positionY.value,positionZ:x.positionZ.value});x=i(f,T)}if(h.set(f,g===null?x:g),g!==null){if(l===null){if(s===null)throw new Error("Missing the native OfflineAudioContext constructor.");let M=new s(6,d.context.length,f.sampleRate),O=t(M,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6});O.connect(M.destination),l=X(null,null,function*(){let W=yield Promise.all([d.orientationX,d.orientationY,d.orientationZ,d.positionX,d.positionY,d.positionZ].map((k,L)=>X(null,null,function*(){let P=e(M,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:L===0?1:0});return yield a(M,k,P.offset),P})));for(let k=0;k<6;k+=1)W[k].connect(O,0,k),W[k].start(0);return u(M)})}let T=yield l,_=r(f,Z(R({},b),{gain:1}));yield c(d,f,_);let C=[];for(let M=0;M<T.numberOfChannels;M+=1)C.push(T.getChannelData(M));let A=[C[0][0],C[1][0],C[2][0]],y=[C[3][0],C[4][0],C[5][0]],N=r(f,Z(R({},b),{gain:1})),D=i(f,Z(R({},v),{orientationX:A[0],orientationY:A[1],orientationZ:A[2],positionX:y[0],positionY:y[1],positionZ:y[2]}));_.connect(N).connect(D.inputs[0]),D.connect(g);for(let M=128;M<T.length;M+=128){let O=[C[0][M],C[1][M],C[2][M]],W=[C[3][M],C[4][M],C[5][M]];if(O.some((k,L)=>k!==A[L])||W.some((k,L)=>k!==y[L])){A=O,y=W;let k=M/f.sampleRate;N.gain.setValueAtTime(0,k),N=r(f,Z(R({},b),{gain:0})),D=i(f,Z(R({},v),{orientationX:A[0],orientationY:A[1],orientationZ:A[2],positionX:y[0],positionY:y[1],positionZ:y[2]})),N.gain.setValueAtTime(1,k),_.connect(N).connect(D.inputs[0]),D.connect(g)}}return g}return S?(yield o(f,d.orientationX,x.orientationX),yield o(f,d.orientationY,x.orientationY),yield o(f,d.orientationZ,x.orientationZ),yield o(f,d.positionX,x.positionX),yield o(f,d.positionY,x.positionY),yield o(f,d.positionZ,x.positionZ)):(yield a(f,d.orientationX,x.orientationX),yield a(f,d.orientationY,x.orientationY),yield a(f,d.orientationZ,x.orientationZ),yield a(f,d.positionX,x.positionX),yield a(f,d.positionY,x.positionY),yield a(f,d.positionZ,x.positionZ)),Oe(x)?yield c(d,f,x.inputs[0]):yield c(d,f,x),x});return{render(d,f){let g=h.get(f);return g!==void 0?Promise.resolve(g):p(d,f)}}};var Ug={disableNormalization:!1},Ep=(o,t,e,r)=>class Mp{constructor(n,s){let a=t(n),c=r(R(R({},Ug),s)),u=o(a,c);return e.add(u),u}static[Symbol.hasInstance](n){return n!==null&&typeof n=="object"&&Object.getPrototypeOf(n)===Mp.prototype||e.has(n)}};var Dp=(o,t)=>(e,r,i)=>(o(r).replay(i),t(r,e,i));var kp=(o,t,e)=>(r,i,n)=>X(null,null,function*(){let s=o(r);yield Promise.all(s.activeInputs.map((a,c)=>Array.from(a).map(l=>X(null,[l],function*([u,h]){let d=yield t(u).render(u,i),f=r.context.destination;!e(u)&&(r!==f||!e(r))&&d.connect(n,h,c)}))).reduce((a,c)=>[...a,...c],[]))});var Pp=(o,t,e)=>(r,i,n)=>X(null,null,function*(){let s=t(r);yield Promise.all(Array.from(s.activeInputs).map(u=>X(null,[u],function*([a,c]){let l=yield o(a).render(a,i);e(a)||l.connect(n,c)})))});var jp=(o,t,e,r)=>i=>o(Ge,()=>Ge(i))?Promise.resolve(o(r,r)).then(n=>{if(!n){let s=e(i,512,0,1);i.oncomplete=()=>{s.onaudioprocess=null,s.disconnect()},s.onaudioprocess=()=>i.currentTime,s.connect(i.destination)}return i.startRendering()}):new Promise(n=>{let s=t(i,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});i.oncomplete=a=>{s.disconnect(),n(a.renderedBuffer)},s.connect(i.destination),i.startRendering()});var Lp=o=>(t,e)=>{o.set(t,e)};var Fp=o=>(t,e)=>o.set(t,e);var Bp=(o,t,e,r,i,n,s,a)=>(c,u)=>e(c).render(c,u).then(()=>Promise.all(Array.from(r(u)).map(h=>e(h).render(h,u)))).then(()=>i(u)).then(h=>(typeof h.copyFromChannel!="function"?(s(h),Mi(h)):t(n,()=>n(h))||a(h),o.add(h),h));var zg={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},Vp=(o,t,e,r,i,n)=>class extends o{constructor(a,c){let u=i(a),h=R(R({},zg),c),l=e(u,h),p=n(u),d=p?r():null;super(a,!1,l,d),this._pan=t(this,p,l.pan)}get pan(){return this._pan}};var Gp=(o,t,e,r,i)=>()=>{let n=new WeakMap,s=(a,c)=>X(null,null,function*(){let u=e(a),h=pt(u,c);if(!h){let l={channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,pan:u.pan.value};u=t(c,l)}return n.set(c,u),h?yield o(c,a.pan,u.pan):yield r(c,a.pan,u.pan),Oe(u)?yield i(a,c,u.inputs[0]):yield i(a,c,u),u});return{render(a,c){let u=n.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var qp=o=>()=>{if(o===null)return!1;try{new o({length:1,sampleRate:44100})}catch(t){return!1}return!0};var Wp=(o,t)=>()=>X(null,null,function*(){if(o===null)return!0;if(t===null)return!1;let e=new Blob(['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),r=new t(1,128,44100),i=URL.createObjectURL(e),n=!1,s=!1;try{yield r.audioWorklet.addModule(i);let a=new o(r,"a",{numberOfOutputs:0}),c=r.createOscillator();a.port.onmessage=()=>n=!0,a.onprocessorerror=()=>s=!0,c.connect(a),c.start(0),yield r.startRendering(),yield new Promise(u=>setTimeout(u))}catch(a){}finally{URL.revokeObjectURL(i)}return n&&!s});var Up=(o,t)=>()=>{if(t===null)return Promise.resolve(!1);let e=new t(1,1,44100),r=o(e,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return new Promise(i=>{e.oncomplete=()=>{r.disconnect(),i(e.currentTime!==0)},e.startRendering()})};var yc=()=>new DOMException("","UnknownError");var Yg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},zp=(o,t,e,r,i,n,s)=>class extends o{constructor(c,u){let h=i(c),l=R(R({},Yg),u),p=e(h,l),f=n(h)?r():null;super(c,!0,p,f),this._isCurveNullified=!1,this._nativeWaveShaperNode=p,s(this,1)}get curve(){return this._isCurveNullified?null:this._nativeWaveShaperNode.curve}set curve(c){if(c===null)this._isCurveNullified=!0,this._nativeWaveShaperNode.curve=new Float32Array([0,0]);else{if(c.length<2)throw t();this._isCurveNullified=!1,this._nativeWaveShaperNode.curve=c}}get oversample(){return this._nativeWaveShaperNode.oversample}set oversample(c){this._nativeWaveShaperNode.oversample=c}};var Yp=(o,t,e)=>()=>{let r=new WeakMap,i=(n,s)=>X(null,null,function*(){let a=t(n);if(!pt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,curve:a.curve,oversample:a.oversample};a=o(s,u)}return r.set(s,a),Oe(a)?yield e(n,s,a.inputs[0]):yield e(n,s,a),a});return{render(n,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):i(n,s)}}};var Hp=()=>typeof window=="undefined"?null:window;var Qp=(o,t)=>e=>{e.copyFromChannel=(r,i,n=0)=>{let s=o(n),a=o(i);if(a>=e.numberOfChannels)throw t();let c=e.length,u=e.getChannelData(a),h=r.length;for(let l=s<0?-s:0;l+s<c&&l<h;l+=1)r[l]=u[l+s]},e.copyToChannel=(r,i,n=0)=>{let s=o(n),a=o(i);if(a>=e.numberOfChannels)throw t();let c=e.length,u=e.getChannelData(a),h=r.length;for(let l=s<0?-s:0;l+s<c&&l<h;l+=1)u[l+s]=r[l]}};var Zp=o=>t=>{t.copyFromChannel=(e=>(r,i,n=0)=>{let s=o(n),a=o(i);if(s<t.length)return e.call(t,r,a,s)})(t.copyFromChannel),t.copyToChannel=(e=>(r,i,n=0)=>{let s=o(n),a=o(i);if(s<t.length)return e.call(t,r,a,s)})(t.copyToChannel)};var Xp=o=>(t,e)=>{let r=e.createBuffer(1,1,44100);t.buffer===null&&(t.buffer=r),o(t,"buffer",i=>()=>{let n=i.call(t);return n===r?null:n},i=>n=>i.call(t,n===null?r:n))};var Jp=(o,t)=>(e,r)=>{r.channelCount=1,r.channelCountMode="explicit",Object.defineProperty(r,"channelCount",{get:()=>1,set:()=>{throw o()}}),Object.defineProperty(r,"channelCountMode",{get:()=>"explicit",set:()=>{throw o()}});let i=e.createBufferSource();t(r,()=>{let a=r.numberOfInputs;for(let c=0;c<a;c+=1)i.connect(r,0,c)},()=>i.disconnect(r))};var bc=(o,t,e)=>o.copyFromChannel===void 0?o.getChannelData(e)[0]:(o.copyFromChannel(t,e),t[0]);var Ac=o=>{if(o===null)return!1;let t=o.length;return t%2!==0?o[Math.floor(t/2)]!==0:o[t/2-1]+o[t/2]!==0};var Ui=(o,t,e,r)=>{let i=o;for(;!i.hasOwnProperty(t);)i=Object.getPrototypeOf(i);let{get:n,set:s}=Object.getOwnPropertyDescriptor(i,t);Object.defineProperty(o,t,{get:e(n),set:r(s)})};var Kp=o=>Z(R({},o),{outputChannelCount:o.outputChannelCount!==void 0?o.outputChannelCount:o.numberOfInputs===1&&o.numberOfOutputs===1?[o.channelCount]:Array.from({length:o.numberOfOutputs},()=>1)});var $p=o=>Z(R({},o),{channelCount:o.numberOfOutputs});var td=o=>{let{imag:t,real:e}=o;return t===void 0?e===void 0?Z(R({},o),{imag:[0,0],real:[0,0]}):Z(R({},o),{imag:Array.from(e,()=>0),real:e}):e===void 0?Z(R({},o),{imag:t,real:Array.from(t,()=>0)}):Z(R({},o),{imag:t,real:e})};var Cc=(o,t,e)=>{try{o.setValueAtTime(t,e)}catch(r){if(r.code!==9)throw r;Cc(o,t,e+1e-7)}};var ed=o=>{let t=o.createBufferSource();t.start();try{t.start()}catch(e){return!0}return!1};var rd=o=>{let t=o.createBufferSource(),e=o.createBuffer(1,1,44100);t.buffer=e;try{t.start(0,1)}catch(r){return!1}return!0};var id=o=>{let t=o.createBufferSource();t.start();try{t.stop()}catch(e){return!1}return!0};var ns=o=>{let t=o.createOscillator();try{t.start(-1)}catch(e){return e instanceof RangeError}return!1};var _c=o=>{let t=o.createBuffer(1,1,44100),e=o.createBufferSource();e.buffer=t,e.start(),e.stop();try{return e.stop(),!0}catch(r){return!1}};var ss=o=>{let t=o.createOscillator();try{t.stop(-1)}catch(e){return e instanceof RangeError}return!1};var od=o=>{let{port1:t,port2:e}=new MessageChannel;try{t.postMessage(o)}finally{t.close(),e.close()}};var nd=o=>{o.start=(t=>(e=0,r=0,i)=>{let n=o.buffer,s=n===null?r:Math.min(n.duration,r);n!==null&&s>n.duration-.5/o.context.sampleRate?t.call(o,e,0,0):t.call(o,e,s,i)})(o.start)};var vc=(o,t)=>{let e=t.createGain();o.connect(e);let r=(i=>()=>{i.call(o,e),o.removeEventListener("ended",r)})(o.disconnect);o.addEventListener("ended",r),Re(o,e),o.stop=(i=>{let n=!1;return(s=0)=>{if(n)try{i.call(o,s)}catch(a){e.gain.setValueAtTime(0,s)}else i.call(o,s),n=!0}})(o.stop)};var $r=(o,t)=>e=>{let r={value:o};return Object.defineProperties(e,{currentTarget:r,target:r}),typeof t=="function"?t.call(o,e):t.handleEvent.call(o,e)};var Hg=Zu(Ve),Qg=nh(Ve),Zg=tl(Mr),ad=new WeakMap,Xg=gl(ad),Ee=Ph(new Map,new WeakMap),er=Hp(),cd=zl(Ee,Ne),Ic=fl(Ht),Xt=kp(Ht,Ic,fr),Jg=uh(cd,Ct,Xt),It=bl(Ri),gr=xp(er),_t=kl(gr),ud=new WeakMap,hd=ul($r),zi=Zl(er),Sc=Rl(zi),wc=El(er),ld=Ml(er),Go=Jl(er),jt=wh(Xu(Hn),oh(Hg,Qg,Di,Zg,ki,Ht,Xg,$e,Ct,Ve,ne,fr,Pi),Ee,Sl(Lo,ki,Ht,Ct,Jr,ne),Ne,Bi,Zt,Jh(Di,Lo,Ht,Ct,Jr,It,ne,_t),il(ud,Ht,Gt),hd,It,Sc,wc,ld,_t,Go),Kg=ch(jt,Jg,Ne,cd,It,_t);var Tc=new WeakSet,sd=Yl(er),pd=zh(new Uint32Array(1)),Nc=Qp(pd,Ne),Oc=Zp(pd),Rc=hh(Tc,Ee,Zt,sd,gr,qp(sd),Nc,Oc);var as=sh(se),dd=Pp(Ic,Dr,fr),rr=Vh(dd),Yi=Ql(as,Ee,ed,rd,id,ns,_c,ss,nd,Xp(Ui),vc),ir=Dp(xl(Dr),dd),$g=dh(rr,Yi,Ct,ir,Xt),qe=Th(Ju(Qn),ud,jo,Nh,tc,ec,rc,ic,oc,wi,Eo,zi,Cc),tx=ph(jt,$g,qe,wt,Yi,It,_t,$r);var ex=Ch(jt,_h,Ne,wt,Xl(se,Ui),It,_t,Xt),rx=kh(rr,gc,Ct,ir,Xt),ti=Fp(ad),ix=Dh(jt,qe,rx,Bi,gc,It,_t,ti),jr=Wl(Ve,wc),ox=Jp(wt,jr),Lr=op(zi,ox),nx=Lh(Lr,Ct,Xt),sx=jh(jt,nx,Lr,It,_t),ax=Bh(qi,Ct,Xt),cx=Fh(jt,ax,qi,It,_t,$p),ux=ap(as,Yi,se,jr),Hi=sp(as,Ee,ux,ns,ss),hx=Uh(rr,Hi,Ct,ir,Xt),lx=Wh(jt,qe,hx,Hi,It,_t,$r),md=cp(Zt,Ui),px=Hh(md,Ct,Xt),dx=Yh(jt,px,md,It,_t,ti),mx=$h(rr,xc,Ct,ir,Xt),fx=Kh(jt,qe,mx,xc,It,_t,ti),fd=up(Zt),gx=sl(rr,fd,Ct,ir,Xt),xx=nl(jt,qe,gx,fd,Zt,It,_t,ti),yx=dl(rr,se,Ct,ir,Xt),bx=pl(jt,qe,yx,se,It,_t),Ax=pp(Bi,wt,Wi,Zt),cs=jp(Ee,se,Wi,Up(se,gr)),Cx=Il(Yi,Ct,gr,Xt,cs),_x=hp(Ax),vx=vl(jt,_x,Cx,It,_t,ti),Ix=vh(qe,Lr,Hi,Wi,Zt,bc,_t,Ui),gd=new WeakMap,Ec=Gl(ex,Ix,hd,_t,gd,$r),xd=yp(as,Ee,ns,_c,ss,vc),Sx=Np(rr,xd,Ct,ir,Xt),wx=Tp(jt,qe,xd,Sx,It,_t,$r),yd=qh(Yi),Tx=Sp(yd,wt,se,Ac,jr),us=Ip(yd,wt,Tx,Ac,jr,zi,Ui),Nx=Ap(Di,wt,Lr,se,Wi,us,Zt,ki,bc,jr),bd=bp(Nx),Ox=Rp(rr,Lr,Hi,se,bd,Ct,gr,ir,Xt,cs),Rx=Op(jt,qe,bd,Ox,It,_t,ti),Ex=Cp(Ne),Mx=Ep(Ex,It,new WeakSet,td),Dx=vp(Lr,qi,se,us,Zt,jr),Ad=_p(Dx,Zt),kx=Gp(rr,Ad,Ct,ir,Xt),Px=Vp(jt,qe,Ad,kx,It,_t),jx=Yp(us,Ct,Xt),Lx=zp(jt,wt,us,jx,It,_t,ti),Cd=Pl(er),Mc=hl(er),_d=new WeakMap,Fx=Al(_d,gr),Bx=Cd?ih(Ee,Zt,cl(er),Mc,ll(Qu),It,Fx,_t,Go,new WeakMap,new WeakMap,Wp(Go,gr),er):void 0,Vx=Dl(Sc,_t),Gx=Xh(Tc,Ee,Zh,al,new WeakSet,It,Vx,Ei,Ge,Nc,Oc),vd=Mh(Bx,Kg,Rc,tx,ix,sx,cx,lx,dx,Gx,fx,xx,bx,vx,Ec,wx,Rx,Mx,Px,Lx),qx=jl(jt,dp,It,_t),Wx=Ll(jt,mp,It,_t),Ux=Fl(jt,fp,It,_t),zx=gp(wt,_t),Yx=Bl(jt,zx,It),Id=Ah(vd,wt,Zt,yc,qx,Wx,Ux,Yx,zi);var Dc=Cl(gd),Hx=ah(Dc),Sd=Gh(Ne),Qx=el(Dc),wd=ol(Ne),Td=new WeakMap,Zx=ml(Td,Gt),Xx=ip(Sd,Ne,wt,Lr,qi,Hi,se,Wi,Zt,wd,Mc,Zx,jr),Jx=$l(wt,Xx,se,Zt,jr),Kx=Eh(rr,Sd,Yi,Lr,qi,Hi,se,Qx,wd,Mc,Ct,Go,gr,ir,Xt,cs),$x=yl(_d),ty=Lp(Td),kc=Cd?Oh(Hx,jt,qe,Kx,Jx,Ht,$x,It,_t,Go,Kp,ty,od,$r):void 0;var oq=Vl(wt,Zt,yc,Ec,zi);var Nd=Qh(Zt,gr),Od=Bp(Tc,Ee,Ic,Dc,cs,Ei,Nc,Oc),nq=ql(Ee,wt,Nd,Ec,Od);var Rd=wp(vd,Ee,wt,Nd,Od);var Ed=wl(Ri,Sc),Md=Tl(Oi,wc),Dd=Nl(jo,ld),kd=Ol(Ri,_t);function Lt(o){return o===void 0}function $(o){return o!==void 0}function Pd(o){return typeof o=="function"}function Jt(o){return typeof o=="number"}function We(o){return Object.prototype.toString.call(o)==="[object Object]"&&o.constructor===Object}function Pc(o){return typeof o=="boolean"}function Nt(o){return Array.isArray(o)}function te(o){return typeof o=="string"}function qo(o){return te(o)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(o)}function V(o,t){if(!o)throw new Error(t)}function Mt(o,t,e=1/0){if(!(t<=o&&o<=e))throw new RangeError(`Value must be within [${t}, ${e}], got: ${o}`)}function hs(o){!o.isOffline&&o.state!=="running"&&ei('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}var Ld=!1,jd=!1;function jc(o){Ld=o}function Fd(o){Lt(o)&&Ld&&!jd&&(jd=!0,ei("Events scheduled inside of scheduled callbacks should use the passed in scheduling time. See https://github.com/Tonejs/Tone.js/wiki/Accurate-Timing"))}var Bd=console;function Vd(...o){Bd.log(...o)}function ei(...o){Bd.warn(...o)}function Gd(o){return new Id(o)}function qd(o,t,e){return new Rd(o,t,e)}var ee=typeof self=="object"?self:null,Wd=ee&&(ee.hasOwnProperty("AudioContext")||ee.hasOwnProperty("webkitAudioContext"));function Ud(o,t,e){return V($(kc),"AudioWorkletNode only works in a secure context (https or localhost)"),new(o instanceof(ee==null?void 0:ee.BaseAudioContext)?ee==null?void 0:ee.AudioWorkletNode:kc)(o,t,e)}function re(o,t,e,r){var i=arguments.length,n=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(n=(i<3?s(n):i>3?s(t,e,n):s(t,e))||n);return i>3&&n&&Object.defineProperty(t,e,n),n}function lt(o,t,e,r){function i(n){return n instanceof e?n:new e(function(s){s(n)})}return new(e||(e=Promise))(function(n,s){function a(h){try{u(r.next(h))}catch(l){s(l)}}function c(h){try{u(r.throw(h))}catch(l){s(l)}}function u(h){h.done?n(h.value):i(h.value).then(a,c)}u((r=r.apply(o,t||[])).next())})}var ls=class{constructor(t,e,r,i){this._callback=t,this._type=e,this._minimumUpdateInterval=Math.max(128/(i||44100),.001),this.updateInterval=r,this._createClock()}_createWorker(){let t=new Blob([`
|
|
1
|
+
/* WebMusicScore v3.0.1 | (c) 2023 PahkaSoft | MIT License | Includes: Tone.js (MIT License) */
|
|
2
|
+
"use strict";var WebMusicScore=(()=>{var Ln=Object.defineProperty,xm=Object.defineProperties,ym=Object.getOwnPropertyDescriptor,bm=Object.getOwnPropertyDescriptors,Am=Object.getOwnPropertyNames,jn=Object.getOwnPropertySymbols;var Oa=Object.prototype.hasOwnProperty,du=Object.prototype.propertyIsEnumerable;var mu=Math.pow,Na=(o,t,e)=>t in o?Ln(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,R=(o,t)=>{for(var e in t||(t={}))Oa.call(t,e)&&Na(o,e,t[e]);if(jn)for(var e of jn(t))du.call(t,e)&&Na(o,e,t[e]);return o},Z=(o,t)=>xm(o,bm(t));var wr=(o,t)=>{var e={};for(var r in o)Oa.call(o,r)&&t.indexOf(r)<0&&(e[r]=o[r]);if(o!=null&&jn)for(var r of jn(o))t.indexOf(r)<0&&du.call(o,r)&&(e[r]=o[r]);return e};var _i=(o,t)=>{for(var e in t)Ln(o,e,{get:t[e],enumerable:!0})},Cm=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Am(t))!Oa.call(o,i)&&i!==e&&Ln(o,i,{get:()=>t[i],enumerable:!(r=ym(t,i))||r.enumerable});return o};var _m=o=>Cm(Ln({},"__esModule",{value:!0}),o);var m=(o,t,e)=>Na(o,typeof t!="symbol"?t+"":t,e);var X=(o,t,e)=>new Promise((r,i)=>{var n=c=>{try{a(e.next(c))}catch(u){i(u)}},s=c=>{try{a(e.throw(c))}catch(u){i(u)}},a=c=>c.done?r(c.value):Promise.resolve(c.value).then(n,s);a((e=e.apply(o,t)).next())});var ib={};_i(ib,{Audio:()=>tn,Core:()=>Pa,Pieces:()=>pu,Score:()=>lu,Theory:()=>Ha});var tn={};_i(tn,{getCurrentInstrument:()=>Ty,getInstrumentList:()=>wy,playNote:()=>ks,registerInstrument:()=>Ny,setInstrument:()=>cm,stop:()=>Jc});var Ha={};_i(Ha,{AccidentalType:()=>La,Chord:()=>Ba,DefaultGuitarNoteLabel:()=>Ff,DefaultHandedness:()=>hg,DefaultPitchNotation:()=>jf,DefaultTuningName:()=>pg,GuitarNoteLabel:()=>Bn,GuitarNoteLabelList:()=>Bf,Handedness:()=>Ga,Interval:()=>No,KeySignature:()=>Le,MaxNoteLength:()=>Wu,MinNoteLength:()=>Si,Mode:()=>ja,Note:()=>G,NoteLength:()=>Vt,PitchNotation:()=>Nr,PitchNotationList:()=>Pf,RhythmProps:()=>$t,Scale:()=>Er,ScaleFactory:()=>Yt,ScaleType:()=>Je,SymbolSet:()=>Tr,TimeSignature:()=>pr,TuningNameList:()=>Oo,alterTempoSpeed:()=>Ya,getDefaultKeySignature:()=>Vn,getDefaultScale:()=>rg,getDefaultTempo:()=>Un,getDefaultTimeSignature:()=>Wn,getPitchNotationName:()=>Lf,getScale:()=>Rr,getScaleFactory:()=>Vu,getScaleFactoryList:()=>tg,getTempoString:()=>za,getTuningStrings:()=>qn,validateGuitarNoteLabel:()=>Vf,validateHandedness:()=>lg,validateIntervalQuality:()=>Zf,validateNoteLength:()=>Uu,validatePitchNotation:()=>Eu,validateScaleType:()=>Fa,validateTuningName:()=>qa});var gu=Object.defineProperty,vm=(o,t,e)=>t in o?gu(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,hr=(o,t)=>{for(var e in t)gu(o,e,{get:t[e],enumerable:!0})},Xe=(o,t,e)=>vm(o,typeof t!="symbol"?t+"":t,e),I={};hr(I,{Arr:()=>xu,Dom:()=>Cu,Enum:()=>_u,Is:()=>vu,Map:()=>Su,Math:()=>yu,Obj:()=>wu,Str:()=>Tu});var xu={};hr(xu,{arrayContains:()=>Vm,chunckArray:()=>Gm,duplicate:()=>km,fillArray:()=>Lm,getRangeArray:()=>Bm,getSequenceArray:()=>Fm,isArray:()=>Ea,mapRangeArray:()=>Au,mapSequenceArray:()=>bu,removeDuplicates:()=>Pm,removeDuplicatesCmp:()=>jm,toArray:()=>Dm});var yu={};hr(yu,{calcNormal:()=>Em,clamp:()=>Rm,interpolateCoord:()=>Nm,interpolateY:()=>Om,isInteger:()=>we,linearToDecibels:()=>Im,mod:()=>Sm,romanize:()=>wm,sum:()=>Mm,toOrdinalNumber:()=>Tm});function we(o){return typeof o=="number"&&isFinite(o)&&o===Math.trunc(o)}function Im(o){if(isFinite(o))return o<=0?-1/0:20*Math.log10(o);throw new Error("linearToDecibel: Invalid linearVolume = "+o)}function Sm(o,t){return(o%t+t)%t}function wm(o){if(!we(o)||o<0)throw new Error("romanize: Invalid n = "+o);for(var t=String(+o).split(""),e=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"],r="",i=3;i--;)r=(e[+t.pop()+i*10]||"")+r;return Array(+t.join("")+1).join("M")+r}function Tm(o){if(!we(o))throw new Error("toOrdinalNumber: Invalid n = "+o);let t=o.toString(),e=Number(t.charAt(t.length-1));return o===1||o>=20&&e===1?t+"st":o===2||o>=20&&e===2?t+"nd":o===3||o>=20&&e===3?t+"rd":t+"th"}function Nm(o,t,e,r,i){return{x:o+(e-o)*i,y:t+(r-t)*i}}function Om(o,t,e,r,i){let n=(i-o)/(e-o);return t+(r-t)*n}function Rm(o,t,e){return Math.min(Math.max(o,t),e)}function Em(o,t,e,r){let i=e-o,s=-(r-t),a=i,c=Math.sqrt(s*s+a*a);return c>0?(s/=c,a/=c):(s=0,a=1),{nx:s,ny:a}}function Mm(o){return o.reduce((t,e)=>e+t,0)}function Ea(o){return!!o&&Object.prototype.toString.call(o)==="[object Array]"}function Dm(o){return Ea(o)?o:[o]}function km(o){return o===void 0?o:o.slice()}function Pm(o){return o.filter((t,e,r)=>r.indexOf(t)===e)}function jm(o,t){return o.filter((e,r,i)=>r===i.findIndex(n=>t(e,n)))}function Lm(o,t){if(!we(t)||t<0)throw new Error("fillArray: Invalid fillCount = "+t);return new Array(t).fill(o)}function bu(o,t){if(!we(o)||o<0)throw new Error("mapSequenceArray: Invalid len = "+o);let e=new Array(o);for(let r=0;r<o;r++)e[r]=t(r);return e}function Fm(o){return bu(o,t=>t)}function Au(o,t,e){if(!we(o))throw new Error("mapRangeArray: Invalid start = "+t);if(!we(t))throw new Error("mapRangeArray: Invalid end = "+t);let r=Math.abs(t-o)+1,i=new Array(r);for(let n=0,s=o,a=Math.sign(t-o);n<r;s+=a,n++)i[n]=e(s);return i}function Bm(o,t){return Au(o,t,e=>e)}function Vm(o,t){return o.indexOf(t)>=0}function Gm(o,t){if(!we(t)||t<1)throw new Error("chunckArray: Invalid chunckSize = "+t);let e=[];for(let r=0;r<o.length;r+=t)e.push(o.slice(r,r+t));return e}var Cu={};hr(Cu,{addClass:()=>qm,appendTo:()=>Xm,getButton:()=>tf,getCanvas:()=>ef,getCanvasTextWidth:()=>sf,getDimension:()=>of,getHeight:()=>Qm,getOffset:()=>zm,getPadding:()=>rf,getWidth:()=>Ym,hasClass:()=>Ma,removeClass:()=>Wm,removeFromParent:()=>Jm,setHeight:()=>Zm,setOffset:()=>Um,setRect:()=>$m,setVisibility:()=>Km,setWidth:()=>Hm,styleLayoutChanged:()=>nf});var _u={};hr(_u,{getEnumValues:()=>Fn});function Fn(o){return Object.keys(o).filter(t=>Number.isNaN(Number(t))).map(t=>o[t])}var Ra;(o=>{let t=Error;function e(y){t=y!=null?y:Error}o.setErrorClass=e;function r(y,N){throw new t("Assertion Error: "+y+(N?" "+N:""))}function i(y){return typeof y=="number"&&isFinite(y)&&y===Math.trunc(y)}function n(y){return typeof y=="number"}function s(y,N){y||r(N!=null?N:"Assertion failed!")}o.assert=s;function a(y,N,D="value"){if(!Fn(N).some(M=>M===y))throw new TypeError(`Invalid ${D} enum value: ${y}`)}o.assertEnum=a;function c(y){r(y!=null?y:"Interrupted!")}o.interrupt=c;function u(y,N){return i(y)||r(`Expected ${y} to be integer.`,N),y}o.int=u;function h(y,N,D){return y!==N&&r(`Expected ${y} to equal ${N}.`,D),y}o.eq=h;function l(y,N,D){return i(y)&&n(N)&&y===N||r(`Expected ${y} to be integer equal to ${N}.`,D),y}o.int_eq=l;function p(y,N,D){return i(y)&&n(N)&&y<N||r(`Expected ${y} to be integer less than ${N}.`,D),y}o.int_lt=p;function d(y,N,D){return i(y)&&n(N)&&y<=N||r(`Expected ${y} to be integer less than or equal to ${N}.`,D),y}o.int_lte=d;function f(y,N,D){return i(y)&&n(N)&&y>N||r(`Expected ${y} to be integer greater than ${N}.`,D),y}o.int_gt=f;function g(y,N,D){return i(y)&&n(N)&&y>=N||r(`Expected ${y} to be integer greater than or equal to ${N}.`,D),y}o.int_gte=g;function x(y,N,D,M){return i(y)&&n(N)&&n(D)&&y>=N&&y<=D||r(`Expected ${y} to be integer between ${N} and ${D}.`,M),y}o.int_between=x;function b(y,N){return i(y)&&y%2===1||r(`Expected ${y} to be odd number.`,N),y}o.odd=b;function v(y,N){return i(y)&&y%2===0||r(`Expected ${y} to be even number.`,N),y}o.even=v;function S(y,N,D){if(!N.some(M=>M===y)){let M=N.map(O=>String(O)).join(", ");r(`Expected ${y} to be in group [${M}].`,D)}return y}o.in_group=S;function T(y,N){return n(y)&&isFinite(y)||r(`Expected ${y} to be finite number.`,N),y}o.finite=T;function _(y,N,D){return i(N)&&N>=0&&N<y.length||r(`Expected ${N} to be array index in bounds [0..${y.length-1}].`,D),N}o.array_id=_;function C(y,N,D){return y[_(y,N,D)]}o.array_elem=C;function A(y,N){if(y===void 0)r("Required value is undefined.",N);else return y}o.require=A})(Ra||(Ra={}));var wo;(o=>{function t(){let p=document.createElement("div");p.style.width="1in",document.body.appendChild(p);let d=p.offsetWidth;return p.remove(),d||96}function e(){try{let p=document.createElement("div");p.style.visibility="hidden",p.style.width="100px",document.body.appendChild(p);let d=p.offsetWidth;p.style.overflow="scroll";let f=document.createElement("div");f.style.width="100%",p.appendChild(f);let g=f.offsetWidth;return p.parentNode&&p.parentNode.removeChild(p),d-g}catch(p){return 0}}function r(){let p=document.createElement("div");p.style.cssText="display:inline-block; padding:0; line-height:1; position:absolute; visibility:hidden; font-size:1em",p.appendChild(document.createTextNode("M")),document.body.appendChild(p);let d=p.offsetHeight;return document.body.removeChild(p),d}function i(){if("ontouchstart"in window||"DocumentTouch"in window||"createTouch"in document&&"createTouchList"in document)return!0;var p=" -webkit- -moz- -o- -ms- ".split(" "),d=function(g){return window.matchMedia(g).matches},f=["(",p.join("touch-enabled),("),"heartz",")"].join("");return d(f)}function n(){let p=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(p)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(p.substr(0,4))}function s(){return location.protocol+"//"+location.host}let a=/^(mm|cm|in|inch|px|em)$/,c=/^([0-9\\.]+)(.*)$/;o.DPI=t(),o.PxPerMm=o.DPI/25.4,o.ScrollbarWidth=e(),o.FontSize=r(),o.IsTouchDevice=i(),o.IsMobileDevice=n(),o.HostAddress=s();function u(p){return p/o.PxPerMm}o.pxToMm=u;function h(p){return p*o.PxPerMm}o.mmToPx=h;function l(p){if(typeof p=="number")return p;let d=NaN,f,g=p.toString().match(c);if(g&&g[1]){d=parseFloat(g[1]);let x=g[2]?g[2].toLowerCase():"undefined";f=a.test(x)?x:void 0,f||console.log("Unknown unit '"+x+"' => using 'px'.")}else d=parseFloat(p);switch(Ra.finite(d,"value in function toPx"),f){case"mm":return h(d);case"cm":return h(d)*10;case"in":case"inch":return h(d)*25.4;case"em":return o.FontSize*d;default:case"px":return d}}o.toPx=l})(wo||(wo={}));function vt(o){return o===void 0?void 0:wo.toPx(o)}function Ma(o,t){return t.length===0?!1:o.classList?o.classList.contains(t):!!o.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))}function qm(o,t){t.length!==0&&(o.classList?o.classList.add(t):Ma(o,t)||(o.className+=" "+t))}function Wm(o,t){if(t.length!==0){if(o.classList)o.classList.remove(t);else if(Ma(o,t)){var e=new RegExp("(\\s|^)"+t+"(\\s|$)");o.className=o.className.replace(e," ")}}}function Um(o,t,e,r="px"){o.style.left=t+r,o.style.top=e+r}function zm(o){let t=o.getBoundingClientRect(),e=document.documentElement;return{top:t.top+window.pageYOffset-e.clientTop,left:t.left+window.pageXOffset-e.clientLeft}}function Ym(o){if(o instanceof Window)return o.innerWidth;{let t=parseFloat(getComputedStyle(o,null).width.replace("px",""));return isNaN(t)?0:t}}function Hm(o,t){o.style.width=t+"px"}function Qm(o){if(o instanceof Window)return o.innerHeight;{let t=parseFloat(getComputedStyle(o,null).height.replace("px",""));return isNaN(t)?0:t}}function Zm(o,t){o.style.height=t+"px"}function Xm(o,t){t.appendChild(o)}function Jm(o){o.remove()}function Km(o,t){o.style.display=t?"block":"none"}function $m(o,t,e,r,i,n="px"){o.style.left=t+n,o.style.top=e+n,o.style.width=r+n,o.style.height=i+n}function tf(o){let t=typeof o=="string"?document.getElementById(o):o;return t instanceof HTMLButtonElement?t:void 0}function ef(o){let t=typeof o=="string"?document.getElementById(o):o;return t instanceof HTMLCanvasElement?t:void 0}function rf(o){var s;if(!o)return{top:0,right:0,bottom:0,left:0};let t=vt(o.paddingTop),e=vt(o.paddingRight),r=vt(o.paddingBottom),i=vt(o.paddingLeft),n=((s=o.padding)!=null?s:"").toString().split(" ").filter(a=>a.length>0);switch(n.length){case 0:break;case 1:t!=null||(t=vt(n[0])),e!=null||(e=vt(n[0])),r!=null||(r=vt(n[0])),i!=null||(i=vt(n[0]));break;case 2:t!=null||(t=vt(n[0])),e!=null||(e=vt(n[1])),r!=null||(r=vt(n[0])),i!=null||(i=vt(n[1]));break;case 3:t!=null||(t=vt(n[0])),e!=null||(e=vt(n[1])),r!=null||(r=vt(n[2])),i!=null||(i=vt(n[1]));break;case 4:default:t!=null||(t=vt(n[0])),e!=null||(e=vt(n[1])),r!=null||(r=vt(n[2])),i!=null||(i=vt(n[3]));break}return t!=null||(t=0),e!=null||(e=0),r!=null||(r=0),i!=null||(i=0),{top:t,right:e,bottom:r,left:i}}function of(o){let t=vt(o==null?void 0:o.left),e=vt(o==null?void 0:o.right),r=vt(o==null?void 0:o.top),i=vt(o==null?void 0:o.bottom),n=vt(o==null?void 0:o.width),s=vt(o==null?void 0:o.height);return n===void 0&&t!==void 0&&e!==void 0&&(n=e-t),s===void 0&&r!==void 0&&i!==void 0&&(s=i-r),{left:t,top:r,width:n,height:s}}function nf(o,t){return!o&&!t?!1:!o||!t?!0:o.left!==t.left||o.top!==t.top||o.right!==t.right||o.bottom!==t.bottom||o.width!==t.width||o.height!==t.height}var Io;function sf(o,t){Io!=null||(Io=document.createElement("canvas"));let e=Io.getContext("2d");return e?(e.font=t,e.measureText(o).width):0}var vu={};hr(vu,{isArray:()=>Da,isArrayOrUndefined:()=>hf,isBoolean:()=>df,isBooleanOrUndefined:()=>mf,isEnumValue:()=>bf,isEnumValueOrUndefined:()=>Af,isFunction:()=>ff,isFunctionOrUndefined:()=>gf,isInteger:()=>vi,isIntegerEq:()=>Cf,isIntegerGt:()=>_f,isIntegerGte:()=>vf,isIntegerLt:()=>If,isIntegerLte:()=>Sf,isNull:()=>cf,isNumber:()=>xf,isNumberOrUndefined:()=>yf,isObject:()=>Iu,isObjectOrUndefined:()=>uf,isString:()=>lf,isStringOrUndefined:()=>pf,isUndefined:()=>af});function af(o){return o===void 0}function cf(o){return o===null}function Iu(o){return typeof o=="object"&&o!==null&&!Da(o)}function uf(o){return o===void 0||Iu(o)}function Da(o){return!!o&&Object.prototype.toString.call(o)==="[object Array]"}function hf(o){return o===void 0||Da(o)}function lf(o){return typeof o=="string"}function pf(o){return o===void 0||typeof o=="string"}function df(o){return typeof o=="boolean"}function mf(o){return o===void 0||typeof o=="boolean"}function ff(o){return typeof o=="function"}function gf(o){return o===void 0||typeof o=="function"}function xf(o){return typeof o=="number"}function yf(o){return o===void 0||typeof o=="number"}function bf(o,t,e="value"){return Fn(t).some(r=>r===o)}function Af(o,t,e="value"){return o===void 0||Fn(t).some(r=>r===o)}function vi(o){return typeof o=="number"&&isFinite(o)&&o===Math.trunc(o)}function Cf(o,t){return vi(o)&&o===t}function _f(o,t){return vi(o)&&o>t}function vf(o,t){return vi(o)&&o>=t}function If(o,t){return vi(o)&&o<t}function Sf(o,t){return vi(o)&&o<=t}var Su={};hr(Su,{getMapKeys:()=>wf});function wf(o){let t=[];return o.forEach((e,r)=>t.push(r)),t}var wu={};hr(wu,{isObject:()=>Tf});function Tf(o){return typeof o=="object"&&o!==null&&!Ea(o)}var Tu={};hr(Tu,{chunkString:()=>Rf,insertAt:()=>Ef,makeSentenceFromPascal:()=>Df,removeAt:()=>Mf,repeatString:()=>Of,replaceAt:()=>ka,toCharArray:()=>Nf});function Nf(o){return o.split("")}function Of(o,t){if(!we(t)||t<0)throw new Error("repeatStr: Invalid repeatCount = "+t);return new Array(t+1).join(o)}function Rf(o,t){if(!we(t)||t<1)throw new Error("chunckString: Invalid chuckSize = "+t);let e=[];for(let r=0;r<o.length;r+=t)e.push(o.slice(r,r+t));return e}function ka(o,t,e,r){if(!we(e)||e<0)throw new Error("replaceAt: Invalid removeCount = "+e);if(!we(t)||t<0||t+e>o.length)throw new Error("replaceAt: Invalid pos = "+t+", removeCount = "+e+", str.length = "+o.length);return o.substring(0,t)+r+o.substring(t+e)}function Ef(o,t,e){return ka(o,t,0,e)}function Mf(o,t,e){return ka(o,t,e,"")}function Df(o){if(o==="")return"";let t=o.charAt(0),e="",r=()=>{t!==""&&(e===""?e+=t.charAt(0).toUpperCase()+t.substring(1):e+=" "+t,t="")},i=n=>n.toUpperCase()!==n.toLowerCase()&&n===n.toUpperCase();for(let n=1;n<o.length;n++){let s=o.charAt(n);i(s)&&r(),t+=s.toLowerCase()}return r(),e}var fu;(o=>{let t="ConsentCookie",e;(T=>{T.Accept="accept",T.Decline="decline"})(e||(e={}));let r,i,n=p(t);r=n==="accept"||n==="decline"?n:void 0;function s(T){i=new Date,i.setDate(i.getDate()+T)}o.setExpireDays=s;function a(){return r===void 0}o.isConsentPending=a;function c(){r="accept",l(t,r)}o.accept=c;function u(){r="decline",l(t,r)}o.decline=u;function h(){return document.cookie.split(";").map(_=>_.trim())}function l(T,_){let C=T+"="+_.toString()+";sameSite=Lax;";return i&&(C+="expires="+i.toUTCString()+";"),document.cookie=C,_}function p(T,_){let C=h().find(A=>A.startsWith(T+"="));return C===void 0?_:C.substring(T.length+1)}function d(T){document.cookie=T+"=;expires=Thu, 01 Jan 1970 00:00:00 UTC;"}function f(T,_){return r==="accept"&&l(T,_),_}o.save=f;function g(T,_){return r==="accept"&&p(T,_)||_}o.read=g;function x(T,_){if(r==="accept"){let C=p(T);return C===void 0?_:parseInt(C)}else return _}o.readInt=x;function b(T,_){if(r==="accept"){let C=p(T);return C===void 0?_:/true|1/i.test(C)}else return _}o.readBool=b;function v(T){(r==="accept"||T===t)&&d(T)}o.erase=v;function S(){document.cookie.split(";").forEach(T=>v(T.trim().split("=")[0]))}o.eraseAll=S})(fu||(fu={}));var Nu=class So{constructor(t,e){Xe(this,"x"),Xe(this,"y"),this.x=t!=null?t:0,this.y=e!=null?e:0}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}add(t){return new So(this.x+t.x,this.y+t.y)}sub(t){return new So(this.x-t.x,this.y-t.y)}mul(t){return new So(this.x*t,this.y*t)}div(t){return new So(this.x/t,this.y/t)}},Ou=class{constructor(o,t=1/0){Xe(this,"cache"),Xe(this,"next"),Xe(this,"prev"),Xe(this,"head"),Xe(this,"tail"),Xe(this,"capacity"),Xe(this,"size"),Xe(this,"maxKeyLength"),this.cache=Object.create(null),this.next=Object.create(null),this.prev=Object.create(null),this.head=null,this.tail=null,this.capacity=o,this.size=0,this.maxKeyLength=t}get(o){if(!(o.length>this.maxKeyLength)&&this.cache[o]!==void 0)return this.touch(o),this.cache[o]}set(o,t){if(!(o.length>this.maxKeyLength)){if(this.cache[o]!==void 0){this.cache[o]=t,this.touch(o);return}this.size>=this.capacity&&this.evict(),this.cache[o]=t,this.addToTail(o),this.size++}}touch(o){this.tail!==o&&(this.removeKey(o),this.addToTail(o))}evict(){if(this.head!==null){let o=this.head;this.removeKey(o),delete this.cache[o],this.size--}}removeKey(o){let t=this.prev[o],e=this.next[o];t!==void 0?this.next[t]=e:this.head=e!=null?e:null,e!==void 0?this.prev[e]=t:this.tail=t!=null?t:null,delete this.prev[o],delete this.next[o]}addToTail(o){this.tail!==null?(this.next[this.tail]=o,this.prev[o]=this.tail):this.head=o,this.tail=o}};var Pa={};_i(Pa,{MusicError:()=>E,MusicErrorType:()=>gt,init:()=>Qr});var gt=(a=>(a[a.Unknown=0]="Unknown",a[a.InvalidArg=1]="InvalidArg",a[a.Note=2]="Note",a[a.Scale=3]="Scale",a[a.KeySignature=4]="KeySignature",a[a.Timesignature=5]="Timesignature",a[a.Score=6]="Score",a))(gt||{});function kf(o){return o===void 0?"":`[${gt[o]}] `}var E=class extends Error{constructor(...e){let[r,i]=e.length===1?[0,e[0]]:e;super(kf(r)+i);m(this,"type");Object.setPrototypeOf(this,new.target.prototype),this.name="MusicError",this.type=r}};var Ru=!1;function Qr(){Ru||(Ru=!0,console.log("%cWebMusicScore v3.0.1 (iife) initialized.","background: black; color: white; padding: 2px;"))}var Tr=(e=>(e[e.Ascii=0]="Ascii",e[e.Unicode=1]="Unicode",e))(Tr||{}),Nr=(e=>(e[e.Scientific=0]="Scientific",e[e.Helmholtz=1]="Helmholtz",e))(Nr||{}),Pf=I.Enum.getEnumValues(Nr),jf=0;function Eu(o){if(I.Is.isEnumValue(o,Nr))return o;throw new E(1,`Invalid pitchNotation: ${o}`)}function Lf(o){return Nr[Eu(o)]}var Bn=(r=>(r.Default="Default",r.OmitOctave="Omit Octave",r.Interval="Interval",r))(Bn||{}),Ff="Default",Bf=I.Enum.getEnumValues(Bn);function Vf(o){if(I.Is.isEnumValue(o,Bn))return o;throw new E(5,`Invalid guitarNoteLabel: ${o}`)}function Mu(o,t){return(o%t+t)%t}var Du=12,ku=7,Gf=new Map([[-2,"bb"],[-1,"b"],[0,""],[1,"#"],[2,"x"]]),qf=new Map([[-2,"\u{1D12B}"],[-1,"\u266D"],[0,""],[1,"\u266F"],[2,"\u{1D12A}"]]),Pu=new Map([["",0],["bb",-2],["b",-1],["#",1],["x",2],["\u{1D12B}",-2],["\u266D",-1],["\u266F",1],["\u{1D12A}",2]]),To=["C","D","E","F","G","A","B"],ju=[0,2,4,5,7,9,11],Lu=/^([A-G])((?:bb|𝄫|♭|b|#|♯|x|𝄪)?)?(-?\d+)?$/,st=class st{constructor(t,e,r){m(this,"diatonicClass");m(this,"accidental");m(this,"octave");if(typeof t=="number"&&typeof e=="number"&&r===void 0)st.validateDiatonicId(t),this.diatonicClass=st.getDiatonicClass(t),this.accidental=st.validateAccidental(e),this.octave=st.getOctaveFromDiatonicId(t);else if(typeof t=="number"&&typeof e=="number"&&typeof r=="number")this.diatonicClass=st.validateDiatonicClass(t),this.accidental=st.validateAccidental(e),this.octave=st.validateOctave(r);else if(typeof t=="string"&&typeof e=="number"&&typeof r=="number")this.diatonicClass=st.getDiatonicClass(t),this.accidental=st.validateAccidental(e),this.octave=st.validateOctave(r);else throw new E(2,`Invalid args: ${t}, ${e}, ${r}`)}get diatonicId(){return st.getDiatonicIdInOctave(this.diatonicClass,this.octave)}get chromaticId(){return st.getChromaticIdInOctave(ju[this.diatonicClass]+this.accidental,this.octave)}get midiNumber(){return this.chromaticId}get chromaticClass(){return st.getChromaticClass(ju[this.diatonicClass]+this.accidental)}get noteLetter(){return To[this.diatonicClass]}format(t,e){let{noteLetter:r,octave:i}=this,n=st.getAccidentalSymbol(this.accidental,e);return t===1?i>=3?r.toLowerCase()+n+"\u2032".repeat(i-3):r.toUpperCase()+n+"\u0375".repeat(2-i):r+n+i}formatOmitOctave(t){let e=To[this.diatonicClass],r=st.getAccidentalSymbol(this.accidental,t);return e+r}static getNote(t){let e=this.noteByNameCache.get(t);if(e===void 0){let r=st.parseNote(t);if(!r)throw new E(2,`Invalid noteName: ${t}`);if(r.octave===void 0)throw new E(2,"Octave is required for note.");e=new st(r.noteLetter,r.accidental,r.octave),this.noteByNameCache.set(t,e)}return e}static getChromaticNote(t){let e=this.chromaticNoteCache.get(t);if(e===void 0){let i=["C/B#","C#/Db","D","D#/Eb","E/Fb","F/E#","F#/Gb","G","G#/Ab","A","A#/Bb","B/Cb"][st.getChromaticClass(t)].split("/")[0]+st.getOctaveFromChromaticId(t),n=st.parseNote(i);if(!n)throw new E(2,`Invalid noteName: ${i}`);if(n.octave===void 0)throw new E(2,"Octave is required for note.");e=new st(n.noteLetter,n.accidental,n.octave),this.chromaticNoteCache.set(t,e)}return e}static getDiatonicClass(t){if(typeof t=="number")return Mu(t,7);if(typeof t=="string"&&t.length>0)return To.indexOf(st.validateNoteLetter(t[0]));throw new E(2,`Invalid arg: ${t}`)}static getOctaveFromDiatonicId(t){return Math.floor((t-ku)/7)}static getDiatonicIdInOctave(t,e){return st.getDiatonicClass(t)+e*7+ku}static getChromaticClass(t){return Mu(t,12)}static getOctaveFromChromaticId(t){return Math.floor((t-Du)/12)}static getChromaticIdInOctave(t,e){return st.getChromaticClass(t)+e*12+Du}static equals(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.diatonicId===e.diatonicId&&t.accidental===e.accidental}static replaceAccidentalSymbols(t,e){return e===1?t.replace("bb","\u{1D12B}").replace("b","\u266D").replace("#","\u266F").replace("x","\u{1D12A}"):t.replace("\u{1D12B}","bb").replace("\u266D","b").replace("\u266F","#").replace("\u{1D12A}","x")}static isValidNoteName(t){return Lu.test(t)}static parseNote(t){var c;let e=Lu.exec(t);if(!e)return;let r=st.validateNoteLetter(e[1]),i=e[2],n=st.validateAccidental((c=Pu.get(i))!=null?c:0),s=e[3],a=s?st.validateOctave(+s):void 0;return{noteLetter:r,accidental:n,octave:a}}static getScientificNoteName(t,e){let r=st.parseNote(t);if(!r)throw new E(2,`Invalid noteName: ${t}`);let{noteLetter:i,accidental:n,octave:s}=r;return i+st.getAccidentalSymbol(n,e)+(s!=null?s:"")}static getAccidentalSymbol(t,e){return e===1?qf.get(t):Gf.get(t)}static getAccidental(t){let e=Pu.get(t);if(e===void 0)throw new E(2,`Invalid accidental: ${t}`);return e}static getNoteLetter(t){return To[st.getDiatonicClass(t)]}static findNextDiatonicIdAbove(t,e,r){let i=st.getDiatonicClass(t),n=st.getDiatonicClass(e),s=r?i<=n?1:0:i<n?1:0;return st.getDiatonicIdInOctave(i,st.getOctaveFromDiatonicId(e)+s)}static validateDiatonicId(t){if(I.Is.isInteger(t))return t;throw new E(2,`Invalid diatonicId: ${t}`)}static validateDiatonicClass(t){if(I.Is.isInteger(t)&&t>=0&&t<7)return t;throw new E(2,`Invalid diatonicClass: ${t}`)}static validateChromaticId(t){if(I.Is.isInteger(t))return t;throw new E(2,`Invalid chromaticId: ${t}`)}static validatechromaticClass(t){if(I.Is.isInteger(t)&&t>=0&&t<12)return t;throw new E(2,`Invalid chromaticClass: ${t}`)}static validateNoteLetter(t){if(To.some(e=>e===t))return t;throw new E(2,`Invalid note: ${t}`)}static validateOctave(t){if(I.Is.isInteger(t))return t;throw new E(2,`Invalid octave: ${t}`)}static validateAccidental(t){if(I.Is.isInteger(t)&&t>=-2&&t<=2)return t;throw new E(2,`Invalid accidental: ${t}`)}static sort(t){return t.slice().sort(st.compareFunc)}static removeDuplicates(t){let e=[];return t.forEach(r=>{e.find(i=>st.equals(r,i))===void 0&&e.push(r)}),e}static compareFunc(t,e){return t.diatonicId<e.diatonicId?-1:t.diatonicId>e.diatonicId?1:t.accidental<e.accidental?-1:t.accidental>e.accidental?1:0}};m(st,"noteByNameCache",new Map),m(st,"chromaticNoteCache",new Map);var G=st;function Wf(o,t){let e=G.getChromaticClass(o)-new G(t,0).chromaticClass;for(;e>2;)e-=12;for(;e<-2;)e+=12;return G.validateAccidental(e)}var Uf=/^(bb?|b?|#?|x?)([0-9]*)$/;function zf(o){var i,n;let t=Uf.exec(""+o);if(!t)throw new E(4,`Invalid degree: ${o}`);let e=(n=G.getAccidental((i=t[1])!=null?i:""))!=null?n:0,r=+t[2];if(!I.Is.isInteger(e)||e<-2||e>2||!I.Is.isInteger(r)||r<1)throw new E(4,`Invalid degree: ${o}`);return{deg:r,acc:e}}var ja=(a=>(a[a.Ionian=1]="Ionian",a[a.Dorian=2]="Dorian",a[a.Phrygian=3]="Phrygian",a[a.Lydian=4]="Lydian",a[a.Mixolydian=5]="Mixolydian",a[a.Aeolian=6]="Aeolian",a[a.Locrian=7]="Locrian",a))(ja||{}),La=(r=>(r[r.Natural=0]="Natural",r[r.Flats=1]="Flats",r[r.Sharps=2]="Sharps",r))(La||{});function Vn(){return Rr("C","Major")}var Or=class Or{constructor(t,e){this.tonic=t;this.mode=e;m(this,"naturalScaleNotes");m(this,"accidentalByDiatonicClass");m(this,"orderedAccidentedNotes");if(!I.Is.isEnumValue(e,ja))throw new E(4,`Invalid mode: ${e}`);let r=[2,2,1,2,2,2,1];for(let c=1;c<e;c++)r.push(r.shift());this.naturalScaleNotes=[],this.accidentalByDiatonicClass=[];let i=G.getDiatonicClass(t[0]),n=G.getNote(t+"0").chromaticId;for(let c=0;c<7;i++,n+=r[c],c++){let u=new G(G.getDiatonicClass(i),Wf(n,i));if(Math.abs(u.accidental)>=2)throw new E(4,"Key signature contains double accidental.");this.naturalScaleNotes[c]=u,this.accidentalByDiatonicClass[u.diatonicClass]=u.accidental}let s=this.naturalScaleNotes.filter(c=>c.accidental>0).sort((c,u)=>{let h=Or.OrderOfSharps.indexOf(c.noteLetter),l=Or.OrderOfSharps.indexOf(u.noteLetter);if(h===-1||l===-1)throw new E(4,"Unexpected note in key signature.");return h-l}),a=this.naturalScaleNotes.filter(c=>c.accidental<0).sort((c,u)=>{let h=Or.OrderOfFlats.indexOf(c.noteLetter),l=Or.OrderOfFlats.indexOf(u.noteLetter);if(h===-1||l===-1)throw new E(4,"Unexpected note in key signature.");return h-l});if(s.length!==0&&a.length!==0)throw new E(4,"Key Signature has both sharps and flats.");this.orderedAccidentedNotes=a.length>0?a:s}getAccidentalType(){return this.orderedAccidentedNotes.length===0?0:this.orderedAccidentedNotes[0].accidental<0?1:2}getNaturalScaleNotes(){return this.naturalScaleNotes}getAccidental(t){var e;return(e=this.accidentalByDiatonicClass[G.getDiatonicClass(t)])!=null?e:0}getNumAccidentals(){return this.orderedAccidentedNotes.length}getOrderedAccidentalNotes(){return this.orderedAccidentedNotes}getNoteByDegree(t){let{deg:e,acc:r}=zf(t);if(r===0)return this.naturalScaleNotes[(e-1)%7];{let i=this.naturalScaleNotes[(e-1)%7];return new G(i.diatonicId,i.accidental+r)}}static equals(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.tonic===e.tonic&&t.mode===e.mode}};m(Or,"OrderOfSharps","FCGDAEB"),m(Or,"OrderOfFlats","BEADGCF");var Le=Or;var Yf=new Map([["Major","M"],["minor","m"],["Perfect","P"],["diminished","d"],["Augmented","A"],["doubly diminished","dd"],["Doubly Augmented","AA"]]),Hf={1:{0:"Perfect",1:"Augmented","-1":"diminished",2:"Doubly Augmented","-2":"doubly diminished"},2:{2:"Major",1:"minor",3:"Augmented",0:"diminished",4:"Doubly Augmented","-1":"doubly diminished"},3:{4:"Major",3:"minor",5:"Augmented",2:"diminished",6:"Doubly Augmented",1:"doubly diminished"},4:{5:"Perfect",6:"Augmented",4:"diminished",7:"Doubly Augmented",3:"doubly diminished"},5:{7:"Perfect",8:"Augmented",6:"diminished",9:"Doubly Augmented",5:"doubly diminished"},6:{9:"Major",8:"minor",10:"Augmented",7:"diminished",11:"Doubly Augmented",6:"doubly diminished"},7:{11:"Major",10:"minor",12:"Augmented",9:"diminished",13:"Doubly Augmented",8:"doubly diminished"},8:{12:"Perfect",13:"Augmented",11:"diminished",14:"Doubly Augmented",10:"doubly diminished"}};function Qf(o,t){for(;o<1;)o+=7,t+=12;for(;o>8;)o-=7,t-=12;let e=Hf[o];if(e)return e[t]}function Zf(o){if(o==="Perfect"||o==="Major"||o==="minor"||o==="Augmented"||o==="diminished"||o==="Doubly Augmented"||o==="doubly diminished")return o;throw new E(1,`Invalid interval quality: ${o}`)}function Xf(o){if(I.Is.isIntegerGte(o,1))return I.Math.toOrdinalNumber(o);throw new E(1,`Invalid interval quantity: ${o}`)}var Gn=class extends Error{constructor(e){super(e);this.msg=e;this.name="InvalidInterval"}},No=class o{constructor(t,e){this.note1=t;this.note2=e;m(this,"direction");m(this,"semitones");m(this,"quantity");m(this,"quality");e.diatonicId>=t.diatonicId?(this.direction=e.diatonicId===t.diatonicId?"Unison":"Ascending",this.quantity=e.diatonicId-t.diatonicId+1,this.semitones=e.chromaticId-t.chromaticId):(this.direction="Descending",this.quantity=t.diatonicId-e.diatonicId+1,this.semitones=t.chromaticId-e.chromaticId);let r=Qf(this.quantity,this.semitones);if(r)this.quality=r;else throw new Gn("Unknown interval quality")}static get(t,e){try{return new o(t,e)}catch(r){if(r instanceof Gn)return;throw r}}toString(){let t=this.direction==="Unison"?"":this.direction+" ",e=this.quality+" ",r=this.direction==="Unison"?"Unison":Xf(this.quantity);return t+e+r}toAbbrString(){var i;let t=this.direction==="Descending"?"\u2193":"",e=(i=Yf.get(this.quality))!=null?i:"?",r=this.quantity;return t+e+r}};function Jf(o){let t=G.getDiatonicClass("CCDDEFFGGAAB"[G.getChromaticClass(o)]),e=G.getOctaveFromChromaticId(o);return G.getDiatonicIdInOctave(t,e)}var Kf=["Cb","C","C#","Db","D","D#","Eb","E","E#","Fb","F","F#","Gb","G","G#","Ab","A","A#","Bb","B","B#"],Je=(g=>(g.Major="Major",g.NaturalMinor="Natural Minor",g.HarmonicMinor="Harmonic Minor",g.Ionian="Ionian",g.Dorian="Dorian",g.Phrygian="Phrygian",g.Lydian="Lydian",g.Mixolydian="Mixolydian",g.Aeolian="Aeolian",g.Locrian="Locrian",g.MajorPentatonic="Major Pentatonic",g.MinorPentatonic="Minor Pentatonic",g.MajorHexatonicBlues="Major Hexatonic Blues",g.MinorHexatonicBlues="Minor Hexatonic Blues",g.HeptatonicBlues="Heptatonic Blues",g))(Je||{});function $f(o){switch(o){case"Major":return 1;case"Natural Minor":return 6;case"Harmonic Minor":return 6;case"Ionian":return 1;case"Dorian":return 2;case"Phrygian":return 3;case"Lydian":return 4;case"Mixolydian":return 5;case"Aeolian":return 6;case"Locrian":return 7;case"Major Pentatonic":return 1;case"Minor Pentatonic":return 6;case"Major Hexatonic Blues":return 1;case"Minor Hexatonic Blues":return 6;case"Heptatonic Blues":return 1;default:throw new E(3,`Invalid scaleType: ${o}`)}}var Er=class extends Le{constructor(e,r){super(e,$f(r));this.tonic=e;this.scaleType=r;m(this,"scaleDegrees");m(this,"scaleNotes");m(this,"chromaticClassDegree");m(this,"preferredChromaticNoteCache",new Map);switch(r){case"Harmonic Minor":this.scaleDegrees=[1,2,3,4,5,6,"#7"];break;case"Major Pentatonic":this.scaleDegrees=[1,2,3,5,6];break;case"Minor Pentatonic":this.scaleDegrees=[1,3,4,5,7];break;case"Major Hexatonic Blues":this.scaleDegrees=[1,2,"b3",3,5,6];break;case"Minor Hexatonic Blues":this.scaleDegrees=[1,3,4,"b5",5,7];break;case"Heptatonic Blues":this.scaleDegrees=[1,2,"b3",4,"b5",6,"b7"];break;default:this.scaleDegrees=[1,2,3,4,5,6,7];break}this.scaleNotes=this.scaleDegrees.map(i=>this.getNoteByDegree(i)),this.chromaticClassDegree=[0,1,2,3,4,5,6,7,8,9,10,11].map(i=>{let n=this.scaleNotes.findIndex(s=>s.chromaticClass===i);return n>=0?this.scaleDegrees[n]:void 0})}static equals(e,r){return e==null&&r==null?!0:e==null||r==null?!1:e===r||e.getScaleName()===r.getScaleName()}getScaleName(e){switch(e){case 1:return G.getScientificNoteName(this.tonic,e)+" "+this.scaleType;default:return this.tonic+" "+this.scaleType}}getScaleNotes(e,r){if(!I.Is.isIntegerGte(r,1))throw new E(3,`Invalid numOctaves: ${r}`);let i=[];for(let s=1;s<=r;s++)i=[...i,...this.scaleNotes];i.push(this.scaleNotes[0]);let n=G.getNote(e).diatonicId;return i.map(s=>(n=G.findNextDiatonicIdAbove(s.diatonicId,n,!1),new G(n,s.accidental)))}getScaleOverview(){return this.getScaleNotes("C4",1).map(e=>e.formatOmitOctave(1)).join(" - ")}getScaleSteps(){let e=this.getScaleNotes("C4",1).map(i=>i.chromaticId),r=[];for(let i=0;i<e.length-1;i++)r.push(I.Math.mod(e[i+1]-e[i],12));return r}getScaleStringSteps(){return this.getScaleSteps().map(e=>e===1?"H":e===2?"W":e.toString()+"H")}isScaleNote(e){return this.chromaticClassDegree[e.chromaticClass]!==void 0}isScaleRootNote(e){return String(this.chromaticClassDegree[e.chromaticClass])==="1"}getIntervalFromRootNote(e){let r=this.getScaleNotes("C0",1)[0];for(;e.chromaticId>=r.chromaticId+12;)e=new G(e.diatonicClass,e.accidental,e.octave-1);if(e.chromaticId<r.chromaticId)throw new E(3,"Note is below rootNote.");let i=No.get(r,e);if(i===void 0)throw new E(3,"Interval is undefined.");return i}getPreferredChromaticNote(e){G.validateChromaticId(e);let r=this.preferredChromaticNoteCache.get(e);if(r)return r;let i=G.getOctaveFromChromaticId(e);if(r=this.scaleNotes.map(l=>l.noteLetter==="C"&&l.accidental<0?new G(l.diatonicClass,l.accidental,i+1):l.noteLetter==="B"&&l.accidental>0?new G(l.diatonicClass,l.accidental,i-1):new G(l.diatonicClass,l.accidental,i)).find(l=>G.getChromaticClass(e)===l.chromaticClass),r)return this.preferredChromaticNoteCache.set(e,r),r;let s=Jf(e),a=s-2,c=s+2,h=this.getAccidentalType()===1?[0,-1,1,-2,2]:[0,1,-1,2,-2];for(let l=0;l<h.length;l++){let p=h[l];for(let d=Math.max(0,a);d<=c;d++)if(r=new G(d,p),e===r.chromaticId)return this.preferredChromaticNoteCache.set(e,r),r}return r=G.getChromaticNote(e),this.preferredChromaticNoteCache.set(e,r),r}},Yt=class{constructor(t){this.type=t;m(this,"tonicList",[]);m(this,"scaleMap",new Map);let e=[],r=[],i=[];if(Kf.forEach(s=>{try{let a=new Er(s,this.type);switch(a.getAccidentalType()){case 0:e.push(a);break;case 2:if(s.endsWith("b"))return;r.push(a);break;case 1:if(s.endsWith("#"))return;i.push(a);break}this.scaleMap.set(s,a)}catch(a){}}),e.length===0)throw new E(3,"Expected natural scale.");let n=(s,a)=>s.getNumAccidentals()-a.getNumAccidentals();this.tonicList=[...e.sort(n).map(s=>s.tonic),"- Sharps -",...r.sort(n).map(s=>s.tonic),"- Flats -",...i.sort(n).map(s=>s.tonic)]}getTonicList(){return this.tonicList}getDefaultTonic(){return this.tonicList[0]}getType(){return this.type}getScale(t){let e=this.scaleMap.get(t);if(e)return e;throw new E(3,`Invalid scale: ${t} ${this.type}`)}hasScale(t){return this.scaleMap.get(t)!==void 0}},Fu=[new Yt("Major"),new Yt("Natural Minor"),new Yt("Harmonic Minor"),"- Modes -",new Yt("Ionian"),new Yt("Dorian"),new Yt("Phrygian"),new Yt("Lydian"),new Yt("Mixolydian"),new Yt("Aeolian"),new Yt("Locrian"),"- Pentatonic -",new Yt("Major Pentatonic"),new Yt("Minor Pentatonic"),"- Blues -",new Yt("Major Hexatonic Blues"),new Yt("Minor Hexatonic Blues"),new Yt("Heptatonic Blues")];function tg(){return Fu}var Bu=new Map;Fu.forEach(o=>{o instanceof Yt&&Bu.set(o.getType(),o)});function Vu(o){let t=Bu.get(o);if(t)return t;throw new E(3,`Invalid scaleType: ${o}`)}function Fa(o){if(I.Is.isEnumValue(o,Je))return o;throw new E(3,`Invalid scaleType: ${o}`)}function Rr(o,t){return Vu(t).getScale(o)}var eg=Rr("C","Major");function rg(){return eg}var lr=(o,t)=>o.chromaticClass===t.chromaticClass,ig=["C","C#","Db","D","Eb","E","F","F#","Gb","G","Ab","A","Bb","B","Cb"].map(o=>G.getNote(o+"0")),Gu=new Map;function og(o){let t=o.chromaticClass,e=Gu.get(t);if(!e){if(e=ig.find(r=>lr(r,o)),!e)throw new E(1,`Invalid chord root note: ${o.formatOmitOctave(1)}`);Gu.set(t,e)}return e}function ng(o,t){let e=o.formatOmitOctave(0);return Rr(e,"Major").getNoteByDegree(t)}function sg(o){return I.Arr.removeDuplicatesCmp(o,lr)}var ag=[{name:"5",degrees:[1,5]},{name:"",degrees:[1,3,5]},{name:"m",degrees:[1,"b3",5]},{name:"dim",degrees:[1,"b3","b5"]},{name:"aug",degrees:[1,3,"#5"]},{name:"sus2",degrees:[1,2,5]},{name:"sus4",degrees:[1,4,5]},{name:"6",degrees:[1,3,5,6]},{name:"m6",degrees:[1,"b3",5,6]},{name:"m(maj7)",degrees:[1,"b3",5,7]},{name:"7",degrees:[1,3,5,"b7"]},{name:"7\u266D5",degrees:[1,3,"b5","b7"]},{name:"7\u266F5",degrees:[1,3,"#5","b7"]},{name:"7sus2",degrees:[1,2,5,"b7"]},{name:"7sus4",degrees:[1,4,5,"b7"]},{name:"dim7",degrees:[1,"b3","b5","bb7"]},{name:"maj7",degrees:[1,3,5,7]},{name:"maj7\u266D5",degrees:[1,3,"b5",7]},{name:"maj7\u266F5",degrees:[1,3,"#5",7]},{name:"m7",degrees:[1,"b3",5,"b7"]},{name:"m7\u266D5",degrees:[1,"b3","b5","b7"]},{name:"m7\u266F5",degrees:[1,"b3","#5","b7"]},{name:"9",degrees:[1,3,5,"b7",9]},{name:"m9",degrees:[1,"b3",5,"b7",9]},{name:"7\u266F9",degrees:[1,3,5,"b7","#9"]},{name:"7\u266D9",degrees:[1,3,5,"b7","b9"]},{name:"11",degrees:[1,3,5,"b7",9,11]},{name:"m11",degrees:[1,"b3",5,"b7",9,11]},{name:"13",degrees:[1,3,5,"b7",9,11,13]},{name:"m13",degrees:[1,"b3",5,"b7",9,11,13]}];function cg(o,t){return o.degrees.every(e=>e!==t)?!0:o.degrees.length>=4&&t===5||o.degrees.length>=6&&t===9||o.degrees.length>=7&&t===11}var Ii=class extends Error{constructor(e){super(e);this.msg=e;this.name="InvalidChordException"}},Ba=class o{constructor(t,e,r,i){this.chordInfo=t;this.rootNote=r;m(this,"name");m(this,"notes");m(this,"omitNotes");m(this,"slashBassNote");this.name=t.name;let n=e.slice();!n.some(a=>lr(a,i))&&n.push(i),this.notes=new Array(this.chordInfo.degrees.length),this.omitNotes=new Array(this.chordInfo.degrees.length);for(let a=0;a<t.degrees.length;a++){let c=t.degrees[a],u=this.notes[a]=ng(this.rootNote,c),h=n.findIndex(l=>lr(l,u));if(h>=0)this.omitNotes[a]=!1,n.splice(h,1);else if(cg(t,c))this.omitNotes[a]=!0;else throw new Ii("Missing chord note!");lr(i,u)&&(i=u)}if(n.length>0)if(n.every(a=>lr(a,i)))this.slashBassNote=i;else throw new Ii("Got some extra notes that are not bass note!");else this.slashBassNote=lr(i,this.rootNote)?void 0:i;if(t.name==="5"&&this.slashBassNote)throw new Ii("Power chord no bass note allowed!")}static getChords(t){let e=[],r=G.sort(t),i=r[0],n=sg(r);for(let s=0;s<n.length;s++){let a=og(n[s]);ag.forEach(c=>{try{let u=new o(c,n,a,i),h=e.findIndex(l=>l.replaceWith(u));h>=0?e[h]=u:e.push(u)}catch(u){if(!(u instanceof Ii))throw u}})}return e}replaceWith(t){if(t.notes.length<this.notes.length)return!1;if(t.slashBassNote&&this.slashBassNote&&!lr(t.slashBassNote,this.slashBassNote)||t.slashBassNote&&!this.slashBassNote||!t.slashBassNote&&this.slashBassNote)return!1;for(let e=0;e<this.notes.length;e++)if(!lr(t.notes[e],this.notes[e])||t.omitNotes[e]!==this.omitNotes[e])return!1;return!0}toString(){let t=1,e=this.rootNote.formatOmitOctave(t),r=this.slashBassNote?"/"+this.slashBassNote.formatOmitOctave(t):"";return e+this.name+r}getDegreeNotationString(){let t=1,e=this.slashBassNote?this.slashBassNote.formatOmitOctave(t)+" - ":"",r=this.omitNotes.map((i,n)=>this.getDegreeStr(n)+"("+(i?"-":this.getNoteStr(n))+")").join(" - ");return e+r}getOmittedDegreesString(){let t=this.omitNotes.map((e,r)=>e?this.getDegreeStr(r)+"("+this.getNoteStr(r)+")":void 0).filter(e=>e!==void 0);return t.length>0?"Omits "+t.join(", "):""}getDegreeStr(t){return G.replaceAccidentalSymbols(""+this.chordInfo.degrees[t],1)}getNoteStr(t){return this.notes[t].formatOmitOctave(1)}};var Va={list:[{name:"Standard",strings:["E2","A2","D3","G3","B3","E4"]},{name:"B Standard",strings:["B1","E2","A2","D3","F#3","B3"]},{name:"C Standard",strings:["C2","F2","A#2","D#3","G3","C4"]},{name:"D Modal",strings:["D2","A2","D3","G3","A3","D4"]},{name:"D Standard",strings:["D2","G2","C3","F3","A3","D4"]},{name:"D# Standard",strings:["D#2","G#2","C#3","F#3","A#3","D#4"]},{name:"Double Drop D",strings:["D2","A2","D3","G3","B3","D4"]},{name:"Drop B",strings:["B1","F#2","B2","E3","G#3","C#4"]},{name:"Drop C",strings:["C2","G2","C3","F3","A3","D4"]},{name:"Drop D",strings:["D2","A2","D3","G3","B3","E4"]},{name:"Low C",strings:["C2","G2","D3","G3","A3","D4"]},{name:"New Standard",strings:["C2","G2","D3","A3","E4","G4"]},{name:"Open A",strings:["E2","A2","C#3","E3","A3","E4"]},{name:"Open A Minor",strings:["E2","A2","E3","A3","C4","E4"]},{name:"Open C",strings:["C2","G2","C3","G3","C4","E4"]},{name:"Open C Minor",strings:["C2","G2","C3","G3","C4","D#4"]},{name:"Open D",strings:["D2","A2","D3","F#3","A3","D4"]},{name:"Open D Minor",strings:["D2","A2","D3","F3","A3","D4"]},{name:"Open E",strings:["E2","B2","E3","G#3","B3","E4"]},{name:"Open E Minor",strings:["E2","B2","E3","G3","B3","E4"]},{name:"Open G",strings:["D2","G2","D3","G3","B3","D4"]},{name:"Open G Minor",strings:["D2","G2","D3","G3","A#3","D4"]}]};var Ga=(e=>(e[e.RightHanded=0]="RightHanded",e[e.LeftHanded=1]="LeftHanded",e))(Ga||{}),hg=0;function lg(o){if(I.Is.isEnumValue(o,Ga))return o;throw new E(1,`Invalid handedness: ${o}`)}var Oo=Va.list.map(o=>o.name),pg=Oo[0];function qa(o){if(Oo.indexOf(o)<0)throw new E(1,`Invalid tuning name: ${o}`);return o}var qu=new Ou(100);function qn(o){let t=qu.get(o);if(!t){let e=Va.list.find(r=>r.name===o);if(!e)throw new E(1,`Invalid tuningName: ${o}`);if(t=e.strings.slice().reverse().map(r=>G.getNote(r)),!I.Is.isIntegerEq(t.length,6))throw new E(0,`Tuning has ${t.length} strings.`);qu.set(o,t)}return t}var Vt=(a=>(a[a.Whole=192]="Whole",a[a.Half=96]="Half",a[a.Quarter=48]="Quarter",a[a.Eighth=24]="Eighth",a[a.Sixteenth=12]="Sixteenth",a[a.ThirtySecond=6]="ThirtySecond",a[a.SixtyFourth=3]="SixtyFourth",a))(Vt||{}),Wu=192,Si=3,dg=new Map([[192,0],[96,0],[48,0],[24,1],[12,2],[6,3],[3,4]]),mg=new Map([[192,"\u{1D15D}"],[96,"\u{1D15E}"],[48,"\u{1D15F}"],[24,"\u{1D160}"],[12,"\u{1D161}"],[6,"\u{1D162}"],[3,"\u{1D163}"]]);function Uu(o){if(I.Is.isEnumValue(o,Vt))return o;throw new E(1,`Invalid noteLength: ${o}`)}var $t=class o{constructor(t,e,r){m(this,"noteLength");m(this,"dotted");m(this,"triplet");m(this,"ticks");m(this,"flagCount");var i;if(this.noteLength=Uu(t),this.dotted=e===!0,this.triplet=r===!0,this.ticks=this.noteLength,this.flagCount=(i=dg.get(this.noteLength))!=null?i:0,this.dotted&&this.triplet)throw new E(2,"Note cannot be both dotted and triplet!");if(this.dotted&&this.noteLength===Si)throw new E(2,"Shortest note cannot be dotted!");this.dotted&&(this.ticks+=this.noteLength/2),this.triplet&&(this.ticks=this.ticks*2/3)}static createFromNoteSize(t){return new o(Wu/t)}canDot(){return!this.dotted&&this.noteLength!==Si}hasStem(){return this.noteLength<192}toString(){return mg.get(this.noteLength)+(this.dotted?".":"")}};var pr=class{constructor(...t){m(this,"beatCount");m(this,"beatSize");m(this,"beatLength");m(this,"measureTicks");m(this,"beamGroupCount");m(this,"beamGroupLength");if(t.length===1&&typeof t[0]=="string"){let r=t[0].split("/");this.beatCount=+r[0],this.beatSize=+r[1]}else if(t.length===2&&typeof t[0]=="number"&&typeof t[1]=="number")this.beatCount=t[0],this.beatSize=t[1];else throw new E(5,`Invalid args: ${t}`);if(I.Is.isIntegerGte(this.beatCount,1)){if(!I.Is.isIntegerGte(this.beatSize,1))throw new E(5,`Invalid beatSize: ${this.beatSize}`)}else throw new E(5,`Invalid beatCount: ${this.beatCount}`);let e=$t.createFromNoteSize(this.beatSize);if(this.beatLength=e.noteLength,this.measureTicks=this.beatCount*e.ticks,this.is(2,4)||this.is(3,4)||this.is(4,4)?this.beamGroupCount=this.beatCount:this.is(6,8)||this.is(9,8)?this.beamGroupCount=this.beatCount/3:(console.warn("Not necessarily an error, but unsupported time signature: "+this.toString()),this.beamGroupCount=1),this.beamGroupLength=this.measureTicks/this.beamGroupCount,!I.Is.isIntegerGte(this.beamGroupLength,1))throw new E(5,`Invalid beamGroupLength: ${this.beamGroupLength}`)}is(t,e){return this.beatCount===t&&this.beatSize===e}toString(){return this.beatCount+"/"+this.beatSize}},Wa;function Wn(){return Wa||(Wa=new pr(4,4)),Wa}var Ua;function Un(){return Ua||(Ua={beatsPerMinute:120,options:{beatLength:48,dotted:!1}}),Ua}function za(o){return new $t(o.options.beatLength,o.options.dotted).toString()+"="+o.beatsPerMinute}function Ya(o,t){return{beatsPerMinute:o.beatsPerMinute*t,options:{beatLength:o.options.beatLength,dotted:o.options.dotted}}}Qr();var Ro="15.1.22";var Qa=(o,t,e)=>({endTime:t,insertTime:e,type:"exponentialRampToValue",value:o});var Za=(o,t,e)=>({endTime:t,insertTime:e,type:"linearRampToValue",value:o});var wi=(o,t)=>({startTime:t,type:"setValue",value:o});var Eo=(o,t,e)=>({duration:e,startTime:t,type:"setValueCurve",values:o});var zn=(o,t,{startTime:e,target:r,timeConstant:i})=>r+(t-r)*Math.exp((e-o)/i);var dr=o=>o.type==="exponentialRampToValue";var Zr=o=>o.type==="linearRampToValue";var Fe=o=>dr(o)||Zr(o);var Ti=o=>o.type==="setValue";var Te=o=>o.type==="setValueCurve";var Ni=(o,t,e,r)=>{let i=o[t];return i===void 0?r:Fe(i)||Ti(i)?i.value:Te(i)?i.values[i.values.length-1]:zn(e,Ni(o,t-1,i.startTime,r),i)};var Xa=(o,t,e,r,i)=>e===void 0?[r.insertTime,i]:Fe(e)?[e.endTime,e.value]:Ti(e)?[e.startTime,e.value]:Te(e)?[e.startTime+e.duration,e.values[e.values.length-1]]:[e.startTime,Ni(o,t-1,e.startTime,i)];var Mo=o=>o.type==="cancelAndHold";var Do=o=>o.type==="cancelScheduledValues";var mr=o=>Mo(o)||Do(o)?o.cancelTime:dr(o)||Zr(o)?o.endTime:o.startTime;var Ja=(o,t,e,{endTime:r,value:i})=>e===i?i:0<e&&0<i||e<0&&i<0?e*mu(i/e,(o-t)/(r-t)):0;var Ka=(o,t,e,{endTime:r,value:i})=>e+(o-t)/(r-t)*(i-e);var zu=(o,t)=>{let e=Math.floor(t),r=Math.ceil(t);return e===r?o[e]:(1-(t-e))*o[e]+(1-(r-t))*o[r]};var Yu=(o,{duration:t,startTime:e,values:r})=>{let i=(o-e)/t*(r.length-1);return zu(r,i)};var ko=o=>o.type==="setTarget";var Po=class{constructor(t){this._automationEvents=[],this._currenTime=0,this._defaultValue=t}[Symbol.iterator](){return this._automationEvents[Symbol.iterator]()}add(t){let e=mr(t);if(Mo(t)||Do(t)){let r=this._automationEvents.findIndex(n=>Do(t)&&Te(n)?n.startTime+n.duration>=e:mr(n)>=e),i=this._automationEvents[r];if(r!==-1&&(this._automationEvents=this._automationEvents.slice(0,r)),Mo(t)){let n=this._automationEvents[this._automationEvents.length-1];if(i!==void 0&&Fe(i)){if(n!==void 0&&ko(n))throw new Error("The internal list is malformed.");let s=n===void 0?i.insertTime:Te(n)?n.startTime+n.duration:mr(n),a=n===void 0?this._defaultValue:Te(n)?n.values[n.values.length-1]:n.value,c=dr(i)?Ja(e,s,a,i):Ka(e,s,a,i),u=dr(i)?Qa(c,e,this._currenTime):Za(c,e,this._currenTime);this._automationEvents.push(u)}if(n!==void 0&&ko(n)&&this._automationEvents.push(wi(this.getValue(e),e)),n!==void 0&&Te(n)&&n.startTime+n.duration>e){let s=e-n.startTime,a=(n.values.length-1)/n.duration,c=Math.max(2,1+Math.ceil(s*a)),u=s/(c-1)*a,h=n.values.slice(0,c);if(u<1)for(let l=1;l<c;l+=1){let p=u*l%1;h[l]=n.values[l-1]*(1-p)+n.values[l]*p}this._automationEvents[this._automationEvents.length-1]=Eo(h,n.startTime,s)}}}else{let r=this._automationEvents.findIndex(s=>mr(s)>e),i=r===-1?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[r-1];if(i!==void 0&&Te(i)&&mr(i)+i.duration>e)return!1;let n=dr(t)?Qa(t.value,t.endTime,this._currenTime):Zr(t)?Za(t.value,e,this._currenTime):t;if(r===-1)this._automationEvents.push(n);else{if(Te(t)&&e+t.duration>mr(this._automationEvents[r]))return!1;this._automationEvents.splice(r,0,n)}}return!0}flush(t){let e=this._automationEvents.findIndex(r=>mr(r)>t);if(e>1){let r=this._automationEvents.slice(e-1),i=r[0];ko(i)&&r.unshift(wi(Ni(this._automationEvents,e-2,i.startTime,this._defaultValue),i.startTime)),this._automationEvents=r}}getValue(t){if(this._automationEvents.length===0)return this._defaultValue;let e=this._automationEvents.findIndex(s=>mr(s)>t),r=this._automationEvents[e],i=(e===-1?this._automationEvents.length:e)-1,n=this._automationEvents[i];if(n!==void 0&&ko(n)&&(r===void 0||!Fe(r)||r.insertTime>t))return zn(t,Ni(this._automationEvents,i-1,n.startTime,this._defaultValue),n);if(n!==void 0&&Ti(n)&&(r===void 0||!Fe(r)))return n.value;if(n!==void 0&&Te(n)&&(r===void 0||!Fe(r)||n.startTime+n.duration>t))return t<n.startTime+n.duration?Yu(t,n):n.values[n.values.length-1];if(n!==void 0&&Fe(n)&&(r===void 0||!Fe(r)))return n.value;if(r!==void 0&&dr(r)){let[s,a]=Xa(this._automationEvents,i,n,r,this._defaultValue);return Ja(t,s,a,r)}if(r!==void 0&&Zr(r)){let[s,a]=Xa(this._automationEvents,i,n,r,this._defaultValue);return Ka(t,s,a,r)}return this._defaultValue}};var $a=o=>({cancelTime:o,type:"cancelAndHold"});var tc=o=>({cancelTime:o,type:"cancelScheduledValues"});var ec=(o,t)=>({endTime:t,type:"exponentialRampToValue",value:o});var rc=(o,t)=>({endTime:t,type:"linearRampToValue",value:o});var ic=(o,t,e)=>({startTime:t,target:o,timeConstant:e,type:"setTarget"});var Hu=()=>new DOMException("","AbortError");var Qu=o=>(t,e,[r,i,n],s)=>{o(t[i],[e,r,n],a=>a[0]===e&&a[1]===r,s)};var Zu=o=>(t,e,r)=>{let i=[];for(let n=0;n<r.numberOfInputs;n+=1)i.push(new Set);o.set(t,{activeInputs:i,outputs:new Set,passiveInputs:new WeakMap,renderer:e})};var Xu=o=>(t,e)=>{o.set(t,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:e})};var Ke=new WeakSet,Yn=new WeakMap,Oi=new WeakMap,Hn=new WeakMap,jo=new WeakMap,Ri=new WeakMap,Qn=new WeakMap,Lo=new WeakMap,Fo=new WeakMap,Bo=new WeakMap;var Ju={construct(){return Ju}},Ku=o=>{try{let t=new Proxy(o,Ju);new t}catch(t){return!1}return!0};var $u=/^import(?:(?:[\s]+[\w]+|(?:[\s]+[\w]+[\s]*,)?[\s]*\{[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?(?:[\s]*,[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?)*[\s]*}|(?:[\s]+[\w]+[\s]*,)?[\s]*\*[\s]+as[\s]+[\w]+)[\s]+from)?(?:[\s]*)("([^"\\]|\\.)+"|'([^'\\]|\\.)+')(?:[\s]*);?/,oc=(o,t)=>{let e=[],r=o.replace(/^[\s]+/,""),i=r.match($u);for(;i!==null;){let n=i[1].slice(1,-1),s=i[0].replace(/([\s]+)?;?$/,"").replace(n,new URL(n,t).toString());e.push(s),r=r.slice(i[0].length).replace(/^[\s]+/,""),i=r.match($u)}return[e.join(";"),r]};var th=o=>{if(o!==void 0&&!Array.isArray(o))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},eh=o=>{if(!Ku(o))throw new TypeError("The given value for processorCtor should be a constructor.");if(o.prototype===null||typeof o.prototype!="object")throw new TypeError("The given value for processorCtor should have a prototype.")},rh=(o,t,e,r,i,n,s,a,c,u,h,l,p)=>{let d=0;return(f,g,x={credentials:"omit"})=>{let b=h.get(f);if(b!==void 0&&b.has(g))return Promise.resolve();let v=u.get(f);if(v!==void 0){let _=v.get(g);if(_!==void 0)return _}let S=n(f),T=S.audioWorklet===void 0?i(g).then(([_,C])=>{let[A,y]=oc(_,C),N=`${A};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${y}
|
|
3
|
+
})})(window,'_AWGS')`;return e(N)}).then(()=>{let _=p._AWGS.pop();if(_===void 0)throw new SyntaxError;r(S.currentTime,S.sampleRate,()=>_(class{},void 0,(C,A)=>{if(C.trim()==="")throw t();let y=Fo.get(S);if(y!==void 0){if(y.has(C))throw t();eh(A),th(A.parameterDescriptors),y.set(C,A)}else eh(A),th(A.parameterDescriptors),Fo.set(S,new Map([[C,A]]))},S.sampleRate,void 0,void 0))}):Promise.all([i(g),Promise.resolve(o(l,l))]).then(([[_,C],A])=>{let y=d+1;d=y;let[N,D]=oc(_,C),k=`${N};((AudioWorkletProcessor,registerProcessor)=>{${D}
|
|
4
|
+
})(${A?"AudioWorkletProcessor":"class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}"},(n,p)=>registerProcessor(n,class extends p{${A?"":"__c = (a) => a.forEach(e=>this.__b.add(e.buffer));"}process(i,o,p){${A?"":"i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));"}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${y}',class extends AudioWorkletProcessor{process(){return !1}})`,L=new Blob([k],{type:"application/javascript; charset=utf-8"}),P=URL.createObjectURL(L);return S.audioWorklet.addModule(P,x).then(()=>{if(a(S))return S;let q=s(S);return q.audioWorklet.addModule(P,x).then(()=>q)}).then(q=>{if(c===null)throw new SyntaxError;try{new c(q,`__sac${y}`)}catch(H){throw new SyntaxError}}).finally(()=>URL.revokeObjectURL(P))});return v===void 0?u.set(f,new Map([[g,T]])):v.set(g,T),T.then(()=>{let _=h.get(f);_===void 0?h.set(f,new Set([g])):_.add(g)}).finally(()=>{let _=u.get(f);_!==void 0&&_.delete(g)}),T}};var Gt=(o,t)=>{let e=o.get(t);if(e===void 0)throw new Error("A value with the given key could not be found.");return e};var Mr=(o,t)=>{let e=Array.from(o).filter(t);if(e.length>1)throw Error("More than one element was found.");if(e.length===0)throw Error("No element was found.");let[r]=e;return o.delete(r),r};var Zn=(o,t,e,r)=>{let i=Gt(o,t),n=Mr(i,s=>s[0]===e&&s[1]===r);return i.size===0&&o.delete(t),n};var $e=o=>Gt(Qn,o);var Be=o=>{if(Ke.has(o))throw new Error("The AudioNode is already stored.");Ke.add(o),$e(o).forEach(t=>t(!0))};var Xn=o=>"port"in o;var tr=o=>{if(!Ke.has(o))throw new Error("The AudioNode is not stored.");Ke.delete(o),$e(o).forEach(t=>t(!1))};var Vo=(o,t)=>{!Xn(o)&&t.every(e=>e.size===0)&&tr(o)};var ih=(o,t,e,r,i,n,s,a,c,u,h,l,p)=>{let d=new WeakMap;return(f,g,x,b,v)=>{let{activeInputs:S,passiveInputs:T}=n(g),{outputs:_}=n(f),C=a(f),A=y=>{let N=c(g),D=c(f);if(y){let M=Zn(T,f,x,b);o(S,f,M,!1),!v&&!l(f)&&e(D,N,x,b),p(g)&&Be(g)}else{let M=r(S,f,x,b);t(T,b,M,!1),!v&&!l(f)&&i(D,N,x,b);let O=s(g);if(O===0)h(g)&&Vo(g,S);else{let W=d.get(g);W!==void 0&&clearTimeout(W),d.set(g,setTimeout(()=>{h(g)&&Vo(g,S)},O*1e3))}}};return u(_,[g,x,b],y=>y[0]===g&&y[1]===x&&y[2]===b,!0)?(C.add(A),h(f)?o(S,f,[x,b,A],!0):t(T,b,[f,x,A],!0),!0):!1}};var oh=o=>(t,e,[r,i,n],s)=>{let a=t.get(r);a===void 0?t.set(r,new Set([[i,e,n]])):o(a,[i,e,n],c=>c[0]===i&&c[1]===e,s)};var nh=o=>(t,e)=>{let r=o(t,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});e.connect(r).connect(t.destination);let i=()=>{e.removeEventListener("ended",i),e.disconnect(r),r.disconnect()};e.addEventListener("ended",i)};var sh=o=>(t,e)=>{o(t).add(e)};var fg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},ah=(o,t,e,r,i,n)=>class extends o{constructor(a,c){let u=i(a),h=R(R({},fg),c),l=r(u,h),p=n(u)?t():null;super(a,!1,l,p),this._nativeAnalyserNode=l}get fftSize(){return this._nativeAnalyserNode.fftSize}set fftSize(a){this._nativeAnalyserNode.fftSize=a}get frequencyBinCount(){return this._nativeAnalyserNode.frequencyBinCount}get maxDecibels(){return this._nativeAnalyserNode.maxDecibels}set maxDecibels(a){let c=this._nativeAnalyserNode.maxDecibels;if(this._nativeAnalyserNode.maxDecibels=a,!(a>this._nativeAnalyserNode.minDecibels))throw this._nativeAnalyserNode.maxDecibels=c,e()}get minDecibels(){return this._nativeAnalyserNode.minDecibels}set minDecibels(a){let c=this._nativeAnalyserNode.minDecibels;if(this._nativeAnalyserNode.minDecibels=a,!(this._nativeAnalyserNode.maxDecibels>a))throw this._nativeAnalyserNode.minDecibels=c,e()}get smoothingTimeConstant(){return this._nativeAnalyserNode.smoothingTimeConstant}set smoothingTimeConstant(a){this._nativeAnalyserNode.smoothingTimeConstant=a}getByteFrequencyData(a){this._nativeAnalyserNode.getByteFrequencyData(a)}getByteTimeDomainData(a){this._nativeAnalyserNode.getByteTimeDomainData(a)}getFloatFrequencyData(a){this._nativeAnalyserNode.getFloatFrequencyData(a)}getFloatTimeDomainData(a){this._nativeAnalyserNode.getFloatTimeDomainData(a)}};var pt=(o,t)=>o.context===t;var ch=(o,t,e)=>()=>{let r=new WeakMap,i=(n,s)=>X(null,null,function*(){let a=t(n);if(!pt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,fftSize:a.fftSize,maxDecibels:a.maxDecibels,minDecibels:a.minDecibels,smoothingTimeConstant:a.smoothingTimeConstant};a=o(s,u)}return r.set(s,a),yield e(n,s,a),a});return{render(n,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):i(n,s)}}};var Ei=o=>{try{o.copyToChannel(new Float32Array(1),0,-1)}catch(t){return!1}return!0};var Ne=()=>new DOMException("","IndexSizeError");var Mi=o=>{o.getChannelData=(t=>e=>{try{return t.call(o,e)}catch(r){throw r.code===12?Ne():r}})(o.getChannelData)};var gg={numberOfChannels:1},uh=(o,t,e,r,i,n,s,a)=>{let c=null;return class hh{constructor(h){if(i===null)throw new Error("Missing the native OfflineAudioContext constructor.");let{length:l,numberOfChannels:p,sampleRate:d}=R(R({},gg),h);c===null&&(c=new i(1,1,44100));let f=r!==null&&t(n,n)?new r({length:l,numberOfChannels:p,sampleRate:d}):c.createBuffer(p,l,d);if(f.numberOfChannels===0)throw e();return typeof f.copyFromChannel!="function"?(s(f),Mi(f)):t(Ei,()=>Ei(f))||a(f),o.add(f),f}static[Symbol.hasInstance](h){return h!==null&&typeof h=="object"&&Object.getPrototypeOf(h)===hh.prototype||o.has(h)}}};var jt=-34028234663852886e22,Mt=-jt;var ne=o=>Ke.has(o);var xg={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},lh=(o,t,e,r,i,n,s,a)=>class extends o{constructor(u,h){let l=n(u),p=R(R({},xg),h),d=i(l,p),f=s(l),g=f?t():null;super(u,!1,d,g),this._audioBufferSourceNodeRenderer=g,this._isBufferNullified=!1,this._isBufferSet=p.buffer!==null,this._nativeAudioBufferSourceNode=d,this._onended=null,this._playbackRate=e(this,f,d.playbackRate,Mt,jt)}get buffer(){return this._isBufferNullified?null:this._nativeAudioBufferSourceNode.buffer}set buffer(u){if(this._nativeAudioBufferSourceNode.buffer=u,u!==null){if(this._isBufferSet)throw r();this._isBufferSet=!0}}get loop(){return this._nativeAudioBufferSourceNode.loop}set loop(u){this._nativeAudioBufferSourceNode.loop=u}get loopEnd(){return this._nativeAudioBufferSourceNode.loopEnd}set loopEnd(u){this._nativeAudioBufferSourceNode.loopEnd=u}get loopStart(){return this._nativeAudioBufferSourceNode.loopStart}set loopStart(u){this._nativeAudioBufferSourceNode.loopStart=u}get onended(){return this._onended}set onended(u){let h=typeof u=="function"?a(this,u):null;this._nativeAudioBufferSourceNode.onended=h;let l=this._nativeAudioBufferSourceNode.onended;this._onended=l!==null&&l===h?u:l}get playbackRate(){return this._playbackRate}start(u=0,h=0,l){if(this._nativeAudioBufferSourceNode.start(u,h,l),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.start=l===void 0?[u,h]:[u,h,l]),this.context.state!=="closed"){Be(this);let p=()=>{this._nativeAudioBufferSourceNode.removeEventListener("ended",p),ne(this)&&tr(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",p)}}stop(u=0){this._nativeAudioBufferSourceNode.stop(u),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.stop=u)}};var ph=(o,t,e,r,i)=>()=>{let n=new WeakMap,s=null,a=null,c=(u,h)=>X(null,null,function*(){let l=e(u),p=pt(l,h);if(!p){let d={buffer:l.buffer,channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,loop:l.loop,loopEnd:l.loopEnd,loopStart:l.loopStart,playbackRate:l.playbackRate.value};l=t(h,d),s!==null&&l.start(...s),a!==null&&l.stop(a)}return n.set(h,l),p?yield o(h,u.playbackRate,l.playbackRate):yield r(h,u.playbackRate,l.playbackRate),yield i(u,h,l),l});return{set start(u){s=u},set stop(u){a=u},render(u,h){let l=n.get(h);return l!==void 0?Promise.resolve(l):c(u,h)}}};var dh=o=>"playbackRate"in o;var mh=o=>"frequency"in o&&"gain"in o;var fh=o=>"offset"in o;var gh=o=>!("frequency"in o)&&"gain"in o;var xh=o=>"detune"in o&&"frequency"in o&&!("gain"in o);var yh=o=>"pan"in o;var Ht=o=>Gt(Yn,o);var Dr=o=>Gt(Hn,o);var Jn=(o,t)=>{let{activeInputs:e}=Ht(o);e.forEach(i=>i.forEach(([n])=>{t.includes(o)||Jn(n,[...t,o])}));let r=dh(o)?[o.playbackRate]:Xn(o)?Array.from(o.parameters.values()):mh(o)?[o.Q,o.detune,o.frequency,o.gain]:fh(o)?[o.offset]:gh(o)?[o.gain]:xh(o)?[o.detune,o.frequency]:yh(o)?[o.pan]:[];for(let i of r){let n=Dr(i);n!==void 0&&n.activeInputs.forEach(([s])=>Jn(s,t))}ne(o)&&tr(o)};var kr=o=>{Jn(o.destination,[])};var Kn=o=>o===void 0||typeof o=="number"||typeof o=="string"&&(o==="balanced"||o==="interactive"||o==="playback");var bh=(o,t,e,r,i,n,s,a,c)=>class extends o{constructor(h={}){if(c===null)throw new Error("Missing the native AudioContext constructor.");let l;try{l=new c(h)}catch(f){throw f.code===12&&f.message==="sampleRate is not in range"?e():f}if(l===null)throw r();if(!Kn(h.latencyHint))throw new TypeError(`The provided value '${h.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(h.sampleRate!==void 0&&l.sampleRate!==h.sampleRate)throw e();super(l,2);let{latencyHint:p}=h,{sampleRate:d}=l;if(this._baseLatency=typeof l.baseLatency=="number"?l.baseLatency:p==="balanced"?512/d:p==="interactive"||p===void 0?256/d:p==="playback"?1024/d:Math.max(2,Math.min(128,Math.round(p*d/128)))*128/d,this._nativeAudioContext=l,c.name==="webkitAudioContext"?(this._nativeGainNode=l.createGain(),this._nativeOscillatorNode=l.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(l.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,l.state==="running"){this._state="suspended";let f=()=>{this._state==="suspended"&&(this._state=null),l.removeEventListener("statechange",f)};l.addEventListener("statechange",f)}}get baseLatency(){return this._baseLatency}get state(){return this._state!==null?this._state:this._nativeAudioContext.state}close(){return this.state==="closed"?this._nativeAudioContext.close().then(()=>{throw t()}):(this._state==="suspended"&&(this._state=null),this._nativeAudioContext.close().then(()=>{this._nativeGainNode!==null&&this._nativeOscillatorNode!==null&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),kr(this)}))}createMediaElementSource(h){return new i(this,{mediaElement:h})}createMediaStreamDestination(){return new n(this)}createMediaStreamSource(h){return new s(this,{mediaStream:h})}createMediaStreamTrackSource(h){return new a(this,{mediaStreamTrack:h})}resume(){return this._state==="suspended"?new Promise((h,l)=>{let p=()=>{this._nativeAudioContext.removeEventListener("statechange",p),this._nativeAudioContext.state==="running"?h():this.resume().then(h,l)};this._nativeAudioContext.addEventListener("statechange",p)}):this._nativeAudioContext.resume().catch(h=>{throw h===void 0||h.code===15?t():h})}suspend(){return this._nativeAudioContext.suspend().catch(h=>{throw h===void 0?t():h})}};var Ah=(o,t,e,r,i,n,s,a)=>class extends o{constructor(u,h){let l=n(u),p=s(l),d=i(l,h,p),f=p?t(a):null;super(u,!1,d,f),this._isNodeOfNativeOfflineAudioContext=p,this._nativeAudioDestinationNode=d}get channelCount(){return this._nativeAudioDestinationNode.channelCount}set channelCount(u){if(this._isNodeOfNativeOfflineAudioContext)throw r();if(u>this._nativeAudioDestinationNode.maxChannelCount)throw e();this._nativeAudioDestinationNode.channelCount=u}get channelCountMode(){return this._nativeAudioDestinationNode.channelCountMode}set channelCountMode(u){if(this._isNodeOfNativeOfflineAudioContext)throw r();this._nativeAudioDestinationNode.channelCountMode=u}get maxChannelCount(){return this._nativeAudioDestinationNode.maxChannelCount}};var Ch=o=>{let t=new WeakMap,e=(r,i)=>X(null,null,function*(){let n=i.destination;return t.set(i,n),yield o(r,i,n),n});return{render(r,i){let n=t.get(i);return n!==void 0?Promise.resolve(n):e(r,i)}}};var _h=(o,t,e,r,i,n,s,a)=>(c,u)=>{let h=u.listener,l=()=>{let _=new Float32Array(1),C=t(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:9}),A=s(u),y=!1,N=[0,0,-1,0,1,0],D=[0,0,0],M=()=>{if(y)return;y=!0;let L=r(u,256,9,0);L.onaudioprocess=({inputBuffer:P})=>{let q=[n(P,_,0),n(P,_,1),n(P,_,2),n(P,_,3),n(P,_,4),n(P,_,5)];q.some((Q,rt)=>Q!==N[rt])&&(h.setOrientation(...q),N=q);let H=[n(P,_,6),n(P,_,7),n(P,_,8)];H.some((Q,rt)=>Q!==D[rt])&&(h.setPosition(...H),D=H)},C.connect(L)},O=L=>P=>{P!==N[L]&&(N[L]=P,h.setOrientation(...N))},W=L=>P=>{P!==D[L]&&(D[L]=P,h.setPosition(...D))},k=(L,P,q)=>{let H=e(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:P});H.connect(C,0,L),H.start(),Object.defineProperty(H.offset,"defaultValue",{get(){return P}});let Q=o({context:c},A,H.offset,Mt,jt);return a(Q,"value",rt=>()=>rt.call(Q),rt=>at=>{try{rt.call(Q,at)}catch(yt){if(yt.code!==9)throw yt}M(),A&&q(at)}),Q.cancelAndHoldAtTime=(rt=>A?()=>{throw i()}:(...at)=>{let yt=rt.apply(Q,at);return M(),yt})(Q.cancelAndHoldAtTime),Q.cancelScheduledValues=(rt=>A?()=>{throw i()}:(...at)=>{let yt=rt.apply(Q,at);return M(),yt})(Q.cancelScheduledValues),Q.exponentialRampToValueAtTime=(rt=>A?()=>{throw i()}:(...at)=>{let yt=rt.apply(Q,at);return M(),yt})(Q.exponentialRampToValueAtTime),Q.linearRampToValueAtTime=(rt=>A?()=>{throw i()}:(...at)=>{let yt=rt.apply(Q,at);return M(),yt})(Q.linearRampToValueAtTime),Q.setTargetAtTime=(rt=>A?()=>{throw i()}:(...at)=>{let yt=rt.apply(Q,at);return M(),yt})(Q.setTargetAtTime),Q.setValueAtTime=(rt=>A?()=>{throw i()}:(...at)=>{let yt=rt.apply(Q,at);return M(),yt})(Q.setValueAtTime),Q.setValueCurveAtTime=(rt=>A?()=>{throw i()}:(...at)=>{let yt=rt.apply(Q,at);return M(),yt})(Q.setValueCurveAtTime),Q};return{forwardX:k(0,0,O(0)),forwardY:k(1,0,O(1)),forwardZ:k(2,-1,O(2)),positionX:k(6,0,W(0)),positionY:k(7,0,W(1)),positionZ:k(8,0,W(2)),upX:k(3,0,O(3)),upY:k(4,1,O(4)),upZ:k(5,0,O(5))}},{forwardX:p,forwardY:d,forwardZ:f,positionX:g,positionY:x,positionZ:b,upX:v,upY:S,upZ:T}=h.forwardX===void 0?l():h;return{get forwardX(){return p},get forwardY(){return d},get forwardZ(){return f},get positionX(){return g},get positionY(){return x},get positionZ(){return b},get upX(){return v},get upY(){return S},get upZ(){return T}}};var Xr=o=>"context"in o;var Pr=o=>Xr(o[0]);var Ve=(o,t,e,r)=>{for(let i of o)if(e(i)){if(r)return!1;throw Error("The set contains at least one similar element.")}return o.add(t),!0};var nc=(o,t,[e,r],i)=>{Ve(o,[t,e,r],n=>n[0]===t&&n[1]===e,i)};var sc=(o,[t,e,r],i)=>{let n=o.get(t);n===void 0?o.set(t,new Set([[e,r]])):Ve(n,[e,r],s=>s[0]===e,i)};var Oe=o=>"inputs"in o;var Di=(o,t,e,r)=>{if(Oe(t)){let i=t.inputs[r];return o.connect(i,e,0),[i,e,0]}return o.connect(t,e,r),[t,e,r]};var ac=(o,t,e)=>{for(let r of o)if(r[0]===t&&r[1]===e)return o.delete(r),r;return null};var vh=(o,t,e)=>Mr(o,r=>r[0]===t&&r[1]===e);var cc=(o,t)=>{if(!$e(o).delete(t))throw new Error("Missing the expected event listener.")};var uc=(o,t,e)=>{let r=Gt(o,t),i=Mr(r,n=>n[0]===e);return r.size===0&&o.delete(t),i};var ki=(o,t,e,r)=>{Oe(t)?o.disconnect(t.inputs[r],e,0):o.disconnect(t,e,r)};var Ct=o=>Gt(Oi,o);var Jr=o=>Gt(jo,o);var fr=o=>Lo.has(o);var Pi=o=>!Ke.has(o);var hc=(o,t)=>new Promise(e=>{if(t!==null)e(!0);else{let r=o.createScriptProcessor(256,1,1),i=o.createGain(),n=o.createBuffer(1,2,44100),s=n.getChannelData(0);s[0]=1,s[1]=1;let a=o.createBufferSource();a.buffer=n,a.loop=!0,a.connect(r).connect(o.destination),a.connect(i),a.disconnect(i),r.onaudioprocess=c=>{let u=c.inputBuffer.getChannelData(0);Array.prototype.some.call(u,h=>h===1)?e(!0):e(!1),a.stop(),r.onaudioprocess=null,a.disconnect(r),r.disconnect(o.destination)},a.start()}});var $n=(o,t)=>{let e=new Map;for(let r of o)for(let i of r){let n=e.get(i);e.set(i,n===void 0?1:n+1)}e.forEach((r,i)=>t(i,r))};var Kr=o=>"context"in o;var Ih=o=>{let t=new Map;o.connect=(e=>(r,i=0,n=0)=>{let s=Kr(r)?e(r,i,n):e(r,i),a=t.get(r);return a===void 0?t.set(r,[{input:n,output:i}]):a.every(c=>c.input!==n||c.output!==i)&&a.push({input:n,output:i}),s})(o.connect.bind(o)),o.disconnect=(e=>(r,i,n)=>{if(e.apply(o),r===void 0)t.clear();else if(typeof r=="number")for(let[s,a]of t){let c=a.filter(u=>u.output!==r);c.length===0?t.delete(s):t.set(s,c)}else if(t.has(r))if(i===void 0)t.delete(r);else{let s=t.get(r);if(s!==void 0){let a=s.filter(c=>c.output!==i&&(c.input!==n||n===void 0));a.length===0?t.delete(r):t.set(r,a)}}for(let[s,a]of t)a.forEach(c=>{Kr(s)?o.connect(s,c.output,c.input):o.connect(s,c.output)})})(o.disconnect)};var yg=(o,t,e,r)=>{let{activeInputs:i,passiveInputs:n}=Dr(t),{outputs:s}=Ht(o),a=$e(o),c=u=>{let h=Ct(o),l=Jr(t);if(u){let p=uc(n,o,e);nc(i,o,p,!1),!r&&!fr(o)&&h.connect(l,e)}else{let p=vh(i,o,e);sc(n,p,!1),!r&&!fr(o)&&h.disconnect(l,e)}};return Ve(s,[t,e],u=>u[0]===t&&u[1]===e,!0)?(a.add(c),ne(o)?nc(i,o,[e,c],!0):sc(n,[o,e,c],!0),!0):!1},bg=(o,t,e,r)=>{let{activeInputs:i,passiveInputs:n}=Ht(t),s=ac(i[r],o,e);return s===null?[Zn(n,o,e,r)[2],!1]:[s[2],!0]},Ag=(o,t,e)=>{let{activeInputs:r,passiveInputs:i}=Dr(t),n=ac(r,o,e);return n===null?[uc(i,o,e)[1],!1]:[n[2],!0]},lc=(o,t,e,r,i)=>{let[n,s]=bg(o,e,r,i);if(n!==null&&(cc(o,n),s&&!t&&!fr(o)&&ki(Ct(o),Ct(e),r,i)),ne(e)){let{activeInputs:a}=Ht(e);Vo(e,a)}},pc=(o,t,e,r)=>{let[i,n]=Ag(o,e,r);i!==null&&(cc(o,i),n&&!t&&!fr(o)&&Ct(o).disconnect(Jr(e),r))},Cg=(o,t)=>{let e=Ht(o),r=[];for(let i of e.outputs)Pr(i)?lc(o,t,...i):pc(o,t,...i),r.push(i[0]);return e.outputs.clear(),r},_g=(o,t,e)=>{let r=Ht(o),i=[];for(let n of r.outputs)n[1]===e&&(Pr(n)?lc(o,t,...n):pc(o,t,...n),i.push(n[0]),r.outputs.delete(n));return i},vg=(o,t,e,r,i)=>{let n=Ht(o);return Array.from(n.outputs).filter(s=>s[0]===e&&(r===void 0||s[1]===r)&&(i===void 0||s[2]===i)).map(s=>(Pr(s)?lc(o,t,...s):pc(o,t,...s),n.outputs.delete(s),s[0]))},Sh=(o,t,e,r,i,n,s,a,c,u,h,l,p,d,f,g)=>class extends u{constructor(b,v,S,T){super(S),this._context=b,this._nativeAudioNode=S;let _=h(b);l(_)&&e(hc,()=>hc(_,g))!==!0&&Ih(S),Oi.set(this,S),Qn.set(this,new Set),b.state!=="closed"&&v&&Be(this),o(this,T,S)}get channelCount(){return this._nativeAudioNode.channelCount}set channelCount(b){this._nativeAudioNode.channelCount=b}get channelCountMode(){return this._nativeAudioNode.channelCountMode}set channelCountMode(b){this._nativeAudioNode.channelCountMode=b}get channelInterpretation(){return this._nativeAudioNode.channelInterpretation}set channelInterpretation(b){this._nativeAudioNode.channelInterpretation=b}get context(){return this._context}get numberOfInputs(){return this._nativeAudioNode.numberOfInputs}get numberOfOutputs(){return this._nativeAudioNode.numberOfOutputs}connect(b,v=0,S=0){if(v<0||v>=this._nativeAudioNode.numberOfOutputs)throw i();let T=h(this._context),_=f(T);if(p(b)||d(b))throw n();if(Xr(b)){let y=Ct(b);try{let D=Di(this._nativeAudioNode,y,v,S),M=Pi(this);(_||M)&&this._nativeAudioNode.disconnect(...D),this.context.state!=="closed"&&!M&&Pi(b)&&Be(b)}catch(D){throw D.code===12?n():D}if(t(this,b,v,S,_)){let D=c([this],b);$n(D,r(_))}return b}let C=Jr(b);if(C.name==="playbackRate"&&C.maxValue===1024)throw s();try{this._nativeAudioNode.connect(C,v),(_||Pi(this))&&this._nativeAudioNode.disconnect(C,v)}catch(y){throw y.code===12?n():y}if(yg(this,b,v,_)){let y=c([this],b);$n(y,r(_))}}disconnect(b,v,S){let T,_=h(this._context),C=f(_);if(b===void 0)T=Cg(this,C);else if(typeof b=="number"){if(b<0||b>=this.numberOfOutputs)throw i();T=_g(this,C,b)}else{if(v!==void 0&&(v<0||v>=this.numberOfOutputs)||Xr(b)&&S!==void 0&&(S<0||S>=b.numberOfInputs))throw i();if(T=vg(this,C,b,v,S),T.length===0)throw n()}for(let A of T){let y=c([this],A);$n(y,a)}}};var wh=(o,t,e,r,i,n,s,a,c,u,h,l,p)=>(d,f,g,x=null,b=null)=>{let v=g.value,S=new Po(v),T=f?r(S):null,_={get defaultValue(){return v},get maxValue(){return x===null?g.maxValue:x},get minValue(){return b===null?g.minValue:b},get value(){return g.value},set value(C){g.value=C,_.setValueAtTime(C,d.context.currentTime)},cancelAndHoldAtTime(C){if(typeof g.cancelAndHoldAtTime=="function")T===null&&S.flush(d.context.currentTime),S.add(i(C)),g.cancelAndHoldAtTime(C);else{let A=Array.from(S).pop();T===null&&S.flush(d.context.currentTime),S.add(i(C));let y=Array.from(S).pop();g.cancelScheduledValues(C),A!==y&&y!==void 0&&(y.type==="exponentialRampToValue"?g.exponentialRampToValueAtTime(y.value,y.endTime):y.type==="linearRampToValue"?g.linearRampToValueAtTime(y.value,y.endTime):y.type==="setValue"?g.setValueAtTime(y.value,y.startTime):y.type==="setValueCurve"&&g.setValueCurveAtTime(y.values,y.startTime,y.duration))}return _},cancelScheduledValues(C){return T===null&&S.flush(d.context.currentTime),S.add(n(C)),g.cancelScheduledValues(C),_},exponentialRampToValueAtTime(C,A){if(C===0)throw new RangeError;if(!Number.isFinite(A)||A<0)throw new RangeError;let y=d.context.currentTime;return T===null&&S.flush(y),Array.from(S).length===0&&(S.add(u(v,y)),g.setValueAtTime(v,y)),S.add(s(C,A)),g.exponentialRampToValueAtTime(C,A),_},linearRampToValueAtTime(C,A){let y=d.context.currentTime;return T===null&&S.flush(y),Array.from(S).length===0&&(S.add(u(v,y)),g.setValueAtTime(v,y)),S.add(a(C,A)),g.linearRampToValueAtTime(C,A),_},setTargetAtTime(C,A,y){return T===null&&S.flush(d.context.currentTime),S.add(c(C,A,y)),g.setTargetAtTime(C,A,y),_},setValueAtTime(C,A){return T===null&&S.flush(d.context.currentTime),S.add(u(C,A)),g.setValueAtTime(C,A),_},setValueCurveAtTime(C,A,y){let N=C instanceof Float32Array?C:new Float32Array(C);if(l!==null&&l.name==="webkitAudioContext"){let D=A+y,M=d.context.sampleRate,O=Math.ceil(A*M),W=Math.floor(D*M),k=W-O,L=new Float32Array(k);for(let q=0;q<k;q+=1){let H=(N.length-1)/y*((O+q)/M-A),Q=Math.floor(H),rt=Math.ceil(H);L[q]=Q===rt?N[Q]:(1-(H-Q))*N[Q]+(1-(rt-H))*N[rt]}T===null&&S.flush(d.context.currentTime),S.add(h(L,A,y)),g.setValueCurveAtTime(L,A,y);let P=W/M;P<D&&p(_,L[L.length-1],P),p(_,N[N.length-1],D)}else T===null&&S.flush(d.context.currentTime),S.add(h(N,A,y)),g.setValueCurveAtTime(N,A,y);return _}};return e.set(_,g),t.set(_,d),o(_,T),_};var Th=o=>({replay(t){for(let e of o)if(e.type==="exponentialRampToValue"){let{endTime:r,value:i}=e;t.exponentialRampToValueAtTime(i,r)}else if(e.type==="linearRampToValue"){let{endTime:r,value:i}=e;t.linearRampToValueAtTime(i,r)}else if(e.type==="setTarget"){let{startTime:r,target:i,timeConstant:n}=e;t.setTargetAtTime(i,r,n)}else if(e.type==="setValue"){let{startTime:r,value:i}=e;t.setValueAtTime(i,r)}else if(e.type==="setValueCurve"){let{duration:r,startTime:i,values:n}=e;t.setValueCurveAtTime(n,i,r)}else throw new Error("Can't apply an unknown automation.")}});var ji=class{constructor(t){this._map=new Map(t)}get size(){return this._map.size}entries(){return this._map.entries()}forEach(t,e=null){return this._map.forEach((r,i)=>t.call(e,r,i,this))}get(t){return this._map.get(t)}has(t){return this._map.has(t)}keys(){return this._map.keys()}values(){return this._map.values()}};var Ig={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,parameterData:{},processorOptions:{}},Nh=(o,t,e,r,i,n,s,a,c,u,h,l,p,d)=>class extends t{constructor(g,x,b){var v;let S=a(g),T=c(S),_=h(R(R({},Ig),b));p(_);let C=Fo.get(S),A=C==null?void 0:C.get(x),y=T||S.state!=="closed"?S:(v=s(S))!==null&&v!==void 0?v:S,N=i(y,T?null:g.baseLatency,u,x,A,_),D=T?r(x,_,A):null;super(g,!0,N,D);let M=[];N.parameters.forEach((W,k)=>{let L=e(this,T,W);M.push([k,L])}),this._nativeAudioWorkletNode=N,this._onprocessorerror=null,this._parameters=new ji(M),T&&o(S,this);let{activeInputs:O}=n(this);l(N,O)}get onprocessorerror(){return this._onprocessorerror}set onprocessorerror(g){let x=typeof g=="function"?d(this,g):null;this._nativeAudioWorkletNode.onprocessorerror=x;let b=this._nativeAudioWorkletNode.onprocessorerror;this._onprocessorerror=b!==null&&b===x?g:b}get parameters(){return this._parameters===null?this._nativeAudioWorkletNode.parameters:this._parameters}get port(){return this._nativeAudioWorkletNode.port}};function Li(o,t,e,r,i){if(typeof o.copyFromChannel=="function")t[e].byteLength===0&&(t[e]=new Float32Array(128)),o.copyFromChannel(t[e],r,i);else{let n=o.getChannelData(r);if(t[e].byteLength===0)t[e]=n.slice(i,i+128);else{let s=new Float32Array(n.buffer,i*Float32Array.BYTES_PER_ELEMENT,128);t[e].set(s)}}}var ts=(o,t,e,r,i)=>{typeof o.copyToChannel=="function"?t[e].byteLength!==0&&o.copyToChannel(t[e],r,i):t[e].byteLength!==0&&o.getChannelData(r).set(t[e],i)};var Fi=(o,t)=>{let e=[];for(let r=0;r<o;r+=1){let i=[],n=typeof t=="number"?t:t[r];for(let s=0;s<n;s+=1)i.push(new Float32Array(128));e.push(i)}return e};var Oh=(o,t)=>{let e=Gt(Bo,o),r=Ct(t);return Gt(e,r)};var Sg=(o,t,e,r,i,n,s)=>X(null,null,function*(){let a=t===null?Math.ceil(o.context.length/128)*128:t.length,c=r.channelCount*r.numberOfInputs,u=i.reduce((x,b)=>x+b,0),h=u===0?null:e.createBuffer(u,a,e.sampleRate);if(n===void 0)throw new Error("Missing the processor constructor.");let l=Ht(o),p=yield Oh(e,o),d=Fi(r.numberOfInputs,r.channelCount),f=Fi(r.numberOfOutputs,i),g=Array.from(o.parameters.keys()).reduce((x,b)=>Z(R({},x),{[b]:new Float32Array(128)}),{});for(let x=0;x<a;x+=128){if(r.numberOfInputs>0&&t!==null)for(let b=0;b<r.numberOfInputs;b+=1)for(let v=0;v<r.channelCount;v+=1)Li(t,d[b],v,v,x);n.parameterDescriptors!==void 0&&t!==null&&n.parameterDescriptors.forEach(({name:b},v)=>{Li(t,g,b,c+v,x)});for(let b=0;b<r.numberOfInputs;b+=1)for(let v=0;v<i[b];v+=1)f[b][v].byteLength===0&&(f[b][v]=new Float32Array(128));try{let b=d.map((S,T)=>l.activeInputs[T].size===0?[]:S),v=s(x/e.sampleRate,e.sampleRate,()=>p.process(b,f,g));if(h!==null)for(let S=0,T=0;S<r.numberOfOutputs;S+=1){for(let _=0;_<i[S];_+=1)ts(h,f[S],_,T+_,x);T+=i[S]}if(!v)break}catch(b){o.dispatchEvent(new ErrorEvent("processorerror",{colno:b.colno,filename:b.filename,lineno:b.lineno,message:b.message}));break}}return h}),Rh=(o,t,e,r,i,n,s,a,c,u,h,l,p,d,f,g)=>(x,b,v)=>{let S=new WeakMap,T=null,_=(C,A)=>X(null,null,function*(){let y=h(C),N=null,D=pt(y,A),M=Array.isArray(b.outputChannelCount)?b.outputChannelCount:Array.from(b.outputChannelCount);if(l===null){let O=M.reduce((P,q)=>P+q,0),W=i(A,{channelCount:Math.max(1,O),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,O)}),k=[];for(let P=0;P<C.numberOfOutputs;P+=1)k.push(r(A,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:M[P]}));let L=s(A,{channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,gain:1});L.connect=t.bind(null,k),L.disconnect=c.bind(null,k),N=[W,k,L]}else D||(y=new l(A,x));if(S.set(A,N===null?y:N[2]),N!==null){if(T===null){if(v===void 0)throw new Error("Missing the processor constructor.");if(p===null)throw new Error("Missing the native OfflineAudioContext constructor.");let q=C.channelCount*C.numberOfInputs,H=v.parameterDescriptors===void 0?0:v.parameterDescriptors.length,Q=q+H;T=Sg(C,Q===0?null:yield X(null,null,function*(){let at=new p(Q,Math.ceil(C.context.length/128)*128,A.sampleRate),yt=[],Pt=[];for(let At=0;At<b.numberOfInputs;At+=1)yt.push(s(at,{channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,gain:1})),Pt.push(i(at,{channelCount:b.channelCount,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:b.channelCount}));let xe=yield Promise.all(Array.from(C.parameters.values()).map(At=>X(null,null,function*(){let ot=n(at,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:At.value});return yield d(at,At,ot.offset),ot}))),ye=r(at,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,q+H)});for(let At=0;At<b.numberOfInputs;At+=1){yt[At].connect(Pt[At]);for(let ot=0;ot<b.channelCount;ot+=1)Pt[At].connect(ye,ot,At*b.channelCount+ot)}for(let[At,ot]of xe.entries())ot.connect(ye,0,q+At),ot.start(0);return ye.connect(at.destination),yield Promise.all(yt.map(At=>f(C,at,At))),g(at)}),A,b,M,v,u)}let O=yield T,W=e(A,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[k,L,P]=N;O!==null&&(W.buffer=O,W.start(0)),W.connect(k);for(let q=0,H=0;q<C.numberOfOutputs;q+=1){let Q=L[q];for(let rt=0;rt<M[q];rt+=1)k.connect(Q,H+rt,rt);H+=M[q]}return P}if(D)for(let[O,W]of C.parameters.entries())yield o(A,W,y.parameters.get(O));else for(let[O,W]of C.parameters.entries())yield d(A,W,y.parameters.get(O));return yield f(C,A,y),y});return{render(C,A){a(A,C);let y=S.get(A);return y!==void 0?Promise.resolve(y):_(C,A)}}};var Eh=(o,t,e,r,i,n,s,a,c,u,h,l,p,d,f,g,x,b,v,S)=>class extends f{constructor(_,C){super(_,C),this._nativeContext=_,this._audioWorklet=o===void 0?void 0:{addModule:(A,y)=>o(this,A,y)}}get audioWorklet(){return this._audioWorklet}createAnalyser(){return new t(this)}createBiquadFilter(){return new i(this)}createBuffer(_,C,A){return new e({length:C,numberOfChannels:_,sampleRate:A})}createBufferSource(){return new r(this)}createChannelMerger(_=6){return new n(this,{numberOfInputs:_})}createChannelSplitter(_=6){return new s(this,{numberOfOutputs:_})}createConstantSource(){return new a(this)}createConvolver(){return new c(this)}createDelay(_=1){return new h(this,{maxDelayTime:_})}createDynamicsCompressor(){return new l(this)}createGain(){return new p(this)}createIIRFilter(_,C){return new d(this,{feedback:C,feedforward:_})}createOscillator(){return new g(this)}createPanner(){return new x(this)}createPeriodicWave(_,C,A={disableNormalization:!1}){return new b(this,Z(R({},A),{imag:C,real:_}))}createStereoPanner(){return new v(this)}createWaveShaper(){return new S(this)}decodeAudioData(_,C,A){return u(this._nativeContext,_).then(y=>(typeof C=="function"&&C(y),y),y=>{throw typeof A=="function"&&A(y),y})}};var wg={Q:1,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:350,gain:0,type:"lowpass"},Mh=(o,t,e,r,i,n,s,a)=>class extends o{constructor(u,h){let l=n(u),p=R(R({},wg),h),d=i(l,p),f=s(l),g=f?e():null;super(u,!1,d,g),this._Q=t(this,f,d.Q,Mt,jt),this._detune=t(this,f,d.detune,1200*Math.log2(Mt),-1200*Math.log2(Mt)),this._frequency=t(this,f,d.frequency,u.sampleRate/2,0),this._gain=t(this,f,d.gain,40*Math.log10(Mt),jt),this._nativeBiquadFilterNode=d,a(this,1)}get detune(){return this._detune}get frequency(){return this._frequency}get gain(){return this._gain}get Q(){return this._Q}get type(){return this._nativeBiquadFilterNode.type}set type(u){this._nativeBiquadFilterNode.type=u}getFrequencyResponse(u,h,l){try{this._nativeBiquadFilterNode.getFrequencyResponse(u,h,l)}catch(p){throw p.code===11?r():p}if(u.length!==h.length||h.length!==l.length)throw r()}};var Dh=(o,t,e,r,i)=>()=>{let n=new WeakMap,s=(a,c)=>X(null,null,function*(){let u=e(a),h=pt(u,c);if(!h){let l={Q:u.Q.value,channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,detune:u.detune.value,frequency:u.frequency.value,gain:u.gain.value,type:u.type};u=t(c,l)}return n.set(c,u),h?(yield o(c,a.Q,u.Q),yield o(c,a.detune,u.detune),yield o(c,a.frequency,u.frequency),yield o(c,a.gain,u.gain)):(yield r(c,a.Q,u.Q),yield r(c,a.detune,u.detune),yield r(c,a.frequency,u.frequency),yield r(c,a.gain,u.gain)),yield i(a,c,u),u});return{render(a,c){let u=n.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var kh=(o,t)=>(e,r)=>{let i=t.get(e);if(i!==void 0)return i;let n=o.get(e);if(n!==void 0)return n;try{let s=r();return s instanceof Promise?(o.set(e,s),s.catch(()=>!1).then(a=>(o.delete(e),t.set(e,a),a))):(t.set(e,s),s)}catch(s){return t.set(e,!1),!1}};var Tg={channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6},Ph=(o,t,e,r,i)=>class extends o{constructor(s,a){let c=r(s),u=R(R({},Tg),a),h=e(c,u),l=i(c)?t():null;super(s,!1,h,l)}};var jh=(o,t,e)=>()=>{let r=new WeakMap,i=(n,s)=>X(null,null,function*(){let a=t(n);if(!pt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfInputs:a.numberOfInputs};a=o(s,u)}return r.set(s,a),yield e(n,s,a),a});return{render(n,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):i(n,s)}}};var Ng={channelCount:6,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:6},Lh=(o,t,e,r,i,n)=>class extends o{constructor(a,c){let u=r(a),h=n(R(R({},Ng),c)),l=e(u,h),p=i(u)?t():null;super(a,!1,l,p)}};var Fh=(o,t,e)=>()=>{let r=new WeakMap,i=(n,s)=>X(null,null,function*(){let a=t(n);if(!pt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfOutputs:a.numberOfOutputs};a=o(s,u)}return r.set(s,a),yield e(n,s,a),a});return{render(n,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):i(n,s)}}};var Bh=o=>(t,e,r)=>o(e,t,r);var Vh=o=>(t,e,r=0,i=0)=>{let n=t[r];if(n===void 0)throw o();return Kr(e)?n.connect(e,0,i):n.connect(e,0)};var Gh=o=>(t,e)=>{let r=o(t,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),i=t.createBuffer(1,2,44100);return r.buffer=i,r.loop=!0,r.connect(e),r.start(),()=>{r.stop(),r.disconnect(e)}};var Og={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",offset:1},qh=(o,t,e,r,i,n,s)=>class extends o{constructor(c,u){let h=i(c),l=R(R({},Og),u),p=r(h,l),d=n(h),f=d?e():null;super(c,!1,p,f),this._constantSourceNodeRenderer=f,this._nativeConstantSourceNode=p,this._offset=t(this,d,p.offset,Mt,jt),this._onended=null}get offset(){return this._offset}get onended(){return this._onended}set onended(c){let u=typeof c=="function"?s(this,c):null;this._nativeConstantSourceNode.onended=u;let h=this._nativeConstantSourceNode.onended;this._onended=h!==null&&h===u?c:h}start(c=0){if(this._nativeConstantSourceNode.start(c),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.start=c),this.context.state!=="closed"){Be(this);let u=()=>{this._nativeConstantSourceNode.removeEventListener("ended",u),ne(this)&&tr(this)};this._nativeConstantSourceNode.addEventListener("ended",u)}}stop(c=0){this._nativeConstantSourceNode.stop(c),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.stop=c)}};var Wh=(o,t,e,r,i)=>()=>{let n=new WeakMap,s=null,a=null,c=(u,h)=>X(null,null,function*(){let l=e(u),p=pt(l,h);if(!p){let d={channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,offset:l.offset.value};l=t(h,d),s!==null&&l.start(s),a!==null&&l.stop(a)}return n.set(h,l),p?yield o(h,u.offset,l.offset):yield r(h,u.offset,l.offset),yield i(u,h,l),l});return{set start(u){s=u},set stop(u){a=u},render(u,h){let l=n.get(h);return l!==void 0?Promise.resolve(l):c(u,h)}}};var Uh=o=>t=>(o[0]=t,o[0]);var Rg={buffer:null,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",disableNormalization:!1},zh=(o,t,e,r,i,n)=>class extends o{constructor(a,c){let u=r(a),h=R(R({},Rg),c),l=e(u,h),d=i(u)?t():null;super(a,!1,l,d),this._isBufferNullified=!1,this._nativeConvolverNode=l,h.buffer!==null&&n(this,h.buffer.duration)}get buffer(){return this._isBufferNullified?null:this._nativeConvolverNode.buffer}set buffer(a){if(this._nativeConvolverNode.buffer=a,a===null&&this._nativeConvolverNode.buffer!==null){let c=this._nativeConvolverNode.context;this._nativeConvolverNode.buffer=c.createBuffer(1,1,c.sampleRate),this._isBufferNullified=!0,n(this,0)}else this._isBufferNullified=!1,n(this,this._nativeConvolverNode.buffer===null?0:this._nativeConvolverNode.buffer.duration)}get normalize(){return this._nativeConvolverNode.normalize}set normalize(a){this._nativeConvolverNode.normalize=a}};var Yh=(o,t,e)=>()=>{let r=new WeakMap,i=(n,s)=>X(null,null,function*(){let a=t(n);if(!pt(a,s)){let u={buffer:a.buffer,channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,disableNormalization:!a.normalize};a=o(s,u)}return r.set(s,a),Oe(a)?yield e(n,s,a.inputs[0]):yield e(n,s,a),a});return{render(n,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):i(n,s)}}};var Hh=(o,t)=>(e,r,i)=>{if(t===null)throw new Error("Missing the native OfflineAudioContext constructor.");try{return new t(e,r,i)}catch(n){throw n.name==="SyntaxError"?o():n}};var Qh=()=>new DOMException("","DataCloneError");var dc=o=>{let{port1:t,port2:e}=new MessageChannel;return new Promise(r=>{let i=()=>{e.onmessage=null,t.close(),e.close(),r()};e.onmessage=()=>i();try{t.postMessage(o,[o])}catch(n){}finally{i()}})};var Zh=(o,t,e,r,i,n,s,a,c,u,h)=>(l,p)=>{let d=s(l)?l:n(l);if(i.has(p)){let f=e();return Promise.reject(f)}try{i.add(p)}catch(f){}return t(c,()=>c(d))?d.decodeAudioData(p).then(f=>(dc(p).catch(()=>{}),t(a,()=>a(f))||h(f),o.add(f),f)):new Promise((f,g)=>{let x=()=>X(null,null,function*(){try{yield dc(p)}catch(v){}}),b=v=>{g(v),x()};try{d.decodeAudioData(p,v=>{typeof v.copyFromChannel!="function"&&(u(v),Mi(v)),o.add(v),x().then(()=>f(v))},v=>{b(v===null?r():v)})}catch(v){b(v)}})};var Xh=(o,t,e,r,i,n,s,a)=>(c,u)=>{let h=t.get(c);if(h===void 0)throw new Error("Missing the expected cycle count.");let l=n(c.context),p=a(l);if(h===u){if(t.delete(c),!p&&s(c)){let d=r(c),{outputs:f}=e(c);for(let g of f)if(Pr(g)){let x=r(g[0]);o(d,x,g[1],g[2])}else{let x=i(g[0]);d.connect(x,g[1])}}}else t.set(c,h-u)};var Eg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},Jh=(o,t,e,r,i,n,s)=>class extends o{constructor(c,u){let h=i(c),l=R(R({},Eg),u),p=r(h,l),d=n(h),f=d?e(l.maxDelayTime):null;super(c,!1,p,f),this._delayTime=t(this,d,p.delayTime),s(this,l.maxDelayTime)}get delayTime(){return this._delayTime}};var Kh=(o,t,e,r,i)=>n=>{let s=new WeakMap,a=(c,u)=>X(null,null,function*(){let h=e(c),l=pt(h,u);if(!l){let p={channelCount:h.channelCount,channelCountMode:h.channelCountMode,channelInterpretation:h.channelInterpretation,delayTime:h.delayTime.value,maxDelayTime:n};h=t(u,p)}return s.set(u,h),l?yield o(u,c.delayTime,h.delayTime):yield r(u,c.delayTime,h.delayTime),yield i(c,u,h),h});return{render(c,u){let h=s.get(u);return h!==void 0?Promise.resolve(h):a(c,u)}}};var $h=o=>(t,e,r,i)=>o(t[i],n=>n[0]===e&&n[1]===r);var tl=o=>(t,e)=>{o(t).delete(e)};var el=o=>"delayTime"in o;var rl=(o,t,e)=>function r(i,n){let s=Xr(n)?n:e(o,n);if(el(s))return[];if(i[0]===s)return[i];if(i.includes(s))return[];let{outputs:a}=t(s);return Array.from(a).map(c=>r([...i,s],c[0])).reduce((c,u)=>c.concat(u),[])};var es=(o,t,e)=>{let r=t[e];if(r===void 0)throw o();return r},il=o=>(t,e=void 0,r=void 0,i=0)=>e===void 0?t.forEach(n=>n.disconnect()):typeof e=="number"?es(o,t,e).disconnect():Kr(e)?r===void 0?t.forEach(n=>n.disconnect(e)):i===void 0?es(o,t,r).disconnect(e,0):es(o,t,r).disconnect(e,0,i):r===void 0?t.forEach(n=>n.disconnect(e)):es(o,t,r).disconnect(e,0);var Mg={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},ol=(o,t,e,r,i,n,s,a)=>class extends o{constructor(u,h){let l=n(u),p=R(R({},Mg),h),d=r(l,p),f=s(l),g=f?e():null;super(u,!1,d,g),this._attack=t(this,f,d.attack),this._knee=t(this,f,d.knee),this._nativeDynamicsCompressorNode=d,this._ratio=t(this,f,d.ratio),this._release=t(this,f,d.release),this._threshold=t(this,f,d.threshold),a(this,.006)}get attack(){return this._attack}get channelCount(){return this._nativeDynamicsCompressorNode.channelCount}set channelCount(u){let h=this._nativeDynamicsCompressorNode.channelCount;if(this._nativeDynamicsCompressorNode.channelCount=u,u>2)throw this._nativeDynamicsCompressorNode.channelCount=h,i()}get channelCountMode(){return this._nativeDynamicsCompressorNode.channelCountMode}set channelCountMode(u){let h=this._nativeDynamicsCompressorNode.channelCountMode;if(this._nativeDynamicsCompressorNode.channelCountMode=u,u==="max")throw this._nativeDynamicsCompressorNode.channelCountMode=h,i()}get knee(){return this._knee}get ratio(){return this._ratio}get reduction(){return typeof this._nativeDynamicsCompressorNode.reduction.value=="number"?this._nativeDynamicsCompressorNode.reduction.value:this._nativeDynamicsCompressorNode.reduction}get release(){return this._release}get threshold(){return this._threshold}};var nl=(o,t,e,r,i)=>()=>{let n=new WeakMap,s=(a,c)=>X(null,null,function*(){let u=e(a),h=pt(u,c);if(!h){let l={attack:u.attack.value,channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,knee:u.knee.value,ratio:u.ratio.value,release:u.release.value,threshold:u.threshold.value};u=t(c,l)}return n.set(c,u),h?(yield o(c,a.attack,u.attack),yield o(c,a.knee,u.knee),yield o(c,a.ratio,u.ratio),yield o(c,a.release,u.release),yield o(c,a.threshold,u.threshold)):(yield r(c,a.attack,u.attack),yield r(c,a.knee,u.knee),yield r(c,a.ratio,u.ratio),yield r(c,a.release,u.release),yield r(c,a.threshold,u.threshold)),yield i(a,c,u),u});return{render(a,c){let u=n.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var sl=()=>new DOMException("","EncodingError");var al=o=>t=>new Promise((e,r)=>{if(o===null){r(new SyntaxError);return}let i=o.document.head;if(i===null)r(new SyntaxError);else{let n=o.document.createElement("script"),s=new Blob([t],{type:"application/javascript"}),a=URL.createObjectURL(s),c=o.onerror,u=()=>{o.onerror=c,URL.revokeObjectURL(a)};o.onerror=(h,l,p,d,f)=>{if(l===a||l===o.location.href&&p===1&&d===1)return u(),r(f),!1;if(c!==null)return c(h,l,p,d,f)},n.onerror=()=>{u(),r(new SyntaxError)},n.onload=()=>{u(),e()},n.src=a,n.type="module",i.appendChild(n)}});var cl=o=>class{constructor(e){this._nativeEventTarget=e,this._listeners=new WeakMap}addEventListener(e,r,i){if(r!==null){let n=this._listeners.get(r);n===void 0&&(n=o(this,r),typeof r=="function"&&this._listeners.set(r,n)),this._nativeEventTarget.addEventListener(e,n,i)}}dispatchEvent(e){return this._nativeEventTarget.dispatchEvent(e)}removeEventListener(e,r,i){let n=r===null?void 0:this._listeners.get(r);this._nativeEventTarget.removeEventListener(e,n===void 0?null:n,i)}};var ul=o=>(t,e,r)=>{Object.defineProperties(o,{currentFrame:{configurable:!0,get(){return Math.round(t*e)}},currentTime:{configurable:!0,get(){return t}}});try{return r()}finally{o!==null&&(delete o.currentFrame,delete o.currentTime)}};var hl=o=>t=>X(null,null,function*(){try{let e=yield fetch(t);if(e.ok)return[yield e.text(),e.url]}catch(e){}throw o()});var Dg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},ll=(o,t,e,r,i,n)=>class extends o{constructor(a,c){let u=i(a),h=R(R({},Dg),c),l=r(u,h),p=n(u),d=p?e():null;super(a,!1,l,d),this._gain=t(this,p,l.gain,Mt,jt)}get gain(){return this._gain}};var pl=(o,t,e,r,i)=>()=>{let n=new WeakMap,s=(a,c)=>X(null,null,function*(){let u=e(a),h=pt(u,c);if(!h){let l={channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,gain:u.gain.value};u=t(c,l)}return n.set(c,u),h?yield o(c,a.gain,u.gain):yield r(c,a.gain,u.gain),yield i(a,c,u),u});return{render(a,c){let u=n.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var dl=(o,t)=>e=>t(o,e);var ml=o=>t=>{let e=o(t);if(e.renderer===null)throw new Error("Missing the renderer of the given AudioNode in the audio graph.");return e.renderer};var fl=o=>t=>{var e;return(e=o.get(t))!==null&&e!==void 0?e:0};var gl=o=>t=>{let e=o(t);if(e.renderer===null)throw new Error("Missing the renderer of the given AudioParam in the audio graph.");return e.renderer};var xl=o=>t=>o.get(t);var wt=()=>new DOMException("","InvalidStateError");var yl=o=>t=>{let e=o.get(t);if(e===void 0)throw wt();return e};var bl=(o,t)=>e=>{let r=o.get(e);if(r!==void 0)return r;if(t===null)throw new Error("Missing the native OfflineAudioContext constructor.");return r=new t(1,1,44100),o.set(e,r),r};var Al=o=>t=>{let e=o.get(t);if(e===void 0)throw new Error("The context has no set of AudioWorkletNodes.");return e};var Bi=()=>new DOMException("","InvalidAccessError");var Cl=o=>{o.getFrequencyResponse=(t=>(e,r,i)=>{if(e.length!==r.length||r.length!==i.length)throw Bi();return t.call(o,e,r,i)})(o.getFrequencyResponse)};var kg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},_l=(o,t,e,r,i,n)=>class extends o{constructor(a,c){let u=r(a),h=i(u),l=R(R({},kg),c),p=t(u,h?null:a.baseLatency,l),d=h?e(l.feedback,l.feedforward):null;super(a,!1,p,d),Cl(p),this._nativeIIRFilterNode=p,n(this,1)}getFrequencyResponse(a,c,u){return this._nativeIIRFilterNode.getFrequencyResponse(a,c,u)}};var rs=(o,t,e,r,i,n,s,a,c,u,h)=>{let l=u.length,p=a;for(let d=0;d<l;d+=1){let f=e[0]*u[d];for(let g=1;g<i;g+=1){let x=p-g&c-1;f+=e[g]*n[x],f-=o[g]*s[x]}for(let g=i;g<r;g+=1)f+=e[g]*n[p-g&c-1];for(let g=i;g<t;g+=1)f-=o[g]*s[p-g&c-1];n[p]=u[d],s[p]=f,p=p+1&c-1,h[d]=f}return p};var Pg=(o,t,e,r)=>{let i=e instanceof Float64Array?e:new Float64Array(e),n=r instanceof Float64Array?r:new Float64Array(r),s=i.length,a=n.length,c=Math.min(s,a);if(i[0]!==1){for(let f=0;f<s;f+=1)n[f]/=i[0];for(let f=1;f<a;f+=1)i[f]/=i[0]}let u=32,h=new Float32Array(u),l=new Float32Array(u),p=t.createBuffer(o.numberOfChannels,o.length,o.sampleRate),d=o.numberOfChannels;for(let f=0;f<d;f+=1){let g=o.getChannelData(f),x=p.getChannelData(f);h.fill(0),l.fill(0),rs(i,s,n,a,c,h,l,0,u,g,x)}return p},vl=(o,t,e,r,i)=>(n,s)=>{let a=new WeakMap,c=null,u=(h,l)=>X(null,null,function*(){let p=null,d=t(h),f=pt(d,l);if(l.createIIRFilter===void 0?p=o(l,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}):f||(d=l.createIIRFilter(s,n)),a.set(l,p===null?d:p),p!==null){if(c===null){if(e===null)throw new Error("Missing the native OfflineAudioContext constructor.");let x=new e(h.context.destination.channelCount,h.context.length,l.sampleRate);c=X(null,null,function*(){yield r(h,x,x.destination);let b=yield i(x);return Pg(b,l,n,s)})}let g=yield c;return p.buffer=g,p.start(0),p}return yield r(h,l,d),d});return{render(h,l){let p=a.get(l);return p!==void 0?Promise.resolve(p):u(h,l)}}};var Il=(o,t,e,r,i,n)=>s=>(a,c)=>{let u=o.get(a);if(u===void 0){if(!s&&n(a)){let h=r(a),{outputs:l}=e(a);for(let p of l)if(Pr(p)){let d=r(p[0]);t(h,d,p[1],p[2])}else{let d=i(p[0]);h.disconnect(d,p[1])}}o.set(a,c)}else o.set(a,u+c)};var Sl=(o,t)=>e=>{let r=o.get(e);return t(r)||t(e)};var wl=(o,t)=>e=>o.has(e)||t(e);var Tl=(o,t)=>e=>o.has(e)||t(e);var Nl=(o,t)=>e=>{let r=o.get(e);return t(r)||t(e)};var Ol=o=>t=>o!==null&&t instanceof o;var Rl=o=>t=>o!==null&&typeof o.AudioNode=="function"&&t instanceof o.AudioNode;var El=o=>t=>o!==null&&typeof o.AudioParam=="function"&&t instanceof o.AudioParam;var Ml=(o,t)=>e=>o(e)||t(e);var Dl=o=>t=>o!==null&&t instanceof o;var kl=o=>o!==null&&o.isSecureContext;var Pl=(o,t,e,r)=>class extends o{constructor(n,s){let a=e(n),c=t(a,s);if(r(a))throw TypeError();super(n,!0,c,null),this._nativeMediaElementAudioSourceNode=c}get mediaElement(){return this._nativeMediaElementAudioSourceNode.mediaElement}};var jg={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers"},jl=(o,t,e,r)=>class extends o{constructor(n,s){let a=e(n);if(r(a))throw new TypeError;let c=R(R({},jg),s),u=t(a,c);super(n,!1,u,null),this._nativeMediaStreamAudioDestinationNode=u}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}};var Ll=(o,t,e,r)=>class extends o{constructor(n,s){let a=e(n),c=t(a,s);if(r(a))throw new TypeError;super(n,!0,c,null),this._nativeMediaStreamAudioSourceNode=c}get mediaStream(){return this._nativeMediaStreamAudioSourceNode.mediaStream}};var Fl=(o,t,e)=>class extends o{constructor(i,n){let s=e(i),a=t(s,n);super(i,!0,a,null)}};var Bl=(o,t,e,r,i)=>class extends r{constructor(s={}){if(i===null)throw new Error("Missing the native AudioContext constructor.");let a;try{a=new i(s)}catch(h){throw h.code===12&&h.message==="sampleRate is not in range"?t():h}if(a===null)throw e();if(!Kn(s.latencyHint))throw new TypeError(`The provided value '${s.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(s.sampleRate!==void 0&&a.sampleRate!==s.sampleRate)throw t();super(a,2);let{latencyHint:c}=s,{sampleRate:u}=a;if(this._baseLatency=typeof a.baseLatency=="number"?a.baseLatency:c==="balanced"?512/u:c==="interactive"||c===void 0?256/u:c==="playback"?1024/u:Math.max(2,Math.min(128,Math.round(c*u/128)))*128/u,this._nativeAudioContext=a,i.name==="webkitAudioContext"?(this._nativeGainNode=a.createGain(),this._nativeOscillatorNode=a.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(a.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,a.state==="running"){this._state="suspended";let h=()=>{this._state==="suspended"&&(this._state=null),a.removeEventListener("statechange",h)};a.addEventListener("statechange",h)}}get baseLatency(){return this._baseLatency}get state(){return this._state!==null?this._state:this._nativeAudioContext.state}close(){return this.state==="closed"?this._nativeAudioContext.close().then(()=>{throw o()}):(this._state==="suspended"&&(this._state=null),this._nativeAudioContext.close().then(()=>{this._nativeGainNode!==null&&this._nativeOscillatorNode!==null&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),kr(this)}))}resume(){return this._state==="suspended"?new Promise((s,a)=>{let c=()=>{this._nativeAudioContext.removeEventListener("statechange",c),this._nativeAudioContext.state==="running"?s():this.resume().then(s,a)};this._nativeAudioContext.addEventListener("statechange",c)}):this._nativeAudioContext.resume().catch(s=>{throw s===void 0||s.code===15?o():s})}suspend(){return this._nativeAudioContext.suspend().catch(s=>{throw s===void 0?o():s})}};var Vl=(o,t,e,r,i,n)=>class extends e{constructor(a,c){super(a),this._nativeContext=a,Ri.set(this,a),r(a)&&i.set(a,new Set),this._destination=new o(this,c),this._listener=t(this,a),this._onstatechange=null}get currentTime(){return this._nativeContext.currentTime}get destination(){return this._destination}get listener(){return this._listener}get onstatechange(){return this._onstatechange}set onstatechange(a){let c=typeof a=="function"?n(this,a):null;this._nativeContext.onstatechange=c;let u=this._nativeContext.onstatechange;this._onstatechange=u!==null&&u===c?a:u}get sampleRate(){return this._nativeContext.sampleRate}get state(){return this._nativeContext.state}};var Ge=o=>{let t=new Uint32Array([1179011410,40,1163280727,544501094,16,131073,44100,176400,1048580,1635017060,4,0]);try{let e=o.decodeAudioData(t.buffer,()=>{});return e===void 0?!1:(e.catch(()=>{}),!0)}catch(e){}return!1};var Lg={numberOfChannels:1},Gl=(o,t,e,r,i)=>class extends r{constructor(s){let{length:a,numberOfChannels:c,sampleRate:u}=R(R({},Lg),s),h=e(c,a,u);o(Ge,()=>Ge(h))||h.addEventListener("statechange",(()=>{let l=0,p=d=>{this._state==="running"&&(l>0?(h.removeEventListener("statechange",p),d.stopImmediatePropagation(),this._waitForThePromiseToSettle(d)):l+=1)};return p})()),super(h,c),this._length=a,this._nativeOfflineAudioContext=h,this._state=null}get length(){return this._nativeOfflineAudioContext.length===void 0?this._length:this._nativeOfflineAudioContext.length}get state(){return this._state===null?this._nativeOfflineAudioContext.state:this._state}startRendering(){return this._state==="running"?Promise.reject(t()):(this._state="running",i(this.destination,this._nativeOfflineAudioContext).finally(()=>{this._state=null,kr(this)}))}_waitForThePromiseToSettle(s){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(s):setTimeout(()=>this._waitForThePromiseToSettle(s))}};var ql=(o,t)=>(e,r,i)=>{let n=new Set;return e.connect=(s=>(a,c=0,u=0)=>{let h=n.size===0;if(t(a))return s.call(e,a,c,u),o(n,[a,c,u],l=>l[0]===a&&l[1]===c&&l[2]===u,!0),h&&r(),a;s.call(e,a,c),o(n,[a,c],l=>l[0]===a&&l[1]===c,!0),h&&r()})(e.connect),e.disconnect=(s=>(a,c,u)=>{let h=n.size>0;if(a===void 0)s.apply(e),n.clear();else if(typeof a=="number"){s.call(e,a);for(let p of n)p[1]===a&&n.delete(p)}else{t(a)?s.call(e,a,c,u):s.call(e,a,c);for(let p of n)p[0]===a&&(c===void 0||p[1]===c)&&(u===void 0||p[2]===u)&&n.delete(p)}let l=n.size===0;h&&l&&i()})(e.disconnect),e};var dt=(o,t,e)=>{let r=t[e];r!==void 0&&r!==o[e]&&(o[e]=r)};var ut=(o,t)=>{dt(o,t,"channelCount"),dt(o,t,"channelCountMode"),dt(o,t,"channelInterpretation")};var mc=o=>typeof o.getFloatTimeDomainData=="function";var Wl=o=>{o.getFloatTimeDomainData=t=>{let e=new Uint8Array(t.length);o.getByteTimeDomainData(e);let r=Math.max(e.length,o.fftSize);for(let i=0;i<r;i+=1)t[i]=(e[i]-128)*.0078125;return t}};var Ul=(o,t)=>(e,r)=>{let i=e.createAnalyser();if(ut(i,r),!(r.maxDecibels>r.minDecibels))throw t();return dt(i,r,"fftSize"),dt(i,r,"maxDecibels"),dt(i,r,"minDecibels"),dt(i,r,"smoothingTimeConstant"),o(mc,()=>mc(i))||Wl(i),i};var zl=o=>o===null?null:o.hasOwnProperty("AudioBuffer")?o.AudioBuffer:null;var xt=(o,t,e)=>{let r=t[e];r!==void 0&&r!==o[e].value&&(o[e].value=r)};var Yl=o=>{o.start=(t=>{let e=!1;return(r=0,i=0,n)=>{if(e)throw wt();t.call(o,r,i,n),e=!0}})(o.start)};var Vi=o=>{o.start=(t=>(e=0,r=0,i)=>{if(typeof i=="number"&&i<0||r<0||e<0)throw new RangeError("The parameters can't be negative.");t.call(o,e,r,i)})(o.start)};var Gi=o=>{o.stop=(t=>(e=0)=>{if(e<0)throw new RangeError("The parameter can't be negative.");t.call(o,e)})(o.stop)};var Hl=(o,t,e,r,i,n,s,a,c,u,h)=>(l,p)=>{let d=l.createBufferSource();return ut(d,p),xt(d,p,"playbackRate"),dt(d,p,"buffer"),dt(d,p,"loop"),dt(d,p,"loopEnd"),dt(d,p,"loopStart"),t(e,()=>e(l))||Yl(d),t(r,()=>r(l))||c(d),t(i,()=>i(l))||u(d,l),t(n,()=>n(l))||Vi(d),t(s,()=>s(l))||h(d,l),t(a,()=>a(l))||Gi(d),o(l,d),d};var Ql=o=>o===null?null:o.hasOwnProperty("AudioContext")?o.AudioContext:o.hasOwnProperty("webkitAudioContext")?o.webkitAudioContext:null;var Zl=(o,t)=>(e,r,i)=>{let n=e.destination;if(n.channelCount!==r)try{n.channelCount=r}catch(a){}i&&n.channelCountMode!=="explicit"&&(n.channelCountMode="explicit"),n.maxChannelCount===0&&Object.defineProperty(n,"maxChannelCount",{value:r});let s=o(e,{channelCount:r,channelCountMode:n.channelCountMode,channelInterpretation:n.channelInterpretation,gain:1});return t(s,"channelCount",a=>()=>a.call(s),a=>c=>{a.call(s,c);try{n.channelCount=c}catch(u){if(c>n.maxChannelCount)throw u}}),t(s,"channelCountMode",a=>()=>a.call(s),a=>c=>{a.call(s,c),n.channelCountMode=c}),t(s,"channelInterpretation",a=>()=>a.call(s),a=>c=>{a.call(s,c),n.channelInterpretation=c}),Object.defineProperty(s,"maxChannelCount",{get:()=>n.maxChannelCount}),s.connect(n),s};var Xl=o=>o===null?null:o.hasOwnProperty("AudioWorkletNode")?o.AudioWorkletNode:null;var Jl=o=>{let{port1:t}=new MessageChannel;try{t.postMessage(o)}finally{t.close()}};var Kl=(o,t,e,r,i)=>(n,s,a,c,u,h)=>{if(a!==null)try{let l=new a(n,c,h),p=new Map,d=null;if(Object.defineProperties(l,{channelCount:{get:()=>h.channelCount,set:()=>{throw o()}},channelCountMode:{get:()=>"explicit",set:()=>{throw o()}},onprocessorerror:{get:()=>d,set:f=>{typeof d=="function"&&l.removeEventListener("processorerror",d),d=typeof f=="function"?f:null,typeof d=="function"&&l.addEventListener("processorerror",d)}}}),l.addEventListener=(f=>(...g)=>{if(g[0]==="processorerror"){let x=typeof g[1]=="function"?g[1]:typeof g[1]=="object"&&g[1]!==null&&typeof g[1].handleEvent=="function"?g[1].handleEvent:null;if(x!==null){let b=p.get(g[1]);b!==void 0?g[1]=b:(g[1]=v=>{v.type==="error"?(Object.defineProperties(v,{type:{value:"processorerror"}}),x(v)):x(new ErrorEvent(g[0],R({},v)))},p.set(x,g[1]))}}return f.call(l,"error",g[1],g[2]),f.call(l,...g)})(l.addEventListener),l.removeEventListener=(f=>(...g)=>{if(g[0]==="processorerror"){let x=p.get(g[1]);x!==void 0&&(p.delete(g[1]),g[1]=x)}return f.call(l,"error",g[1],g[2]),f.call(l,g[0],g[1],g[2])})(l.removeEventListener),h.numberOfOutputs!==0){let f=e(n,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return l.connect(f).connect(n.destination),i(l,()=>f.disconnect(),()=>f.connect(n.destination))}return l}catch(l){throw l.code===11?r():l}if(u===void 0)throw r();return Jl(h),t(n,s,u,h)};var is=(o,t)=>o===null?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(o*t)))));var $l=o=>new Promise((t,e)=>{let{port1:r,port2:i}=new MessageChannel;r.onmessage=({data:n})=>{r.close(),i.close(),t(n)},r.onmessageerror=({data:n})=>{r.close(),i.close(),e(n)},i.postMessage(o)});var tp=(o,t)=>X(null,null,function*(){let e=yield $l(t);return new o(e)});var ep=(o,t,e,r)=>{let i=Bo.get(o);i===void 0&&(i=new WeakMap,Bo.set(o,i));let n=tp(e,r);return i.set(t,n),n};var rp=(o,t,e,r,i,n,s,a,c,u,h,l,p)=>(d,f,g,x)=>{if(x.numberOfInputs===0&&x.numberOfOutputs===0)throw c();let b=Array.isArray(x.outputChannelCount)?x.outputChannelCount:Array.from(x.outputChannelCount);if(b.some(U=>U<1))throw c();if(b.length!==x.numberOfOutputs)throw t();if(x.channelCountMode!=="explicit")throw c();let v=x.channelCount*x.numberOfInputs,S=b.reduce((U,it)=>U+it,0),T=g.parameterDescriptors===void 0?0:g.parameterDescriptors.length;if(v+T>6||S>6)throw c();let _=new MessageChannel,C=[],A=[];for(let U=0;U<x.numberOfInputs;U+=1)C.push(s(d,{channelCount:x.channelCount,channelCountMode:x.channelCountMode,channelInterpretation:x.channelInterpretation,gain:1})),A.push(i(d,{channelCount:x.channelCount,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:x.channelCount}));let y=[];if(g.parameterDescriptors!==void 0)for(let{defaultValue:U,maxValue:it,minValue:zt,name:Nt}of g.parameterDescriptors){let ft=n(d,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:x.parameterData[Nt]!==void 0?x.parameterData[Nt]:U===void 0?0:U});Object.defineProperties(ft.offset,{defaultValue:{get:()=>U===void 0?0:U},maxValue:{get:()=>it===void 0?Mt:it},minValue:{get:()=>zt===void 0?jt:zt}}),y.push(ft)}let N=r(d,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,v+T)}),D=is(f,d.sampleRate),M=a(d,D,v+T,Math.max(1,S)),O=i(d,{channelCount:Math.max(1,S),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,S)}),W=[];for(let U=0;U<x.numberOfOutputs;U+=1)W.push(r(d,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:b[U]}));for(let U=0;U<x.numberOfInputs;U+=1){C[U].connect(A[U]);for(let it=0;it<x.channelCount;it+=1)A[U].connect(N,it,U*x.channelCount+it)}let k=new ji(g.parameterDescriptors===void 0?[]:g.parameterDescriptors.map(({name:U},it)=>{let zt=y[it];return zt.connect(N,0,v+it),zt.start(0),[U,zt.offset]}));N.connect(M);let L=x.channelInterpretation,P=null,q=x.numberOfOutputs===0?[M]:W,H={get bufferSize(){return D},get channelCount(){return x.channelCount},set channelCount(U){throw e()},get channelCountMode(){return x.channelCountMode},set channelCountMode(U){throw e()},get channelInterpretation(){return L},set channelInterpretation(U){for(let it of C)it.channelInterpretation=U;L=U},get context(){return M.context},get inputs(){return C},get numberOfInputs(){return x.numberOfInputs},get numberOfOutputs(){return x.numberOfOutputs},get onprocessorerror(){return P},set onprocessorerror(U){typeof P=="function"&&H.removeEventListener("processorerror",P),P=typeof U=="function"?U:null,typeof P=="function"&&H.addEventListener("processorerror",P)},get parameters(){return k},get port(){return _.port2},addEventListener(...U){return M.addEventListener(U[0],U[1],U[2])},connect:o.bind(null,q),disconnect:u.bind(null,q),dispatchEvent(...U){return M.dispatchEvent(U[0])},removeEventListener(...U){return M.removeEventListener(U[0],U[1],U[2])}},Q=new Map;_.port1.addEventListener=(U=>(...it)=>{if(it[0]==="message"){let zt=typeof it[1]=="function"?it[1]:typeof it[1]=="object"&&it[1]!==null&&typeof it[1].handleEvent=="function"?it[1].handleEvent:null;if(zt!==null){let Nt=Q.get(it[1]);Nt!==void 0?it[1]=Nt:(it[1]=ft=>{h(d.currentTime,d.sampleRate,()=>zt(ft))},Q.set(zt,it[1]))}}return U.call(_.port1,it[0],it[1],it[2])})(_.port1.addEventListener),_.port1.removeEventListener=(U=>(...it)=>{if(it[0]==="message"){let zt=Q.get(it[1]);zt!==void 0&&(Q.delete(it[1]),it[1]=zt)}return U.call(_.port1,it[0],it[1],it[2])})(_.port1.removeEventListener);let rt=null;Object.defineProperty(_.port1,"onmessage",{get:()=>rt,set:U=>{typeof rt=="function"&&_.port1.removeEventListener("message",rt),rt=typeof U=="function"?U:null,typeof rt=="function"&&(_.port1.addEventListener("message",rt),_.port1.start())}}),g.prototype.port=_.port1;let at=null;ep(d,H,g,x).then(U=>at=U);let Pt=Fi(x.numberOfInputs,x.channelCount),xe=Fi(x.numberOfOutputs,b),ye=g.parameterDescriptors===void 0?[]:g.parameterDescriptors.reduce((U,{name:it})=>Z(R({},U),{[it]:new Float32Array(128)}),{}),At=!0,ot=()=>{x.numberOfOutputs>0&&M.disconnect(O);for(let U=0,it=0;U<x.numberOfOutputs;U+=1){let zt=W[U];for(let Nt=0;Nt<b[U];Nt+=1)O.disconnect(zt,it+Nt,Nt);it+=b[U]}},bi=new Map;M.onaudioprocess=({inputBuffer:U,outputBuffer:it})=>{if(at!==null){let zt=l(H);for(let Nt=0;Nt<D;Nt+=128){for(let ft=0;ft<x.numberOfInputs;ft+=1)for(let Et=0;Et<x.channelCount;Et+=1)Li(U,Pt[ft],Et,Et,Nt);g.parameterDescriptors!==void 0&&g.parameterDescriptors.forEach(({name:ft},Et)=>{Li(U,ye,ft,v+Et,Nt)});for(let ft=0;ft<x.numberOfInputs;ft+=1)for(let Et=0;Et<b[ft];Et+=1)xe[ft][Et].byteLength===0&&(xe[ft][Et]=new Float32Array(128));try{let ft=Pt.map((Se,Sr)=>{if(zt[Sr].size>0)return bi.set(Sr,D/128),Se;let Ta=bi.get(Sr);return Ta===void 0?[]:(Se.every(fm=>fm.every(gm=>gm===0))&&(Ta===1?bi.delete(Sr):bi.set(Sr,Ta-1)),Se)});At=h(d.currentTime+Nt/d.sampleRate,d.sampleRate,()=>at.process(ft,xe,ye));for(let Se=0,Sr=0;Se<x.numberOfOutputs;Se+=1){for(let vo=0;vo<b[Se];vo+=1)ts(it,xe[Se],vo,Sr+vo,Nt);Sr+=b[Se]}}catch(ft){At=!1,H.dispatchEvent(new ErrorEvent("processorerror",{colno:ft.colno,filename:ft.filename,lineno:ft.lineno,message:ft.message}))}if(!At){for(let ft=0;ft<x.numberOfInputs;ft+=1){C[ft].disconnect(A[ft]);for(let Et=0;Et<x.channelCount;Et+=1)A[Nt].disconnect(N,Et,ft*x.channelCount+Et)}if(g.parameterDescriptors!==void 0){let ft=g.parameterDescriptors.length;for(let Et=0;Et<ft;Et+=1){let Se=y[Et];Se.disconnect(N,0,v+Et),Se.stop()}}N.disconnect(M),M.onaudioprocess=null,Ao?ot():Ci();break}}}};let Ao=!1,J=s(d,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0}),Ai=()=>M.connect(J).connect(d.destination),Ci=()=>{M.disconnect(J),J.disconnect()},Co=()=>{if(At){Ci(),x.numberOfOutputs>0&&M.connect(O);for(let U=0,it=0;U<x.numberOfOutputs;U+=1){let zt=W[U];for(let Nt=0;Nt<b[U];Nt+=1)O.connect(zt,it+Nt,Nt);it+=b[U]}}Ao=!0},_o=()=>{At&&(Ai(),ot()),Ao=!1};return Ai(),p(H,Co,_o)};var fc=(o,t)=>{let e=o.createBiquadFilter();return ut(e,t),xt(e,t,"Q"),xt(e,t,"detune"),xt(e,t,"frequency"),xt(e,t,"gain"),dt(e,t,"type"),e};var ip=(o,t)=>(e,r)=>{let i=e.createChannelMerger(r.numberOfInputs);return o!==null&&o.name==="webkitAudioContext"&&t(e,i),ut(i,r),i};var op=o=>{let t=o.numberOfOutputs;Object.defineProperty(o,"channelCount",{get:()=>t,set:e=>{if(e!==t)throw wt()}}),Object.defineProperty(o,"channelCountMode",{get:()=>"explicit",set:e=>{if(e!=="explicit")throw wt()}}),Object.defineProperty(o,"channelInterpretation",{get:()=>"discrete",set:e=>{if(e!=="discrete")throw wt()}})};var qi=(o,t)=>{let e=o.createChannelSplitter(t.numberOfOutputs);return ut(e,t),op(e),e};var np=(o,t,e,r,i)=>(n,s)=>{if(n.createConstantSource===void 0)return e(n,s);let a=n.createConstantSource();return ut(a,s),xt(a,s,"offset"),t(r,()=>r(n))||Vi(a),t(i,()=>i(n))||Gi(a),o(n,a),a};var Re=(o,t)=>(o.connect=t.connect.bind(t),o.disconnect=t.disconnect.bind(t),o);var sp=(o,t,e,r)=>(i,a)=>{var c=a,{offset:n}=c,s=wr(c,["offset"]);let u=i.createBuffer(1,2,44100),h=t(i,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),l=e(i,Z(R({},s),{gain:n})),p=u.getChannelData(0);p[0]=1,p[1]=1,h.buffer=u,h.loop=!0;let d={get bufferSize(){},get channelCount(){return l.channelCount},set channelCount(x){l.channelCount=x},get channelCountMode(){return l.channelCountMode},set channelCountMode(x){l.channelCountMode=x},get channelInterpretation(){return l.channelInterpretation},set channelInterpretation(x){l.channelInterpretation=x},get context(){return l.context},get inputs(){return[]},get numberOfInputs(){return h.numberOfInputs},get numberOfOutputs(){return l.numberOfOutputs},get offset(){return l.gain},get onended(){return h.onended},set onended(x){h.onended=x},addEventListener(...x){return h.addEventListener(x[0],x[1],x[2])},dispatchEvent(...x){return h.dispatchEvent(x[0])},removeEventListener(...x){return h.removeEventListener(x[0],x[1],x[2])},start(x=0){h.start.call(h,x)},stop(x=0){h.stop.call(h,x)}},f=()=>h.connect(l),g=()=>h.disconnect(l);return o(i,h),r(Re(d,l),f,g)};var ap=(o,t)=>(e,r)=>{let i=e.createConvolver();if(ut(i,r),r.disableNormalization===i.normalize&&(i.normalize=!r.disableNormalization),dt(i,r,"buffer"),r.channelCount>2||(t(i,"channelCount",n=>()=>n.call(i),n=>s=>{if(s>2)throw o();return n.call(i,s)}),r.channelCountMode==="max"))throw o();return t(i,"channelCountMode",n=>()=>n.call(i),n=>s=>{if(s==="max")throw o();return n.call(i,s)}),i};var gc=(o,t)=>{let e=o.createDelay(t.maxDelayTime);return ut(e,t),xt(e,t,"delayTime"),e};var cp=o=>(t,e)=>{let r=t.createDynamicsCompressor();if(ut(r,e),e.channelCount>2||e.channelCountMode==="max")throw o();return xt(r,e,"attack"),xt(r,e,"knee"),xt(r,e,"ratio"),xt(r,e,"release"),xt(r,e,"threshold"),r};var se=(o,t)=>{let e=o.createGain();return ut(e,t),xt(e,t,"gain"),e};var up=o=>(t,e,r)=>{if(t.createIIRFilter===void 0)return o(t,e,r);let i=t.createIIRFilter(r.feedforward,r.feedback);return ut(i,r),i};function Fg(o,t){let e=t[0]*t[0]+t[1]*t[1];return[(o[0]*t[0]+o[1]*t[1])/e,(o[1]*t[0]-o[0]*t[1])/e]}function Bg(o,t){return[o[0]*t[0]-o[1]*t[1],o[0]*t[1]+o[1]*t[0]]}function hp(o,t){let e=[0,0];for(let r=o.length-1;r>=0;r-=1)e=Bg(e,t),e[0]+=o[r];return e}var lp=(o,t,e,r)=>(i,n,{channelCount:s,channelCountMode:a,channelInterpretation:c,feedback:u,feedforward:h})=>{let l=is(n,i.sampleRate),p=u instanceof Float64Array?u:new Float64Array(u),d=h instanceof Float64Array?h:new Float64Array(h),f=p.length,g=d.length,x=Math.min(f,g);if(f===0||f>20)throw r();if(p[0]===0)throw t();if(g===0||g>20)throw r();if(d[0]===0)throw t();if(p[0]!==1){for(let y=0;y<g;y+=1)d[y]/=p[0];for(let y=1;y<f;y+=1)p[y]/=p[0]}let b=e(i,l,s,s);b.channelCount=s,b.channelCountMode=a,b.channelInterpretation=c;let v=32,S=[],T=[],_=[];for(let y=0;y<s;y+=1){S.push(0);let N=new Float32Array(v),D=new Float32Array(v);N.fill(0),D.fill(0),T.push(N),_.push(D)}b.onaudioprocess=y=>{let N=y.inputBuffer,D=y.outputBuffer,M=N.numberOfChannels;for(let O=0;O<M;O+=1){let W=N.getChannelData(O),k=D.getChannelData(O);S[O]=rs(p,f,d,g,x,T[O],_[O],S[O],v,W,k)}};let C=i.sampleRate/2;return Re({get bufferSize(){return l},get channelCount(){return b.channelCount},set channelCount(y){b.channelCount=y},get channelCountMode(){return b.channelCountMode},set channelCountMode(y){b.channelCountMode=y},get channelInterpretation(){return b.channelInterpretation},set channelInterpretation(y){b.channelInterpretation=y},get context(){return b.context},get inputs(){return[b]},get numberOfInputs(){return b.numberOfInputs},get numberOfOutputs(){return b.numberOfOutputs},addEventListener(...y){return b.addEventListener(y[0],y[1],y[2])},dispatchEvent(...y){return b.dispatchEvent(y[0])},getFrequencyResponse(y,N,D){if(y.length!==N.length||N.length!==D.length)throw o();let M=y.length;for(let O=0;O<M;O+=1){let W=-Math.PI*(y[O]/C),k=[Math.cos(W),Math.sin(W)],L=hp(d,k),P=hp(p,k),q=Fg(L,P);N[O]=Math.sqrt(q[0]*q[0]+q[1]*q[1]),D[O]=Math.atan2(q[1],q[0])}},removeEventListener(...y){return b.removeEventListener(y[0],y[1],y[2])}},b)};var pp=(o,t)=>o.createMediaElementSource(t.mediaElement);var dp=(o,t)=>{let e=o.createMediaStreamDestination();return ut(e,t),e.numberOfOutputs===1&&Object.defineProperty(e,"numberOfOutputs",{get:()=>0}),e};var mp=(o,{mediaStream:t})=>{let e=t.getAudioTracks();e.sort((n,s)=>n.id<s.id?-1:n.id>s.id?1:0);let r=e.slice(0,1),i=o.createMediaStreamSource(new MediaStream(r));return Object.defineProperty(i,"mediaStream",{value:t}),i};var fp=(o,t)=>(e,{mediaStreamTrack:r})=>{if(typeof e.createMediaStreamTrackSource=="function")return e.createMediaStreamTrackSource(r);let i=new MediaStream([r]),n=e.createMediaStreamSource(i);if(r.kind!=="audio")throw o();if(t(e))throw new TypeError;return n};var gp=o=>o===null?null:o.hasOwnProperty("OfflineAudioContext")?o.OfflineAudioContext:o.hasOwnProperty("webkitOfflineAudioContext")?o.webkitOfflineAudioContext:null;var xp=(o,t,e,r,i,n)=>(s,a)=>{let c=s.createOscillator();return ut(c,a),xt(c,a,"detune"),xt(c,a,"frequency"),a.periodicWave!==void 0?c.setPeriodicWave(a.periodicWave):dt(c,a,"type"),t(e,()=>e(s))||Vi(c),t(r,()=>r(s))||n(c,s),t(i,()=>i(s))||Gi(c),o(s,c),c};var yp=o=>(t,e)=>{let r=t.createPanner();return r.orientationX===void 0?o(t,e):(ut(r,e),xt(r,e,"orientationX"),xt(r,e,"orientationY"),xt(r,e,"orientationZ"),xt(r,e,"positionX"),xt(r,e,"positionY"),xt(r,e,"positionZ"),dt(r,e,"coneInnerAngle"),dt(r,e,"coneOuterAngle"),dt(r,e,"coneOuterGain"),dt(r,e,"distanceModel"),dt(r,e,"maxDistance"),dt(r,e,"panningModel"),dt(r,e,"refDistance"),dt(r,e,"rolloffFactor"),r)};var bp=(o,t,e,r,i,n,s,a,c,u)=>(h,D)=>{var M=D,{coneInnerAngle:l,coneOuterAngle:p,coneOuterGain:d,distanceModel:f,maxDistance:g,orientationX:x,orientationY:b,orientationZ:v,panningModel:S,positionX:T,positionY:_,positionZ:C,refDistance:A,rolloffFactor:y}=M,N=wr(M,["coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","orientationX","orientationY","orientationZ","panningModel","positionX","positionY","positionZ","refDistance","rolloffFactor"]);let O=h.createPanner();if(N.channelCount>2||N.channelCountMode==="max")throw s();ut(O,N);let W={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},k=e(h,Z(R({},W),{channelInterpretation:"speakers",numberOfInputs:6})),L=r(h,Z(R({},N),{gain:1})),P=r(h,Z(R({},W),{gain:1})),q=r(h,Z(R({},W),{gain:0})),H=r(h,Z(R({},W),{gain:0})),Q=r(h,Z(R({},W),{gain:0})),rt=r(h,Z(R({},W),{gain:0})),at=r(h,Z(R({},W),{gain:0})),yt=i(h,256,6,1),Pt=n(h,Z(R({},W),{curve:new Float32Array([1,1]),oversample:"none"})),xe=[x,b,v],ye=[T,_,C],At=new Float32Array(1);yt.onaudioprocess=({inputBuffer:J})=>{let Ai=[c(J,At,0),c(J,At,1),c(J,At,2)];Ai.some((Co,_o)=>Co!==xe[_o])&&(O.setOrientation(...Ai),xe=Ai);let Ci=[c(J,At,3),c(J,At,4),c(J,At,5)];Ci.some((Co,_o)=>Co!==ye[_o])&&(O.setPosition(...Ci),ye=Ci)},Object.defineProperty(q.gain,"defaultValue",{get:()=>0}),Object.defineProperty(H.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Q.gain,"defaultValue",{get:()=>0}),Object.defineProperty(rt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(at.gain,"defaultValue",{get:()=>0});let ot={get bufferSize(){},get channelCount(){return O.channelCount},set channelCount(J){if(J>2)throw s();L.channelCount=J,O.channelCount=J},get channelCountMode(){return O.channelCountMode},set channelCountMode(J){if(J==="max")throw s();L.channelCountMode=J,O.channelCountMode=J},get channelInterpretation(){return O.channelInterpretation},set channelInterpretation(J){L.channelInterpretation=J,O.channelInterpretation=J},get coneInnerAngle(){return O.coneInnerAngle},set coneInnerAngle(J){O.coneInnerAngle=J},get coneOuterAngle(){return O.coneOuterAngle},set coneOuterAngle(J){O.coneOuterAngle=J},get coneOuterGain(){return O.coneOuterGain},set coneOuterGain(J){if(J<0||J>1)throw t();O.coneOuterGain=J},get context(){return O.context},get distanceModel(){return O.distanceModel},set distanceModel(J){O.distanceModel=J},get inputs(){return[L]},get maxDistance(){return O.maxDistance},set maxDistance(J){if(J<0)throw new RangeError;O.maxDistance=J},get numberOfInputs(){return O.numberOfInputs},get numberOfOutputs(){return O.numberOfOutputs},get orientationX(){return P.gain},get orientationY(){return q.gain},get orientationZ(){return H.gain},get panningModel(){return O.panningModel},set panningModel(J){O.panningModel=J},get positionX(){return Q.gain},get positionY(){return rt.gain},get positionZ(){return at.gain},get refDistance(){return O.refDistance},set refDistance(J){if(J<0)throw new RangeError;O.refDistance=J},get rolloffFactor(){return O.rolloffFactor},set rolloffFactor(J){if(J<0)throw new RangeError;O.rolloffFactor=J},addEventListener(...J){return L.addEventListener(J[0],J[1],J[2])},dispatchEvent(...J){return L.dispatchEvent(J[0])},removeEventListener(...J){return L.removeEventListener(J[0],J[1],J[2])}};l!==ot.coneInnerAngle&&(ot.coneInnerAngle=l),p!==ot.coneOuterAngle&&(ot.coneOuterAngle=p),d!==ot.coneOuterGain&&(ot.coneOuterGain=d),f!==ot.distanceModel&&(ot.distanceModel=f),g!==ot.maxDistance&&(ot.maxDistance=g),x!==ot.orientationX.value&&(ot.orientationX.value=x),b!==ot.orientationY.value&&(ot.orientationY.value=b),v!==ot.orientationZ.value&&(ot.orientationZ.value=v),S!==ot.panningModel&&(ot.panningModel=S),T!==ot.positionX.value&&(ot.positionX.value=T),_!==ot.positionY.value&&(ot.positionY.value=_),C!==ot.positionZ.value&&(ot.positionZ.value=C),A!==ot.refDistance&&(ot.refDistance=A),y!==ot.rolloffFactor&&(ot.rolloffFactor=y),(xe[0]!==1||xe[1]!==0||xe[2]!==0)&&O.setOrientation(...xe),(ye[0]!==0||ye[1]!==0||ye[2]!==0)&&O.setPosition(...ye);let bi=()=>{L.connect(O),o(L,Pt,0,0),Pt.connect(P).connect(k,0,0),Pt.connect(q).connect(k,0,1),Pt.connect(H).connect(k,0,2),Pt.connect(Q).connect(k,0,3),Pt.connect(rt).connect(k,0,4),Pt.connect(at).connect(k,0,5),k.connect(yt).connect(h.destination)},Ao=()=>{L.disconnect(O),a(L,Pt,0,0),Pt.disconnect(P),P.disconnect(k),Pt.disconnect(q),q.disconnect(k),Pt.disconnect(H),H.disconnect(k),Pt.disconnect(Q),Q.disconnect(k),Pt.disconnect(rt),rt.disconnect(k),Pt.disconnect(at),at.disconnect(k),k.disconnect(yt),yt.disconnect(h.destination)};return u(Re(ot,O),bi,Ao)};var Ap=o=>(t,{disableNormalization:e,imag:r,real:i})=>{let n=r instanceof Float32Array?r:new Float32Array(r),s=i instanceof Float32Array?i:new Float32Array(i),a=t.createPeriodicWave(s,n,{disableNormalization:e});if(Array.from(r).length<2)throw o();return a};var Wi=(o,t,e,r)=>o.createScriptProcessor(t,e,r);var Cp=(o,t)=>(e,r)=>{let i=r.channelCountMode;if(i==="clamped-max")throw t();if(e.createStereoPanner===void 0)return o(e,r);let n=e.createStereoPanner();return ut(n,r),xt(n,r,"pan"),Object.defineProperty(n,"channelCountMode",{get:()=>i,set:s=>{if(s!==i)throw t()}}),n};var _p=(o,t,e,r,i,n)=>{let a=new Float32Array([1,1]),c=Math.PI/2,u={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},h=Z(R({},u),{oversample:"none"}),l=(f,g,x,b)=>{let v=new Float32Array(16385),S=new Float32Array(16385);for(let N=0;N<16385;N+=1){let D=N/16384*c;v[N]=Math.cos(D),S[N]=Math.sin(D)}let T=e(f,Z(R({},u),{gain:0})),_=r(f,Z(R({},h),{curve:v})),C=r(f,Z(R({},h),{curve:a})),A=e(f,Z(R({},u),{gain:0})),y=r(f,Z(R({},h),{curve:S}));return{connectGraph(){g.connect(T),g.connect(C.inputs===void 0?C:C.inputs[0]),g.connect(A),C.connect(x),x.connect(_.inputs===void 0?_:_.inputs[0]),x.connect(y.inputs===void 0?y:y.inputs[0]),_.connect(T.gain),y.connect(A.gain),T.connect(b,0,0),A.connect(b,0,1)},disconnectGraph(){g.disconnect(T),g.disconnect(C.inputs===void 0?C:C.inputs[0]),g.disconnect(A),C.disconnect(x),x.disconnect(_.inputs===void 0?_:_.inputs[0]),x.disconnect(y.inputs===void 0?y:y.inputs[0]),_.disconnect(T.gain),y.disconnect(A.gain),T.disconnect(b,0,0),A.disconnect(b,0,1)}}},p=(f,g,x,b)=>{let v=new Float32Array(16385),S=new Float32Array(16385),T=new Float32Array(16385),_=new Float32Array(16385),C=Math.floor(16385/2);for(let q=0;q<16385;q+=1)if(q>C){let H=(q-C)/(16384-C)*c;v[q]=Math.cos(H),S[q]=Math.sin(H),T[q]=0,_[q]=1}else{let H=q/(16384-C)*c;v[q]=1,S[q]=0,T[q]=Math.cos(H),_[q]=Math.sin(H)}let A=t(f,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),y=e(f,Z(R({},u),{gain:0})),N=r(f,Z(R({},h),{curve:v})),D=e(f,Z(R({},u),{gain:0})),M=r(f,Z(R({},h),{curve:S})),O=r(f,Z(R({},h),{curve:a})),W=e(f,Z(R({},u),{gain:0})),k=r(f,Z(R({},h),{curve:T})),L=e(f,Z(R({},u),{gain:0})),P=r(f,Z(R({},h),{curve:_}));return{connectGraph(){g.connect(A),g.connect(O.inputs===void 0?O:O.inputs[0]),A.connect(y,0),A.connect(D,0),A.connect(W,1),A.connect(L,1),O.connect(x),x.connect(N.inputs===void 0?N:N.inputs[0]),x.connect(M.inputs===void 0?M:M.inputs[0]),x.connect(k.inputs===void 0?k:k.inputs[0]),x.connect(P.inputs===void 0?P:P.inputs[0]),N.connect(y.gain),M.connect(D.gain),k.connect(W.gain),P.connect(L.gain),y.connect(b,0,0),W.connect(b,0,0),D.connect(b,0,1),L.connect(b,0,1)},disconnectGraph(){g.disconnect(A),g.disconnect(O.inputs===void 0?O:O.inputs[0]),A.disconnect(y,0),A.disconnect(D,0),A.disconnect(W,1),A.disconnect(L,1),O.disconnect(x),x.disconnect(N.inputs===void 0?N:N.inputs[0]),x.disconnect(M.inputs===void 0?M:M.inputs[0]),x.disconnect(k.inputs===void 0?k:k.inputs[0]),x.disconnect(P.inputs===void 0?P:P.inputs[0]),N.disconnect(y.gain),M.disconnect(D.gain),k.disconnect(W.gain),P.disconnect(L.gain),y.disconnect(b,0,0),W.disconnect(b,0,0),D.disconnect(b,0,1),L.disconnect(b,0,1)}}},d=(f,g,x,b,v)=>{if(g===1)return l(f,x,b,v);if(g===2)return p(f,x,b,v);throw i()};return(f,S)=>{var T=S,{channelCount:g,channelCountMode:x,pan:b}=T,v=wr(T,["channelCount","channelCountMode","pan"]);if(x==="max")throw i();let _=o(f,Z(R({},v),{channelCount:1,channelCountMode:x,numberOfInputs:2})),C=e(f,Z(R({},v),{channelCount:g,channelCountMode:x,gain:1})),A=e(f,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:b}),{connectGraph:y,disconnectGraph:N}=d(f,g,C,A,_);Object.defineProperty(A.gain,"defaultValue",{get:()=>0}),Object.defineProperty(A.gain,"maxValue",{get:()=>1}),Object.defineProperty(A.gain,"minValue",{get:()=>-1});let D={get bufferSize(){},get channelCount(){return C.channelCount},set channelCount(k){C.channelCount!==k&&(M&&N(),{connectGraph:y,disconnectGraph:N}=d(f,k,C,A,_),M&&y()),C.channelCount=k},get channelCountMode(){return C.channelCountMode},set channelCountMode(k){if(k==="clamped-max"||k==="max")throw i();C.channelCountMode=k},get channelInterpretation(){return C.channelInterpretation},set channelInterpretation(k){C.channelInterpretation=k},get context(){return C.context},get inputs(){return[C]},get numberOfInputs(){return C.numberOfInputs},get numberOfOutputs(){return C.numberOfOutputs},get pan(){return A.gain},addEventListener(...k){return C.addEventListener(k[0],k[1],k[2])},dispatchEvent(...k){return C.dispatchEvent(k[0])},removeEventListener(...k){return C.removeEventListener(k[0],k[1],k[2])}},M=!1,O=()=>{y(),M=!0},W=()=>{N(),M=!1};return n(Re(D,_),O,W)}};var vp=(o,t,e,r,i,n,s)=>(a,c)=>{let u=a.createWaveShaper();if(n!==null&&n.name==="webkitAudioContext"&&a.createGain().gain.automationRate===void 0)return e(a,c);ut(u,c);let h=c.curve===null||c.curve instanceof Float32Array?c.curve:new Float32Array(c.curve);if(h!==null&&h.length<2)throw t();dt(u,{curve:h},"curve"),dt(u,c,"oversample");let l=null,p=!1;return s(u,"curve",g=>()=>g.call(u),g=>x=>(g.call(u,x),p&&(r(x)&&l===null?l=o(a,u):!r(x)&&l!==null&&(l(),l=null)),x)),i(u,()=>{p=!0,r(u.curve)&&(l=o(a,u))},()=>{p=!1,l!==null&&(l(),l=null)})};var Ip=(o,t,e,r,i)=>(n,u)=>{var h=u,{curve:s,oversample:a}=h,c=wr(h,["curve","oversample"]);let l=n.createWaveShaper(),p=n.createWaveShaper();ut(l,c),ut(p,c);let d=e(n,Z(R({},c),{gain:1})),f=e(n,Z(R({},c),{gain:-1})),g=e(n,Z(R({},c),{gain:1})),x=e(n,Z(R({},c),{gain:-1})),b=null,v=!1,S=null,T={get bufferSize(){},get channelCount(){return l.channelCount},set channelCount(A){d.channelCount=A,f.channelCount=A,l.channelCount=A,g.channelCount=A,p.channelCount=A,x.channelCount=A},get channelCountMode(){return l.channelCountMode},set channelCountMode(A){d.channelCountMode=A,f.channelCountMode=A,l.channelCountMode=A,g.channelCountMode=A,p.channelCountMode=A,x.channelCountMode=A},get channelInterpretation(){return l.channelInterpretation},set channelInterpretation(A){d.channelInterpretation=A,f.channelInterpretation=A,l.channelInterpretation=A,g.channelInterpretation=A,p.channelInterpretation=A,x.channelInterpretation=A},get context(){return l.context},get curve(){return S},set curve(A){if(A!==null&&A.length<2)throw t();if(A===null)l.curve=A,p.curve=A;else{let y=A.length,N=new Float32Array(y+2-y%2),D=new Float32Array(y+2-y%2);N[0]=A[0],D[0]=-A[y-1];let M=Math.ceil((y+1)/2),O=(y+1)/2-1;for(let W=1;W<M;W+=1){let k=W/M*O,L=Math.floor(k),P=Math.ceil(k);N[W]=L===P?A[L]:(1-(k-L))*A[L]+(1-(P-k))*A[P],D[W]=L===P?-A[y-1-L]:-((1-(k-L))*A[y-1-L])-(1-(P-k))*A[y-1-P]}N[M]=y%2===1?A[M-1]:(A[M-2]+A[M-1])/2,l.curve=N,p.curve=D}S=A,v&&(r(S)&&b===null?b=o(n,d):b!==null&&(b(),b=null))},get inputs(){return[d]},get numberOfInputs(){return l.numberOfInputs},get numberOfOutputs(){return l.numberOfOutputs},get oversample(){return l.oversample},set oversample(A){l.oversample=A,p.oversample=A},addEventListener(...A){return d.addEventListener(A[0],A[1],A[2])},dispatchEvent(...A){return d.dispatchEvent(A[0])},removeEventListener(...A){return d.removeEventListener(A[0],A[1],A[2])}};s!==null&&(T.curve=s instanceof Float32Array?s:new Float32Array(s)),a!==T.oversample&&(T.oversample=a);let _=()=>{d.connect(l).connect(g),d.connect(f).connect(p).connect(x).connect(g),v=!0,r(S)&&(b=o(n,d))},C=()=>{d.disconnect(l),l.disconnect(g),d.disconnect(f),f.disconnect(p),p.disconnect(x),x.disconnect(g),v=!1,b!==null&&(b(),b=null)};return i(Re(T,g),_,C)};var Zt=()=>new DOMException("","NotSupportedError");var Vg={numberOfChannels:1},Sp=(o,t,e,r,i)=>class extends o{constructor(s,a,c){let u;if(typeof s=="number"&&a!==void 0&&c!==void 0)u={length:a,numberOfChannels:s,sampleRate:c};else if(typeof s=="object")u=s;else throw new Error("The given parameters are not valid.");let{length:h,numberOfChannels:l,sampleRate:p}=R(R({},Vg),u),d=r(l,h,p);t(Ge,()=>Ge(d))||d.addEventListener("statechange",(()=>{let f=0,g=x=>{this._state==="running"&&(f>0?(d.removeEventListener("statechange",g),x.stopImmediatePropagation(),this._waitForThePromiseToSettle(x)):f+=1)};return g})()),super(d,l),this._length=h,this._nativeOfflineAudioContext=d,this._state=null}get length(){return this._nativeOfflineAudioContext.length===void 0?this._length:this._nativeOfflineAudioContext.length}get state(){return this._state===null?this._nativeOfflineAudioContext.state:this._state}startRendering(){return this._state==="running"?Promise.reject(e()):(this._state="running",i(this.destination,this._nativeOfflineAudioContext).finally(()=>{this._state=null,kr(this)}))}_waitForThePromiseToSettle(s){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(s):setTimeout(()=>this._waitForThePromiseToSettle(s))}};var Gg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},wp=(o,t,e,r,i,n,s)=>class extends o{constructor(c,u){let h=i(c),l=R(R({},Gg),u),p=e(h,l),d=n(h),f=d?r():null,g=c.sampleRate/2;super(c,!1,p,f),this._detune=t(this,d,p.detune,153600,-153600),this._frequency=t(this,d,p.frequency,g,-g),this._nativeOscillatorNode=p,this._onended=null,this._oscillatorNodeRenderer=f,this._oscillatorNodeRenderer!==null&&l.periodicWave!==void 0&&(this._oscillatorNodeRenderer.periodicWave=l.periodicWave)}get detune(){return this._detune}get frequency(){return this._frequency}get onended(){return this._onended}set onended(c){let u=typeof c=="function"?s(this,c):null;this._nativeOscillatorNode.onended=u;let h=this._nativeOscillatorNode.onended;this._onended=h!==null&&h===u?c:h}get type(){return this._nativeOscillatorNode.type}set type(c){this._nativeOscillatorNode.type=c,this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=null)}setPeriodicWave(c){this._nativeOscillatorNode.setPeriodicWave(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=c)}start(c=0){if(this._nativeOscillatorNode.start(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.start=c),this.context.state!=="closed"){Be(this);let u=()=>{this._nativeOscillatorNode.removeEventListener("ended",u),ne(this)&&tr(this)};this._nativeOscillatorNode.addEventListener("ended",u)}}stop(c=0){this._nativeOscillatorNode.stop(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.stop=c)}};var Tp=(o,t,e,r,i)=>()=>{let n=new WeakMap,s=null,a=null,c=null,u=(h,l)=>X(null,null,function*(){let p=e(h),d=pt(p,l);if(!d){let f={channelCount:p.channelCount,channelCountMode:p.channelCountMode,channelInterpretation:p.channelInterpretation,detune:p.detune.value,frequency:p.frequency.value,periodicWave:s===null?void 0:s,type:p.type};p=t(l,f),a!==null&&p.start(a),c!==null&&p.stop(c)}return n.set(l,p),d?(yield o(l,h.detune,p.detune),yield o(l,h.frequency,p.frequency)):(yield r(l,h.detune,p.detune),yield r(l,h.frequency,p.frequency)),yield i(h,l,p),p});return{set periodicWave(h){s=h},set start(h){a=h},set stop(h){c=h},render(h,l){let p=n.get(l);return p!==void 0?Promise.resolve(p):u(h,l)}}};var qg={channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:1,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1},Np=(o,t,e,r,i,n,s)=>class extends o{constructor(c,u){let h=i(c),l=R(R({},qg),u),p=e(h,l),d=n(h),f=d?r():null;super(c,!1,p,f),this._nativePannerNode=p,this._orientationX=t(this,d,p.orientationX,Mt,jt),this._orientationY=t(this,d,p.orientationY,Mt,jt),this._orientationZ=t(this,d,p.orientationZ,Mt,jt),this._positionX=t(this,d,p.positionX,Mt,jt),this._positionY=t(this,d,p.positionY,Mt,jt),this._positionZ=t(this,d,p.positionZ,Mt,jt),s(this,1)}get coneInnerAngle(){return this._nativePannerNode.coneInnerAngle}set coneInnerAngle(c){this._nativePannerNode.coneInnerAngle=c}get coneOuterAngle(){return this._nativePannerNode.coneOuterAngle}set coneOuterAngle(c){this._nativePannerNode.coneOuterAngle=c}get coneOuterGain(){return this._nativePannerNode.coneOuterGain}set coneOuterGain(c){this._nativePannerNode.coneOuterGain=c}get distanceModel(){return this._nativePannerNode.distanceModel}set distanceModel(c){this._nativePannerNode.distanceModel=c}get maxDistance(){return this._nativePannerNode.maxDistance}set maxDistance(c){this._nativePannerNode.maxDistance=c}get orientationX(){return this._orientationX}get orientationY(){return this._orientationY}get orientationZ(){return this._orientationZ}get panningModel(){return this._nativePannerNode.panningModel}set panningModel(c){this._nativePannerNode.panningModel=c}get positionX(){return this._positionX}get positionY(){return this._positionY}get positionZ(){return this._positionZ}get refDistance(){return this._nativePannerNode.refDistance}set refDistance(c){this._nativePannerNode.refDistance=c}get rolloffFactor(){return this._nativePannerNode.rolloffFactor}set rolloffFactor(c){this._nativePannerNode.rolloffFactor=c}};var Op=(o,t,e,r,i,n,s,a,c,u)=>()=>{let h=new WeakMap,l=null,p=(d,f)=>X(null,null,function*(){let g=null,x=n(d),b={channelCount:x.channelCount,channelCountMode:x.channelCountMode,channelInterpretation:x.channelInterpretation},v=Z(R({},b),{coneInnerAngle:x.coneInnerAngle,coneOuterAngle:x.coneOuterAngle,coneOuterGain:x.coneOuterGain,distanceModel:x.distanceModel,maxDistance:x.maxDistance,panningModel:x.panningModel,refDistance:x.refDistance,rolloffFactor:x.rolloffFactor}),S=pt(x,f);if("bufferSize"in x)g=r(f,Z(R({},b),{gain:1}));else if(!S){let T=Z(R({},v),{orientationX:x.orientationX.value,orientationY:x.orientationY.value,orientationZ:x.orientationZ.value,positionX:x.positionX.value,positionY:x.positionY.value,positionZ:x.positionZ.value});x=i(f,T)}if(h.set(f,g===null?x:g),g!==null){if(l===null){if(s===null)throw new Error("Missing the native OfflineAudioContext constructor.");let M=new s(6,d.context.length,f.sampleRate),O=t(M,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6});O.connect(M.destination),l=X(null,null,function*(){let W=yield Promise.all([d.orientationX,d.orientationY,d.orientationZ,d.positionX,d.positionY,d.positionZ].map((k,L)=>X(null,null,function*(){let P=e(M,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:L===0?1:0});return yield a(M,k,P.offset),P})));for(let k=0;k<6;k+=1)W[k].connect(O,0,k),W[k].start(0);return u(M)})}let T=yield l,_=r(f,Z(R({},b),{gain:1}));yield c(d,f,_);let C=[];for(let M=0;M<T.numberOfChannels;M+=1)C.push(T.getChannelData(M));let A=[C[0][0],C[1][0],C[2][0]],y=[C[3][0],C[4][0],C[5][0]],N=r(f,Z(R({},b),{gain:1})),D=i(f,Z(R({},v),{orientationX:A[0],orientationY:A[1],orientationZ:A[2],positionX:y[0],positionY:y[1],positionZ:y[2]}));_.connect(N).connect(D.inputs[0]),D.connect(g);for(let M=128;M<T.length;M+=128){let O=[C[0][M],C[1][M],C[2][M]],W=[C[3][M],C[4][M],C[5][M]];if(O.some((k,L)=>k!==A[L])||W.some((k,L)=>k!==y[L])){A=O,y=W;let k=M/f.sampleRate;N.gain.setValueAtTime(0,k),N=r(f,Z(R({},b),{gain:0})),D=i(f,Z(R({},v),{orientationX:A[0],orientationY:A[1],orientationZ:A[2],positionX:y[0],positionY:y[1],positionZ:y[2]})),N.gain.setValueAtTime(1,k),_.connect(N).connect(D.inputs[0]),D.connect(g)}}return g}return S?(yield o(f,d.orientationX,x.orientationX),yield o(f,d.orientationY,x.orientationY),yield o(f,d.orientationZ,x.orientationZ),yield o(f,d.positionX,x.positionX),yield o(f,d.positionY,x.positionY),yield o(f,d.positionZ,x.positionZ)):(yield a(f,d.orientationX,x.orientationX),yield a(f,d.orientationY,x.orientationY),yield a(f,d.orientationZ,x.orientationZ),yield a(f,d.positionX,x.positionX),yield a(f,d.positionY,x.positionY),yield a(f,d.positionZ,x.positionZ)),Oe(x)?yield c(d,f,x.inputs[0]):yield c(d,f,x),x});return{render(d,f){let g=h.get(f);return g!==void 0?Promise.resolve(g):p(d,f)}}};var Wg={disableNormalization:!1},Rp=(o,t,e,r)=>class Ep{constructor(n,s){let a=t(n),c=r(R(R({},Wg),s)),u=o(a,c);return e.add(u),u}static[Symbol.hasInstance](n){return n!==null&&typeof n=="object"&&Object.getPrototypeOf(n)===Ep.prototype||e.has(n)}};var Mp=(o,t)=>(e,r,i)=>(o(r).replay(i),t(r,e,i));var Dp=(o,t,e)=>(r,i,n)=>X(null,null,function*(){let s=o(r);yield Promise.all(s.activeInputs.map((a,c)=>Array.from(a).map(l=>X(null,[l],function*([u,h]){let d=yield t(u).render(u,i),f=r.context.destination;!e(u)&&(r!==f||!e(r))&&d.connect(n,h,c)}))).reduce((a,c)=>[...a,...c],[]))});var kp=(o,t,e)=>(r,i,n)=>X(null,null,function*(){let s=t(r);yield Promise.all(Array.from(s.activeInputs).map(u=>X(null,[u],function*([a,c]){let l=yield o(a).render(a,i);e(a)||l.connect(n,c)})))});var Pp=(o,t,e,r)=>i=>o(Ge,()=>Ge(i))?Promise.resolve(o(r,r)).then(n=>{if(!n){let s=e(i,512,0,1);i.oncomplete=()=>{s.onaudioprocess=null,s.disconnect()},s.onaudioprocess=()=>i.currentTime,s.connect(i.destination)}return i.startRendering()}):new Promise(n=>{let s=t(i,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});i.oncomplete=a=>{s.disconnect(),n(a.renderedBuffer)},s.connect(i.destination),i.startRendering()});var jp=o=>(t,e)=>{o.set(t,e)};var Lp=o=>(t,e)=>o.set(t,e);var Fp=(o,t,e,r,i,n,s,a)=>(c,u)=>e(c).render(c,u).then(()=>Promise.all(Array.from(r(u)).map(h=>e(h).render(h,u)))).then(()=>i(u)).then(h=>(typeof h.copyFromChannel!="function"?(s(h),Mi(h)):t(n,()=>n(h))||a(h),o.add(h),h));var Ug={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},Bp=(o,t,e,r,i,n)=>class extends o{constructor(a,c){let u=i(a),h=R(R({},Ug),c),l=e(u,h),p=n(u),d=p?r():null;super(a,!1,l,d),this._pan=t(this,p,l.pan)}get pan(){return this._pan}};var Vp=(o,t,e,r,i)=>()=>{let n=new WeakMap,s=(a,c)=>X(null,null,function*(){let u=e(a),h=pt(u,c);if(!h){let l={channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,pan:u.pan.value};u=t(c,l)}return n.set(c,u),h?yield o(c,a.pan,u.pan):yield r(c,a.pan,u.pan),Oe(u)?yield i(a,c,u.inputs[0]):yield i(a,c,u),u});return{render(a,c){let u=n.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var Gp=o=>()=>{if(o===null)return!1;try{new o({length:1,sampleRate:44100})}catch(t){return!1}return!0};var qp=(o,t)=>()=>X(null,null,function*(){if(o===null)return!0;if(t===null)return!1;let e=new Blob(['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),r=new t(1,128,44100),i=URL.createObjectURL(e),n=!1,s=!1;try{yield r.audioWorklet.addModule(i);let a=new o(r,"a",{numberOfOutputs:0}),c=r.createOscillator();a.port.onmessage=()=>n=!0,a.onprocessorerror=()=>s=!0,c.connect(a),c.start(0),yield r.startRendering(),yield new Promise(u=>setTimeout(u))}catch(a){}finally{URL.revokeObjectURL(i)}return n&&!s});var Wp=(o,t)=>()=>{if(t===null)return Promise.resolve(!1);let e=new t(1,1,44100),r=o(e,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return new Promise(i=>{e.oncomplete=()=>{r.disconnect(),i(e.currentTime!==0)},e.startRendering()})};var xc=()=>new DOMException("","UnknownError");var zg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},Up=(o,t,e,r,i,n,s)=>class extends o{constructor(c,u){let h=i(c),l=R(R({},zg),u),p=e(h,l),f=n(h)?r():null;super(c,!0,p,f),this._isCurveNullified=!1,this._nativeWaveShaperNode=p,s(this,1)}get curve(){return this._isCurveNullified?null:this._nativeWaveShaperNode.curve}set curve(c){if(c===null)this._isCurveNullified=!0,this._nativeWaveShaperNode.curve=new Float32Array([0,0]);else{if(c.length<2)throw t();this._isCurveNullified=!1,this._nativeWaveShaperNode.curve=c}}get oversample(){return this._nativeWaveShaperNode.oversample}set oversample(c){this._nativeWaveShaperNode.oversample=c}};var zp=(o,t,e)=>()=>{let r=new WeakMap,i=(n,s)=>X(null,null,function*(){let a=t(n);if(!pt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,curve:a.curve,oversample:a.oversample};a=o(s,u)}return r.set(s,a),Oe(a)?yield e(n,s,a.inputs[0]):yield e(n,s,a),a});return{render(n,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):i(n,s)}}};var Yp=()=>typeof window=="undefined"?null:window;var Hp=(o,t)=>e=>{e.copyFromChannel=(r,i,n=0)=>{let s=o(n),a=o(i);if(a>=e.numberOfChannels)throw t();let c=e.length,u=e.getChannelData(a),h=r.length;for(let l=s<0?-s:0;l+s<c&&l<h;l+=1)r[l]=u[l+s]},e.copyToChannel=(r,i,n=0)=>{let s=o(n),a=o(i);if(a>=e.numberOfChannels)throw t();let c=e.length,u=e.getChannelData(a),h=r.length;for(let l=s<0?-s:0;l+s<c&&l<h;l+=1)u[l+s]=r[l]}};var Qp=o=>t=>{t.copyFromChannel=(e=>(r,i,n=0)=>{let s=o(n),a=o(i);if(s<t.length)return e.call(t,r,a,s)})(t.copyFromChannel),t.copyToChannel=(e=>(r,i,n=0)=>{let s=o(n),a=o(i);if(s<t.length)return e.call(t,r,a,s)})(t.copyToChannel)};var Zp=o=>(t,e)=>{let r=e.createBuffer(1,1,44100);t.buffer===null&&(t.buffer=r),o(t,"buffer",i=>()=>{let n=i.call(t);return n===r?null:n},i=>n=>i.call(t,n===null?r:n))};var Xp=(o,t)=>(e,r)=>{r.channelCount=1,r.channelCountMode="explicit",Object.defineProperty(r,"channelCount",{get:()=>1,set:()=>{throw o()}}),Object.defineProperty(r,"channelCountMode",{get:()=>"explicit",set:()=>{throw o()}});let i=e.createBufferSource();t(r,()=>{let a=r.numberOfInputs;for(let c=0;c<a;c+=1)i.connect(r,0,c)},()=>i.disconnect(r))};var yc=(o,t,e)=>o.copyFromChannel===void 0?o.getChannelData(e)[0]:(o.copyFromChannel(t,e),t[0]);var bc=o=>{if(o===null)return!1;let t=o.length;return t%2!==0?o[Math.floor(t/2)]!==0:o[t/2-1]+o[t/2]!==0};var Ui=(o,t,e,r)=>{let i=o;for(;!i.hasOwnProperty(t);)i=Object.getPrototypeOf(i);let{get:n,set:s}=Object.getOwnPropertyDescriptor(i,t);Object.defineProperty(o,t,{get:e(n),set:r(s)})};var Jp=o=>Z(R({},o),{outputChannelCount:o.outputChannelCount!==void 0?o.outputChannelCount:o.numberOfInputs===1&&o.numberOfOutputs===1?[o.channelCount]:Array.from({length:o.numberOfOutputs},()=>1)});var Kp=o=>Z(R({},o),{channelCount:o.numberOfOutputs});var $p=o=>{let{imag:t,real:e}=o;return t===void 0?e===void 0?Z(R({},o),{imag:[0,0],real:[0,0]}):Z(R({},o),{imag:Array.from(e,()=>0),real:e}):e===void 0?Z(R({},o),{imag:t,real:Array.from(t,()=>0)}):Z(R({},o),{imag:t,real:e})};var Ac=(o,t,e)=>{try{o.setValueAtTime(t,e)}catch(r){if(r.code!==9)throw r;Ac(o,t,e+1e-7)}};var td=o=>{let t=o.createBufferSource();t.start();try{t.start()}catch(e){return!0}return!1};var ed=o=>{let t=o.createBufferSource(),e=o.createBuffer(1,1,44100);t.buffer=e;try{t.start(0,1)}catch(r){return!1}return!0};var rd=o=>{let t=o.createBufferSource();t.start();try{t.stop()}catch(e){return!1}return!0};var os=o=>{let t=o.createOscillator();try{t.start(-1)}catch(e){return e instanceof RangeError}return!1};var Cc=o=>{let t=o.createBuffer(1,1,44100),e=o.createBufferSource();e.buffer=t,e.start(),e.stop();try{return e.stop(),!0}catch(r){return!1}};var ns=o=>{let t=o.createOscillator();try{t.stop(-1)}catch(e){return e instanceof RangeError}return!1};var id=o=>{let{port1:t,port2:e}=new MessageChannel;try{t.postMessage(o)}finally{t.close(),e.close()}};var od=o=>{o.start=(t=>(e=0,r=0,i)=>{let n=o.buffer,s=n===null?r:Math.min(n.duration,r);n!==null&&s>n.duration-.5/o.context.sampleRate?t.call(o,e,0,0):t.call(o,e,s,i)})(o.start)};var _c=(o,t)=>{let e=t.createGain();o.connect(e);let r=(i=>()=>{i.call(o,e),o.removeEventListener("ended",r)})(o.disconnect);o.addEventListener("ended",r),Re(o,e),o.stop=(i=>{let n=!1;return(s=0)=>{if(n)try{i.call(o,s)}catch(a){e.gain.setValueAtTime(0,s)}else i.call(o,s),n=!0}})(o.stop)};var $r=(o,t)=>e=>{let r={value:o};return Object.defineProperties(e,{currentTarget:r,target:r}),typeof t=="function"?t.call(o,e):t.handleEvent.call(o,e)};var Yg=Qu(Ve),Hg=oh(Ve),Qg=$h(Mr),sd=new WeakMap,Zg=fl(sd),Ee=kh(new Map,new WeakMap),er=Yp(),ad=Ul(Ee,Ne),vc=ml(Ht),Xt=Dp(Ht,vc,fr),Xg=ch(ad,Ct,Xt),It=yl(Ri),gr=gp(er),_t=Dl(gr),cd=new WeakMap,ud=cl($r),zi=Ql(er),Ic=Ol(zi),Sc=Rl(er),hd=El(er),Go=Xl(er),Lt=Sh(Zu(Yn),ih(Yg,Hg,Di,Qg,ki,Ht,Zg,$e,Ct,Ve,ne,fr,Pi),Ee,Il(Lo,ki,Ht,Ct,Jr,ne),Ne,Bi,Zt,Xh(Di,Lo,Ht,Ct,Jr,It,ne,_t),rl(cd,Ht,Gt),ud,It,Ic,Sc,hd,_t,Go),Jg=ah(Lt,Xg,Ne,ad,It,_t);var wc=new WeakSet,nd=zl(er),ld=Uh(new Uint32Array(1)),Tc=Hp(ld,Ne),Nc=Qp(ld),Oc=uh(wc,Ee,Zt,nd,gr,Gp(nd),Tc,Nc);var ss=nh(se),pd=kp(vc,Dr,fr),rr=Bh(pd),Yi=Hl(ss,Ee,td,ed,rd,os,Cc,ns,od,Zp(Ui),_c),ir=Mp(gl(Dr),pd),Kg=ph(rr,Yi,Ct,ir,Xt),qe=wh(Xu(Hn),cd,jo,Th,$a,tc,ec,rc,ic,wi,Eo,zi,Ac),$g=lh(Lt,Kg,qe,wt,Yi,It,_t,$r);var tx=Ah(Lt,Ch,Ne,wt,Zl(se,Ui),It,_t,Xt),ex=Dh(rr,fc,Ct,ir,Xt),ti=Lp(sd),rx=Mh(Lt,qe,ex,Bi,fc,It,_t,ti),jr=ql(Ve,Sc),ix=Xp(wt,jr),Lr=ip(zi,ix),ox=jh(Lr,Ct,Xt),nx=Ph(Lt,ox,Lr,It,_t),sx=Fh(qi,Ct,Xt),ax=Lh(Lt,sx,qi,It,_t,Kp),cx=sp(ss,Yi,se,jr),Hi=np(ss,Ee,cx,os,ns),ux=Wh(rr,Hi,Ct,ir,Xt),hx=qh(Lt,qe,ux,Hi,It,_t,$r),dd=ap(Zt,Ui),lx=Yh(dd,Ct,Xt),px=zh(Lt,lx,dd,It,_t,ti),dx=Kh(rr,gc,Ct,ir,Xt),mx=Jh(Lt,qe,dx,gc,It,_t,ti),md=cp(Zt),fx=nl(rr,md,Ct,ir,Xt),gx=ol(Lt,qe,fx,md,Zt,It,_t,ti),xx=pl(rr,se,Ct,ir,Xt),yx=ll(Lt,qe,xx,se,It,_t),bx=lp(Bi,wt,Wi,Zt),as=Pp(Ee,se,Wi,Wp(se,gr)),Ax=vl(Yi,Ct,gr,Xt,as),Cx=up(bx),_x=_l(Lt,Cx,Ax,It,_t,ti),vx=_h(qe,Lr,Hi,Wi,Zt,yc,_t,Ui),fd=new WeakMap,Rc=Vl(tx,vx,ud,_t,fd,$r),gd=xp(ss,Ee,os,Cc,ns,_c),Ix=Tp(rr,gd,Ct,ir,Xt),Sx=wp(Lt,qe,gd,Ix,It,_t,$r),xd=Gh(Yi),wx=Ip(xd,wt,se,bc,jr),cs=vp(xd,wt,wx,bc,jr,zi,Ui),Tx=bp(Di,wt,Lr,se,Wi,cs,Zt,ki,yc,jr),yd=yp(Tx),Nx=Op(rr,Lr,Hi,se,yd,Ct,gr,ir,Xt,as),Ox=Np(Lt,qe,yd,Nx,It,_t,ti),Rx=Ap(Ne),Ex=Rp(Rx,It,new WeakSet,$p),Mx=_p(Lr,qi,se,cs,Zt,jr),bd=Cp(Mx,Zt),Dx=Vp(rr,bd,Ct,ir,Xt),kx=Bp(Lt,qe,bd,Dx,It,_t),Px=zp(cs,Ct,Xt),jx=Up(Lt,wt,cs,Px,It,_t,ti),Ad=kl(er),Ec=ul(er),Cd=new WeakMap,Lx=bl(Cd,gr),Fx=Ad?rh(Ee,Zt,al(er),Ec,hl(Hu),It,Lx,_t,Go,new WeakMap,new WeakMap,qp(Go,gr),er):void 0,Bx=Ml(Ic,_t),Vx=Zh(wc,Ee,Qh,sl,new WeakSet,It,Bx,Ei,Ge,Tc,Nc),_d=Eh(Fx,Jg,Oc,$g,rx,nx,ax,hx,px,Vx,mx,gx,yx,_x,Rc,Sx,Ox,Ex,kx,jx),Gx=Pl(Lt,pp,It,_t),qx=jl(Lt,dp,It,_t),Wx=Ll(Lt,mp,It,_t),Ux=fp(wt,_t),zx=Fl(Lt,Ux,It),vd=bh(_d,wt,Zt,xc,Gx,qx,Wx,zx,zi);var Mc=Al(fd),Yx=sh(Mc),Id=Vh(Ne),Hx=tl(Mc),Sd=il(Ne),wd=new WeakMap,Qx=dl(wd,Gt),Zx=rp(Id,Ne,wt,Lr,qi,Hi,se,Wi,Zt,Sd,Ec,Qx,jr),Xx=Kl(wt,Zx,se,Zt,jr),Jx=Rh(rr,Id,Yi,Lr,qi,Hi,se,Hx,Sd,Ec,Ct,Go,gr,ir,Xt,as),Kx=xl(Cd),$x=jp(wd),Dc=Ad?Nh(Yx,Lt,qe,Jx,Xx,Ht,Kx,It,_t,Go,Jp,$x,id,$r):void 0;var iq=Bl(wt,Zt,xc,Rc,zi);var Td=Hh(Zt,gr),Nd=Fp(wc,Ee,vc,Mc,as,Ei,Tc,Nc),oq=Gl(Ee,wt,Td,Rc,Nd);var Od=Sp(_d,Ee,wt,Td,Nd);var Rd=Sl(Ri,Ic),Ed=wl(Oi,Sc),Md=Tl(jo,hd),Dd=Nl(Ri,_t);function Ft(o){return o===void 0}function $(o){return o!==void 0}function kd(o){return typeof o=="function"}function Jt(o){return typeof o=="number"}function We(o){return Object.prototype.toString.call(o)==="[object Object]"&&o.constructor===Object}function kc(o){return typeof o=="boolean"}function Ot(o){return Array.isArray(o)}function te(o){return typeof o=="string"}function qo(o){return te(o)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(o)}function V(o,t){if(!o)throw new Error(t)}function Dt(o,t,e=1/0){if(!(t<=o&&o<=e))throw new RangeError(`Value must be within [${t}, ${e}], got: ${o}`)}function us(o){!o.isOffline&&o.state!=="running"&&ei('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}var jd=!1,Pd=!1;function Pc(o){jd=o}function Ld(o){Ft(o)&&jd&&!Pd&&(Pd=!0,ei("Events scheduled inside of scheduled callbacks should use the passed in scheduling time. See https://github.com/Tonejs/Tone.js/wiki/Accurate-Timing"))}var Fd=console;function Bd(...o){Fd.log(...o)}function ei(...o){Fd.warn(...o)}function Vd(o){return new vd(o)}function Gd(o,t,e){return new Od(o,t,e)}var ee=typeof self=="object"?self:null,qd=ee&&(ee.hasOwnProperty("AudioContext")||ee.hasOwnProperty("webkitAudioContext"));function Wd(o,t,e){return V($(Dc),"AudioWorkletNode only works in a secure context (https or localhost)"),new(o instanceof(ee==null?void 0:ee.BaseAudioContext)?ee==null?void 0:ee.AudioWorkletNode:Dc)(o,t,e)}function re(o,t,e,r){var i=arguments.length,n=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(n=(i<3?s(n):i>3?s(t,e,n):s(t,e))||n);return i>3&&n&&Object.defineProperty(t,e,n),n}function lt(o,t,e,r){function i(n){return n instanceof e?n:new e(function(s){s(n)})}return new(e||(e=Promise))(function(n,s){function a(h){try{u(r.next(h))}catch(l){s(l)}}function c(h){try{u(r.throw(h))}catch(l){s(l)}}function u(h){h.done?n(h.value):i(h.value).then(a,c)}u((r=r.apply(o,t||[])).next())})}var hs=class{constructor(t,e,r,i){this._callback=t,this._type=e,this._minimumUpdateInterval=Math.max(128/(i||44100),.001),this.updateInterval=r,this._createClock()}_createWorker(){let t=new Blob([`
|
|
5
5
|
// the initial timeout time
|
|
6
6
|
let timeoutTime = ${(this._updateInterval*1e3).toFixed(1)};
|
|
7
7
|
// onmessage callback
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
}
|
|
17
17
|
// call tick initially
|
|
18
18
|
tick();
|
|
19
|
-
`],{type:"text/javascript"}),e=URL.createObjectURL(t),r=new Worker(e);r.onmessage=this._callback.bind(this),this._worker=r}_createTimeout(){this._timeout=setTimeout(()=>{this._createTimeout(),this._callback()},this._updateInterval*1e3)}_createClock(){if(this._type==="worker")try{this._createWorker()}catch(t){this._type="timeout",this._createClock()}else this._type==="timeout"&&this._createTimeout()}_disposeClock(){this._timeout&&clearTimeout(this._timeout),this._worker&&(this._worker.terminate(),this._worker.onmessage=null)}get updateInterval(){return this._updateInterval}set updateInterval(t){var e;this._updateInterval=Math.max(t,this._minimumUpdateInterval),this._type==="worker"&&((e=this._worker)===null||e===void 0||e.postMessage(this._updateInterval*1e3))}get type(){return this._type}set type(t){this._disposeClock(),this._type=t,this._createClock()}dispose(){this._disposeClock()}};function Ue(o){return Dd(o)}function or(o){return Md(o)}function Qi(o){return kd(o)}function Fr(o){return Ed(o)}function zd(o){return o instanceof Rc}function iy(o,t){return o==="value"||Ue(t)||or(t)||zd(t)}function Me(o,...t){if(!t.length)return o;let e=t.shift();if(We(o)&&We(e))for(let r in e)iy(r,e[r])?o[r]=e[r]:We(e[r])?(o[r]||Object.assign(o,{[r]:{}}),Me(o[r],e[r])):Object.assign(o,{[r]:e[r]});return Me(o,...t)}function Yd(o,t){return o.length===t.length&&o.every((e,r)=>t[r]===e)}function w(o,t,e=[],r){let i={},n=Array.from(t);if(We(n[0])&&r&&!Reflect.has(n[0],r)&&(Object.keys(n[0]).some(a=>Reflect.has(o,a))||(Me(i,{[r]:n[0]}),e.splice(e.indexOf(r),1),n.shift())),n.length===1&&We(n[0]))Me(i,n[0]);else for(let s=0;s<e.length;s++)$(n[s])&&(i[e[s]]=n[s]);return Me(o,i)}function Hd(o){return o.constructor.getDefaults()}function be(o,t){return Lt(o)?t:o}function ze(o,t){return t.forEach(e=>{Reflect.has(o,e)&&delete o[e]}),o}var Qt=class{constructor(){this.debug=!1,this._wasDisposed=!1}static getDefaults(){return{}}log(...t){(this.debug||ee&&this.toString()===ee.TONE_DEBUG_CLASS)&&Vd(this,...t)}dispose(){return this._wasDisposed=!0,this}get disposed(){return this._wasDisposed}toString(){return this.name}};Qt.version=Ro;function xr(o,t){return o>t+1e-6}function Wo(o,t){return xr(o,t)||ae(o,t)}function ri(o,t){return o+1e-6<t}function ae(o,t){return Math.abs(o-t)<1e-6}function Lc(o,t,e){return Math.max(Math.min(o,e),t)}var qt=class o extends Qt{constructor(){super(),this.name="Timeline",this._timeline=[];let t=w(o.getDefaults(),arguments,["memory"]);this.memory=t.memory,this.increasing=t.increasing}static getDefaults(){return{memory:1/0,increasing:!1}}get length(){return this._timeline.length}add(t){if(V(Reflect.has(t,"time"),"Timeline: events must have a time attribute"),t.time=t.time.valueOf(),this.increasing&&this.length){let e=this._timeline[this.length-1];V(Wo(t.time,e.time),"The time must be greater than or equal to the last scheduled time"),this._timeline.push(t)}else{let e=this._search(t.time);this._timeline.splice(e+1,0,t)}if(this.length>this.memory){let e=this.length-this.memory;this._timeline.splice(0,e)}return this}remove(t){let e=this._timeline.indexOf(t);return e!==-1&&this._timeline.splice(e,1),this}get(t,e="time"){let r=this._search(t,e);return r!==-1?this._timeline[r]:null}peek(){return this._timeline[0]}shift(){return this._timeline.shift()}getAfter(t,e="time"){let r=this._search(t,e);return r+1<this._timeline.length?this._timeline[r+1]:null}getBefore(t){let e=this._timeline.length;if(e>0&&this._timeline[e-1].time<t)return this._timeline[e-1];let r=this._search(t);return r-1>=0?this._timeline[r-1]:null}cancel(t){if(this._timeline.length>1){let e=this._search(t);if(e>=0)if(ae(this._timeline[e].time,t)){for(let r=e;r>=0&&ae(this._timeline[r].time,t);r--)e=r;this._timeline=this._timeline.slice(0,e)}else this._timeline=this._timeline.slice(0,e+1);else this._timeline=[]}else this._timeline.length===1&&Wo(this._timeline[0].time,t)&&(this._timeline=[]);return this}cancelBefore(t){let e=this._search(t);return e>=0&&(this._timeline=this._timeline.slice(e+1)),this}previousEvent(t){let e=this._timeline.indexOf(t);return e>0?this._timeline[e-1]:null}_search(t,e="time"){if(this._timeline.length===0)return-1;let r=0,i=this._timeline.length,n=i;if(i>0&&this._timeline[i-1][e]<=t)return i-1;for(;r<n;){let s=Math.floor(r+(n-r)/2),a=this._timeline[s],c=this._timeline[s+1];if(ae(a[e],t)){for(let u=s;u<this._timeline.length;u++){let h=this._timeline[u];if(ae(h[e],t))s=u;else break}return s}else{if(ri(a[e],t)&&xr(c[e],t))return s;xr(a[e],t)?n=s:r=s+1}}return-1}_iterate(t,e=0,r=this._timeline.length-1){this._timeline.slice(e,r+1).forEach(t)}forEach(t){return this._iterate(t),this}forEachBefore(t,e){let r=this._search(t);return r!==-1&&this._iterate(e,0,r),this}forEachAfter(t,e){let r=this._search(t);return this._iterate(e,r+1),this}forEachBetween(t,e,r){let i=this._search(t),n=this._search(e);return i!==-1&&n!==-1?(this._timeline[i].time!==t&&(i+=1),this._timeline[n].time===e&&(n-=1),this._iterate(r,i,n)):i===-1&&this._iterate(r,0,n),this}forEachFrom(t,e){let r=this._search(t);for(;r>=0&&this._timeline[r].time>=t;)r--;return this._iterate(e,r+1),this}forEachAtTime(t,e){let r=this._search(t);if(r!==-1&&ae(this._timeline[r].time,t)){let i=r;for(let n=r;n>=0&&ae(this._timeline[n].time,t);n--)i=n;this._iterate(n=>{e(n)},i,r)}return this}dispose(){return super.dispose(),this._timeline=[],this}};var Qd=[];function Br(o){Qd.push(o)}function Zd(o){Qd.forEach(t=>t(o))}var Xd=[];function Vr(o){Xd.push(o)}function Jd(o){Xd.forEach(t=>t(o))}var Gr=class o extends Qt{constructor(){super(...arguments),this.name="Emitter"}on(t,e){return t.split(/\W+/).forEach(i=>{Lt(this._events)&&(this._events={}),this._events.hasOwnProperty(i)||(this._events[i]=[]),this._events[i].push(e)}),this}once(t,e){let r=(...i)=>{e(...i),this.off(t,r)};return this.on(t,r),this}off(t,e){return t.split(/\W+/).forEach(i=>{if(Lt(this._events)&&(this._events={}),this._events.hasOwnProperty(i))if(Lt(e))this._events[i]=[];else{let n=this._events[i];for(let s=n.length-1;s>=0;s--)n[s]===e&&n.splice(s,1)}}),this}emit(t,...e){if(this._events&&this._events.hasOwnProperty(t)){let r=this._events[t].slice(0);for(let i=0,n=r.length;i<n;i++)r[i].apply(this,e)}return this}static mixin(t){["on","once","off","emit"].forEach(e=>{let r=Object.getOwnPropertyDescriptor(o.prototype,e);Object.defineProperty(t.prototype,e,r)})}dispose(){return super.dispose(),this._events=void 0,this}};var Zi=class extends Gr{constructor(){super(...arguments),this.isOffline=!1}toJSON(){return{}}};var ii=class o extends Zi{constructor(){var t,e;super(),this.name="Context",this._constants=new Map,this._timeouts=new qt,this._timeoutIds=0,this._initialized=!1,this._closeStarted=!1,this.isOffline=!1,this._workletPromise=null;let r=w(o.getDefaults(),arguments,["context"]);r.context?(this._context=r.context,this._latencyHint=((t=arguments[0])===null||t===void 0?void 0:t.latencyHint)||""):(this._context=Gd({latencyHint:r.latencyHint}),this._latencyHint=r.latencyHint),this._ticker=new ls(this.emit.bind(this,"tick"),r.clockSource,r.updateInterval,this._context.sampleRate),this.on("tick",this._timeoutLoop.bind(this)),this._context.onstatechange=()=>{this.emit("statechange",this.state)},this[!((e=arguments[0])===null||e===void 0)&&e.hasOwnProperty("updateInterval")?"_lookAhead":"lookAhead"]=r.lookAhead}static getDefaults(){return{clockSource:"worker",latencyHint:"interactive",lookAhead:.1,updateInterval:.05}}initialize(){return this._initialized||(Zd(this),this._initialized=!0),this}createAnalyser(){return this._context.createAnalyser()}createOscillator(){return this._context.createOscillator()}createBufferSource(){return this._context.createBufferSource()}createBiquadFilter(){return this._context.createBiquadFilter()}createBuffer(t,e,r){return this._context.createBuffer(t,e,r)}createChannelMerger(t){return this._context.createChannelMerger(t)}createChannelSplitter(t){return this._context.createChannelSplitter(t)}createConstantSource(){return this._context.createConstantSource()}createConvolver(){return this._context.createConvolver()}createDelay(t){return this._context.createDelay(t)}createDynamicsCompressor(){return this._context.createDynamicsCompressor()}createGain(){return this._context.createGain()}createIIRFilter(t,e){return this._context.createIIRFilter(t,e)}createPanner(){return this._context.createPanner()}createPeriodicWave(t,e,r){return this._context.createPeriodicWave(t,e,r)}createStereoPanner(){return this._context.createStereoPanner()}createWaveShaper(){return this._context.createWaveShaper()}createMediaStreamSource(t){return V(Fr(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamSource(t)}createMediaElementSource(t){return V(Fr(this._context),"Not available if OfflineAudioContext"),this._context.createMediaElementSource(t)}createMediaStreamDestination(){return V(Fr(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamDestination()}decodeAudioData(t){return this._context.decodeAudioData(t)}get currentTime(){return this._context.currentTime}get state(){return this._context.state}get sampleRate(){return this._context.sampleRate}get listener(){return this.initialize(),this._listener}set listener(t){V(!this._initialized,"The listener cannot be set after initialization."),this._listener=t}get transport(){return this.initialize(),this._transport}set transport(t){V(!this._initialized,"The transport cannot be set after initialization."),this._transport=t}get draw(){return this.initialize(),this._draw}set draw(t){V(!this._initialized,"Draw cannot be set after initialization."),this._draw=t}get destination(){return this.initialize(),this._destination}set destination(t){V(!this._initialized,"The destination cannot be set after initialization."),this._destination=t}createAudioWorkletNode(t,e){return Ud(this.rawContext,t,e)}addAudioWorkletModule(t){return lt(this,void 0,void 0,function*(){V($(this.rawContext.audioWorklet),"AudioWorkletNode is only available in a secure context (https or localhost)"),this._workletPromise||(this._workletPromise=this.rawContext.audioWorklet.addModule(t)),yield this._workletPromise})}workletsAreReady(){return lt(this,void 0,void 0,function*(){(yield this._workletPromise)?this._workletPromise:Promise.resolve()})}get updateInterval(){return this._ticker.updateInterval}set updateInterval(t){this._ticker.updateInterval=t}get clockSource(){return this._ticker.type}set clockSource(t){this._ticker.type=t}get lookAhead(){return this._lookAhead}set lookAhead(t){this._lookAhead=t,this.updateInterval=t?t/2:.01}get latencyHint(){return this._latencyHint}get rawContext(){return this._context}now(){return this._context.currentTime+this._lookAhead}immediate(){return this._context.currentTime}resume(){return Fr(this._context)?this._context.resume():Promise.resolve()}close(){return lt(this,void 0,void 0,function*(){Fr(this._context)&&this.state!=="closed"&&!this._closeStarted&&(this._closeStarted=!0,yield this._context.close()),this._initialized&&Jd(this)})}getConstant(t){if(this._constants.has(t))return this._constants.get(t);{let e=this._context.createBuffer(1,128,this._context.sampleRate),r=e.getChannelData(0);for(let n=0;n<r.length;n++)r[n]=t;let i=this._context.createBufferSource();return i.channelCount=1,i.channelCountMode="explicit",i.buffer=e,i.loop=!0,i.start(0),this._constants.set(t,i),i}}dispose(){return super.dispose(),this._ticker.dispose(),this._timeouts.dispose(),Object.keys(this._constants).map(t=>this._constants[t].disconnect()),this.close(),this}_timeoutLoop(){let t=this.now();this._timeouts.forEachBefore(t,e=>{e.callback(),this._timeouts.remove(e)})}setTimeout(t,e){this._timeoutIds++;let r=this.now();return this._timeouts.add({callback:t,id:this._timeoutIds,time:r+e}),this._timeoutIds}clearTimeout(t){return this._timeouts.forEach(e=>{e.id===t&&this._timeouts.remove(e)}),this}clearInterval(t){return this.clearTimeout(t)}setInterval(t,e){let r=++this._timeoutIds,i=()=>{let n=this.now();this._timeouts.add({callback:()=>{t(),i()},id:r,time:n+e})};return i(),r}};var ps=class extends Zi{constructor(){super(...arguments),this.lookAhead=0,this.latencyHint=0,this.isOffline=!1}createAnalyser(){return{}}createOscillator(){return{}}createBufferSource(){return{}}createBiquadFilter(){return{}}createBuffer(t,e,r){return{}}createChannelMerger(t){return{}}createChannelSplitter(t){return{}}createConstantSource(){return{}}createConvolver(){return{}}createDelay(t){return{}}createDynamicsCompressor(){return{}}createGain(){return{}}createIIRFilter(t,e){return{}}createPanner(){return{}}createPeriodicWave(t,e,r){return{}}createStereoPanner(){return{}}createWaveShaper(){return{}}createMediaStreamSource(t){return{}}createMediaElementSource(t){return{}}createMediaStreamDestination(){return{}}decodeAudioData(t){return Promise.resolve({})}createAudioWorkletNode(t,e){return{}}get rawContext(){return{}}addAudioWorkletModule(t){return lt(this,void 0,void 0,function*(){return Promise.resolve()})}resume(){return Promise.resolve()}setTimeout(t,e){return 0}clearTimeout(t){return this}setInterval(t,e){return 0}clearInterval(t){return this}getConstant(t){return{}}get currentTime(){return 0}get state(){return{}}get sampleRate(){return 0}get listener(){return{}}get transport(){return{}}get draw(){return{}}set draw(t){}get destination(){return{}}set destination(t){}now(){return 0}immediate(){return 0}};function B(o,t){Nt(t)?t.forEach(e=>B(o,e)):Object.defineProperty(o,t,{enumerable:!0,writable:!1})}function oi(o,t){Nt(t)?t.forEach(e=>oi(o,e)):Object.defineProperty(o,t,{writable:!0})}var tt=()=>{};var Dt=class o extends Qt{constructor(){super(),this.name="ToneAudioBuffer",this.onload=tt;let t=w(o.getDefaults(),arguments,["url","onload","onerror"]);this.reverse=t.reverse,this.onload=t.onload,te(t.url)?this.load(t.url).catch(t.onerror):t.url&&this.set(t.url)}static getDefaults(){return{onerror:tt,onload:tt,reverse:!1}}get sampleRate(){return this._buffer?this._buffer.sampleRate:Ft().sampleRate}set(t){return t instanceof o?t.loaded?this._buffer=t.get():t.onload=()=>{this.set(t),this.onload(this)}:this._buffer=t,this._reversed&&this._reverse(),this}get(){return this._buffer}load(t){return lt(this,void 0,void 0,function*(){let e=o.load(t).then(r=>{this.set(r),this.onload(this)});o.downloads.push(e);try{yield e}finally{let r=o.downloads.indexOf(e);o.downloads.splice(r,1)}return this})}dispose(){return super.dispose(),this._buffer=void 0,this}fromArray(t){let e=Nt(t)&&t[0].length>0,r=e?t.length:1,i=e?t[0].length:t.length,n=Ft(),s=n.createBuffer(r,i,n.sampleRate),a=!e&&r===1?[t]:t;for(let c=0;c<r;c++)s.copyToChannel(a[c],c);return this._buffer=s,this}toMono(t){if(Jt(t))this.fromArray(this.toArray(t));else{let e=new Float32Array(this.length),r=this.numberOfChannels;for(let i=0;i<r;i++){let n=this.toArray(i);for(let s=0;s<n.length;s++)e[s]+=n[s]}e=e.map(i=>i/r),this.fromArray(e)}return this}toArray(t){if(Jt(t))return this.getChannelData(t);if(this.numberOfChannels===1)return this.toArray(0);{let e=[];for(let r=0;r<this.numberOfChannels;r++)e[r]=this.getChannelData(r);return e}}getChannelData(t){return this._buffer?this._buffer.getChannelData(t):new Float32Array(0)}slice(t,e=this.duration){V(this.loaded,"Buffer is not loaded");let r=Math.floor(t*this.sampleRate),i=Math.floor(e*this.sampleRate);V(r<i,"The start time must be less than the end time");let n=i-r,s=Ft().createBuffer(this.numberOfChannels,n,this.sampleRate);for(let a=0;a<this.numberOfChannels;a++)s.copyToChannel(this.getChannelData(a).subarray(r,i),a);return new o(s)}_reverse(){if(this.loaded)for(let t=0;t<this.numberOfChannels;t++)this.getChannelData(t).reverse();return this}get loaded(){return this.length>0}get duration(){return this._buffer?this._buffer.duration:0}get length(){return this._buffer?this._buffer.length:0}get numberOfChannels(){return this._buffer?this._buffer.numberOfChannels:0}get reverse(){return this._reversed}set reverse(t){this._reversed!==t&&(this._reversed=t,this._reverse())}static fromArray(t){return new o().fromArray(t)}static fromUrl(t){return lt(this,void 0,void 0,function*(){return yield new o().load(t)})}static load(t){return lt(this,void 0,void 0,function*(){let e=o.baseUrl===""||o.baseUrl.endsWith("/")?o.baseUrl:o.baseUrl+"/",r=yield fetch(e+t);if(!r.ok)throw new Error(`could not load url: ${t}`);let i=yield r.arrayBuffer();return yield Ft().decodeAudioData(i)})}static supportsType(t){let e=t.split("."),r=e[e.length-1];return document.createElement("audio").canPlayType("audio/"+r)!==""}static loaded(){return lt(this,void 0,void 0,function*(){for(yield Promise.resolve();o.downloads.length;)yield o.downloads[0]})}};Dt.baseUrl="";Dt.downloads=[];var Ye=class extends ii{constructor(){super({clockSource:"offline",context:Qi(arguments[0])?arguments[0]:qd(arguments[0],arguments[1]*arguments[2],arguments[2]),lookAhead:0,updateInterval:Qi(arguments[0])?128/arguments[0].sampleRate:128/arguments[2]}),this.name="OfflineContext",this._currentTime=0,this.isOffline=!0,this._duration=Qi(arguments[0])?arguments[0].length/arguments[0].sampleRate:arguments[1]}now(){return this._currentTime}get currentTime(){return this._currentTime}_renderClock(t){return lt(this,void 0,void 0,function*(){let e=0;for(;this._duration-this._currentTime>=0;){this.emit("tick"),this._currentTime+=128/this.sampleRate,e++;let r=Math.floor(this.sampleRate/128);t&&e%r===0&&(yield new Promise(i=>setTimeout(i,1)))}})}render(){return lt(this,arguments,void 0,function*(t=!0){yield this.workletsAreReady(),yield this._renderClock(t);let e=yield this._context.startRendering();return new Dt(e)})}close(){return Promise.resolve()}};var Kd=new ps,Xi=Kd;function Ft(){return Xi===Kd&&Wd&&Fc(new ii),Xi}function Fc(o,t=!1){t&&Xi.dispose(),Fr(o)?Xi=new ii(o):Qi(o)?Xi=new Ye(o):Xi=o}if(ee&&!ee.TONE_SILENCE_LOGGING){let o="v";Ro==="dev"&&(o="");let t=` * Tone.js ${o}${Ro} * `;console.log(`%c${t}`,"background: #000; color: #fff")}function Ji(o){return Math.pow(10,o/20)}function Ki(o){return 20*(Math.log(o)/Math.LN10)}function ni(o){return Math.pow(2,o/12)}var ds=440;function $d(){return ds}function tm(o){ds=o}function He(o){return Math.round(Bc(o))}function Bc(o){return 69+12*Math.log2(o/ds)}function Uo(o){return ds*Math.pow(2,(o-69)/12)}var ms=class o extends Qt{constructor(t,e,r){super(),this.defaultUnits="s",this._val=e,this._units=r,this.context=t,this._expressions=this._getExpressions()}_getExpressions(){return{hz:{method:t=>this._frequencyToUnits(parseFloat(t)),regexp:/^(\d+(?:\.\d+)?)hz$/i},i:{method:t=>this._ticksToUnits(parseInt(t,10)),regexp:/^(\d+)i$/i},m:{method:t=>this._beatsToUnits(parseInt(t,10)*this._getTimeSignature()),regexp:/^(\d+)m$/i},n:{method:(t,e)=>{let r=parseInt(t,10),i=e==="."?1.5:1;return r===1?this._beatsToUnits(this._getTimeSignature())*i:this._beatsToUnits(4/r)*i},regexp:/^(\d+)n(\.?)$/i},number:{method:t=>this._expressions[this.defaultUnits].method.call(this,t),regexp:/^(\d+(?:\.\d+)?)$/},s:{method:t=>this._secondsToUnits(parseFloat(t)),regexp:/^(\d+(?:\.\d+)?)s$/},samples:{method:t=>parseInt(t,10)/this.context.sampleRate,regexp:/^(\d+)samples$/},t:{method:t=>{let e=parseInt(t,10);return this._beatsToUnits(8/(Math.floor(e)*3))},regexp:/^(\d+)t$/i},tr:{method:(t,e,r)=>{let i=0;return t&&t!=="0"&&(i+=this._beatsToUnits(this._getTimeSignature()*parseFloat(t))),e&&e!=="0"&&(i+=this._beatsToUnits(parseFloat(e))),r&&r!=="0"&&(i+=this._beatsToUnits(parseFloat(r)/4)),i},regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?$/}}}valueOf(){if(this._val instanceof o&&this.fromType(this._val),Lt(this._val))return this._noArg();if(te(this._val)&&Lt(this._units)){for(let t in this._expressions)if(this._expressions[t].regexp.test(this._val.trim())){this._units=t;break}}else if(We(this._val)){let t=0;for(let e in this._val)if($(this._val[e])){let r=this._val[e],i=new this.constructor(this.context,e).valueOf()*r;t+=i}return t}if($(this._units)){let t=this._expressions[this._units],e=this._val.toString().trim().match(t.regexp);return e?t.method.apply(this,e.slice(1)):t.method.call(this,this._val)}else return te(this._val)?parseFloat(this._val):this._val}_frequencyToUnits(t){return 1/t}_beatsToUnits(t){return 60/this._getBpm()*t}_secondsToUnits(t){return t}_ticksToUnits(t){return t*this._beatsToUnits(1)/this._getPPQ()}_noArg(){return this._now()}_getBpm(){return this.context.transport.bpm.value}_getTimeSignature(){return this.context.transport.timeSignature}_getPPQ(){return this.context.transport.PPQ}fromType(t){switch(this._units=void 0,this.defaultUnits){case"s":this._val=t.toSeconds();break;case"i":this._val=t.toTicks();break;case"hz":this._val=t.toFrequency();break;case"midi":this._val=t.toMidi();break}return this}toFrequency(){return 1/this.toSeconds()}toSamples(){return this.toSeconds()*this.context.sampleRate}toMilliseconds(){return this.toSeconds()*1e3}};var Ae=class o extends ms{constructor(){super(...arguments),this.name="TimeClass"}_getExpressions(){return Object.assign(super._getExpressions(),{now:{method:t=>this._now()+new this.constructor(this.context,t).valueOf(),regexp:/^\+(.+)/},quantize:{method:t=>{let e=new o(this.context,t).valueOf();return this._secondsToUnits(this.context.transport.nextSubdivision(e))},regexp:/^@(.+)/}})}quantize(t,e=1){let r=new this.constructor(this.context,t).valueOf(),i=this.valueOf(),a=Math.round(i/r)*r-i;return i+a*e}toNotation(){let t=this.toSeconds(),e=["1m"];for(let n=1;n<9;n++){let s=Math.pow(2,n);e.push(s+"n."),e.push(s+"n"),e.push(s+"t")}e.push("0");let r=e[0],i=new o(this.context,e[0]).toSeconds();return e.forEach(n=>{let s=new o(this.context,n).toSeconds();Math.abs(s-t)<Math.abs(i-t)&&(r=n,i=s)}),r}toBarsBeatsSixteenths(){let t=this._beatsToUnits(1),e=this.valueOf()/t;e=parseFloat(e.toFixed(4));let r=Math.floor(e/this._getTimeSignature()),i=e%1*4;e=Math.floor(e)%this._getTimeSignature();let n=i.toString();return n.length>3&&(i=parseFloat(parseFloat(n).toFixed(3))),[r,e,i].join(":")}toTicks(){let t=this._beatsToUnits(1);return this.valueOf()/t*this._getPPQ()}toSeconds(){return this.valueOf()}toMidi(){return He(this.toFrequency())}_now(){return this.context.now()}};var ce=class o extends Ae{constructor(){super(...arguments),this.name="Frequency",this.defaultUnits="hz"}static get A4(){return $d()}static set A4(t){tm(t)}_getExpressions(){return Object.assign({},super._getExpressions(),{midi:{regexp:/^(\d+(?:\.\d+)?midi)/,method(t){return this.defaultUnits==="midi"?t:o.mtof(t)}},note:{regexp:/^([a-g]{1}(?:b|#|##|x|bb|###|#x|x#|bbb)?)(-?[0-9]+)/i,method(t,e){let i=oy[t.toLowerCase()]+(parseInt(e,10)+1)*12;return this.defaultUnits==="midi"?i:o.mtof(i)}},tr:{regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?/,method(t,e,r){let i=1;return t&&t!=="0"&&(i*=this._beatsToUnits(this._getTimeSignature()*parseFloat(t))),e&&e!=="0"&&(i*=this._beatsToUnits(parseFloat(e))),r&&r!=="0"&&(i*=this._beatsToUnits(parseFloat(r)/4)),i}}})}transpose(t){return new o(this.context,this.valueOf()*ni(t))}harmonize(t){return t.map(e=>this.transpose(e))}toMidi(){return He(this.valueOf())}toNote(){let t=this.toFrequency(),e=Math.log2(t/o.A4),r=Math.round(12*e)+57,i=Math.floor(r/12);return i<0&&(r+=-12*i),ny[r%12]+i.toString()}toSeconds(){return 1/super.toSeconds()}toTicks(){let t=this._beatsToUnits(1),e=this.valueOf()/t;return Math.floor(e*this._getPPQ())}_noArg(){return 0}_frequencyToUnits(t){return t}_ticksToUnits(t){return 1/(t*60/(this._getBpm()*this._getPPQ()))}_beatsToUnits(t){return 1/super._beatsToUnits(t)}_secondsToUnits(t){return 1/t}static mtof(t){return Uo(t)}static ftom(t){return He(t)}},oy={cbbb:-3,cbb:-2,cb:-1,c:0,"c#":1,cx:2,"c##":2,"c###":3,"cx#":3,"c#x":3,dbbb:-1,dbb:0,db:1,d:2,"d#":3,dx:4,"d##":4,"d###":5,"dx#":5,"d#x":5,ebbb:1,ebb:2,eb:3,e:4,"e#":5,ex:6,"e##":6,"e###":7,"ex#":7,"e#x":7,fbbb:2,fbb:3,fb:4,f:5,"f#":6,fx:7,"f##":7,"f###":8,"fx#":8,"f#x":8,gbbb:4,gbb:5,gb:6,g:7,"g#":8,gx:9,"g##":9,"g###":10,"gx#":10,"g#x":10,abbb:6,abb:7,ab:8,a:9,"a#":10,ax:11,"a##":11,"a###":12,"ax#":12,"a#x":12,bbbb:8,bbb:9,bb:10,b:11,"b#":12,bx:13,"b##":13,"b###":14,"bx#":14,"b#x":14},ny=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"];var De=class extends Ae{constructor(){super(...arguments),this.name="TransportTime"}_now(){return this.context.transport.seconds}};var Wt=class o extends Qt{constructor(){super();let t=w(o.getDefaults(),arguments,["context"]);this.defaultContext?this.context=this.defaultContext:this.context=t.context}static getDefaults(){return{context:Ft()}}now(){return this.context.currentTime+this.context.lookAhead}immediate(){return this.context.currentTime}get sampleTime(){return 1/this.context.sampleRate}get blockTime(){return 128/this.context.sampleRate}toSeconds(t){return Fd(t),new Ae(this.context,t).toSeconds()}toFrequency(t){return new ce(this.context,t).toFrequency()}toTicks(t){return new De(this.context,t).toTicks()}_getPartialProperties(t){let e=this.get();return Object.keys(e).forEach(r=>{Lt(t[r])&&delete e[r]}),e}get(){let t=Hd(this);return Object.keys(t).forEach(e=>{if(Reflect.has(this,e)){let r=this[e];$(r)&&$(r.value)&&$(r.setValueAtTime)?t[e]=r.value:r instanceof o?t[e]=r._getPartialProperties(t[e]):Nt(r)||Jt(r)||te(r)||Pc(r)?t[e]=r:delete t[e]}}),t}set(t){return Object.keys(t).forEach(e=>{Reflect.has(this,e)&&$(this[e])&&(this[e]&&$(this[e].value)&&$(this[e].setValueAtTime)?this[e].value!==t[e]&&(this[e].value=t[e]):this[e]instanceof o?this[e].set(t[e]):this[e]=t[e])}),this}};var nr=class extends qt{constructor(t="stopped"){super(),this.name="StateTimeline",this._initial=t,this.setStateAtTime(this._initial,0)}getValueAtTime(t){let e=this.get(t);return e!==null?e.state:this._initial}setStateAtTime(t,e,r){return Mt(e,0),this.add(Object.assign({},r,{state:t,time:e})),this}getLastState(t,e){let r=this._search(e);for(let i=r;i>=0;i--){let n=this._timeline[i];if(n.state===t)return n}}getNextState(t,e){let r=this._search(e);if(r!==-1)for(let i=r;i<this._timeline.length;i++){let n=this._timeline[i];if(n.state===t)return n}}};var nt=class o extends Wt{constructor(){let t=w(o.getDefaults(),arguments,["param","units","convert"]);for(super(t),this.name="Param",this.overridden=!1,this._minOutput=1e-7,V($(t.param)&&(Ue(t.param)||t.param instanceof o),"param must be an AudioParam");!Ue(t.param);)t.param=t.param._param;this._swappable=$(t.swappable)?t.swappable:!1,this._swappable?(this.input=this.context.createGain(),this._param=t.param,this.input.connect(this._param)):this._param=this.input=t.param,this._events=new qt(1e3),this._initialValue=this._param.defaultValue,this.units=t.units,this.convert=t.convert,this._minValue=t.minValue,this._maxValue=t.maxValue,$(t.value)&&t.value!==this._toType(this._initialValue)&&this.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(Wt.getDefaults(),{convert:!0,units:"number"})}get value(){let t=this.now();return this.getValueAtTime(t)}set value(t){this.cancelScheduledValues(this.now()),this.setValueAtTime(t,this.now())}get minValue(){return $(this._minValue)?this._minValue:this.units==="time"||this.units==="frequency"||this.units==="normalRange"||this.units==="positive"||this.units==="transportTime"||this.units==="ticks"||this.units==="bpm"||this.units==="hertz"||this.units==="samples"?0:this.units==="audioRange"?-1:this.units==="decibels"?-1/0:this._param.minValue}get maxValue(){return $(this._maxValue)?this._maxValue:this.units==="normalRange"||this.units==="audioRange"?1:this._param.maxValue}_is(t,e){return this.units===e}_assertRange(t){return $(this.maxValue)&&$(this.minValue)&&Mt(t,this._fromType(this.minValue),this._fromType(this.maxValue)),t}_fromType(t){return this.convert&&!this.overridden?this._is(t,"time")?this.toSeconds(t):this._is(t,"decibels")?Ji(t):this._is(t,"frequency")?this.toFrequency(t):t:this.overridden?0:t}_toType(t){return this.convert&&this.units==="decibels"?Ki(t):t}setValueAtTime(t,e){let r=this.toSeconds(e),i=this._fromType(t);return V(isFinite(i)&&isFinite(r),`Invalid argument(s) to setValueAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._assertRange(i),this.log(this.units,"setValueAtTime",t,r),this._events.add({time:r,type:"setValueAtTime",value:i}),this._param.setValueAtTime(i,r),this}getValueAtTime(t){let e=Math.max(this.toSeconds(t),0),r=this._events.getAfter(e),i=this._events.get(e),n=this._initialValue;if(i===null)n=this._initialValue;else if(i.type==="setTargetAtTime"&&(r===null||r.type==="setValueAtTime")){let s=this._events.getBefore(i.time),a;s===null?a=this._initialValue:a=s.value,i.type==="setTargetAtTime"&&(n=this._exponentialApproach(i.time,a,i.value,i.constant,e))}else if(r===null)n=i.value;else if(r.type==="linearRampToValueAtTime"||r.type==="exponentialRampToValueAtTime"){let s=i.value;if(i.type==="setTargetAtTime"){let a=this._events.getBefore(i.time);a===null?s=this._initialValue:s=a.value}r.type==="linearRampToValueAtTime"?n=this._linearInterpolate(i.time,s,r.time,r.value,e):n=this._exponentialInterpolate(i.time,s,r.time,r.value,e)}else n=i.value;return this._toType(n)}setRampPoint(t){t=this.toSeconds(t);let e=this.getValueAtTime(t);return this.cancelAndHoldAtTime(t),this._fromType(e)===0&&(e=this._toType(this._minOutput)),this.setValueAtTime(e,t),this}linearRampToValueAtTime(t,e){let r=this._fromType(t),i=this.toSeconds(e);return V(isFinite(r)&&isFinite(i),`Invalid argument(s) to linearRampToValueAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._assertRange(r),this._events.add({time:i,type:"linearRampToValueAtTime",value:r}),this.log(this.units,"linearRampToValueAtTime",t,i),this._param.linearRampToValueAtTime(r,i),this}exponentialRampToValueAtTime(t,e){let r=this._fromType(t);r=ae(r,0)?this._minOutput:r,this._assertRange(r);let i=this.toSeconds(e);return V(isFinite(r)&&isFinite(i),`Invalid argument(s) to exponentialRampToValueAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._events.add({time:i,type:"exponentialRampToValueAtTime",value:r}),this.log(this.units,"exponentialRampToValueAtTime",t,i),this._param.exponentialRampToValueAtTime(r,i),this}exponentialRampTo(t,e,r){return r=this.toSeconds(r),this.setRampPoint(r),this.exponentialRampToValueAtTime(t,r+this.toSeconds(e)),this}linearRampTo(t,e,r){return r=this.toSeconds(r),this.setRampPoint(r),this.linearRampToValueAtTime(t,r+this.toSeconds(e)),this}targetRampTo(t,e,r){return r=this.toSeconds(r),this.setRampPoint(r),this.exponentialApproachValueAtTime(t,r,e),this}exponentialApproachValueAtTime(t,e,r){e=this.toSeconds(e),r=this.toSeconds(r);let i=Math.log(r+1)/Math.log(200);return this.setTargetAtTime(t,e,i),this.cancelAndHoldAtTime(e+r*.9),this.linearRampToValueAtTime(t,e+r),this}setTargetAtTime(t,e,r){let i=this._fromType(t);V(isFinite(r)&&r>0,"timeConstant must be a number greater than 0");let n=this.toSeconds(e);return this._assertRange(i),V(isFinite(i)&&isFinite(n),`Invalid argument(s) to setTargetAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._events.add({constant:r,time:n,type:"setTargetAtTime",value:i}),this.log(this.units,"setTargetAtTime",t,n,r),this._param.setTargetAtTime(i,n,r),this}setValueCurveAtTime(t,e,r,i=1){r=this.toSeconds(r),e=this.toSeconds(e);let n=this._fromType(t[0])*i;this.setValueAtTime(this._toType(n),e);let s=r/(t.length-1);for(let a=1;a<t.length;a++){let c=this._fromType(t[a])*i;this.linearRampToValueAtTime(this._toType(c),e+a*s)}return this}cancelScheduledValues(t){let e=this.toSeconds(t);return V(isFinite(e),`Invalid argument to cancelScheduledValues: ${JSON.stringify(t)}`),this._events.cancel(e),this._param.cancelScheduledValues(e),this.log(this.units,"cancelScheduledValues",e),this}cancelAndHoldAtTime(t){let e=this.toSeconds(t),r=this._fromType(this.getValueAtTime(e));V(isFinite(e),`Invalid argument to cancelAndHoldAtTime: ${JSON.stringify(t)}`),this.log(this.units,"cancelAndHoldAtTime",e,"value="+r);let i=this._events.get(e),n=this._events.getAfter(e);return i&&ae(i.time,e)?n?(this._param.cancelScheduledValues(n.time),this._events.cancel(n.time)):(this._param.cancelAndHoldAtTime(e),this._events.cancel(e+this.sampleTime)):n&&(this._param.cancelScheduledValues(n.time),this._events.cancel(n.time),n.type==="linearRampToValueAtTime"?this.linearRampToValueAtTime(this._toType(r),e):n.type==="exponentialRampToValueAtTime"&&this.exponentialRampToValueAtTime(this._toType(r),e)),this._events.add({time:e,type:"setValueAtTime",value:r}),this._param.setValueAtTime(r,e),this}rampTo(t,e=.1,r){return this.units==="frequency"||this.units==="bpm"||this.units==="decibels"?this.exponentialRampTo(t,e,r):this.linearRampTo(t,e,r),this}apply(t){let e=this.context.currentTime;t.setValueAtTime(this.getValueAtTime(e),e);let r=this._events.get(e);if(r&&r.type==="setTargetAtTime"){let i=this._events.getAfter(r.time),n=i?i.time:e+2,s=(n-e)/10;for(let a=e;a<n;a+=s)t.linearRampToValueAtTime(this.getValueAtTime(a),a)}return this._events.forEachAfter(this.context.currentTime,i=>{i.type==="cancelScheduledValues"?t.cancelScheduledValues(i.time):i.type==="setTargetAtTime"?t.setTargetAtTime(i.value,i.time,i.constant):t[i.type](i.value,i.time)}),this}setParam(t){V(this._swappable,"The Param must be assigned as 'swappable' in the constructor");let e=this.input;return e.disconnect(this._param),this.apply(t),this._param=t,e.connect(this._param),this}dispose(){return super.dispose(),this._events.dispose(),this}get defaultValue(){return this._toType(this._param.defaultValue)}_exponentialApproach(t,e,r,i,n){return r+(e-r)*Math.exp(-(n-t)/i)}_linearInterpolate(t,e,r,i,n){return e+(i-e)*((n-t)/(r-t))}_exponentialInterpolate(t,e,r,i,n){return e*Math.pow(i/e,(n-t)/(r-t))}};var j=class o extends Wt{constructor(){super(...arguments),this._internalChannels=[]}get numberOfInputs(){return $(this.input)?Ue(this.input)||this.input instanceof nt?1:this.input.numberOfInputs:0}get numberOfOutputs(){return $(this.output)?this.output.numberOfOutputs:0}_isAudioNode(t){return $(t)&&(t instanceof o||or(t))}_getInternalNodes(){let t=this._internalChannels.slice(0);return this._isAudioNode(this.input)&&t.push(this.input),this._isAudioNode(this.output)&&this.input!==this.output&&t.push(this.output),t}_setChannelProperties(t){this._getInternalNodes().forEach(r=>{r.channelCount=t.channelCount,r.channelCountMode=t.channelCountMode,r.channelInterpretation=t.channelInterpretation})}_getChannelProperties(){let t=this._getInternalNodes();V(t.length>0,"ToneAudioNode does not have any internal nodes");let e=t[0];return{channelCount:e.channelCount,channelCountMode:e.channelCountMode,channelInterpretation:e.channelInterpretation}}get channelCount(){return this._getChannelProperties().channelCount}set channelCount(t){let e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelCount:t}))}get channelCountMode(){return this._getChannelProperties().channelCountMode}set channelCountMode(t){let e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelCountMode:t}))}get channelInterpretation(){return this._getChannelProperties().channelInterpretation}set channelInterpretation(t){let e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelInterpretation:t}))}connect(t,e=0,r=0){return Kt(this,t,e,r),this}toDestination(){return this.connect(this.context.destination),this}toMaster(){return ei("toMaster() has been renamed toDestination()"),this.toDestination()}disconnect(t,e=0,r=0){return em(this,t,e,r),this}chain(...t){return ke(this,...t),this}fan(...t){return t.forEach(e=>this.connect(e)),this}dispose(){return super.dispose(),$(this.input)&&(this.input instanceof o?this.input.dispose():or(this.input)&&this.input.disconnect()),$(this.output)&&(this.output instanceof o?this.output.dispose():or(this.output)&&this.output.disconnect()),this._internalChannels=[],this}};function ke(...o){let t=o.shift();o.reduce((e,r)=>(e instanceof j?e.connect(r):or(e)&&Kt(e,r),r),t)}function Kt(o,t,e=0,r=0){for(V($(o),"Cannot connect from undefined node"),V($(t),"Cannot connect to undefined node"),(t instanceof j||or(t))&&V(t.numberOfInputs>0,"Cannot connect to node with no inputs"),V(o.numberOfOutputs>0,"Cannot connect from node with no outputs");t instanceof j||t instanceof nt;)$(t.input)&&(t=t.input);for(;o instanceof j;)$(o.output)&&(o=o.output);Ue(t)?o.connect(t,e):o.connect(t,e,r)}function em(o,t,e=0,r=0){if($(t))for(;t instanceof j;)t=t.input;for(;!or(o);)$(o.output)&&(o=o.output);Ue(t)?o.disconnect(t,e):or(t)?o.disconnect(t,e,r):o.disconnect()}var Y=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["gain","units"]);super(t),this.name="Gain",this._gainNode=this.context.createGain(),this.input=this._gainNode,this.output=this._gainNode,this.gain=new nt({context:this.context,convert:t.convert,param:this._gainNode.gain,units:t.units,value:t.gain,minValue:t.minValue,maxValue:t.maxValue}),B(this,"gain")}static getDefaults(){return Object.assign(j.getDefaults(),{convert:!0,gain:1,units:"gain"})}dispose(){return super.dispose(),this._gainNode.disconnect(),this.gain.dispose(),this}};var Qe=class extends j{constructor(t){super(t),this.onended=tt,this._startTime=-1,this._stopTime=-1,this._timeout=-1,this.output=new Y({context:this.context,gain:0}),this._gainNode=this.output,this.getStateAtTime=function(e){let r=this.toSeconds(e);return this._startTime!==-1&&r>=this._startTime&&(this._stopTime===-1||r<=this._stopTime)?"started":"stopped"},this._fadeIn=t.fadeIn,this._fadeOut=t.fadeOut,this._curve=t.curve,this.onended=t.onended}static getDefaults(){return Object.assign(j.getDefaults(),{curve:"linear",fadeIn:0,fadeOut:0,onended:tt})}_startGain(t,e=1){V(this._startTime===-1,"Source cannot be started more than once");let r=this.toSeconds(this._fadeIn);return this._startTime=t+r,this._startTime=Math.max(this._startTime,this.context.currentTime),r>0?(this._gainNode.gain.setValueAtTime(0,t),this._curve==="linear"?this._gainNode.gain.linearRampToValueAtTime(e,t+r):this._gainNode.gain.exponentialApproachValueAtTime(e,t,r)):this._gainNode.gain.setValueAtTime(e,t),this}stop(t){return this.log("stop",t),this._stopGain(this.toSeconds(t)),this}_stopGain(t){V(this._startTime!==-1,"'start' must be called before 'stop'"),this.cancelStop();let e=this.toSeconds(this._fadeOut);return this._stopTime=this.toSeconds(t)+e,this._stopTime=Math.max(this._stopTime,this.now()),e>0?this._curve==="linear"?this._gainNode.gain.linearRampTo(0,e,t):this._gainNode.gain.targetRampTo(0,e,t):(this._gainNode.gain.cancelAndHoldAtTime(t),this._gainNode.gain.setValueAtTime(0,t)),this.context.clearTimeout(this._timeout),this._timeout=this.context.setTimeout(()=>{let r=this._curve==="exponential"?e*2:0;this._stopSource(this.now()+r),this._onended()},this._stopTime-this.context.currentTime),this}_onended(){if(this.onended!==tt&&(this.onended(this),this.onended=tt,!this.context.isOffline)){let t=()=>this.dispose();typeof requestIdleCallback!="undefined"?requestIdleCallback(t):setTimeout(t,10)}}get state(){return this.getStateAtTime(this.now())}cancelStop(){return this.log("cancelStop"),V(this._startTime!==-1,"Source is not started"),this._gainNode.gain.cancelScheduledValues(this._startTime+this.sampleTime),this.context.clearTimeout(this._timeout),this._stopTime=-1,this}dispose(){return super.dispose(),this._gainNode.dispose(),this.onended=tt,this}};var zo=class o extends Qe{constructor(){let t=w(o.getDefaults(),arguments,["offset"]);super(t),this.name="ToneConstantSource",this._source=this.context.createConstantSource(),Kt(this._source,this._gainNode),this.offset=new nt({context:this.context,convert:t.convert,param:this._source.offset,units:t.units,value:t.offset,minValue:t.minValue,maxValue:t.maxValue})}static getDefaults(){return Object.assign(Qe.getDefaults(),{convert:!0,offset:1,units:"number"})}start(t){let e=this.toSeconds(t);return this.log("start",e),this._startGain(e),this._source.start(e),this}_stopSource(t){this._source.stop(t)}dispose(){return super.dispose(),this.state==="started"&&this.stop(),this._source.disconnect(),this.offset.dispose(),this}};var K=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["value","units"]);super(t),this.name="Signal",this.override=!0,this.output=this._constantSource=new zo({context:this.context,convert:t.convert,offset:t.value,units:t.units,minValue:t.minValue,maxValue:t.maxValue}),this._constantSource.start(0),this.input=this._param=this._constantSource.offset}static getDefaults(){return Object.assign(j.getDefaults(),{convert:!0,units:"number",value:0})}connect(t,e=0,r=0){return $i(this,t,e,r),this}dispose(){return super.dispose(),this._param.dispose(),this._constantSource.dispose(),this}setValueAtTime(t,e){return this._param.setValueAtTime(t,e),this}getValueAtTime(t){return this._param.getValueAtTime(t)}setRampPoint(t){return this._param.setRampPoint(t),this}linearRampToValueAtTime(t,e){return this._param.linearRampToValueAtTime(t,e),this}exponentialRampToValueAtTime(t,e){return this._param.exponentialRampToValueAtTime(t,e),this}exponentialRampTo(t,e,r){return this._param.exponentialRampTo(t,e,r),this}linearRampTo(t,e,r){return this._param.linearRampTo(t,e,r),this}targetRampTo(t,e,r){return this._param.targetRampTo(t,e,r),this}exponentialApproachValueAtTime(t,e,r){return this._param.exponentialApproachValueAtTime(t,e,r),this}setTargetAtTime(t,e,r){return this._param.setTargetAtTime(t,e,r),this}setValueCurveAtTime(t,e,r,i){return this._param.setValueCurveAtTime(t,e,r,i),this}cancelScheduledValues(t){return this._param.cancelScheduledValues(t),this}cancelAndHoldAtTime(t){return this._param.cancelAndHoldAtTime(t),this}rampTo(t,e,r){return this._param.rampTo(t,e,r),this}get value(){return this._param.value}set value(t){this._param.value=t}get convert(){return this._param.convert}set convert(t){this._param.convert=t}get units(){return this._param.units}get overridden(){return this._param.overridden}set overridden(t){this._param.overridden=t}get maxValue(){return this._param.maxValue}get minValue(){return this._param.minValue}apply(t){return this._param.apply(t),this}};function $i(o,t,e,r){(t instanceof nt||Ue(t)||t instanceof K&&t.override)&&(t.cancelScheduledValues(0),t.setValueAtTime(0,0),t instanceof K&&(t.overridden=!0)),Kt(o,t,e,r)}var fs=class o extends nt{constructor(){let t=w(o.getDefaults(),arguments,["value"]);super(t),this.name="TickParam",this._events=new qt(1/0),this._multiplier=1,this._multiplier=t.multiplier,this._events.cancel(0),this._events.add({ticks:0,time:0,type:"setValueAtTime",value:this._fromType(t.value)}),this.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(nt.getDefaults(),{multiplier:1,units:"hertz",value:1})}setTargetAtTime(t,e,r){e=this.toSeconds(e),this.setRampPoint(e);let i=this._fromType(t),n=this._events.get(e),s=Math.round(Math.max(1/r,1));for(let a=0;a<=s;a++){let c=r*a+e,u=this._exponentialApproach(n.time,n.value,i,r,c);this.linearRampToValueAtTime(this._toType(u),c)}return this}setValueAtTime(t,e){let r=this.toSeconds(e);super.setValueAtTime(t,e);let i=this._events.get(r),n=this._events.previousEvent(i),s=this._getTicksUntilEvent(n,r);return i.ticks=Math.max(s,0),this}linearRampToValueAtTime(t,e){let r=this.toSeconds(e);super.linearRampToValueAtTime(t,e);let i=this._events.get(r),n=this._events.previousEvent(i),s=this._getTicksUntilEvent(n,r);return i.ticks=Math.max(s,0),this}exponentialRampToValueAtTime(t,e){e=this.toSeconds(e);let r=this._fromType(t),i=this._events.get(e),n=Math.round(Math.max((e-i.time)*10,1)),s=(e-i.time)/n;for(let a=0;a<=n;a++){let c=s*a+i.time,u=this._exponentialInterpolate(i.time,i.value,e,r,c);this.linearRampToValueAtTime(this._toType(u),c)}return this}_getTicksUntilEvent(t,e){if(t===null)t={ticks:0,time:0,type:"setValueAtTime",value:0};else if(Lt(t.ticks)){let s=this._events.previousEvent(t);t.ticks=this._getTicksUntilEvent(s,t.time)}let r=this._fromType(this.getValueAtTime(t.time)),i=this._fromType(this.getValueAtTime(e)),n=this._events.get(e);return n&&n.time===e&&n.type==="setValueAtTime"&&(i=this._fromType(this.getValueAtTime(e-this.sampleTime))),.5*(e-t.time)*(r+i)+t.ticks}getTicksAtTime(t){let e=this.toSeconds(t),r=this._events.get(e);return Math.max(this._getTicksUntilEvent(r,e),0)}getDurationOfTicks(t,e){let r=this.toSeconds(e),i=this.getTicksAtTime(e);return this.getTimeOfTick(i+t)-r}getTimeOfTick(t){let e=this._events.get(t,"ticks"),r=this._events.getAfter(t,"ticks");if(e&&e.ticks===t)return e.time;if(e&&r&&r.type==="linearRampToValueAtTime"&&e.value!==r.value){let i=this._fromType(this.getValueAtTime(e.time)),s=(this._fromType(this.getValueAtTime(r.time))-i)/(r.time-e.time),a=Math.sqrt(Math.pow(i,2)-2*s*(e.ticks-t)),c=(-i+a)/s,u=(-i-a)/s;return(c>0?c:u)+e.time}else return e?e.value===0?1/0:e.time+(t-e.ticks)/e.value:t/this._initialValue}ticksToTime(t,e){return this.getDurationOfTicks(t,e)}timeToTicks(t,e){let r=this.toSeconds(e),i=this.toSeconds(t),n=this.getTicksAtTime(r);return this.getTicksAtTime(r+i)-n}_fromType(t){return this.units==="bpm"&&this.multiplier?1/(60/t/this.multiplier):super._fromType(t)}_toType(t){return this.units==="bpm"&&this.multiplier?t/this.multiplier*60:super._toType(t)}get multiplier(){return this._multiplier}set multiplier(t){let e=this.value;this._multiplier=t,this.cancelScheduledValues(0),this.setValueAtTime(e,0)}};var gs=class o extends K{constructor(){let t=w(o.getDefaults(),arguments,["value"]);super(t),this.name="TickSignal",this.input=this._param=new fs({context:this.context,convert:t.convert,multiplier:t.multiplier,param:this._constantSource.offset,units:t.units,value:t.value})}static getDefaults(){return Object.assign(K.getDefaults(),{multiplier:1,units:"hertz",value:1})}ticksToTime(t,e){return this._param.ticksToTime(t,e)}timeToTicks(t,e){return this._param.timeToTicks(t,e)}getTimeOfTick(t){return this._param.getTimeOfTick(t)}getDurationOfTicks(t,e){return this._param.getDurationOfTicks(t,e)}getTicksAtTime(t){return this._param.getTicksAtTime(t)}get multiplier(){return this._param.multiplier}set multiplier(t){this._param.multiplier=t}dispose(){return super.dispose(),this._param.dispose(),this}};var xs=class o extends Wt{constructor(){let t=w(o.getDefaults(),arguments,["frequency"]);super(t),this.name="TickSource",this._state=new nr,this._tickOffset=new qt,this._ticksAtTime=new qt,this._secondsAtTime=new qt,this.frequency=new gs({context:this.context,units:t.units,value:t.frequency}),B(this,"frequency"),this._state.setStateAtTime("stopped",0),this.setTicksAtTime(0,0)}static getDefaults(){return Object.assign({frequency:1,units:"hertz"},Wt.getDefaults())}get state(){return this.getStateAtTime(this.now())}start(t,e){let r=this.toSeconds(t);return this._state.getValueAtTime(r)!=="started"&&(this._state.setStateAtTime("started",r),$(e)&&this.setTicksAtTime(e,r),this._ticksAtTime.cancel(r),this._secondsAtTime.cancel(r)),this}stop(t){let e=this.toSeconds(t);if(this._state.getValueAtTime(e)==="stopped"){let r=this._state.get(e);r&&r.time>0&&(this._tickOffset.cancel(r.time),this._state.cancel(r.time))}return this._state.cancel(e),this._state.setStateAtTime("stopped",e),this.setTicksAtTime(0,e),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e),this}pause(t){let e=this.toSeconds(t);return this._state.getValueAtTime(e)==="started"&&(this._state.setStateAtTime("paused",e),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e)),this}cancel(t){return t=this.toSeconds(t),this._state.cancel(t),this._tickOffset.cancel(t),this._ticksAtTime.cancel(t),this._secondsAtTime.cancel(t),this}getTicksAtTime(t){let e=this.toSeconds(t),r=this._state.getLastState("stopped",e),i=this._ticksAtTime.get(e),n={state:"paused",time:e};this._state.add(n);let s=i||r,a=i?i.ticks:0,c=null;return this._state.forEachBetween(s.time,e+this.sampleTime,u=>{let h=s.time,l=this._tickOffset.get(u.time);l&&l.time>=s.time&&(a=l.ticks,h=l.time),s.state==="started"&&u.state!=="started"&&(a+=this.frequency.getTicksAtTime(u.time)-this.frequency.getTicksAtTime(h),u.time!==n.time&&(c={state:u.state,time:u.time,ticks:a})),s=u}),this._state.remove(n),c&&this._ticksAtTime.add(c),a}get ticks(){return this.getTicksAtTime(this.now())}set ticks(t){this.setTicksAtTime(t,this.now())}get seconds(){return this.getSecondsAtTime(this.now())}set seconds(t){let e=this.now(),r=this.frequency.timeToTicks(t,e);this.setTicksAtTime(r,e)}getSecondsAtTime(t){t=this.toSeconds(t);let e=this._state.getLastState("stopped",t),r={state:"paused",time:t};this._state.add(r);let i=this._secondsAtTime.get(t),n=i||e,s=i?i.seconds:0,a=null;return this._state.forEachBetween(n.time,t+this.sampleTime,c=>{let u=n.time,h=this._tickOffset.get(c.time);h&&h.time>=n.time&&(s=h.seconds,u=h.time),n.state==="started"&&c.state!=="started"&&(s+=c.time-u,c.time!==r.time&&(a={state:c.state,time:c.time,seconds:s})),n=c}),this._state.remove(r),a&&this._secondsAtTime.add(a),s}setTicksAtTime(t,e){return e=this.toSeconds(e),this._tickOffset.cancel(e),this._tickOffset.add({seconds:this.frequency.getDurationOfTicks(t,e),ticks:t,time:e}),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e),this}getStateAtTime(t){return t=this.toSeconds(t),this._state.getValueAtTime(t)}getTimeOfTick(t,e=this.now()){let r=this._tickOffset.get(e),i=this._state.get(e),n=Math.max(r.time,i.time),s=this.frequency.getTicksAtTime(n)+t-r.ticks;return this.frequency.getTimeOfTick(s)}forEachTickBetween(t,e,r){let i=this._state.get(t);this._state.forEachBetween(t,e,s=>{i&&i.state==="started"&&s.state!=="started"&&this.forEachTickBetween(Math.max(i.time,t),s.time-this.sampleTime,r),i=s});let n=null;if(i&&i.state==="started"){let s=Math.max(i.time,t),a=this.frequency.getTicksAtTime(s),c=this.frequency.getTicksAtTime(i.time),u=a-c,h=Math.ceil(u)-u;h=ae(h,1)?0:h;let l=this.frequency.getTimeOfTick(a+h);for(;l<e;){try{r(l,Math.round(this.getTicksAtTime(l)))}catch(p){n=p;break}l+=this.frequency.getDurationOfTicks(1,l)}}if(n)throw n;return this}dispose(){return super.dispose(),this._state.dispose(),this._tickOffset.dispose(),this._ticksAtTime.dispose(),this._secondsAtTime.dispose(),this.frequency.dispose(),this}};var to=class o extends Wt{constructor(){let t=w(o.getDefaults(),arguments,["callback","frequency"]);super(t),this.name="Clock",this.callback=tt,this._lastUpdate=0,this._state=new nr("stopped"),this._boundLoop=this._loop.bind(this),this.callback=t.callback,this._tickSource=new xs({context:this.context,frequency:t.frequency,units:t.units}),this._lastUpdate=0,this.frequency=this._tickSource.frequency,B(this,"frequency"),this._state.setStateAtTime("stopped",0),this.context.on("tick",this._boundLoop)}static getDefaults(){return Object.assign(Wt.getDefaults(),{callback:tt,frequency:1,units:"hertz"})}get state(){return this._state.getValueAtTime(this.now())}start(t,e){hs(this.context);let r=this.toSeconds(t);return this.log("start",r),this._state.getValueAtTime(r)!=="started"&&(this._state.setStateAtTime("started",r),this._tickSource.start(r,e),r<this._lastUpdate&&this.emit("start",r,e)),this}stop(t){let e=this.toSeconds(t);return this.log("stop",e),this._state.cancel(e),this._state.setStateAtTime("stopped",e),this._tickSource.stop(e),e<this._lastUpdate&&this.emit("stop",e),this}pause(t){let e=this.toSeconds(t);return this._state.getValueAtTime(e)==="started"&&(this._state.setStateAtTime("paused",e),this._tickSource.pause(e),e<this._lastUpdate&&this.emit("pause",e)),this}get ticks(){return Math.ceil(this.getTicksAtTime(this.now()))}set ticks(t){this._tickSource.ticks=t}get seconds(){return this._tickSource.seconds}set seconds(t){this._tickSource.seconds=t}getSecondsAtTime(t){return this._tickSource.getSecondsAtTime(t)}setTicksAtTime(t,e){return this._tickSource.setTicksAtTime(t,e),this}getTimeOfTick(t,e=this.now()){return this._tickSource.getTimeOfTick(t,e)}getTicksAtTime(t){return this._tickSource.getTicksAtTime(t)}nextTickTime(t,e){let r=this.toSeconds(e),i=this.getTicksAtTime(r);return this._tickSource.getTimeOfTick(i+t,r)}_loop(){let t=this._lastUpdate,e=this.now();this._lastUpdate=e,this.log("loop",t,e),t!==e&&(this._state.forEachBetween(t,e,r=>{switch(r.state){case"started":let i=this._tickSource.getTicksAtTime(r.time);this.emit("start",r.time,i);break;case"stopped":r.time!==0&&this.emit("stop",r.time);break;case"paused":this.emit("pause",r.time);break}}),this._tickSource.forEachTickBetween(t,e,(r,i)=>{this.callback(r,i)}))}getStateAtTime(t){let e=this.toSeconds(t);return this._state.getValueAtTime(e)}dispose(){return super.dispose(),this.context.off("tick",this._boundLoop),this._tickSource.dispose(),this._state.dispose(),this}};Gr.mixin(to);var Pe=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["volume"]);super(t),this.name="Volume",this.input=this.output=new Y({context:this.context,gain:t.volume,units:"decibels"}),this.volume=this.output.gain,B(this,"volume"),this._unmutedVolume=t.volume,this.mute=t.mute}static getDefaults(){return Object.assign(j.getDefaults(),{mute:!1,volume:0})}get mute(){return this.volume.value===-1/0}set mute(t){!this.mute&&t?(this._unmutedVolume=this.volume.value,this.volume.value=-1/0):this.mute&&!t&&(this.volume.value=this._unmutedVolume)}dispose(){return super.dispose(),this.input.dispose(),this.volume.dispose(),this}};var Vc=class o extends j{constructor(){let t=w(o.getDefaults(),arguments);super(t),this.name="Destination",this.input=new Pe({context:this.context}),this.output=new Y({context:this.context}),this.volume=this.input.volume,ke(this.input,this.output,this.context.rawContext.destination),this.mute=t.mute,this._internalChannels=[this.input,this.context.rawContext.destination,this.output]}static getDefaults(){return Object.assign(j.getDefaults(),{mute:!1,volume:0})}get mute(){return this.input.mute}set mute(t){this.input.mute=t}chain(...t){return this.input.disconnect(),t.unshift(this.input),t.push(this.output),ke(...t),this}get maxChannelCount(){return this.context.rawContext.destination.maxChannelCount}dispose(){return super.dispose(),this.volume.dispose(),this}};Br(o=>{o.destination=new Vc({context:o})});Vr(o=>{o.destination.dispose()});var Gc=class extends j{constructor(){super(...arguments),this.name="Listener",this.positionX=new nt({context:this.context,param:this.context.rawContext.listener.positionX}),this.positionY=new nt({context:this.context,param:this.context.rawContext.listener.positionY}),this.positionZ=new nt({context:this.context,param:this.context.rawContext.listener.positionZ}),this.forwardX=new nt({context:this.context,param:this.context.rawContext.listener.forwardX}),this.forwardY=new nt({context:this.context,param:this.context.rawContext.listener.forwardY}),this.forwardZ=new nt({context:this.context,param:this.context.rawContext.listener.forwardZ}),this.upX=new nt({context:this.context,param:this.context.rawContext.listener.upX}),this.upY=new nt({context:this.context,param:this.context.rawContext.listener.upY}),this.upZ=new nt({context:this.context,param:this.context.rawContext.listener.upZ})}static getDefaults(){return Object.assign(j.getDefaults(),{positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:-1,upX:0,upY:1,upZ:0})}dispose(){return super.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this.forwardX.dispose(),this.forwardY.dispose(),this.forwardZ.dispose(),this.upX.dispose(),this.upY.dispose(),this.upZ.dispose(),this}};Br(o=>{o.listener=new Gc({context:o})});Vr(o=>{o.listener.dispose()});var eo=class o extends Qt{constructor(){super(),this.name="ToneAudioBuffers",this._buffers=new Map,this._loadingCount=0;let t=w(o.getDefaults(),arguments,["urls","onload","baseUrl"],"urls");this.baseUrl=t.baseUrl,Object.keys(t.urls).forEach(e=>{this._loadingCount++;let r=t.urls[e];this.add(e,r,this._bufferLoaded.bind(this,t.onload),t.onerror)})}static getDefaults(){return{baseUrl:"",onerror:tt,onload:tt,urls:{}}}has(t){return this._buffers.has(t.toString())}get(t){return V(this.has(t),`ToneAudioBuffers has no buffer named: ${t}`),this._buffers.get(t.toString())}_bufferLoaded(t){this._loadingCount--,this._loadingCount===0&&t&&t()}get loaded(){return Array.from(this._buffers).every(([t,e])=>e.loaded)}add(t,e,r=tt,i=tt){return te(e)?(this.baseUrl&&e.trim().substring(0,11).toLowerCase()==="data:audio/"&&(this.baseUrl=""),this._buffers.set(t.toString(),new Dt(this.baseUrl+e,r,i))):this._buffers.set(t.toString(),new Dt(e,r,i)),this}dispose(){return super.dispose(),this._buffers.forEach(t=>t.dispose()),this._buffers.clear(),this}};var Yo=class o extends ce{constructor(){super(...arguments),this.name="MidiClass",this.defaultUnits="midi"}_frequencyToUnits(t){return He(super._frequencyToUnits(t))}_ticksToUnits(t){return He(super._ticksToUnits(t))}_beatsToUnits(t){return He(super._beatsToUnits(t))}_secondsToUnits(t){return He(super._secondsToUnits(t))}toMidi(){return this.valueOf()}toFrequency(){return Uo(this.toMidi())}transpose(t){return new o(this.context,this.toMidi()+t)}};var Ce=class extends De{constructor(){super(...arguments),this.name="Ticks",this.defaultUnits="i"}_now(){return this.context.transport.ticks}_beatsToUnits(t){return this._getPPQ()*t}_secondsToUnits(t){return Math.floor(t/(60/this._getBpm())*this._getPPQ())}_ticksToUnits(t){return t}toTicks(){return this.valueOf()}toSeconds(){return this.valueOf()/this._getPPQ()*(60/this._getBpm())}};var qc=class extends Wt{constructor(){super(...arguments),this.name="Draw",this.expiration=.25,this.anticipation=.008,this._events=new qt,this._boundDrawLoop=this._drawLoop.bind(this),this._animationFrame=-1}schedule(t,e){return this._events.add({callback:t,time:this.toSeconds(e)}),this._events.length===1&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop)),this}cancel(t){return this._events.cancel(this.toSeconds(t)),this}_drawLoop(){let t=this.context.currentTime;this._events.forEachBefore(t+this.anticipation,e=>{t-e.time<=this.expiration&&e.callback(),this._events.remove(e)}),this._events.length>0&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop))}dispose(){return super.dispose(),this._events.dispose(),cancelAnimationFrame(this._animationFrame),this}};Br(o=>{o.draw=new qc({context:o})});Vr(o=>{o.draw.dispose()});var ys=class extends Qt{constructor(){super(...arguments),this.name="IntervalTimeline",this._root=null,this._length=0}add(t){V($(t.time),"Events must have a time property"),V($(t.duration),"Events must have a duration parameter"),t.time=t.time.valueOf();let e=new Wc(t.time,t.time+t.duration,t);for(this._root===null?this._root=e:this._root.insert(e),this._length++;e!==null;)e.updateHeight(),e.updateMax(),this._rebalance(e),e=e.parent;return this}remove(t){if(this._root!==null){let e=[];this._root.search(t.time,e);for(let r of e)if(r.event===t){this._removeNode(r),this._length--;break}}return this}get length(){return this._length}cancel(t){return this.forEachFrom(t,e=>this.remove(e)),this}_setRoot(t){this._root=t,this._root!==null&&(this._root.parent=null)}_replaceNodeInParent(t,e){t.parent!==null?(t.isLeftChild()?t.parent.left=e:t.parent.right=e,this._rebalance(t.parent)):this._setRoot(e)}_removeNode(t){if(t.left===null&&t.right===null)this._replaceNodeInParent(t,null);else if(t.right===null)this._replaceNodeInParent(t,t.left);else if(t.left===null)this._replaceNodeInParent(t,t.right);else{let e=t.getBalance(),r,i=null;if(e>0)if(t.left.right===null)r=t.left,r.right=t.right,i=r;else{for(r=t.left.right;r.right!==null;)r=r.right;r.parent&&(r.parent.right=r.left,i=r.parent,r.left=t.left,r.right=t.right)}else if(t.right.left===null)r=t.right,r.left=t.left,i=r;else{for(r=t.right.left;r.left!==null;)r=r.left;r.parent&&(r.parent.left=r.right,i=r.parent,r.left=t.left,r.right=t.right)}t.parent!==null?t.isLeftChild()?t.parent.left=r:t.parent.right=r:this._setRoot(r),i&&this._rebalance(i)}t.dispose()}_rotateLeft(t){let e=t.parent,r=t.isLeftChild(),i=t.right;i&&(t.right=i.left,i.left=t),e!==null?r?e.left=i:e.right=i:this._setRoot(i)}_rotateRight(t){let e=t.parent,r=t.isLeftChild(),i=t.left;i&&(t.left=i.right,i.right=t),e!==null?r?e.left=i:e.right=i:this._setRoot(i)}_rebalance(t){let e=t.getBalance();e>1&&t.left?t.left.getBalance()<0?this._rotateLeft(t.left):this._rotateRight(t):e<-1&&t.right&&(t.right.getBalance()>0?this._rotateRight(t.right):this._rotateLeft(t))}get(t){if(this._root!==null){let e=[];if(this._root.search(t,e),e.length>0){let r=e[0];for(let i=1;i<e.length;i++)e[i].low>r.low&&(r=e[i]);return r.event}}return null}forEach(t){if(this._root!==null){let e=[];this._root.traverse(r=>e.push(r)),e.forEach(r=>{r.event&&t(r.event)})}return this}forEachAtTime(t,e){if(this._root!==null){let r=[];this._root.search(t,r),r.forEach(i=>{i.event&&e(i.event)})}return this}forEachFrom(t,e){if(this._root!==null){let r=[];this._root.searchAfter(t,r),r.forEach(i=>{i.event&&e(i.event)})}return this}dispose(){return super.dispose(),this._root!==null&&this._root.traverse(t=>t.dispose()),this._root=null,this}},Wc=class{constructor(t,e,r){this._left=null,this._right=null,this.parent=null,this.height=0,this.event=r,this.low=t,this.high=e,this.max=this.high}insert(t){t.low<=this.low?this.left===null?this.left=t:this.left.insert(t):this.right===null?this.right=t:this.right.insert(t)}search(t,e){t>this.max||(this.left!==null&&this.left.search(t,e),this.low<=t&&this.high>t&&e.push(this),!(this.low>t)&&this.right!==null&&this.right.search(t,e))}searchAfter(t,e){this.low>=t&&(e.push(this),this.left!==null&&this.left.searchAfter(t,e)),this.right!==null&&this.right.searchAfter(t,e)}traverse(t){t(this),this.left!==null&&this.left.traverse(t),this.right!==null&&this.right.traverse(t)}updateHeight(){this.left!==null&&this.right!==null?this.height=Math.max(this.left.height,this.right.height)+1:this.right!==null?this.height=this.right.height+1:this.left!==null?this.height=this.left.height+1:this.height=0}updateMax(){this.max=this.high,this.left!==null&&(this.max=Math.max(this.max,this.left.max)),this.right!==null&&(this.max=Math.max(this.max,this.right.max))}getBalance(){let t=0;return this.left!==null&&this.right!==null?t=this.left.height-this.right.height:this.left!==null?t=this.left.height+1:this.right!==null&&(t=-(this.right.height+1)),t}isLeftChild(){return this.parent!==null&&this.parent.left===this}get left(){return this._left}set left(t){this._left=t,t!==null&&(t.parent=this),this.updateHeight(),this.updateMax()}get right(){return this._right}set right(t){this._right=t,t!==null&&(t.parent=this),this.updateHeight(),this.updateMax()}dispose(){this.parent=null,this._left=null,this._right=null,this.event=null}};var bs=class extends Qt{constructor(t){super(),this.name="TimelineValue",this._timeline=new qt({memory:10}),this._initialValue=t}set(t,e){return this._timeline.add({value:t,time:e}),this}get(t){let e=this._timeline.get(t);return e?e.value:this._initialValue}};var ie=class o extends j{constructor(){super(w(o.getDefaults(),arguments,["context"]))}connect(t,e=0,r=0){return $i(this,t,e,r),this}};var le=class o extends ie{constructor(){let t=w(o.getDefaults(),arguments,["mapping","length"]);super(t),this.name="WaveShaper",this._shaper=this.context.createWaveShaper(),this.input=this._shaper,this.output=this._shaper,Nt(t.mapping)||t.mapping instanceof Float32Array?this.curve=Float32Array.from(t.mapping):Pd(t.mapping)&&this.setMap(t.mapping,t.length)}static getDefaults(){return Object.assign(K.getDefaults(),{length:1024})}setMap(t,e=1024){let r=new Float32Array(e);for(let i=0,n=e;i<n;i++){let s=i/(n-1)*2-1;r[i]=t(s,i)}return this.curve=r,this}get curve(){return this._shaper.curve}set curve(t){this._shaper.curve=t}get oversample(){return this._shaper.oversample}set oversample(t){let e=["none","2x","4x"].some(r=>r.includes(t));V(e,"oversampling must be either 'none', '2x', or '4x'"),this._shaper.oversample=t}dispose(){return super.dispose(),this._shaper.disconnect(),this}};var ro=class o extends ie{constructor(){let t=w(o.getDefaults(),arguments,["value"]);super(t),this.name="Pow",this._exponentScaler=this.input=this.output=new le({context:this.context,mapping:this._expFunc(t.value),length:8192}),this._exponent=t.value}static getDefaults(){return Object.assign(ie.getDefaults(),{value:1})}_expFunc(t){return e=>Math.pow(Math.abs(e),t)}get value(){return this._exponent}set value(t){this._exponent=t,this._exponentScaler.setMap(this._expFunc(this._exponent))}dispose(){return super.dispose(),this._exponentScaler.dispose(),this}};var yr=class o{constructor(t,e){this.id=o._eventId++,this._remainderTime=0;let r=Object.assign(o.getDefaults(),e);this.transport=t,this.callback=r.callback,this._once=r.once,this.time=Math.floor(r.time),this._remainderTime=r.time-this.time}static getDefaults(){return{callback:tt,once:!1,time:0}}get floatTime(){return this.time+this._remainderTime}invoke(t){if(this.callback){let e=this.transport.bpm.getDurationOfTicks(1,t);this.callback(t+this._remainderTime*e),this._once&&this.transport.clear(this.id)}}dispose(){return this.callback=void 0,this}};yr._eventId=0;var As=class o extends yr{constructor(t,e){super(t,e),this._currentId=-1,this._nextId=-1,this._nextTick=this.time,this._boundRestart=this._restart.bind(this);let r=Object.assign(o.getDefaults(),e);this.duration=r.duration,this._interval=r.interval,this._nextTick=r.time,this.transport.on("start",this._boundRestart),this.transport.on("loopStart",this._boundRestart),this.transport.on("ticks",this._boundRestart),this.context=this.transport.context,this._restart()}static getDefaults(){return Object.assign({},yr.getDefaults(),{duration:1/0,interval:1,once:!1})}invoke(t){this._createEvents(t),super.invoke(t)}_createEvent(){return ri(this._nextTick,this.floatTime+this.duration)?this.transport.scheduleOnce(this.invoke.bind(this),new Ce(this.context,this._nextTick).toSeconds()):-1}_createEvents(t){ri(this._nextTick+this._interval,this.floatTime+this.duration)&&(this._nextTick+=this._interval,this._currentId=this._nextId,this._nextId=this.transport.scheduleOnce(this.invoke.bind(this),new Ce(this.context,this._nextTick).toSeconds()))}_restart(t){this.transport.clear(this._currentId),this.transport.clear(this._nextId),this._nextTick=this.floatTime;let e=this.transport.getTicksAtTime(t);xr(e,this.time)&&(this._nextTick=this.floatTime+Math.ceil((e-this.floatTime)/this._interval)*this._interval),this._currentId=this._createEvent(),this._nextTick+=this._interval,this._nextId=this._createEvent()}dispose(){return super.dispose(),this.transport.clear(this._currentId),this.transport.clear(this._nextId),this.transport.off("start",this._boundRestart),this.transport.off("loopStart",this._boundRestart),this.transport.off("ticks",this._boundRestart),this}};var Cs=class o extends Wt{constructor(){let t=w(o.getDefaults(),arguments);super(t),this.name="Transport",this._loop=new bs(!1),this._loopStart=0,this._loopEnd=0,this._scheduledEvents={},this._timeline=new qt,this._repeatedEvents=new ys,this._syncedSignals=[],this._swingAmount=0,this._ppq=t.ppq,this._clock=new to({callback:this._processTick.bind(this),context:this.context,frequency:0,units:"bpm"}),this._bindClockEvents(),this.bpm=this._clock.frequency,this._clock.frequency.multiplier=t.ppq,this.bpm.setValueAtTime(t.bpm,0),B(this,"bpm"),this._timeSignature=t.timeSignature,this._swingTicks=t.ppq/2}static getDefaults(){return Object.assign(Wt.getDefaults(),{bpm:120,loopEnd:"4m",loopStart:0,ppq:192,swing:0,swingSubdivision:"8n",timeSignature:4})}_processTick(t,e){if(this._loop.get(t)&&e>=this._loopEnd&&(this.emit("loopEnd",t),this._clock.setTicksAtTime(this._loopStart,t),e=this._loopStart,this.emit("loopStart",t,this._clock.getSecondsAtTime(t)),this.emit("loop",t)),this._swingAmount>0&&e%this._ppq!==0&&e%(this._swingTicks*2)!==0){let r=e%(this._swingTicks*2)/(this._swingTicks*2),i=Math.sin(r*Math.PI)*this._swingAmount;t+=new Ce(this.context,this._swingTicks*2/3).toSeconds()*i}jc(!0),this._timeline.forEachAtTime(e,r=>r.invoke(t)),jc(!1)}schedule(t,e){let r=new yr(this,{callback:t,time:new De(this.context,e).toTicks()});return this._addEvent(r,this._timeline)}scheduleRepeat(t,e,r,i=1/0){let n=new As(this,{callback:t,duration:new Ae(this.context,i).toTicks(),interval:new Ae(this.context,e).toTicks(),time:new De(this.context,r).toTicks()});return this._addEvent(n,this._repeatedEvents)}scheduleOnce(t,e){let r=new yr(this,{callback:t,once:!0,time:new De(this.context,e).toTicks()});return this._addEvent(r,this._timeline)}clear(t){if(this._scheduledEvents.hasOwnProperty(t)){let e=this._scheduledEvents[t.toString()];e.timeline.remove(e.event),e.event.dispose(),delete this._scheduledEvents[t.toString()]}return this}_addEvent(t,e){return this._scheduledEvents[t.id.toString()]={event:t,timeline:e},e.add(t),t.id}cancel(t=0){let e=this.toTicks(t);return this._timeline.forEachFrom(e,r=>this.clear(r.id)),this._repeatedEvents.forEachFrom(e,r=>this.clear(r.id)),this}_bindClockEvents(){this._clock.on("start",(t,e)=>{e=new Ce(this.context,e).toSeconds(),this.emit("start",t,e)}),this._clock.on("stop",t=>{this.emit("stop",t)}),this._clock.on("pause",t=>{this.emit("pause",t)})}get state(){return this._clock.getStateAtTime(this.now())}start(t,e){this.context.resume();let r;return $(e)&&(r=this.toTicks(e)),this._clock.start(t,r),this}stop(t){return this._clock.stop(t),this}pause(t){return this._clock.pause(t),this}toggle(t){return t=this.toSeconds(t),this._clock.getStateAtTime(t)!=="started"?this.start(t):this.stop(t),this}get timeSignature(){return this._timeSignature}set timeSignature(t){Nt(t)&&(t=t[0]/t[1]*4),this._timeSignature=t}get loopStart(){return new Ae(this.context,this._loopStart,"i").toSeconds()}set loopStart(t){this._loopStart=this.toTicks(t)}get loopEnd(){return new Ae(this.context,this._loopEnd,"i").toSeconds()}set loopEnd(t){this._loopEnd=this.toTicks(t)}get loop(){return this._loop.get(this.now())}set loop(t){this._loop.set(t,this.now())}setLoopPoints(t,e){return this.loopStart=t,this.loopEnd=e,this}get swing(){return this._swingAmount}set swing(t){this._swingAmount=t}get swingSubdivision(){return new Ce(this.context,this._swingTicks).toNotation()}set swingSubdivision(t){this._swingTicks=this.toTicks(t)}get position(){let t=this.now(),e=this._clock.getTicksAtTime(t);return new Ce(this.context,e).toBarsBeatsSixteenths()}set position(t){let e=this.toTicks(t);this.ticks=e}get seconds(){return this._clock.seconds}set seconds(t){let e=this.now(),r=this._clock.frequency.timeToTicks(t,e);this.ticks=r}get progress(){if(this.loop){let t=this.now();return(this._clock.getTicksAtTime(t)-this._loopStart)/(this._loopEnd-this._loopStart)}else return 0}get ticks(){return this._clock.ticks}set ticks(t){if(this._clock.ticks!==t){let e=this.now();if(this.state==="started"){let r=this._clock.getTicksAtTime(e),i=this._clock.frequency.getDurationOfTicks(Math.ceil(r)-r,e),n=e+i;this.emit("stop",n),this._clock.setTicksAtTime(t,n),this.emit("start",n,this._clock.getSecondsAtTime(n))}else this.emit("ticks",e),this._clock.setTicksAtTime(t,e)}}getTicksAtTime(t){return this._clock.getTicksAtTime(t)}getSecondsAtTime(t){return this._clock.getSecondsAtTime(t)}get PPQ(){return this._clock.frequency.multiplier}set PPQ(t){this._clock.frequency.multiplier=t}nextSubdivision(t){if(t=this.toTicks(t),this.state!=="started")return 0;{let e=this.now(),r=this.getTicksAtTime(e),i=t-r%t;return this._clock.nextTickTime(i,e)}}syncSignal(t,e){let r=this.now(),i=this.bpm,n=1/(60/i.getValueAtTime(r)/this.PPQ),s=[];if(t.units==="time"){let c=.015625/n,u=new Y(c),h=new ro(-1),l=new Y(c);i.chain(u,h,l),i=l,n=1/n,s=[u,h,l]}e||(t.getValueAtTime(r)!==0?e=t.getValueAtTime(r)/n:e=0);let a=new Y(e);return i.connect(a),a.connect(t._param),s.push(a),this._syncedSignals.push({initial:t.value,nodes:s,signal:t}),t.value=0,this}unsyncSignal(t){for(let e=this._syncedSignals.length-1;e>=0;e--){let r=this._syncedSignals[e];r.signal===t&&(r.nodes.forEach(i=>i.dispose()),r.signal.value=r.initial,this._syncedSignals.splice(e,1))}return this}dispose(){return super.dispose(),this._clock.dispose(),oi(this,"bpm"),this._timeline.dispose(),this._repeatedEvents.dispose(),this}};Gr.mixin(Cs);Br(o=>{o.transport=new Cs({context:o})});Vr(o=>{o.transport.dispose()});var mt=class extends j{constructor(t){super(t),this.input=void 0,this._state=new nr("stopped"),this._synced=!1,this._scheduled=[],this._syncedStart=tt,this._syncedStop=tt,this._state.memory=100,this._state.increasing=!0,this._volume=this.output=new Pe({context:this.context,mute:t.mute,volume:t.volume}),this.volume=this._volume.volume,B(this,"volume"),this.onstop=t.onstop}static getDefaults(){return Object.assign(j.getDefaults(),{mute:!1,onstop:tt,volume:0})}get state(){return this._synced?this.context.transport.state==="started"?this._state.getValueAtTime(this.context.transport.seconds):"stopped":this._state.getValueAtTime(this.now())}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}_clampToCurrentTime(t){return this._synced?t:Math.max(t,this.context.currentTime)}start(t,e,r){let i=Lt(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t);if(i=this._clampToCurrentTime(i),!this._synced&&this._state.getValueAtTime(i)==="started")V(xr(i,this._state.get(i).time),"Start time must be strictly greater than previous start time"),this._state.cancel(i),this._state.setStateAtTime("started",i),this.log("restart",i),this.restart(i,e,r);else if(this.log("start",i),this._state.setStateAtTime("started",i),this._synced){let n=this._state.get(i);n&&(n.offset=this.toSeconds(be(e,0)),n.duration=r?this.toSeconds(r):void 0);let s=this.context.transport.schedule(a=>{this._start(a,e,r)},i);this._scheduled.push(s),this.context.transport.state==="started"&&this.context.transport.getSecondsAtTime(this.immediate())>i&&this._syncedStart(this.now(),this.context.transport.seconds)}else hs(this.context),this._start(i,e,r);return this}stop(t){let e=Lt(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t);if(e=this._clampToCurrentTime(e),this._state.getValueAtTime(e)==="started"||$(this._state.getNextState("started",e))){if(this.log("stop",e),!this._synced)this._stop(e);else{let r=this.context.transport.schedule(this._stop.bind(this),e);this._scheduled.push(r)}this._state.cancel(e),this._state.setStateAtTime("stopped",e)}return this}restart(t,e,r){return t=this.toSeconds(t),this._state.getValueAtTime(t)==="started"&&(this._state.cancel(t),this._restart(t,e,r)),this}sync(){return this._synced||(this._synced=!0,this._syncedStart=(t,e)=>{if(xr(e,0)){let r=this._state.get(e);if(r&&r.state==="started"&&r.time!==e){let i=e-this.toSeconds(r.time),n;r.duration&&(n=this.toSeconds(r.duration)-i),this._start(t,this.toSeconds(r.offset)+i,n)}}},this._syncedStop=t=>{let e=this.context.transport.getSecondsAtTime(Math.max(t-this.sampleTime,0));this._state.getValueAtTime(e)==="started"&&this._stop(t)},this.context.transport.on("start",this._syncedStart),this.context.transport.on("loopStart",this._syncedStart),this.context.transport.on("stop",this._syncedStop),this.context.transport.on("pause",this._syncedStop),this.context.transport.on("loopEnd",this._syncedStop)),this}unsync(){return this._synced&&(this.context.transport.off("stop",this._syncedStop),this.context.transport.off("pause",this._syncedStop),this.context.transport.off("loopEnd",this._syncedStop),this.context.transport.off("start",this._syncedStart),this.context.transport.off("loopStart",this._syncedStart)),this._synced=!1,this._scheduled.forEach(t=>this.context.transport.clear(t)),this._scheduled=[],this._state.cancel(0),this._stop(0),this}dispose(){return super.dispose(),this.onstop=tt,this.unsync(),this._volume.dispose(),this._state.dispose(),this}};var sr=class o extends Qe{constructor(){let t=w(o.getDefaults(),arguments,["url","onload"]);super(t),this.name="ToneBufferSource",this._source=this.context.createBufferSource(),this._internalChannels=[this._source],this._sourceStarted=!1,this._sourceStopped=!1,Kt(this._source,this._gainNode),this._source.onended=()=>this._stopSource(),this.playbackRate=new nt({context:this.context,param:this._source.playbackRate,units:"positive",value:t.playbackRate}),this.loop=t.loop,this.loopStart=t.loopStart,this.loopEnd=t.loopEnd,this._buffer=new Dt(t.url,t.onload,t.onerror),this._internalChannels.push(this._source)}static getDefaults(){return Object.assign(Qe.getDefaults(),{url:new Dt,loop:!1,loopEnd:0,loopStart:0,onload:tt,onerror:tt,playbackRate:1})}get fadeIn(){return this._fadeIn}set fadeIn(t){this._fadeIn=t}get fadeOut(){return this._fadeOut}set fadeOut(t){this._fadeOut=t}get curve(){return this._curve}set curve(t){this._curve=t}start(t,e,r,i=1){V(this.buffer.loaded,"buffer is either not set or not loaded");let n=this.toSeconds(t);this._startGain(n,i),this.loop?e=be(e,this.loopStart):e=be(e,0);let s=Math.max(this.toSeconds(e),0);if(this.loop){let a=this.toSeconds(this.loopEnd)||this.buffer.duration,c=this.toSeconds(this.loopStart),u=a-c;Wo(s,a)&&(s=(s-c)%u+c),ae(s,this.buffer.duration)&&(s=0)}if(this._source.buffer=this.buffer.get(),this._source.loopEnd=this.toSeconds(this.loopEnd)||this.buffer.duration,ri(s,this.buffer.duration)&&(this._sourceStarted=!0,this._source.start(n,s)),$(r)){let a=this.toSeconds(r);a=Math.max(a,0),this.stop(n+a)}return this}_stopSource(t){!this._sourceStopped&&this._sourceStarted&&(this._sourceStopped=!0,this._source.stop(this.toSeconds(t)),this._onended())}get loopStart(){return this._source.loopStart}set loopStart(t){this._source.loopStart=this.toSeconds(t)}get loopEnd(){return this._source.loopEnd}set loopEnd(t){this._source.loopEnd=this.toSeconds(t)}get buffer(){return this._buffer}set buffer(t){this._buffer.set(t)}get loop(){return this._source.loop}set loop(t){this._source.loop=t,this._sourceStarted&&this.cancelStop()}dispose(){return super.dispose(),this._source.onended=null,this._source.disconnect(),this._buffer.dispose(),this.playbackRate.dispose(),this}};var si=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["type"]);super(t),this.name="Noise",this._source=null,this._playbackRate=t.playbackRate,this.type=t.type,this._fadeIn=t.fadeIn,this._fadeOut=t.fadeOut}static getDefaults(){return Object.assign(mt.getDefaults(),{fadeIn:0,fadeOut:0,playbackRate:1,type:"white"})}get type(){return this._type}set type(t){if(V(t in rm,"Noise: invalid type: "+t),this._type!==t&&(this._type=t,this.state==="started")){let e=this.now();this._stop(e),this._start(e)}}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t,this._source&&(this._source.playbackRate.value=t)}_start(t){let e=rm[this._type];this._source=new sr({url:e,context:this.context,fadeIn:this._fadeIn,fadeOut:this._fadeOut,loop:!0,onended:()=>this.onstop(this),playbackRate:this._playbackRate}).connect(this.output),this._source.start(this.toSeconds(t),Math.random()*(e.duration-.001))}_stop(t){this._source&&(this._source.stop(this.toSeconds(t)),this._source=null)}get fadeIn(){return this._fadeIn}set fadeIn(t){this._fadeIn=t,this._source&&(this._source.fadeIn=this._fadeIn)}get fadeOut(){return this._fadeOut}set fadeOut(t){this._fadeOut=t,this._source&&(this._source.fadeOut=this._fadeOut)}_restart(t){this._stop(t),this._start(t)}dispose(){return super.dispose(),this._source&&this._source.disconnect(),this}},io=44100*5,Uc=2,br={brown:null,pink:null,white:null},rm={get brown(){if(!br.brown){let o=[];for(let t=0;t<Uc;t++){let e=new Float32Array(io);o[t]=e;let r=0;for(let i=0;i<io;i++){let n=Math.random()*2-1;e[i]=(r+.02*n)/1.02,r=e[i],e[i]*=3.5}}br.brown=new Dt().fromArray(o)}return br.brown},get pink(){if(!br.pink){let o=[];for(let t=0;t<Uc;t++){let e=new Float32Array(io);o[t]=e;let r,i,n,s,a,c,u;r=i=n=s=a=c=u=0;for(let h=0;h<io;h++){let l=Math.random()*2-1;r=.99886*r+l*.0555179,i=.99332*i+l*.0750759,n=.969*n+l*.153852,s=.8665*s+l*.3104856,a=.55*a+l*.5329522,c=-.7616*c-l*.016898,e[h]=r+i+n+s+a+c+u+l*.5362,e[h]*=.11,u=l*.115926}}br.pink=new Dt().fromArray(o)}return br.pink},get white(){if(!br.white){let o=[];for(let t=0;t<Uc;t++){let e=new Float32Array(io);o[t]=e;for(let r=0;r<io;r++)e[r]=Math.random()*2-1}br.white=new Dt().fromArray(o)}return br.white}};function pe(o,t){return lt(this,void 0,void 0,function*(){let e=t/o.context.sampleRate,r=new Ye(1,e,o.context.sampleRate);return new o.constructor(Object.assign(o.get(),{frequency:2/e,detune:0,context:r})).toDestination().start(0),(yield r.render()).getChannelData(0)})}var Ho=class o extends Qe{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type"]);super(t),this.name="ToneOscillatorNode",this._oscillator=this.context.createOscillator(),this._internalChannels=[this._oscillator],Kt(this._oscillator,this._gainNode),this.type=t.type,this.frequency=new nt({context:this.context,param:this._oscillator.frequency,units:"frequency",value:t.frequency}),this.detune=new nt({context:this.context,param:this._oscillator.detune,units:"cents",value:t.detune}),B(this,["frequency","detune"])}static getDefaults(){return Object.assign(Qe.getDefaults(),{detune:0,frequency:440,type:"sine"})}start(t){let e=this.toSeconds(t);return this.log("start",e),this._startGain(e),this._oscillator.start(e),this}_stopSource(t){this._oscillator.stop(t)}setPeriodicWave(t){return this._oscillator.setPeriodicWave(t),this}get type(){return this._oscillator.type}set type(t){this._oscillator.type=t}dispose(){return super.dispose(),this.state==="started"&&this.stop(),this._oscillator.disconnect(),this.frequency.dispose(),this.detune.dispose(),this}};var Ot=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type"]);super(t),this.name="Oscillator",this._oscillator=null,this.frequency=new K({context:this.context,units:"frequency",value:t.frequency}),B(this,"frequency"),this.detune=new K({context:this.context,units:"cents",value:t.detune}),B(this,"detune"),this._partials=t.partials,this._partialCount=t.partialCount,this._type=t.type,t.partialCount&&t.type!=="custom"&&(this._type=this.baseType+t.partialCount.toString()),this.phase=t.phase}static getDefaults(){return Object.assign(mt.getDefaults(),{detune:0,frequency:440,partialCount:0,partials:[],phase:0,type:"sine"})}_start(t){let e=this.toSeconds(t),r=new Ho({context:this.context,onended:()=>this.onstop(this)});this._oscillator=r,this._wave?this._oscillator.setPeriodicWave(this._wave):this._oscillator.type=this._type,this._oscillator.connect(this.output),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.start(e)}_stop(t){let e=this.toSeconds(t);this._oscillator&&this._oscillator.stop(e)}_restart(t){let e=this.toSeconds(t);return this.log("restart",e),this._oscillator&&this._oscillator.cancelStop(),this._state.cancel(e),this}syncFrequency(){return this.context.transport.syncSignal(this.frequency),this}unsyncFrequency(){return this.context.transport.unsyncSignal(this.frequency),this}_getCachedPeriodicWave(){if(this._type==="custom")return o._periodicWaveCache.find(e=>e.phase===this._phase&&Yd(e.partials,this._partials));{let t=o._periodicWaveCache.find(e=>e.type===this._type&&e.phase===this._phase);return this._partialCount=t?t.partialCount:this._partialCount,t}}get type(){return this._type}set type(t){this._type=t;let e=["sine","square","sawtooth","triangle"].indexOf(t)!==-1;if(this._phase===0&&e)this._wave=void 0,this._partialCount=0,this._oscillator!==null&&(this._oscillator.type=t);else{let r=this._getCachedPeriodicWave();if($(r)){let{partials:i,wave:n}=r;this._wave=n,this._partials=i,this._oscillator!==null&&this._oscillator.setPeriodicWave(this._wave)}else{let[i,n]=this._getRealImaginary(t,this._phase),s=this.context.createPeriodicWave(i,n);this._wave=s,this._oscillator!==null&&this._oscillator.setPeriodicWave(this._wave),o._periodicWaveCache.push({imag:n,partialCount:this._partialCount,partials:this._partials,phase:this._phase,real:i,type:this._type,wave:this._wave}),o._periodicWaveCache.length>100&&o._periodicWaveCache.shift()}}}get baseType(){return this._type.replace(this.partialCount.toString(),"")}set baseType(t){this.partialCount&&this._type!=="custom"&&t!=="custom"?this.type=t+this.partialCount:this.type=t}get partialCount(){return this._partialCount}set partialCount(t){Mt(t,0);let e=this._type,r=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(this._type);if(r&&(e=r[1]),this._type!=="custom")t===0?this.type=e:this.type=e+t.toString();else{let i=new Float32Array(t);this._partials.forEach((n,s)=>i[s]=n),this._partials=Array.from(i),this.type=this._type}}_getRealImaginary(t,e){let i=2048,n=new Float32Array(i),s=new Float32Array(i),a=1;if(t==="custom"){if(a=this._partials.length+1,this._partialCount=this._partials.length,i=a,this._partials.length===0)return[n,s]}else{let c=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(t);c?(a=parseInt(c[2],10)+1,this._partialCount=parseInt(c[2],10),t=c[1],a=Math.max(a,2),i=a):this._partialCount=0,this._partials=[]}for(let c=1;c<i;++c){let u=2/(c*Math.PI),h;switch(t){case"sine":h=c<=a?1:0,this._partials[c-1]=h;break;case"square":h=c&1?2*u:0,this._partials[c-1]=h;break;case"sawtooth":h=u*(c&1?1:-1),this._partials[c-1]=h;break;case"triangle":c&1?h=2*(u*u)*(c-1>>1&1?-1:1):h=0,this._partials[c-1]=h;break;case"custom":h=this._partials[c-1];break;default:throw new TypeError("Oscillator: invalid type: "+t)}h!==0?(n[c]=-h*Math.sin(e*c),s[c]=h*Math.cos(e*c)):(n[c]=0,s[c]=0)}return[n,s]}_inverseFFT(t,e,r){let i=0,n=t.length;for(let s=0;s<n;s++)i+=t[s]*Math.cos(s*r)+e[s]*Math.sin(s*r);return i}getInitialValue(){let[t,e]=this._getRealImaginary(this._type,0),r=0,i=Math.PI*2,n=32;for(let s=0;s<n;s++)r=Math.max(this._inverseFFT(t,e,s/n*i),r);return Lc(-this._inverseFFT(t,e,this._phase)/r,-1,1)}get partials(){return this._partials.slice(0,this.partialCount)}set partials(t){this._partials=t,this._partialCount=this._partials.length,t.length&&(this.type="custom")}get phase(){return this._phase*(180/Math.PI)}set phase(t){this._phase=t*Math.PI/180,this.type=this._type}asArray(){return lt(this,arguments,void 0,function*(t=1024){return pe(this,t)})}dispose(){return super.dispose(),this._oscillator!==null&&this._oscillator.dispose(),this._wave=void 0,this.frequency.dispose(),this.detune.dispose(),this}};Ot._periodicWaveCache=[];var oo=class extends ie{constructor(){super(...arguments),this.name="AudioToGain",this._norm=new le({context:this.context,mapping:t=>(t+1)/2}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}};var Ut=class o extends K{constructor(){let t=w(o.getDefaults(),arguments,["value"]);super(t),this.name="Multiply",this.override=!1,this._mult=this.input=this.output=new Y({context:this.context,minValue:t.minValue,maxValue:t.maxValue}),this.factor=this._param=this._mult.gain,this.factor.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(K.getDefaults(),{value:0})}dispose(){return super.dispose(),this._mult.dispose(),this}};var Qo=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type","modulationType"]);super(t),this.name="AMOscillator",this._modulationScale=new oo({context:this.context}),this._modulationNode=new Y({context:this.context}),this._carrier=new Ot({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase,type:t.type}),this.frequency=this._carrier.frequency,this.detune=this._carrier.detune,this._modulator=new Ot({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new Ut({context:this.context,units:"positive",value:t.harmonicity}),this.frequency.chain(this.harmonicity,this._modulator.frequency),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),B(this,["frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(Ot.getDefaults(),{harmonicity:1,modulationType:"square"})}_start(t){this._modulator.start(t),this._carrier.start(t)}_stop(t){this._modulator.stop(t),this._carrier.stop(t)}_restart(t){this._modulator.restart(t),this._carrier.restart(t)}get type(){return this._carrier.type}set type(t){this._carrier.type=t}get baseType(){return this._carrier.baseType}set baseType(t){this._carrier.baseType=t}get partialCount(){return this._carrier.partialCount}set partialCount(t){this._carrier.partialCount=t}get modulationType(){return this._modulator.type}set modulationType(t){this._modulator.type=t}get phase(){return this._carrier.phase}set phase(t){this._carrier.phase=t,this._modulator.phase=t}get partials(){return this._carrier.partials}set partials(t){this._carrier.partials=t}asArray(){return lt(this,arguments,void 0,function*(t=1024){return pe(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this._modulationScale.dispose(),this}};var no=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type","modulationType"]);super(t),this.name="FMOscillator",this._modulationNode=new Y({context:this.context,gain:0}),this._carrier=new Ot({context:this.context,detune:t.detune,frequency:0,onstop:()=>this.onstop(this),phase:t.phase,type:t.type}),this.detune=this._carrier.detune,this.frequency=new K({context:this.context,units:"frequency",value:t.frequency}),this._modulator=new Ot({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new Ut({context:this.context,units:"positive",value:t.harmonicity}),this.modulationIndex=new Ut({context:this.context,units:"positive",value:t.modulationIndex}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this.detune.connect(this._modulator.detune),B(this,["modulationIndex","frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(Ot.getDefaults(),{harmonicity:1,modulationIndex:2,modulationType:"square"})}_start(t){this._modulator.start(t),this._carrier.start(t)}_stop(t){this._modulator.stop(t),this._carrier.stop(t)}_restart(t){return this._modulator.restart(t),this._carrier.restart(t),this}get type(){return this._carrier.type}set type(t){this._carrier.type=t}get baseType(){return this._carrier.baseType}set baseType(t){this._carrier.baseType=t}get partialCount(){return this._carrier.partialCount}set partialCount(t){this._carrier.partialCount=t}get modulationType(){return this._modulator.type}set modulationType(t){this._modulator.type=t}get phase(){return this._carrier.phase}set phase(t){this._carrier.phase=t,this._modulator.phase=t}get partials(){return this._carrier.partials}set partials(t){this._carrier.partials=t}asArray(){return lt(this,arguments,void 0,function*(t=1024){return pe(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this.modulationIndex.dispose(),this}};var ai=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","width"]);super(t),this.name="PulseOscillator",this._widthGate=new Y({context:this.context,gain:0}),this._thresh=new le({context:this.context,mapping:e=>e<=0?-1:1}),this.width=new K({context:this.context,units:"audioRange",value:t.width}),this._triangle=new Ot({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase,type:"triangle"}),this.frequency=this._triangle.frequency,this.detune=this._triangle.detune,this._triangle.chain(this._thresh,this.output),this.width.chain(this._widthGate,this._thresh),B(this,["width","frequency","detune"])}static getDefaults(){return Object.assign(mt.getDefaults(),{detune:0,frequency:440,phase:0,type:"pulse",width:.2})}_start(t){t=this.toSeconds(t),this._triangle.start(t),this._widthGate.gain.setValueAtTime(1,t)}_stop(t){t=this.toSeconds(t),this._triangle.stop(t),this._widthGate.gain.cancelScheduledValues(t),this._widthGate.gain.setValueAtTime(0,t)}_restart(t){this._triangle.restart(t),this._widthGate.gain.cancelScheduledValues(t),this._widthGate.gain.setValueAtTime(1,t)}get phase(){return this._triangle.phase}set phase(t){this._triangle.phase=t}get type(){return"pulse"}get baseType(){return"pulse"}get partials(){return[]}get partialCount(){return 0}set carrierType(t){this._triangle.type=t}asArray(){return lt(this,arguments,void 0,function*(t=1024){return pe(this,t)})}dispose(){return super.dispose(),this._triangle.dispose(),this.width.dispose(),this._widthGate.dispose(),this._thresh.dispose(),this}};var Zo=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type","spread"]);super(t),this.name="FatOscillator",this._oscillators=[],this.frequency=new K({context:this.context,units:"frequency",value:t.frequency}),this.detune=new K({context:this.context,units:"cents",value:t.detune}),this._spread=t.spread,this._type=t.type,this._phase=t.phase,this._partials=t.partials,this._partialCount=t.partialCount,this.count=t.count,B(this,["frequency","detune"])}static getDefaults(){return Object.assign(Ot.getDefaults(),{count:3,spread:20,type:"sawtooth"})}_start(t){t=this.toSeconds(t),this._forEach(e=>e.start(t))}_stop(t){t=this.toSeconds(t),this._forEach(e=>e.stop(t))}_restart(t){this._forEach(e=>e.restart(t))}_forEach(t){for(let e=0;e<this._oscillators.length;e++)t(this._oscillators[e],e)}get type(){return this._type}set type(t){this._type=t,this._forEach(e=>e.type=t)}get spread(){return this._spread}set spread(t){if(this._spread=t,this._oscillators.length>1){let e=-t/2,r=t/(this._oscillators.length-1);this._forEach((i,n)=>i.detune.value=e+r*n)}}get count(){return this._oscillators.length}set count(t){if(Mt(t,1),this._oscillators.length!==t){this._forEach(e=>e.dispose()),this._oscillators=[];for(let e=0;e<t;e++){let r=new Ot({context:this.context,volume:-6-t*1.1,type:this._type,phase:this._phase+e/t*360,partialCount:this._partialCount,onstop:e===0?()=>this.onstop(this):tt});this.type==="custom"&&(r.partials=this._partials),this.frequency.connect(r.frequency),this.detune.connect(r.detune),r.detune.overridden=!1,r.connect(this.output),this._oscillators[e]=r}this.spread=this._spread,this.state==="started"&&this._forEach(e=>e.start())}}get phase(){return this._phase}set phase(t){this._phase=t,this._forEach((e,r)=>e.phase=this._phase+r/this.count*360)}get baseType(){return this._oscillators[0].baseType}set baseType(t){this._forEach(e=>e.baseType=t),this._type=this._oscillators[0].type}get partials(){return this._oscillators[0].partials}set partials(t){this._partials=t,this._partialCount=this._partials.length,t.length&&(this._type="custom",this._forEach(e=>e.partials=t))}get partialCount(){return this._oscillators[0].partialCount}set partialCount(t){this._partialCount=t,this._forEach(e=>e.partialCount=t),this._type=this._oscillators[0].type}asArray(){return lt(this,arguments,void 0,function*(t=1024){return pe(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this._forEach(t=>t.dispose()),this}};var Xo=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","modulationFrequency"]);super(t),this.name="PWMOscillator",this.sourceType="pwm",this._scale=new Ut({context:this.context,value:2}),this._pulse=new ai({context:this.context,frequency:t.modulationFrequency}),this._pulse.carrierType="sine",this.modulationFrequency=this._pulse.frequency,this._modulator=new Ot({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase}),this.frequency=this._modulator.frequency,this.detune=this._modulator.detune,this._modulator.chain(this._scale,this._pulse.width),this._pulse.connect(this.output),B(this,["modulationFrequency","frequency","detune"])}static getDefaults(){return Object.assign(mt.getDefaults(),{detune:0,frequency:440,modulationFrequency:.4,phase:0,type:"pwm"})}_start(t){t=this.toSeconds(t),this._modulator.start(t),this._pulse.start(t)}_stop(t){t=this.toSeconds(t),this._modulator.stop(t),this._pulse.stop(t)}_restart(t){this._modulator.restart(t),this._pulse.restart(t)}get type(){return"pwm"}get baseType(){return"pwm"}get partials(){return[]}get partialCount(){return 0}get phase(){return this._modulator.phase}set phase(t){this._modulator.phase=t}asArray(){return lt(this,arguments,void 0,function*(t=1024){return pe(this,t)})}dispose(){return super.dispose(),this._pulse.dispose(),this._scale.dispose(),this._modulator.dispose(),this}};var im={am:Qo,fat:Zo,fm:no,oscillator:Ot,pulse:ai,pwm:Xo},ci=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type"]);super(t),this.name="OmniOscillator",this.frequency=new K({context:this.context,units:"frequency",value:t.frequency}),this.detune=new K({context:this.context,units:"cents",value:t.detune}),B(this,["frequency","detune"]),this.set(t)}static getDefaults(){return Object.assign(Ot.getDefaults(),no.getDefaults(),Qo.getDefaults(),Zo.getDefaults(),ai.getDefaults(),Xo.getDefaults())}_start(t){this._oscillator.start(t)}_stop(t){this._oscillator.stop(t)}_restart(t){return this._oscillator.restart(t),this}get type(){let t="";return["am","fm","fat"].some(e=>this._sourceType===e)&&(t=this._sourceType),t+this._oscillator.type}set type(t){t.substr(0,2)==="fm"?(this._createNewOscillator("fm"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(2)):t.substr(0,2)==="am"?(this._createNewOscillator("am"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(2)):t.substr(0,3)==="fat"?(this._createNewOscillator("fat"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(3)):t==="pwm"?(this._createNewOscillator("pwm"),this._oscillator=this._oscillator):t==="pulse"?this._createNewOscillator("pulse"):(this._createNewOscillator("oscillator"),this._oscillator=this._oscillator,this._oscillator.type=t)}get partials(){return this._oscillator.partials}set partials(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&(this._oscillator.partials=t)}get partialCount(){return this._oscillator.partialCount}set partialCount(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&(this._oscillator.partialCount=t)}set(t){return Reflect.has(t,"type")&&t.type&&(this.type=t.type),super.set(t),this}_createNewOscillator(t){if(t!==this._sourceType){this._sourceType=t;let e=im[t],r=this.now();if(this._oscillator){let i=this._oscillator;i.stop(r),this.context.setTimeout(()=>i.dispose(),this.blockTime)}this._oscillator=new e({context:this.context}),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.connect(this.output),this._oscillator.onstop=()=>this.onstop(this),this.state==="started"&&this._oscillator.start(r)}}get phase(){return this._oscillator.phase}set phase(t){this._oscillator.phase=t}get sourceType(){return this._sourceType}set sourceType(t){let e="sine";this._oscillator.type!=="pwm"&&this._oscillator.type!=="pulse"&&(e=this._oscillator.type),t==="fm"?this.type="fm"+e:t==="am"?this.type="am"+e:t==="fat"?this.type="fat"+e:t==="oscillator"?this.type=e:t==="pulse"?this.type="pulse":t==="pwm"&&(this.type="pwm")}_getOscType(t,e){return t instanceof im[e]}get baseType(){return this._oscillator.baseType}set baseType(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&t!=="pulse"&&t!=="pwm"&&(this._oscillator.baseType=t)}get width(){if(this._getOscType(this._oscillator,"pulse"))return this._oscillator.width}get count(){if(this._getOscType(this._oscillator,"fat"))return this._oscillator.count}set count(t){this._getOscType(this._oscillator,"fat")&&Jt(t)&&(this._oscillator.count=t)}get spread(){if(this._getOscType(this._oscillator,"fat"))return this._oscillator.spread}set spread(t){this._getOscType(this._oscillator,"fat")&&Jt(t)&&(this._oscillator.spread=t)}get modulationType(){if(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))return this._oscillator.modulationType}set modulationType(t){(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))&&te(t)&&(this._oscillator.modulationType=t)}get modulationIndex(){if(this._getOscType(this._oscillator,"fm"))return this._oscillator.modulationIndex}get harmonicity(){if(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))return this._oscillator.harmonicity}get modulationFrequency(){if(this._getOscType(this._oscillator,"pwm"))return this._oscillator.modulationFrequency}asArray(){return lt(this,arguments,void 0,function*(t=1024){return pe(this,t)})}dispose(){return super.dispose(),this.detune.dispose(),this.frequency.dispose(),this._oscillator.dispose(),this}};function vs(o,t=1/0){let e=new WeakMap;return function(r,i){Reflect.defineProperty(r,i,{configurable:!0,enumerable:!0,get:function(){return e.get(this)},set:function(n){Mt(n,o,t),e.set(this,n)}})}}function de(o,t=1/0){let e=new WeakMap;return function(r,i){Reflect.defineProperty(r,i,{configurable:!0,enumerable:!0,get:function(){return e.get(this)},set:function(n){Mt(this.toSeconds(n),o,t),e.set(this,n)}})}}var Jo=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["url","onload"]);super(t),this.name="Player",this._activeSources=new Set,this._buffer=new Dt({onload:this._onload.bind(this,t.onload),onerror:t.onerror,reverse:t.reverse,url:t.url}),this.autostart=t.autostart,this._loop=t.loop,this._loopStart=t.loopStart,this._loopEnd=t.loopEnd,this._playbackRate=t.playbackRate,this.fadeIn=t.fadeIn,this.fadeOut=t.fadeOut}static getDefaults(){return Object.assign(mt.getDefaults(),{autostart:!1,fadeIn:0,fadeOut:0,loop:!1,loopEnd:0,loopStart:0,onload:tt,onerror:tt,playbackRate:1,reverse:!1})}load(t){return lt(this,void 0,void 0,function*(){return yield this._buffer.load(t),this._onload(),this})}_onload(t=tt){t(),this.autostart&&this.start()}_onSourceEnd(t){this.onstop(this),this._activeSources.delete(t),this._activeSources.size===0&&!this._synced&&this._state.getValueAtTime(this.now())==="started"&&(this._state.cancel(this.now()),this._state.setStateAtTime("stopped",this.now()))}start(t,e,r){return super.start(t,e,r),this}_start(t,e,r){this._loop?e=be(e,this._loopStart):e=be(e,0);let i=this.toSeconds(e),n=r;r=be(r,Math.max(this._buffer.duration-i,0));let s=this.toSeconds(r);s=s/this._playbackRate,t=this.toSeconds(t);let a=new sr({url:this._buffer,context:this.context,fadeIn:this.fadeIn,fadeOut:this.fadeOut,loop:this._loop,loopEnd:this._loopEnd,loopStart:this._loopStart,onended:this._onSourceEnd.bind(this),playbackRate:this._playbackRate}).connect(this.output);!this._loop&&!this._synced&&(this._state.cancel(t+s),this._state.setStateAtTime("stopped",t+s,{implicitEnd:!0})),this._activeSources.add(a),this._loop&&Lt(n)?a.start(t,i):a.start(t,i,s-this.toSeconds(this.fadeOut))}_stop(t){let e=this.toSeconds(t);this._activeSources.forEach(r=>r.stop(e))}restart(t,e,r){return super.restart(t,e,r),this}_restart(t,e,r){var i;(i=[...this._activeSources].pop())===null||i===void 0||i.stop(t),this._start(t,e,r)}seek(t,e){let r=this.toSeconds(e);if(this._state.getValueAtTime(r)==="started"){let i=this.toSeconds(t);this._stop(r),this._start(r,i)}return this}setLoopPoints(t,e){return this.loopStart=t,this.loopEnd=e,this}get loopStart(){return this._loopStart}set loopStart(t){this._loopStart=t,this.buffer.loaded&&Mt(this.toSeconds(t),0,this.buffer.duration),this._activeSources.forEach(e=>{e.loopStart=t})}get loopEnd(){return this._loopEnd}set loopEnd(t){this._loopEnd=t,this.buffer.loaded&&Mt(this.toSeconds(t),0,this.buffer.duration),this._activeSources.forEach(e=>{e.loopEnd=t})}get buffer(){return this._buffer}set buffer(t){this._buffer.set(t)}get loop(){return this._loop}set loop(t){if(this._loop!==t&&(this._loop=t,this._activeSources.forEach(e=>{e.loop=t}),t)){let e=this._state.getNextState("stopped",this.now());e&&this._state.cancel(e.time)}}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t;let e=this.now(),r=this._state.getNextState("stopped",e);r&&r.implicitEnd&&(this._state.cancel(r.time),this._activeSources.forEach(i=>i.cancelStop())),this._activeSources.forEach(i=>{i.playbackRate.setValueAtTime(t,e)})}get reverse(){return this._buffer.reverse}set reverse(t){this._buffer.reverse=t}get loaded(){return this._buffer.loaded}dispose(){return super.dispose(),this._activeSources.forEach(t=>t.dispose()),this._activeSources.clear(),this._buffer.dispose(),this}};re([de(0)],Jo.prototype,"fadeIn",void 0);re([de(0)],Jo.prototype,"fadeOut",void 0);var Is=class extends ie{constructor(){super(...arguments),this.name="GainToAudio",this._norm=new le({context:this.context,mapping:t=>Math.abs(t)*2-1}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}};var ue=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["attack","decay","sustain","release"]);super(t),this.name="Envelope",this._sig=new K({context:this.context,value:0}),this.output=this._sig,this.input=void 0,this.attack=t.attack,this.decay=t.decay,this.sustain=t.sustain,this.release=t.release,this.attackCurve=t.attackCurve,this.releaseCurve=t.releaseCurve,this.decayCurve=t.decayCurve}static getDefaults(){return Object.assign(j.getDefaults(),{attack:.01,attackCurve:"linear",decay:.1,decayCurve:"exponential",release:1,releaseCurve:"exponential",sustain:.5})}get value(){return this.getValueAtTime(this.now())}_getCurve(t,e){if(te(t))return t;{let r;for(r in Ss)if(Ss[r][e]===t)return r;return t}}_setCurve(t,e,r){if(te(r)&&Reflect.has(Ss,r)){let i=Ss[r];We(i)?t!=="_decayCurve"&&(this[t]=i[e]):this[t]=i}else if(Nt(r)&&t!=="_decayCurve")this[t]=r;else throw new Error("Envelope: invalid curve: "+r)}get attackCurve(){return this._getCurve(this._attackCurve,"In")}set attackCurve(t){this._setCurve("_attackCurve","In",t)}get releaseCurve(){return this._getCurve(this._releaseCurve,"Out")}set releaseCurve(t){this._setCurve("_releaseCurve","Out",t)}get decayCurve(){return this._getCurve(this._decayCurve,"Out")}set decayCurve(t){this._setCurve("_decayCurve","Out",t)}triggerAttack(t,e=1){this.log("triggerAttack",t,e),t=this.toSeconds(t);let i=this.toSeconds(this.attack),n=this.toSeconds(this.decay),s=this.getValueAtTime(t);if(s>0){let a=1/i;i=(1-s)/a}if(i<this.sampleTime)this._sig.cancelScheduledValues(t),this._sig.setValueAtTime(e,t);else if(this._attackCurve==="linear")this._sig.linearRampTo(e,i,t);else if(this._attackCurve==="exponential")this._sig.targetRampTo(e,i,t);else{this._sig.cancelAndHoldAtTime(t);let a=this._attackCurve;for(let c=1;c<a.length;c++)if(a[c-1]<=s&&s<=a[c]){a=this._attackCurve.slice(c),a[0]=s;break}this._sig.setValueCurveAtTime(a,t,i,e)}if(n&&this.sustain<1){let a=e*this.sustain,c=t+i;this.log("decay",c),this._decayCurve==="linear"?this._sig.linearRampToValueAtTime(a,n+c):this._sig.exponentialApproachValueAtTime(a,c,n)}return this}triggerRelease(t){this.log("triggerRelease",t),t=this.toSeconds(t);let e=this.getValueAtTime(t);if(e>0){let r=this.toSeconds(this.release);r<this.sampleTime?this._sig.setValueAtTime(0,t):this._releaseCurve==="linear"?this._sig.linearRampTo(0,r,t):this._releaseCurve==="exponential"?this._sig.targetRampTo(0,r,t):(V(Nt(this._releaseCurve),"releaseCurve must be either 'linear', 'exponential' or an array"),this._sig.cancelAndHoldAtTime(t),this._sig.setValueCurveAtTime(this._releaseCurve,t,r,e))}return this}getValueAtTime(t){return this._sig.getValueAtTime(t)}triggerAttackRelease(t,e,r=1){return e=this.toSeconds(e),this.triggerAttack(e,r),this.triggerRelease(e+this.toSeconds(t)),this}cancel(t){return this._sig.cancelScheduledValues(this.toSeconds(t)),this}connect(t,e=0,r=0){return $i(this,t,e,r),this}asArray(){return lt(this,arguments,void 0,function*(t=1024){let e=t/this.context.sampleRate,r=new Ye(1,e,this.context.sampleRate),i=this.toSeconds(this.attack)+this.toSeconds(this.decay),n=i+this.toSeconds(this.release),s=n*.1,a=n+s,c=new this.constructor(Object.assign(this.get(),{attack:e*this.toSeconds(this.attack)/a,decay:e*this.toSeconds(this.decay)/a,release:e*this.toSeconds(this.release)/a,context:r}));return c._sig.toDestination(),c.triggerAttackRelease(e*(i+s)/a,0),(yield r.render()).getChannelData(0)})}dispose(){return super.dispose(),this._sig.dispose(),this}};re([de(0)],ue.prototype,"attack",void 0);re([de(0)],ue.prototype,"decay",void 0);re([vs(0,1)],ue.prototype,"sustain",void 0);re([de(0)],ue.prototype,"release",void 0);var Ss=(()=>{let t,e,r=[];for(t=0;t<128;t++)r[t]=Math.sin(t/127*(Math.PI/2));let i=[],n=6.4;for(t=0;t<127;t++){e=t/127;let p=Math.sin(e*(Math.PI*2)*n-Math.PI/2)+1;i[t]=p/10+e*.83}i[127]=1;let s=[],a=5;for(t=0;t<128;t++)s[t]=Math.ceil(t/127*a)/a;let c=[];for(t=0;t<128;t++)e=t/127,c[t]=.5*(1-Math.cos(Math.PI*e));let u=[];for(t=0;t<128;t++){e=t/127;let p=Math.pow(e,3)*4+.2,d=Math.cos(p*Math.PI*2*e);u[t]=Math.abs(d*(1-e))}function h(p){let d=new Array(p.length);for(let f=0;f<p.length;f++)d[f]=1-p[f];return d}function l(p){return p.slice(0).reverse()}return{bounce:{In:h(u),Out:u},cosine:{In:r,Out:l(r)},exponential:"exponential",linear:"linear",ripple:{In:i,Out:h(i)},sine:{In:c,Out:h(c)},step:{In:s,Out:h(s)}}})();var _e=class o extends j{constructor(){let t=w(o.getDefaults(),arguments);super(t),this._scheduledEvents=[],this._synced=!1,this._original_triggerAttack=this.triggerAttack,this._original_triggerRelease=this.triggerRelease,this._syncedRelease=e=>this._original_triggerRelease(e),this._volume=this.output=new Pe({context:this.context,volume:t.volume}),this.volume=this._volume.volume,B(this,"volume")}static getDefaults(){return Object.assign(j.getDefaults(),{volume:0})}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",0),this.context.transport.on("stop",this._syncedRelease),this.context.transport.on("pause",this._syncedRelease),this.context.transport.on("loopEnd",this._syncedRelease)),this}_syncState(){let t=!1;return this._synced||(this._synced=!0,t=!0),t}_syncMethod(t,e){let r=this["_original_"+t]=this[t];this[t]=(...i)=>{let n=i[e],s=this.context.transport.schedule(a=>{i[e]=a,r.apply(this,i)},n);this._scheduledEvents.push(s)}}unsync(){return this._scheduledEvents.forEach(t=>this.context.transport.clear(t)),this._scheduledEvents=[],this._synced&&(this._synced=!1,this.triggerAttack=this._original_triggerAttack,this.triggerRelease=this._original_triggerRelease,this.context.transport.off("stop",this._syncedRelease),this.context.transport.off("pause",this._syncedRelease),this.context.transport.off("loopEnd",this._syncedRelease)),this}triggerAttackRelease(t,e,r,i){let n=this.toSeconds(r),s=this.toSeconds(e);return this.triggerAttack(t,n,i),this.triggerRelease(n+s),this}dispose(){return super.dispose(),this._volume.dispose(),this.unsync(),this._scheduledEvents=[],this}};var me=class o extends _e{constructor(){let t=w(o.getDefaults(),arguments);super(t),this.portamento=t.portamento,this.onsilence=t.onsilence}static getDefaults(){return Object.assign(_e.getDefaults(),{detune:0,onsilence:tt,portamento:0})}triggerAttack(t,e,r=1){this.log("triggerAttack",t,e,r);let i=this.toSeconds(e);return this._triggerEnvelopeAttack(i,r),this.setNote(t,i),this}triggerRelease(t){this.log("triggerRelease",t);let e=this.toSeconds(t);return this._triggerEnvelopeRelease(e),this}setNote(t,e){let r=this.toSeconds(e),i=t instanceof ce?t.toFrequency():t;if(this.portamento>0&&this.getLevelAtTime(r)>.05){let n=this.toSeconds(this.portamento);this.frequency.exponentialRampTo(i,n,r)}else this.frequency.setValueAtTime(i,r);return this}};re([de(0)],me.prototype,"portamento",void 0);var so=class o extends ue{constructor(){super(w(o.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="AmplitudeEnvelope",this._gainNode=new Y({context:this.context,gain:0}),this.output=this._gainNode,this.input=this._gainNode,this._sig.connect(this._gainNode.gain),this.output=this._gainNode,this.input=this._gainNode}dispose(){return super.dispose(),this._gainNode.dispose(),this}};var ar=class o extends me{constructor(){let t=w(o.getDefaults(),arguments);super(t),this.name="Synth",this.oscillator=new ci(Object.assign({context:this.context,detune:t.detune,onstop:()=>this.onsilence(this)},t.oscillator)),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.envelope=new so(Object.assign({context:this.context},t.envelope)),this.oscillator.chain(this.envelope,this.output),B(this,["oscillator","frequency","detune","envelope"])}static getDefaults(){return Object.assign(me.getDefaults(),{envelope:Object.assign(ze(ue.getDefaults(),Object.keys(j.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.3}),oscillator:Object.assign(ze(ci.getDefaults(),[...Object.keys(mt.getDefaults()),"frequency","detune"]),{type:"triangle"})})}_triggerEnvelopeAttack(t,e){if(this.envelope.triggerAttack(t,e),this.oscillator.start(t),this.envelope.sustain===0){let r=this.toSeconds(this.envelope.attack),i=this.toSeconds(this.envelope.decay);this.oscillator.stop(t+r+i)}}_triggerEnvelopeRelease(t){this.envelope.triggerRelease(t),this.oscillator.stop(t+this.toSeconds(this.envelope.release))}getLevelAtTime(t){return t=this.toSeconds(t),this.envelope.getValueAtTime(t)}dispose(){return super.dispose(),this.oscillator.dispose(),this.envelope.dispose(),this}};var Ko=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type"]);super(t),this.name="BiquadFilter",this._filter=this.context.createBiquadFilter(),this.input=this.output=this._filter,this.Q=new nt({context:this.context,units:"number",value:t.Q,param:this._filter.Q}),this.frequency=new nt({context:this.context,units:"frequency",value:t.frequency,param:this._filter.frequency}),this.detune=new nt({context:this.context,units:"cents",value:t.detune,param:this._filter.detune}),this.gain=new nt({context:this.context,units:"decibels",convert:!1,value:t.gain,param:this._filter.gain}),this.type=t.type}static getDefaults(){return Object.assign(j.getDefaults(),{Q:1,type:"lowpass",frequency:350,detune:0,gain:0})}get type(){return this._filter.type}set type(t){V(["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(t)!==-1,`Invalid filter type: ${t}`),this._filter.type=t}getFrequencyResponse(t=128){let e=new Float32Array(t);for(let s=0;s<t;s++){let c=Math.pow(s/t,2)*19980+20;e[s]=c}let r=new Float32Array(t),i=new Float32Array(t),n=this.context.createBiquadFilter();return n.type=this.type,n.Q.value=this.Q.value,n.frequency.value=this.frequency.value,n.gain.value=this.gain.value,n.getFrequencyResponse(e,r,i),r}dispose(){return super.dispose(),this._filter.disconnect(),this.Q.dispose(),this.frequency.dispose(),this.gain.dispose(),this.detune.dispose(),this}};var Ar=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type","rolloff"]);super(t),this.name="Filter",this.input=new Y({context:this.context}),this.output=new Y({context:this.context}),this._filters=[],this._filters=[],this.Q=new K({context:this.context,units:"positive",value:t.Q}),this.frequency=new K({context:this.context,units:"frequency",value:t.frequency}),this.detune=new K({context:this.context,units:"cents",value:t.detune}),this.gain=new K({context:this.context,units:"decibels",convert:!1,value:t.gain}),this._type=t.type,this.rolloff=t.rolloff,B(this,["detune","frequency","gain","Q"])}static getDefaults(){return Object.assign(j.getDefaults(),{Q:1,detune:0,frequency:350,gain:0,rolloff:-12,type:"lowpass"})}get type(){return this._type}set type(t){V(["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(t)!==-1,`Invalid filter type: ${t}`),this._type=t,this._filters.forEach(r=>r.type=t)}get rolloff(){return this._rolloff}set rolloff(t){let e=Jt(t)?t:parseInt(t,10),r=[-12,-24,-48,-96],i=r.indexOf(e);V(i!==-1,`rolloff can only be ${r.join(", ")}`),i+=1,this._rolloff=e,this.input.disconnect(),this._filters.forEach(n=>n.disconnect()),this._filters=new Array(i);for(let n=0;n<i;n++){let s=new Ko({context:this.context});s.type=this._type,this.frequency.connect(s.frequency),this.detune.connect(s.detune),this.Q.connect(s.Q),this.gain.connect(s.gain),this._filters[n]=s}this._internalChannels=this._filters,ke(this.input,...this._internalChannels,this.output)}getFrequencyResponse(t=128){let e=new Ko({context:this.context,frequency:this.frequency.value,gain:this.gain.value,Q:this.Q.value,type:this._type,detune:this.detune.value}),r=new Float32Array(t).map(()=>1);return this._filters.forEach(()=>{e.getFrequencyResponse(t).forEach((n,s)=>r[s]*=n)}),e.dispose(),r}dispose(){return super.dispose(),this._filters.forEach(t=>{t.dispose()}),oi(this,["detune","frequency","gain","Q"]),this.frequency.dispose(),this.Q.dispose(),this.detune.dispose(),this.gain.dispose(),this}};var ws=class o extends ar{constructor(){let t=w(o.getDefaults(),arguments);super(t),this.name="MembraneSynth",this.portamento=0,this.pitchDecay=t.pitchDecay,this.octaves=t.octaves,B(this,["oscillator","envelope"])}static getDefaults(){return Me(me.getDefaults(),ar.getDefaults(),{envelope:{attack:.001,attackCurve:"exponential",decay:.4,release:1.4,sustain:.01},octaves:10,oscillator:{type:"sine"},pitchDecay:.05})}setNote(t,e){let r=this.toSeconds(e),i=this.toFrequency(t instanceof ce?t.toFrequency():t),n=i*this.octaves;return this.oscillator.frequency.setValueAtTime(n,r),this.oscillator.frequency.exponentialRampToValueAtTime(i,r+this.toSeconds(this.pitchDecay)),this}dispose(){return super.dispose(),this}};re([vs(0)],ws.prototype,"octaves",void 0);re([de(0)],ws.prototype,"pitchDecay",void 0);var om=new Set;function co(o){om.add(o)}function Ts(o,t){let e=`registerProcessor("${o}", ${t})`;om.add(e)}var cy=`
|
|
19
|
+
`],{type:"text/javascript"}),e=URL.createObjectURL(t),r=new Worker(e);r.onmessage=this._callback.bind(this),this._worker=r}_createTimeout(){this._timeout=setTimeout(()=>{this._createTimeout(),this._callback()},this._updateInterval*1e3)}_createClock(){if(this._type==="worker")try{this._createWorker()}catch(t){this._type="timeout",this._createClock()}else this._type==="timeout"&&this._createTimeout()}_disposeClock(){this._timeout&&clearTimeout(this._timeout),this._worker&&(this._worker.terminate(),this._worker.onmessage=null)}get updateInterval(){return this._updateInterval}set updateInterval(t){var e;this._updateInterval=Math.max(t,this._minimumUpdateInterval),this._type==="worker"&&((e=this._worker)===null||e===void 0||e.postMessage(this._updateInterval*1e3))}get type(){return this._type}set type(t){this._disposeClock(),this._type=t,this._createClock()}dispose(){this._disposeClock()}};function Ue(o){return Md(o)}function or(o){return Ed(o)}function Qi(o){return Dd(o)}function Fr(o){return Rd(o)}function Ud(o){return o instanceof Oc}function ry(o,t){return o==="value"||Ue(t)||or(t)||Ud(t)}function Me(o,...t){if(!t.length)return o;let e=t.shift();if(We(o)&&We(e))for(let r in e)ry(r,e[r])?o[r]=e[r]:We(e[r])?(o[r]||Object.assign(o,{[r]:{}}),Me(o[r],e[r])):Object.assign(o,{[r]:e[r]});return Me(o,...t)}function zd(o,t){return o.length===t.length&&o.every((e,r)=>t[r]===e)}function w(o,t,e=[],r){let i={},n=Array.from(t);if(We(n[0])&&r&&!Reflect.has(n[0],r)&&(Object.keys(n[0]).some(a=>Reflect.has(o,a))||(Me(i,{[r]:n[0]}),e.splice(e.indexOf(r),1),n.shift())),n.length===1&&We(n[0]))Me(i,n[0]);else for(let s=0;s<e.length;s++)$(n[s])&&(i[e[s]]=n[s]);return Me(o,i)}function Yd(o){return o.constructor.getDefaults()}function be(o,t){return Ft(o)?t:o}function ze(o,t){return t.forEach(e=>{Reflect.has(o,e)&&delete o[e]}),o}var Qt=class{constructor(){this.debug=!1,this._wasDisposed=!1}static getDefaults(){return{}}log(...t){(this.debug||ee&&this.toString()===ee.TONE_DEBUG_CLASS)&&Bd(this,...t)}dispose(){return this._wasDisposed=!0,this}get disposed(){return this._wasDisposed}toString(){return this.name}};Qt.version=Ro;function xr(o,t){return o>t+1e-6}function Wo(o,t){return xr(o,t)||ae(o,t)}function ri(o,t){return o+1e-6<t}function ae(o,t){return Math.abs(o-t)<1e-6}function jc(o,t,e){return Math.max(Math.min(o,e),t)}var qt=class o extends Qt{constructor(){super(),this.name="Timeline",this._timeline=[];let t=w(o.getDefaults(),arguments,["memory"]);this.memory=t.memory,this.increasing=t.increasing}static getDefaults(){return{memory:1/0,increasing:!1}}get length(){return this._timeline.length}add(t){if(V(Reflect.has(t,"time"),"Timeline: events must have a time attribute"),t.time=t.time.valueOf(),this.increasing&&this.length){let e=this._timeline[this.length-1];V(Wo(t.time,e.time),"The time must be greater than or equal to the last scheduled time"),this._timeline.push(t)}else{let e=this._search(t.time);this._timeline.splice(e+1,0,t)}if(this.length>this.memory){let e=this.length-this.memory;this._timeline.splice(0,e)}return this}remove(t){let e=this._timeline.indexOf(t);return e!==-1&&this._timeline.splice(e,1),this}get(t,e="time"){let r=this._search(t,e);return r!==-1?this._timeline[r]:null}peek(){return this._timeline[0]}shift(){return this._timeline.shift()}getAfter(t,e="time"){let r=this._search(t,e);return r+1<this._timeline.length?this._timeline[r+1]:null}getBefore(t){let e=this._timeline.length;if(e>0&&this._timeline[e-1].time<t)return this._timeline[e-1];let r=this._search(t);return r-1>=0?this._timeline[r-1]:null}cancel(t){if(this._timeline.length>1){let e=this._search(t);if(e>=0)if(ae(this._timeline[e].time,t)){for(let r=e;r>=0&&ae(this._timeline[r].time,t);r--)e=r;this._timeline=this._timeline.slice(0,e)}else this._timeline=this._timeline.slice(0,e+1);else this._timeline=[]}else this._timeline.length===1&&Wo(this._timeline[0].time,t)&&(this._timeline=[]);return this}cancelBefore(t){let e=this._search(t);return e>=0&&(this._timeline=this._timeline.slice(e+1)),this}previousEvent(t){let e=this._timeline.indexOf(t);return e>0?this._timeline[e-1]:null}_search(t,e="time"){if(this._timeline.length===0)return-1;let r=0,i=this._timeline.length,n=i;if(i>0&&this._timeline[i-1][e]<=t)return i-1;for(;r<n;){let s=Math.floor(r+(n-r)/2),a=this._timeline[s],c=this._timeline[s+1];if(ae(a[e],t)){for(let u=s;u<this._timeline.length;u++){let h=this._timeline[u];if(ae(h[e],t))s=u;else break}return s}else{if(ri(a[e],t)&&xr(c[e],t))return s;xr(a[e],t)?n=s:r=s+1}}return-1}_iterate(t,e=0,r=this._timeline.length-1){this._timeline.slice(e,r+1).forEach(t)}forEach(t){return this._iterate(t),this}forEachBefore(t,e){let r=this._search(t);return r!==-1&&this._iterate(e,0,r),this}forEachAfter(t,e){let r=this._search(t);return this._iterate(e,r+1),this}forEachBetween(t,e,r){let i=this._search(t),n=this._search(e);return i!==-1&&n!==-1?(this._timeline[i].time!==t&&(i+=1),this._timeline[n].time===e&&(n-=1),this._iterate(r,i,n)):i===-1&&this._iterate(r,0,n),this}forEachFrom(t,e){let r=this._search(t);for(;r>=0&&this._timeline[r].time>=t;)r--;return this._iterate(e,r+1),this}forEachAtTime(t,e){let r=this._search(t);if(r!==-1&&ae(this._timeline[r].time,t)){let i=r;for(let n=r;n>=0&&ae(this._timeline[n].time,t);n--)i=n;this._iterate(n=>{e(n)},i,r)}return this}dispose(){return super.dispose(),this._timeline=[],this}};var Hd=[];function Br(o){Hd.push(o)}function Qd(o){Hd.forEach(t=>t(o))}var Zd=[];function Vr(o){Zd.push(o)}function Xd(o){Zd.forEach(t=>t(o))}var Gr=class o extends Qt{constructor(){super(...arguments),this.name="Emitter"}on(t,e){return t.split(/\W+/).forEach(i=>{Ft(this._events)&&(this._events={}),this._events.hasOwnProperty(i)||(this._events[i]=[]),this._events[i].push(e)}),this}once(t,e){let r=(...i)=>{e(...i),this.off(t,r)};return this.on(t,r),this}off(t,e){return t.split(/\W+/).forEach(i=>{if(Ft(this._events)&&(this._events={}),this._events.hasOwnProperty(i))if(Ft(e))this._events[i]=[];else{let n=this._events[i];for(let s=n.length-1;s>=0;s--)n[s]===e&&n.splice(s,1)}}),this}emit(t,...e){if(this._events&&this._events.hasOwnProperty(t)){let r=this._events[t].slice(0);for(let i=0,n=r.length;i<n;i++)r[i].apply(this,e)}return this}static mixin(t){["on","once","off","emit"].forEach(e=>{let r=Object.getOwnPropertyDescriptor(o.prototype,e);Object.defineProperty(t.prototype,e,r)})}dispose(){return super.dispose(),this._events=void 0,this}};var Zi=class extends Gr{constructor(){super(...arguments),this.isOffline=!1}toJSON(){return{}}};var ii=class o extends Zi{constructor(){var t,e;super(),this.name="Context",this._constants=new Map,this._timeouts=new qt,this._timeoutIds=0,this._initialized=!1,this._closeStarted=!1,this.isOffline=!1,this._workletPromise=null;let r=w(o.getDefaults(),arguments,["context"]);r.context?(this._context=r.context,this._latencyHint=((t=arguments[0])===null||t===void 0?void 0:t.latencyHint)||""):(this._context=Vd({latencyHint:r.latencyHint}),this._latencyHint=r.latencyHint),this._ticker=new hs(this.emit.bind(this,"tick"),r.clockSource,r.updateInterval,this._context.sampleRate),this.on("tick",this._timeoutLoop.bind(this)),this._context.onstatechange=()=>{this.emit("statechange",this.state)},this[!((e=arguments[0])===null||e===void 0)&&e.hasOwnProperty("updateInterval")?"_lookAhead":"lookAhead"]=r.lookAhead}static getDefaults(){return{clockSource:"worker",latencyHint:"interactive",lookAhead:.1,updateInterval:.05}}initialize(){return this._initialized||(Qd(this),this._initialized=!0),this}createAnalyser(){return this._context.createAnalyser()}createOscillator(){return this._context.createOscillator()}createBufferSource(){return this._context.createBufferSource()}createBiquadFilter(){return this._context.createBiquadFilter()}createBuffer(t,e,r){return this._context.createBuffer(t,e,r)}createChannelMerger(t){return this._context.createChannelMerger(t)}createChannelSplitter(t){return this._context.createChannelSplitter(t)}createConstantSource(){return this._context.createConstantSource()}createConvolver(){return this._context.createConvolver()}createDelay(t){return this._context.createDelay(t)}createDynamicsCompressor(){return this._context.createDynamicsCompressor()}createGain(){return this._context.createGain()}createIIRFilter(t,e){return this._context.createIIRFilter(t,e)}createPanner(){return this._context.createPanner()}createPeriodicWave(t,e,r){return this._context.createPeriodicWave(t,e,r)}createStereoPanner(){return this._context.createStereoPanner()}createWaveShaper(){return this._context.createWaveShaper()}createMediaStreamSource(t){return V(Fr(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamSource(t)}createMediaElementSource(t){return V(Fr(this._context),"Not available if OfflineAudioContext"),this._context.createMediaElementSource(t)}createMediaStreamDestination(){return V(Fr(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamDestination()}decodeAudioData(t){return this._context.decodeAudioData(t)}get currentTime(){return this._context.currentTime}get state(){return this._context.state}get sampleRate(){return this._context.sampleRate}get listener(){return this.initialize(),this._listener}set listener(t){V(!this._initialized,"The listener cannot be set after initialization."),this._listener=t}get transport(){return this.initialize(),this._transport}set transport(t){V(!this._initialized,"The transport cannot be set after initialization."),this._transport=t}get draw(){return this.initialize(),this._draw}set draw(t){V(!this._initialized,"Draw cannot be set after initialization."),this._draw=t}get destination(){return this.initialize(),this._destination}set destination(t){V(!this._initialized,"The destination cannot be set after initialization."),this._destination=t}createAudioWorkletNode(t,e){return Wd(this.rawContext,t,e)}addAudioWorkletModule(t){return lt(this,void 0,void 0,function*(){V($(this.rawContext.audioWorklet),"AudioWorkletNode is only available in a secure context (https or localhost)"),this._workletPromise||(this._workletPromise=this.rawContext.audioWorklet.addModule(t)),yield this._workletPromise})}workletsAreReady(){return lt(this,void 0,void 0,function*(){(yield this._workletPromise)?this._workletPromise:Promise.resolve()})}get updateInterval(){return this._ticker.updateInterval}set updateInterval(t){this._ticker.updateInterval=t}get clockSource(){return this._ticker.type}set clockSource(t){this._ticker.type=t}get lookAhead(){return this._lookAhead}set lookAhead(t){this._lookAhead=t,this.updateInterval=t?t/2:.01}get latencyHint(){return this._latencyHint}get rawContext(){return this._context}now(){return this._context.currentTime+this._lookAhead}immediate(){return this._context.currentTime}resume(){return Fr(this._context)?this._context.resume():Promise.resolve()}close(){return lt(this,void 0,void 0,function*(){Fr(this._context)&&this.state!=="closed"&&!this._closeStarted&&(this._closeStarted=!0,yield this._context.close()),this._initialized&&Xd(this)})}getConstant(t){if(this._constants.has(t))return this._constants.get(t);{let e=this._context.createBuffer(1,128,this._context.sampleRate),r=e.getChannelData(0);for(let n=0;n<r.length;n++)r[n]=t;let i=this._context.createBufferSource();return i.channelCount=1,i.channelCountMode="explicit",i.buffer=e,i.loop=!0,i.start(0),this._constants.set(t,i),i}}dispose(){return super.dispose(),this._ticker.dispose(),this._timeouts.dispose(),Object.keys(this._constants).map(t=>this._constants[t].disconnect()),this.close(),this}_timeoutLoop(){let t=this.now();this._timeouts.forEachBefore(t,e=>{e.callback(),this._timeouts.remove(e)})}setTimeout(t,e){this._timeoutIds++;let r=this.now();return this._timeouts.add({callback:t,id:this._timeoutIds,time:r+e}),this._timeoutIds}clearTimeout(t){return this._timeouts.forEach(e=>{e.id===t&&this._timeouts.remove(e)}),this}clearInterval(t){return this.clearTimeout(t)}setInterval(t,e){let r=++this._timeoutIds,i=()=>{let n=this.now();this._timeouts.add({callback:()=>{t(),i()},id:r,time:n+e})};return i(),r}};var ls=class extends Zi{constructor(){super(...arguments),this.lookAhead=0,this.latencyHint=0,this.isOffline=!1}createAnalyser(){return{}}createOscillator(){return{}}createBufferSource(){return{}}createBiquadFilter(){return{}}createBuffer(t,e,r){return{}}createChannelMerger(t){return{}}createChannelSplitter(t){return{}}createConstantSource(){return{}}createConvolver(){return{}}createDelay(t){return{}}createDynamicsCompressor(){return{}}createGain(){return{}}createIIRFilter(t,e){return{}}createPanner(){return{}}createPeriodicWave(t,e,r){return{}}createStereoPanner(){return{}}createWaveShaper(){return{}}createMediaStreamSource(t){return{}}createMediaElementSource(t){return{}}createMediaStreamDestination(){return{}}decodeAudioData(t){return Promise.resolve({})}createAudioWorkletNode(t,e){return{}}get rawContext(){return{}}addAudioWorkletModule(t){return lt(this,void 0,void 0,function*(){return Promise.resolve()})}resume(){return Promise.resolve()}setTimeout(t,e){return 0}clearTimeout(t){return this}setInterval(t,e){return 0}clearInterval(t){return this}getConstant(t){return{}}get currentTime(){return 0}get state(){return{}}get sampleRate(){return 0}get listener(){return{}}get transport(){return{}}get draw(){return{}}set draw(t){}get destination(){return{}}set destination(t){}now(){return 0}immediate(){return 0}};function B(o,t){Ot(t)?t.forEach(e=>B(o,e)):Object.defineProperty(o,t,{enumerable:!0,writable:!1})}function oi(o,t){Ot(t)?t.forEach(e=>oi(o,e)):Object.defineProperty(o,t,{writable:!0})}var tt=()=>{};var kt=class o extends Qt{constructor(){super(),this.name="ToneAudioBuffer",this.onload=tt;let t=w(o.getDefaults(),arguments,["url","onload","onerror"]);this.reverse=t.reverse,this.onload=t.onload,te(t.url)?this.load(t.url).catch(t.onerror):t.url&&this.set(t.url)}static getDefaults(){return{onerror:tt,onload:tt,reverse:!1}}get sampleRate(){return this._buffer?this._buffer.sampleRate:Bt().sampleRate}set(t){return t instanceof o?t.loaded?this._buffer=t.get():t.onload=()=>{this.set(t),this.onload(this)}:this._buffer=t,this._reversed&&this._reverse(),this}get(){return this._buffer}load(t){return lt(this,void 0,void 0,function*(){let e=o.load(t).then(r=>{this.set(r),this.onload(this)});o.downloads.push(e);try{yield e}finally{let r=o.downloads.indexOf(e);o.downloads.splice(r,1)}return this})}dispose(){return super.dispose(),this._buffer=void 0,this}fromArray(t){let e=Ot(t)&&t[0].length>0,r=e?t.length:1,i=e?t[0].length:t.length,n=Bt(),s=n.createBuffer(r,i,n.sampleRate),a=!e&&r===1?[t]:t;for(let c=0;c<r;c++)s.copyToChannel(a[c],c);return this._buffer=s,this}toMono(t){if(Jt(t))this.fromArray(this.toArray(t));else{let e=new Float32Array(this.length),r=this.numberOfChannels;for(let i=0;i<r;i++){let n=this.toArray(i);for(let s=0;s<n.length;s++)e[s]+=n[s]}e=e.map(i=>i/r),this.fromArray(e)}return this}toArray(t){if(Jt(t))return this.getChannelData(t);if(this.numberOfChannels===1)return this.toArray(0);{let e=[];for(let r=0;r<this.numberOfChannels;r++)e[r]=this.getChannelData(r);return e}}getChannelData(t){return this._buffer?this._buffer.getChannelData(t):new Float32Array(0)}slice(t,e=this.duration){V(this.loaded,"Buffer is not loaded");let r=Math.floor(t*this.sampleRate),i=Math.floor(e*this.sampleRate);V(r<i,"The start time must be less than the end time");let n=i-r,s=Bt().createBuffer(this.numberOfChannels,n,this.sampleRate);for(let a=0;a<this.numberOfChannels;a++)s.copyToChannel(this.getChannelData(a).subarray(r,i),a);return new o(s)}_reverse(){if(this.loaded)for(let t=0;t<this.numberOfChannels;t++)this.getChannelData(t).reverse();return this}get loaded(){return this.length>0}get duration(){return this._buffer?this._buffer.duration:0}get length(){return this._buffer?this._buffer.length:0}get numberOfChannels(){return this._buffer?this._buffer.numberOfChannels:0}get reverse(){return this._reversed}set reverse(t){this._reversed!==t&&(this._reversed=t,this._reverse())}static fromArray(t){return new o().fromArray(t)}static fromUrl(t){return lt(this,void 0,void 0,function*(){return yield new o().load(t)})}static load(t){return lt(this,void 0,void 0,function*(){let e=o.baseUrl===""||o.baseUrl.endsWith("/")?o.baseUrl:o.baseUrl+"/",r=yield fetch(e+t);if(!r.ok)throw new Error(`could not load url: ${t}`);let i=yield r.arrayBuffer();return yield Bt().decodeAudioData(i)})}static supportsType(t){let e=t.split("."),r=e[e.length-1];return document.createElement("audio").canPlayType("audio/"+r)!==""}static loaded(){return lt(this,void 0,void 0,function*(){for(yield Promise.resolve();o.downloads.length;)yield o.downloads[0]})}};kt.baseUrl="";kt.downloads=[];var Ye=class extends ii{constructor(){super({clockSource:"offline",context:Qi(arguments[0])?arguments[0]:Gd(arguments[0],arguments[1]*arguments[2],arguments[2]),lookAhead:0,updateInterval:Qi(arguments[0])?128/arguments[0].sampleRate:128/arguments[2]}),this.name="OfflineContext",this._currentTime=0,this.isOffline=!0,this._duration=Qi(arguments[0])?arguments[0].length/arguments[0].sampleRate:arguments[1]}now(){return this._currentTime}get currentTime(){return this._currentTime}_renderClock(t){return lt(this,void 0,void 0,function*(){let e=0;for(;this._duration-this._currentTime>=0;){this.emit("tick"),this._currentTime+=128/this.sampleRate,e++;let r=Math.floor(this.sampleRate/128);t&&e%r===0&&(yield new Promise(i=>setTimeout(i,1)))}})}render(){return lt(this,arguments,void 0,function*(t=!0){yield this.workletsAreReady(),yield this._renderClock(t);let e=yield this._context.startRendering();return new kt(e)})}close(){return Promise.resolve()}};var Jd=new ls,Xi=Jd;function Bt(){return Xi===Jd&&qd&&Lc(new ii),Xi}function Lc(o,t=!1){t&&Xi.dispose(),Fr(o)?Xi=new ii(o):Qi(o)?Xi=new Ye(o):Xi=o}if(ee&&!ee.TONE_SILENCE_LOGGING){let o="v";Ro==="dev"&&(o="");let t=` * Tone.js ${o}${Ro} * `;console.log(`%c${t}`,"background: #000; color: #fff")}function Ji(o){return Math.pow(10,o/20)}function Ki(o){return 20*(Math.log(o)/Math.LN10)}function ni(o){return Math.pow(2,o/12)}var ps=440;function Kd(){return ps}function $d(o){ps=o}function He(o){return Math.round(Fc(o))}function Fc(o){return 69+12*Math.log2(o/ps)}function Uo(o){return ps*Math.pow(2,(o-69)/12)}var ds=class o extends Qt{constructor(t,e,r){super(),this.defaultUnits="s",this._val=e,this._units=r,this.context=t,this._expressions=this._getExpressions()}_getExpressions(){return{hz:{method:t=>this._frequencyToUnits(parseFloat(t)),regexp:/^(\d+(?:\.\d+)?)hz$/i},i:{method:t=>this._ticksToUnits(parseInt(t,10)),regexp:/^(\d+)i$/i},m:{method:t=>this._beatsToUnits(parseInt(t,10)*this._getTimeSignature()),regexp:/^(\d+)m$/i},n:{method:(t,e)=>{let r=parseInt(t,10),i=e==="."?1.5:1;return r===1?this._beatsToUnits(this._getTimeSignature())*i:this._beatsToUnits(4/r)*i},regexp:/^(\d+)n(\.?)$/i},number:{method:t=>this._expressions[this.defaultUnits].method.call(this,t),regexp:/^(\d+(?:\.\d+)?)$/},s:{method:t=>this._secondsToUnits(parseFloat(t)),regexp:/^(\d+(?:\.\d+)?)s$/},samples:{method:t=>parseInt(t,10)/this.context.sampleRate,regexp:/^(\d+)samples$/},t:{method:t=>{let e=parseInt(t,10);return this._beatsToUnits(8/(Math.floor(e)*3))},regexp:/^(\d+)t$/i},tr:{method:(t,e,r)=>{let i=0;return t&&t!=="0"&&(i+=this._beatsToUnits(this._getTimeSignature()*parseFloat(t))),e&&e!=="0"&&(i+=this._beatsToUnits(parseFloat(e))),r&&r!=="0"&&(i+=this._beatsToUnits(parseFloat(r)/4)),i},regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?$/}}}valueOf(){if(this._val instanceof o&&this.fromType(this._val),Ft(this._val))return this._noArg();if(te(this._val)&&Ft(this._units)){for(let t in this._expressions)if(this._expressions[t].regexp.test(this._val.trim())){this._units=t;break}}else if(We(this._val)){let t=0;for(let e in this._val)if($(this._val[e])){let r=this._val[e],i=new this.constructor(this.context,e).valueOf()*r;t+=i}return t}if($(this._units)){let t=this._expressions[this._units],e=this._val.toString().trim().match(t.regexp);return e?t.method.apply(this,e.slice(1)):t.method.call(this,this._val)}else return te(this._val)?parseFloat(this._val):this._val}_frequencyToUnits(t){return 1/t}_beatsToUnits(t){return 60/this._getBpm()*t}_secondsToUnits(t){return t}_ticksToUnits(t){return t*this._beatsToUnits(1)/this._getPPQ()}_noArg(){return this._now()}_getBpm(){return this.context.transport.bpm.value}_getTimeSignature(){return this.context.transport.timeSignature}_getPPQ(){return this.context.transport.PPQ}fromType(t){switch(this._units=void 0,this.defaultUnits){case"s":this._val=t.toSeconds();break;case"i":this._val=t.toTicks();break;case"hz":this._val=t.toFrequency();break;case"midi":this._val=t.toMidi();break}return this}toFrequency(){return 1/this.toSeconds()}toSamples(){return this.toSeconds()*this.context.sampleRate}toMilliseconds(){return this.toSeconds()*1e3}};var Ae=class o extends ds{constructor(){super(...arguments),this.name="TimeClass"}_getExpressions(){return Object.assign(super._getExpressions(),{now:{method:t=>this._now()+new this.constructor(this.context,t).valueOf(),regexp:/^\+(.+)/},quantize:{method:t=>{let e=new o(this.context,t).valueOf();return this._secondsToUnits(this.context.transport.nextSubdivision(e))},regexp:/^@(.+)/}})}quantize(t,e=1){let r=new this.constructor(this.context,t).valueOf(),i=this.valueOf(),a=Math.round(i/r)*r-i;return i+a*e}toNotation(){let t=this.toSeconds(),e=["1m"];for(let n=1;n<9;n++){let s=Math.pow(2,n);e.push(s+"n."),e.push(s+"n"),e.push(s+"t")}e.push("0");let r=e[0],i=new o(this.context,e[0]).toSeconds();return e.forEach(n=>{let s=new o(this.context,n).toSeconds();Math.abs(s-t)<Math.abs(i-t)&&(r=n,i=s)}),r}toBarsBeatsSixteenths(){let t=this._beatsToUnits(1),e=this.valueOf()/t;e=parseFloat(e.toFixed(4));let r=Math.floor(e/this._getTimeSignature()),i=e%1*4;e=Math.floor(e)%this._getTimeSignature();let n=i.toString();return n.length>3&&(i=parseFloat(parseFloat(n).toFixed(3))),[r,e,i].join(":")}toTicks(){let t=this._beatsToUnits(1);return this.valueOf()/t*this._getPPQ()}toSeconds(){return this.valueOf()}toMidi(){return He(this.toFrequency())}_now(){return this.context.now()}};var ce=class o extends Ae{constructor(){super(...arguments),this.name="Frequency",this.defaultUnits="hz"}static get A4(){return Kd()}static set A4(t){$d(t)}_getExpressions(){return Object.assign({},super._getExpressions(),{midi:{regexp:/^(\d+(?:\.\d+)?midi)/,method(t){return this.defaultUnits==="midi"?t:o.mtof(t)}},note:{regexp:/^([a-g]{1}(?:b|#|##|x|bb|###|#x|x#|bbb)?)(-?[0-9]+)/i,method(t,e){let i=iy[t.toLowerCase()]+(parseInt(e,10)+1)*12;return this.defaultUnits==="midi"?i:o.mtof(i)}},tr:{regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?/,method(t,e,r){let i=1;return t&&t!=="0"&&(i*=this._beatsToUnits(this._getTimeSignature()*parseFloat(t))),e&&e!=="0"&&(i*=this._beatsToUnits(parseFloat(e))),r&&r!=="0"&&(i*=this._beatsToUnits(parseFloat(r)/4)),i}}})}transpose(t){return new o(this.context,this.valueOf()*ni(t))}harmonize(t){return t.map(e=>this.transpose(e))}toMidi(){return He(this.valueOf())}toNote(){let t=this.toFrequency(),e=Math.log2(t/o.A4),r=Math.round(12*e)+57,i=Math.floor(r/12);return i<0&&(r+=-12*i),oy[r%12]+i.toString()}toSeconds(){return 1/super.toSeconds()}toTicks(){let t=this._beatsToUnits(1),e=this.valueOf()/t;return Math.floor(e*this._getPPQ())}_noArg(){return 0}_frequencyToUnits(t){return t}_ticksToUnits(t){return 1/(t*60/(this._getBpm()*this._getPPQ()))}_beatsToUnits(t){return 1/super._beatsToUnits(t)}_secondsToUnits(t){return 1/t}static mtof(t){return Uo(t)}static ftom(t){return He(t)}},iy={cbbb:-3,cbb:-2,cb:-1,c:0,"c#":1,cx:2,"c##":2,"c###":3,"cx#":3,"c#x":3,dbbb:-1,dbb:0,db:1,d:2,"d#":3,dx:4,"d##":4,"d###":5,"dx#":5,"d#x":5,ebbb:1,ebb:2,eb:3,e:4,"e#":5,ex:6,"e##":6,"e###":7,"ex#":7,"e#x":7,fbbb:2,fbb:3,fb:4,f:5,"f#":6,fx:7,"f##":7,"f###":8,"fx#":8,"f#x":8,gbbb:4,gbb:5,gb:6,g:7,"g#":8,gx:9,"g##":9,"g###":10,"gx#":10,"g#x":10,abbb:6,abb:7,ab:8,a:9,"a#":10,ax:11,"a##":11,"a###":12,"ax#":12,"a#x":12,bbbb:8,bbb:9,bb:10,b:11,"b#":12,bx:13,"b##":13,"b###":14,"bx#":14,"b#x":14},oy=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"];var De=class extends Ae{constructor(){super(...arguments),this.name="TransportTime"}_now(){return this.context.transport.seconds}};var Wt=class o extends Qt{constructor(){super();let t=w(o.getDefaults(),arguments,["context"]);this.defaultContext?this.context=this.defaultContext:this.context=t.context}static getDefaults(){return{context:Bt()}}now(){return this.context.currentTime+this.context.lookAhead}immediate(){return this.context.currentTime}get sampleTime(){return 1/this.context.sampleRate}get blockTime(){return 128/this.context.sampleRate}toSeconds(t){return Ld(t),new Ae(this.context,t).toSeconds()}toFrequency(t){return new ce(this.context,t).toFrequency()}toTicks(t){return new De(this.context,t).toTicks()}_getPartialProperties(t){let e=this.get();return Object.keys(e).forEach(r=>{Ft(t[r])&&delete e[r]}),e}get(){let t=Yd(this);return Object.keys(t).forEach(e=>{if(Reflect.has(this,e)){let r=this[e];$(r)&&$(r.value)&&$(r.setValueAtTime)?t[e]=r.value:r instanceof o?t[e]=r._getPartialProperties(t[e]):Ot(r)||Jt(r)||te(r)||kc(r)?t[e]=r:delete t[e]}}),t}set(t){return Object.keys(t).forEach(e=>{Reflect.has(this,e)&&$(this[e])&&(this[e]&&$(this[e].value)&&$(this[e].setValueAtTime)?this[e].value!==t[e]&&(this[e].value=t[e]):this[e]instanceof o?this[e].set(t[e]):this[e]=t[e])}),this}};var nr=class extends qt{constructor(t="stopped"){super(),this.name="StateTimeline",this._initial=t,this.setStateAtTime(this._initial,0)}getValueAtTime(t){let e=this.get(t);return e!==null?e.state:this._initial}setStateAtTime(t,e,r){return Dt(e,0),this.add(Object.assign({},r,{state:t,time:e})),this}getLastState(t,e){let r=this._search(e);for(let i=r;i>=0;i--){let n=this._timeline[i];if(n.state===t)return n}}getNextState(t,e){let r=this._search(e);if(r!==-1)for(let i=r;i<this._timeline.length;i++){let n=this._timeline[i];if(n.state===t)return n}}};var nt=class o extends Wt{constructor(){let t=w(o.getDefaults(),arguments,["param","units","convert"]);for(super(t),this.name="Param",this.overridden=!1,this._minOutput=1e-7,V($(t.param)&&(Ue(t.param)||t.param instanceof o),"param must be an AudioParam");!Ue(t.param);)t.param=t.param._param;this._swappable=$(t.swappable)?t.swappable:!1,this._swappable?(this.input=this.context.createGain(),this._param=t.param,this.input.connect(this._param)):this._param=this.input=t.param,this._events=new qt(1e3),this._initialValue=this._param.defaultValue,this.units=t.units,this.convert=t.convert,this._minValue=t.minValue,this._maxValue=t.maxValue,$(t.value)&&t.value!==this._toType(this._initialValue)&&this.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(Wt.getDefaults(),{convert:!0,units:"number"})}get value(){let t=this.now();return this.getValueAtTime(t)}set value(t){this.cancelScheduledValues(this.now()),this.setValueAtTime(t,this.now())}get minValue(){return $(this._minValue)?this._minValue:this.units==="time"||this.units==="frequency"||this.units==="normalRange"||this.units==="positive"||this.units==="transportTime"||this.units==="ticks"||this.units==="bpm"||this.units==="hertz"||this.units==="samples"?0:this.units==="audioRange"?-1:this.units==="decibels"?-1/0:this._param.minValue}get maxValue(){return $(this._maxValue)?this._maxValue:this.units==="normalRange"||this.units==="audioRange"?1:this._param.maxValue}_is(t,e){return this.units===e}_assertRange(t){return $(this.maxValue)&&$(this.minValue)&&Dt(t,this._fromType(this.minValue),this._fromType(this.maxValue)),t}_fromType(t){return this.convert&&!this.overridden?this._is(t,"time")?this.toSeconds(t):this._is(t,"decibels")?Ji(t):this._is(t,"frequency")?this.toFrequency(t):t:this.overridden?0:t}_toType(t){return this.convert&&this.units==="decibels"?Ki(t):t}setValueAtTime(t,e){let r=this.toSeconds(e),i=this._fromType(t);return V(isFinite(i)&&isFinite(r),`Invalid argument(s) to setValueAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._assertRange(i),this.log(this.units,"setValueAtTime",t,r),this._events.add({time:r,type:"setValueAtTime",value:i}),this._param.setValueAtTime(i,r),this}getValueAtTime(t){let e=Math.max(this.toSeconds(t),0),r=this._events.getAfter(e),i=this._events.get(e),n=this._initialValue;if(i===null)n=this._initialValue;else if(i.type==="setTargetAtTime"&&(r===null||r.type==="setValueAtTime")){let s=this._events.getBefore(i.time),a;s===null?a=this._initialValue:a=s.value,i.type==="setTargetAtTime"&&(n=this._exponentialApproach(i.time,a,i.value,i.constant,e))}else if(r===null)n=i.value;else if(r.type==="linearRampToValueAtTime"||r.type==="exponentialRampToValueAtTime"){let s=i.value;if(i.type==="setTargetAtTime"){let a=this._events.getBefore(i.time);a===null?s=this._initialValue:s=a.value}r.type==="linearRampToValueAtTime"?n=this._linearInterpolate(i.time,s,r.time,r.value,e):n=this._exponentialInterpolate(i.time,s,r.time,r.value,e)}else n=i.value;return this._toType(n)}setRampPoint(t){t=this.toSeconds(t);let e=this.getValueAtTime(t);return this.cancelAndHoldAtTime(t),this._fromType(e)===0&&(e=this._toType(this._minOutput)),this.setValueAtTime(e,t),this}linearRampToValueAtTime(t,e){let r=this._fromType(t),i=this.toSeconds(e);return V(isFinite(r)&&isFinite(i),`Invalid argument(s) to linearRampToValueAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._assertRange(r),this._events.add({time:i,type:"linearRampToValueAtTime",value:r}),this.log(this.units,"linearRampToValueAtTime",t,i),this._param.linearRampToValueAtTime(r,i),this}exponentialRampToValueAtTime(t,e){let r=this._fromType(t);r=ae(r,0)?this._minOutput:r,this._assertRange(r);let i=this.toSeconds(e);return V(isFinite(r)&&isFinite(i),`Invalid argument(s) to exponentialRampToValueAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._events.add({time:i,type:"exponentialRampToValueAtTime",value:r}),this.log(this.units,"exponentialRampToValueAtTime",t,i),this._param.exponentialRampToValueAtTime(r,i),this}exponentialRampTo(t,e,r){return r=this.toSeconds(r),this.setRampPoint(r),this.exponentialRampToValueAtTime(t,r+this.toSeconds(e)),this}linearRampTo(t,e,r){return r=this.toSeconds(r),this.setRampPoint(r),this.linearRampToValueAtTime(t,r+this.toSeconds(e)),this}targetRampTo(t,e,r){return r=this.toSeconds(r),this.setRampPoint(r),this.exponentialApproachValueAtTime(t,r,e),this}exponentialApproachValueAtTime(t,e,r){e=this.toSeconds(e),r=this.toSeconds(r);let i=Math.log(r+1)/Math.log(200);return this.setTargetAtTime(t,e,i),this.cancelAndHoldAtTime(e+r*.9),this.linearRampToValueAtTime(t,e+r),this}setTargetAtTime(t,e,r){let i=this._fromType(t);V(isFinite(r)&&r>0,"timeConstant must be a number greater than 0");let n=this.toSeconds(e);return this._assertRange(i),V(isFinite(i)&&isFinite(n),`Invalid argument(s) to setTargetAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._events.add({constant:r,time:n,type:"setTargetAtTime",value:i}),this.log(this.units,"setTargetAtTime",t,n,r),this._param.setTargetAtTime(i,n,r),this}setValueCurveAtTime(t,e,r,i=1){r=this.toSeconds(r),e=this.toSeconds(e);let n=this._fromType(t[0])*i;this.setValueAtTime(this._toType(n),e);let s=r/(t.length-1);for(let a=1;a<t.length;a++){let c=this._fromType(t[a])*i;this.linearRampToValueAtTime(this._toType(c),e+a*s)}return this}cancelScheduledValues(t){let e=this.toSeconds(t);return V(isFinite(e),`Invalid argument to cancelScheduledValues: ${JSON.stringify(t)}`),this._events.cancel(e),this._param.cancelScheduledValues(e),this.log(this.units,"cancelScheduledValues",e),this}cancelAndHoldAtTime(t){let e=this.toSeconds(t),r=this._fromType(this.getValueAtTime(e));V(isFinite(e),`Invalid argument to cancelAndHoldAtTime: ${JSON.stringify(t)}`),this.log(this.units,"cancelAndHoldAtTime",e,"value="+r);let i=this._events.get(e),n=this._events.getAfter(e);return i&&ae(i.time,e)?n?(this._param.cancelScheduledValues(n.time),this._events.cancel(n.time)):(this._param.cancelAndHoldAtTime(e),this._events.cancel(e+this.sampleTime)):n&&(this._param.cancelScheduledValues(n.time),this._events.cancel(n.time),n.type==="linearRampToValueAtTime"?this.linearRampToValueAtTime(this._toType(r),e):n.type==="exponentialRampToValueAtTime"&&this.exponentialRampToValueAtTime(this._toType(r),e)),this._events.add({time:e,type:"setValueAtTime",value:r}),this._param.setValueAtTime(r,e),this}rampTo(t,e=.1,r){return this.units==="frequency"||this.units==="bpm"||this.units==="decibels"?this.exponentialRampTo(t,e,r):this.linearRampTo(t,e,r),this}apply(t){let e=this.context.currentTime;t.setValueAtTime(this.getValueAtTime(e),e);let r=this._events.get(e);if(r&&r.type==="setTargetAtTime"){let i=this._events.getAfter(r.time),n=i?i.time:e+2,s=(n-e)/10;for(let a=e;a<n;a+=s)t.linearRampToValueAtTime(this.getValueAtTime(a),a)}return this._events.forEachAfter(this.context.currentTime,i=>{i.type==="cancelScheduledValues"?t.cancelScheduledValues(i.time):i.type==="setTargetAtTime"?t.setTargetAtTime(i.value,i.time,i.constant):t[i.type](i.value,i.time)}),this}setParam(t){V(this._swappable,"The Param must be assigned as 'swappable' in the constructor");let e=this.input;return e.disconnect(this._param),this.apply(t),this._param=t,e.connect(this._param),this}dispose(){return super.dispose(),this._events.dispose(),this}get defaultValue(){return this._toType(this._param.defaultValue)}_exponentialApproach(t,e,r,i,n){return r+(e-r)*Math.exp(-(n-t)/i)}_linearInterpolate(t,e,r,i,n){return e+(i-e)*((n-t)/(r-t))}_exponentialInterpolate(t,e,r,i,n){return e*Math.pow(i/e,(n-t)/(r-t))}};var j=class o extends Wt{constructor(){super(...arguments),this._internalChannels=[]}get numberOfInputs(){return $(this.input)?Ue(this.input)||this.input instanceof nt?1:this.input.numberOfInputs:0}get numberOfOutputs(){return $(this.output)?this.output.numberOfOutputs:0}_isAudioNode(t){return $(t)&&(t instanceof o||or(t))}_getInternalNodes(){let t=this._internalChannels.slice(0);return this._isAudioNode(this.input)&&t.push(this.input),this._isAudioNode(this.output)&&this.input!==this.output&&t.push(this.output),t}_setChannelProperties(t){this._getInternalNodes().forEach(r=>{r.channelCount=t.channelCount,r.channelCountMode=t.channelCountMode,r.channelInterpretation=t.channelInterpretation})}_getChannelProperties(){let t=this._getInternalNodes();V(t.length>0,"ToneAudioNode does not have any internal nodes");let e=t[0];return{channelCount:e.channelCount,channelCountMode:e.channelCountMode,channelInterpretation:e.channelInterpretation}}get channelCount(){return this._getChannelProperties().channelCount}set channelCount(t){let e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelCount:t}))}get channelCountMode(){return this._getChannelProperties().channelCountMode}set channelCountMode(t){let e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelCountMode:t}))}get channelInterpretation(){return this._getChannelProperties().channelInterpretation}set channelInterpretation(t){let e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelInterpretation:t}))}connect(t,e=0,r=0){return Kt(this,t,e,r),this}toDestination(){return this.connect(this.context.destination),this}toMaster(){return ei("toMaster() has been renamed toDestination()"),this.toDestination()}disconnect(t,e=0,r=0){return tm(this,t,e,r),this}chain(...t){return ke(this,...t),this}fan(...t){return t.forEach(e=>this.connect(e)),this}dispose(){return super.dispose(),$(this.input)&&(this.input instanceof o?this.input.dispose():or(this.input)&&this.input.disconnect()),$(this.output)&&(this.output instanceof o?this.output.dispose():or(this.output)&&this.output.disconnect()),this._internalChannels=[],this}};function ke(...o){let t=o.shift();o.reduce((e,r)=>(e instanceof j?e.connect(r):or(e)&&Kt(e,r),r),t)}function Kt(o,t,e=0,r=0){for(V($(o),"Cannot connect from undefined node"),V($(t),"Cannot connect to undefined node"),(t instanceof j||or(t))&&V(t.numberOfInputs>0,"Cannot connect to node with no inputs"),V(o.numberOfOutputs>0,"Cannot connect from node with no outputs");t instanceof j||t instanceof nt;)$(t.input)&&(t=t.input);for(;o instanceof j;)$(o.output)&&(o=o.output);Ue(t)?o.connect(t,e):o.connect(t,e,r)}function tm(o,t,e=0,r=0){if($(t))for(;t instanceof j;)t=t.input;for(;!or(o);)$(o.output)&&(o=o.output);Ue(t)?o.disconnect(t,e):or(t)?o.disconnect(t,e,r):o.disconnect()}var Y=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["gain","units"]);super(t),this.name="Gain",this._gainNode=this.context.createGain(),this.input=this._gainNode,this.output=this._gainNode,this.gain=new nt({context:this.context,convert:t.convert,param:this._gainNode.gain,units:t.units,value:t.gain,minValue:t.minValue,maxValue:t.maxValue}),B(this,"gain")}static getDefaults(){return Object.assign(j.getDefaults(),{convert:!0,gain:1,units:"gain"})}dispose(){return super.dispose(),this._gainNode.disconnect(),this.gain.dispose(),this}};var Qe=class extends j{constructor(t){super(t),this.onended=tt,this._startTime=-1,this._stopTime=-1,this._timeout=-1,this.output=new Y({context:this.context,gain:0}),this._gainNode=this.output,this.getStateAtTime=function(e){let r=this.toSeconds(e);return this._startTime!==-1&&r>=this._startTime&&(this._stopTime===-1||r<=this._stopTime)?"started":"stopped"},this._fadeIn=t.fadeIn,this._fadeOut=t.fadeOut,this._curve=t.curve,this.onended=t.onended}static getDefaults(){return Object.assign(j.getDefaults(),{curve:"linear",fadeIn:0,fadeOut:0,onended:tt})}_startGain(t,e=1){V(this._startTime===-1,"Source cannot be started more than once");let r=this.toSeconds(this._fadeIn);return this._startTime=t+r,this._startTime=Math.max(this._startTime,this.context.currentTime),r>0?(this._gainNode.gain.setValueAtTime(0,t),this._curve==="linear"?this._gainNode.gain.linearRampToValueAtTime(e,t+r):this._gainNode.gain.exponentialApproachValueAtTime(e,t,r)):this._gainNode.gain.setValueAtTime(e,t),this}stop(t){return this.log("stop",t),this._stopGain(this.toSeconds(t)),this}_stopGain(t){V(this._startTime!==-1,"'start' must be called before 'stop'"),this.cancelStop();let e=this.toSeconds(this._fadeOut);return this._stopTime=this.toSeconds(t)+e,this._stopTime=Math.max(this._stopTime,this.now()),e>0?this._curve==="linear"?this._gainNode.gain.linearRampTo(0,e,t):this._gainNode.gain.targetRampTo(0,e,t):(this._gainNode.gain.cancelAndHoldAtTime(t),this._gainNode.gain.setValueAtTime(0,t)),this.context.clearTimeout(this._timeout),this._timeout=this.context.setTimeout(()=>{let r=this._curve==="exponential"?e*2:0;this._stopSource(this.now()+r),this._onended()},this._stopTime-this.context.currentTime),this}_onended(){if(this.onended!==tt&&(this.onended(this),this.onended=tt,!this.context.isOffline)){let t=()=>this.dispose();typeof requestIdleCallback!="undefined"?requestIdleCallback(t):setTimeout(t,10)}}get state(){return this.getStateAtTime(this.now())}cancelStop(){return this.log("cancelStop"),V(this._startTime!==-1,"Source is not started"),this._gainNode.gain.cancelScheduledValues(this._startTime+this.sampleTime),this.context.clearTimeout(this._timeout),this._stopTime=-1,this}dispose(){return super.dispose(),this._gainNode.dispose(),this.onended=tt,this}};var zo=class o extends Qe{constructor(){let t=w(o.getDefaults(),arguments,["offset"]);super(t),this.name="ToneConstantSource",this._source=this.context.createConstantSource(),Kt(this._source,this._gainNode),this.offset=new nt({context:this.context,convert:t.convert,param:this._source.offset,units:t.units,value:t.offset,minValue:t.minValue,maxValue:t.maxValue})}static getDefaults(){return Object.assign(Qe.getDefaults(),{convert:!0,offset:1,units:"number"})}start(t){let e=this.toSeconds(t);return this.log("start",e),this._startGain(e),this._source.start(e),this}_stopSource(t){this._source.stop(t)}dispose(){return super.dispose(),this.state==="started"&&this.stop(),this._source.disconnect(),this.offset.dispose(),this}};var K=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["value","units"]);super(t),this.name="Signal",this.override=!0,this.output=this._constantSource=new zo({context:this.context,convert:t.convert,offset:t.value,units:t.units,minValue:t.minValue,maxValue:t.maxValue}),this._constantSource.start(0),this.input=this._param=this._constantSource.offset}static getDefaults(){return Object.assign(j.getDefaults(),{convert:!0,units:"number",value:0})}connect(t,e=0,r=0){return $i(this,t,e,r),this}dispose(){return super.dispose(),this._param.dispose(),this._constantSource.dispose(),this}setValueAtTime(t,e){return this._param.setValueAtTime(t,e),this}getValueAtTime(t){return this._param.getValueAtTime(t)}setRampPoint(t){return this._param.setRampPoint(t),this}linearRampToValueAtTime(t,e){return this._param.linearRampToValueAtTime(t,e),this}exponentialRampToValueAtTime(t,e){return this._param.exponentialRampToValueAtTime(t,e),this}exponentialRampTo(t,e,r){return this._param.exponentialRampTo(t,e,r),this}linearRampTo(t,e,r){return this._param.linearRampTo(t,e,r),this}targetRampTo(t,e,r){return this._param.targetRampTo(t,e,r),this}exponentialApproachValueAtTime(t,e,r){return this._param.exponentialApproachValueAtTime(t,e,r),this}setTargetAtTime(t,e,r){return this._param.setTargetAtTime(t,e,r),this}setValueCurveAtTime(t,e,r,i){return this._param.setValueCurveAtTime(t,e,r,i),this}cancelScheduledValues(t){return this._param.cancelScheduledValues(t),this}cancelAndHoldAtTime(t){return this._param.cancelAndHoldAtTime(t),this}rampTo(t,e,r){return this._param.rampTo(t,e,r),this}get value(){return this._param.value}set value(t){this._param.value=t}get convert(){return this._param.convert}set convert(t){this._param.convert=t}get units(){return this._param.units}get overridden(){return this._param.overridden}set overridden(t){this._param.overridden=t}get maxValue(){return this._param.maxValue}get minValue(){return this._param.minValue}apply(t){return this._param.apply(t),this}};function $i(o,t,e,r){(t instanceof nt||Ue(t)||t instanceof K&&t.override)&&(t.cancelScheduledValues(0),t.setValueAtTime(0,0),t instanceof K&&(t.overridden=!0)),Kt(o,t,e,r)}var ms=class o extends nt{constructor(){let t=w(o.getDefaults(),arguments,["value"]);super(t),this.name="TickParam",this._events=new qt(1/0),this._multiplier=1,this._multiplier=t.multiplier,this._events.cancel(0),this._events.add({ticks:0,time:0,type:"setValueAtTime",value:this._fromType(t.value)}),this.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(nt.getDefaults(),{multiplier:1,units:"hertz",value:1})}setTargetAtTime(t,e,r){e=this.toSeconds(e),this.setRampPoint(e);let i=this._fromType(t),n=this._events.get(e),s=Math.round(Math.max(1/r,1));for(let a=0;a<=s;a++){let c=r*a+e,u=this._exponentialApproach(n.time,n.value,i,r,c);this.linearRampToValueAtTime(this._toType(u),c)}return this}setValueAtTime(t,e){let r=this.toSeconds(e);super.setValueAtTime(t,e);let i=this._events.get(r),n=this._events.previousEvent(i),s=this._getTicksUntilEvent(n,r);return i.ticks=Math.max(s,0),this}linearRampToValueAtTime(t,e){let r=this.toSeconds(e);super.linearRampToValueAtTime(t,e);let i=this._events.get(r),n=this._events.previousEvent(i),s=this._getTicksUntilEvent(n,r);return i.ticks=Math.max(s,0),this}exponentialRampToValueAtTime(t,e){e=this.toSeconds(e);let r=this._fromType(t),i=this._events.get(e),n=Math.round(Math.max((e-i.time)*10,1)),s=(e-i.time)/n;for(let a=0;a<=n;a++){let c=s*a+i.time,u=this._exponentialInterpolate(i.time,i.value,e,r,c);this.linearRampToValueAtTime(this._toType(u),c)}return this}_getTicksUntilEvent(t,e){if(t===null)t={ticks:0,time:0,type:"setValueAtTime",value:0};else if(Ft(t.ticks)){let s=this._events.previousEvent(t);t.ticks=this._getTicksUntilEvent(s,t.time)}let r=this._fromType(this.getValueAtTime(t.time)),i=this._fromType(this.getValueAtTime(e)),n=this._events.get(e);return n&&n.time===e&&n.type==="setValueAtTime"&&(i=this._fromType(this.getValueAtTime(e-this.sampleTime))),.5*(e-t.time)*(r+i)+t.ticks}getTicksAtTime(t){let e=this.toSeconds(t),r=this._events.get(e);return Math.max(this._getTicksUntilEvent(r,e),0)}getDurationOfTicks(t,e){let r=this.toSeconds(e),i=this.getTicksAtTime(e);return this.getTimeOfTick(i+t)-r}getTimeOfTick(t){let e=this._events.get(t,"ticks"),r=this._events.getAfter(t,"ticks");if(e&&e.ticks===t)return e.time;if(e&&r&&r.type==="linearRampToValueAtTime"&&e.value!==r.value){let i=this._fromType(this.getValueAtTime(e.time)),s=(this._fromType(this.getValueAtTime(r.time))-i)/(r.time-e.time),a=Math.sqrt(Math.pow(i,2)-2*s*(e.ticks-t)),c=(-i+a)/s,u=(-i-a)/s;return(c>0?c:u)+e.time}else return e?e.value===0?1/0:e.time+(t-e.ticks)/e.value:t/this._initialValue}ticksToTime(t,e){return this.getDurationOfTicks(t,e)}timeToTicks(t,e){let r=this.toSeconds(e),i=this.toSeconds(t),n=this.getTicksAtTime(r);return this.getTicksAtTime(r+i)-n}_fromType(t){return this.units==="bpm"&&this.multiplier?1/(60/t/this.multiplier):super._fromType(t)}_toType(t){return this.units==="bpm"&&this.multiplier?t/this.multiplier*60:super._toType(t)}get multiplier(){return this._multiplier}set multiplier(t){let e=this.value;this._multiplier=t,this.cancelScheduledValues(0),this.setValueAtTime(e,0)}};var fs=class o extends K{constructor(){let t=w(o.getDefaults(),arguments,["value"]);super(t),this.name="TickSignal",this.input=this._param=new ms({context:this.context,convert:t.convert,multiplier:t.multiplier,param:this._constantSource.offset,units:t.units,value:t.value})}static getDefaults(){return Object.assign(K.getDefaults(),{multiplier:1,units:"hertz",value:1})}ticksToTime(t,e){return this._param.ticksToTime(t,e)}timeToTicks(t,e){return this._param.timeToTicks(t,e)}getTimeOfTick(t){return this._param.getTimeOfTick(t)}getDurationOfTicks(t,e){return this._param.getDurationOfTicks(t,e)}getTicksAtTime(t){return this._param.getTicksAtTime(t)}get multiplier(){return this._param.multiplier}set multiplier(t){this._param.multiplier=t}dispose(){return super.dispose(),this._param.dispose(),this}};var gs=class o extends Wt{constructor(){let t=w(o.getDefaults(),arguments,["frequency"]);super(t),this.name="TickSource",this._state=new nr,this._tickOffset=new qt,this._ticksAtTime=new qt,this._secondsAtTime=new qt,this.frequency=new fs({context:this.context,units:t.units,value:t.frequency}),B(this,"frequency"),this._state.setStateAtTime("stopped",0),this.setTicksAtTime(0,0)}static getDefaults(){return Object.assign({frequency:1,units:"hertz"},Wt.getDefaults())}get state(){return this.getStateAtTime(this.now())}start(t,e){let r=this.toSeconds(t);return this._state.getValueAtTime(r)!=="started"&&(this._state.setStateAtTime("started",r),$(e)&&this.setTicksAtTime(e,r),this._ticksAtTime.cancel(r),this._secondsAtTime.cancel(r)),this}stop(t){let e=this.toSeconds(t);if(this._state.getValueAtTime(e)==="stopped"){let r=this._state.get(e);r&&r.time>0&&(this._tickOffset.cancel(r.time),this._state.cancel(r.time))}return this._state.cancel(e),this._state.setStateAtTime("stopped",e),this.setTicksAtTime(0,e),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e),this}pause(t){let e=this.toSeconds(t);return this._state.getValueAtTime(e)==="started"&&(this._state.setStateAtTime("paused",e),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e)),this}cancel(t){return t=this.toSeconds(t),this._state.cancel(t),this._tickOffset.cancel(t),this._ticksAtTime.cancel(t),this._secondsAtTime.cancel(t),this}getTicksAtTime(t){let e=this.toSeconds(t),r=this._state.getLastState("stopped",e),i=this._ticksAtTime.get(e),n={state:"paused",time:e};this._state.add(n);let s=i||r,a=i?i.ticks:0,c=null;return this._state.forEachBetween(s.time,e+this.sampleTime,u=>{let h=s.time,l=this._tickOffset.get(u.time);l&&l.time>=s.time&&(a=l.ticks,h=l.time),s.state==="started"&&u.state!=="started"&&(a+=this.frequency.getTicksAtTime(u.time)-this.frequency.getTicksAtTime(h),u.time!==n.time&&(c={state:u.state,time:u.time,ticks:a})),s=u}),this._state.remove(n),c&&this._ticksAtTime.add(c),a}get ticks(){return this.getTicksAtTime(this.now())}set ticks(t){this.setTicksAtTime(t,this.now())}get seconds(){return this.getSecondsAtTime(this.now())}set seconds(t){let e=this.now(),r=this.frequency.timeToTicks(t,e);this.setTicksAtTime(r,e)}getSecondsAtTime(t){t=this.toSeconds(t);let e=this._state.getLastState("stopped",t),r={state:"paused",time:t};this._state.add(r);let i=this._secondsAtTime.get(t),n=i||e,s=i?i.seconds:0,a=null;return this._state.forEachBetween(n.time,t+this.sampleTime,c=>{let u=n.time,h=this._tickOffset.get(c.time);h&&h.time>=n.time&&(s=h.seconds,u=h.time),n.state==="started"&&c.state!=="started"&&(s+=c.time-u,c.time!==r.time&&(a={state:c.state,time:c.time,seconds:s})),n=c}),this._state.remove(r),a&&this._secondsAtTime.add(a),s}setTicksAtTime(t,e){return e=this.toSeconds(e),this._tickOffset.cancel(e),this._tickOffset.add({seconds:this.frequency.getDurationOfTicks(t,e),ticks:t,time:e}),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e),this}getStateAtTime(t){return t=this.toSeconds(t),this._state.getValueAtTime(t)}getTimeOfTick(t,e=this.now()){let r=this._tickOffset.get(e),i=this._state.get(e),n=Math.max(r.time,i.time),s=this.frequency.getTicksAtTime(n)+t-r.ticks;return this.frequency.getTimeOfTick(s)}forEachTickBetween(t,e,r){let i=this._state.get(t);this._state.forEachBetween(t,e,s=>{i&&i.state==="started"&&s.state!=="started"&&this.forEachTickBetween(Math.max(i.time,t),s.time-this.sampleTime,r),i=s});let n=null;if(i&&i.state==="started"){let s=Math.max(i.time,t),a=this.frequency.getTicksAtTime(s),c=this.frequency.getTicksAtTime(i.time),u=a-c,h=Math.ceil(u)-u;h=ae(h,1)?0:h;let l=this.frequency.getTimeOfTick(a+h);for(;l<e;){try{r(l,Math.round(this.getTicksAtTime(l)))}catch(p){n=p;break}l+=this.frequency.getDurationOfTicks(1,l)}}if(n)throw n;return this}dispose(){return super.dispose(),this._state.dispose(),this._tickOffset.dispose(),this._ticksAtTime.dispose(),this._secondsAtTime.dispose(),this.frequency.dispose(),this}};var to=class o extends Wt{constructor(){let t=w(o.getDefaults(),arguments,["callback","frequency"]);super(t),this.name="Clock",this.callback=tt,this._lastUpdate=0,this._state=new nr("stopped"),this._boundLoop=this._loop.bind(this),this.callback=t.callback,this._tickSource=new gs({context:this.context,frequency:t.frequency,units:t.units}),this._lastUpdate=0,this.frequency=this._tickSource.frequency,B(this,"frequency"),this._state.setStateAtTime("stopped",0),this.context.on("tick",this._boundLoop)}static getDefaults(){return Object.assign(Wt.getDefaults(),{callback:tt,frequency:1,units:"hertz"})}get state(){return this._state.getValueAtTime(this.now())}start(t,e){us(this.context);let r=this.toSeconds(t);return this.log("start",r),this._state.getValueAtTime(r)!=="started"&&(this._state.setStateAtTime("started",r),this._tickSource.start(r,e),r<this._lastUpdate&&this.emit("start",r,e)),this}stop(t){let e=this.toSeconds(t);return this.log("stop",e),this._state.cancel(e),this._state.setStateAtTime("stopped",e),this._tickSource.stop(e),e<this._lastUpdate&&this.emit("stop",e),this}pause(t){let e=this.toSeconds(t);return this._state.getValueAtTime(e)==="started"&&(this._state.setStateAtTime("paused",e),this._tickSource.pause(e),e<this._lastUpdate&&this.emit("pause",e)),this}get ticks(){return Math.ceil(this.getTicksAtTime(this.now()))}set ticks(t){this._tickSource.ticks=t}get seconds(){return this._tickSource.seconds}set seconds(t){this._tickSource.seconds=t}getSecondsAtTime(t){return this._tickSource.getSecondsAtTime(t)}setTicksAtTime(t,e){return this._tickSource.setTicksAtTime(t,e),this}getTimeOfTick(t,e=this.now()){return this._tickSource.getTimeOfTick(t,e)}getTicksAtTime(t){return this._tickSource.getTicksAtTime(t)}nextTickTime(t,e){let r=this.toSeconds(e),i=this.getTicksAtTime(r);return this._tickSource.getTimeOfTick(i+t,r)}_loop(){let t=this._lastUpdate,e=this.now();this._lastUpdate=e,this.log("loop",t,e),t!==e&&(this._state.forEachBetween(t,e,r=>{switch(r.state){case"started":let i=this._tickSource.getTicksAtTime(r.time);this.emit("start",r.time,i);break;case"stopped":r.time!==0&&this.emit("stop",r.time);break;case"paused":this.emit("pause",r.time);break}}),this._tickSource.forEachTickBetween(t,e,(r,i)=>{this.callback(r,i)}))}getStateAtTime(t){let e=this.toSeconds(t);return this._state.getValueAtTime(e)}dispose(){return super.dispose(),this.context.off("tick",this._boundLoop),this._tickSource.dispose(),this._state.dispose(),this}};Gr.mixin(to);var Pe=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["volume"]);super(t),this.name="Volume",this.input=this.output=new Y({context:this.context,gain:t.volume,units:"decibels"}),this.volume=this.output.gain,B(this,"volume"),this._unmutedVolume=t.volume,this.mute=t.mute}static getDefaults(){return Object.assign(j.getDefaults(),{mute:!1,volume:0})}get mute(){return this.volume.value===-1/0}set mute(t){!this.mute&&t?(this._unmutedVolume=this.volume.value,this.volume.value=-1/0):this.mute&&!t&&(this.volume.value=this._unmutedVolume)}dispose(){return super.dispose(),this.input.dispose(),this.volume.dispose(),this}};var Bc=class o extends j{constructor(){let t=w(o.getDefaults(),arguments);super(t),this.name="Destination",this.input=new Pe({context:this.context}),this.output=new Y({context:this.context}),this.volume=this.input.volume,ke(this.input,this.output,this.context.rawContext.destination),this.mute=t.mute,this._internalChannels=[this.input,this.context.rawContext.destination,this.output]}static getDefaults(){return Object.assign(j.getDefaults(),{mute:!1,volume:0})}get mute(){return this.input.mute}set mute(t){this.input.mute=t}chain(...t){return this.input.disconnect(),t.unshift(this.input),t.push(this.output),ke(...t),this}get maxChannelCount(){return this.context.rawContext.destination.maxChannelCount}dispose(){return super.dispose(),this.volume.dispose(),this}};Br(o=>{o.destination=new Bc({context:o})});Vr(o=>{o.destination.dispose()});var Vc=class extends j{constructor(){super(...arguments),this.name="Listener",this.positionX=new nt({context:this.context,param:this.context.rawContext.listener.positionX}),this.positionY=new nt({context:this.context,param:this.context.rawContext.listener.positionY}),this.positionZ=new nt({context:this.context,param:this.context.rawContext.listener.positionZ}),this.forwardX=new nt({context:this.context,param:this.context.rawContext.listener.forwardX}),this.forwardY=new nt({context:this.context,param:this.context.rawContext.listener.forwardY}),this.forwardZ=new nt({context:this.context,param:this.context.rawContext.listener.forwardZ}),this.upX=new nt({context:this.context,param:this.context.rawContext.listener.upX}),this.upY=new nt({context:this.context,param:this.context.rawContext.listener.upY}),this.upZ=new nt({context:this.context,param:this.context.rawContext.listener.upZ})}static getDefaults(){return Object.assign(j.getDefaults(),{positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:-1,upX:0,upY:1,upZ:0})}dispose(){return super.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this.forwardX.dispose(),this.forwardY.dispose(),this.forwardZ.dispose(),this.upX.dispose(),this.upY.dispose(),this.upZ.dispose(),this}};Br(o=>{o.listener=new Vc({context:o})});Vr(o=>{o.listener.dispose()});var eo=class o extends Qt{constructor(){super(),this.name="ToneAudioBuffers",this._buffers=new Map,this._loadingCount=0;let t=w(o.getDefaults(),arguments,["urls","onload","baseUrl"],"urls");this.baseUrl=t.baseUrl,Object.keys(t.urls).forEach(e=>{this._loadingCount++;let r=t.urls[e];this.add(e,r,this._bufferLoaded.bind(this,t.onload),t.onerror)})}static getDefaults(){return{baseUrl:"",onerror:tt,onload:tt,urls:{}}}has(t){return this._buffers.has(t.toString())}get(t){return V(this.has(t),`ToneAudioBuffers has no buffer named: ${t}`),this._buffers.get(t.toString())}_bufferLoaded(t){this._loadingCount--,this._loadingCount===0&&t&&t()}get loaded(){return Array.from(this._buffers).every(([t,e])=>e.loaded)}add(t,e,r=tt,i=tt){return te(e)?(this.baseUrl&&e.trim().substring(0,11).toLowerCase()==="data:audio/"&&(this.baseUrl=""),this._buffers.set(t.toString(),new kt(this.baseUrl+e,r,i))):this._buffers.set(t.toString(),new kt(e,r,i)),this}dispose(){return super.dispose(),this._buffers.forEach(t=>t.dispose()),this._buffers.clear(),this}};var Yo=class o extends ce{constructor(){super(...arguments),this.name="MidiClass",this.defaultUnits="midi"}_frequencyToUnits(t){return He(super._frequencyToUnits(t))}_ticksToUnits(t){return He(super._ticksToUnits(t))}_beatsToUnits(t){return He(super._beatsToUnits(t))}_secondsToUnits(t){return He(super._secondsToUnits(t))}toMidi(){return this.valueOf()}toFrequency(){return Uo(this.toMidi())}transpose(t){return new o(this.context,this.toMidi()+t)}};var Ce=class extends De{constructor(){super(...arguments),this.name="Ticks",this.defaultUnits="i"}_now(){return this.context.transport.ticks}_beatsToUnits(t){return this._getPPQ()*t}_secondsToUnits(t){return Math.floor(t/(60/this._getBpm())*this._getPPQ())}_ticksToUnits(t){return t}toTicks(){return this.valueOf()}toSeconds(){return this.valueOf()/this._getPPQ()*(60/this._getBpm())}};var Gc=class extends Wt{constructor(){super(...arguments),this.name="Draw",this.expiration=.25,this.anticipation=.008,this._events=new qt,this._boundDrawLoop=this._drawLoop.bind(this),this._animationFrame=-1}schedule(t,e){return this._events.add({callback:t,time:this.toSeconds(e)}),this._events.length===1&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop)),this}cancel(t){return this._events.cancel(this.toSeconds(t)),this}_drawLoop(){let t=this.context.currentTime;this._events.forEachBefore(t+this.anticipation,e=>{t-e.time<=this.expiration&&e.callback(),this._events.remove(e)}),this._events.length>0&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop))}dispose(){return super.dispose(),this._events.dispose(),cancelAnimationFrame(this._animationFrame),this}};Br(o=>{o.draw=new Gc({context:o})});Vr(o=>{o.draw.dispose()});var xs=class extends Qt{constructor(){super(...arguments),this.name="IntervalTimeline",this._root=null,this._length=0}add(t){V($(t.time),"Events must have a time property"),V($(t.duration),"Events must have a duration parameter"),t.time=t.time.valueOf();let e=new qc(t.time,t.time+t.duration,t);for(this._root===null?this._root=e:this._root.insert(e),this._length++;e!==null;)e.updateHeight(),e.updateMax(),this._rebalance(e),e=e.parent;return this}remove(t){if(this._root!==null){let e=[];this._root.search(t.time,e);for(let r of e)if(r.event===t){this._removeNode(r),this._length--;break}}return this}get length(){return this._length}cancel(t){return this.forEachFrom(t,e=>this.remove(e)),this}_setRoot(t){this._root=t,this._root!==null&&(this._root.parent=null)}_replaceNodeInParent(t,e){t.parent!==null?(t.isLeftChild()?t.parent.left=e:t.parent.right=e,this._rebalance(t.parent)):this._setRoot(e)}_removeNode(t){if(t.left===null&&t.right===null)this._replaceNodeInParent(t,null);else if(t.right===null)this._replaceNodeInParent(t,t.left);else if(t.left===null)this._replaceNodeInParent(t,t.right);else{let e=t.getBalance(),r,i=null;if(e>0)if(t.left.right===null)r=t.left,r.right=t.right,i=r;else{for(r=t.left.right;r.right!==null;)r=r.right;r.parent&&(r.parent.right=r.left,i=r.parent,r.left=t.left,r.right=t.right)}else if(t.right.left===null)r=t.right,r.left=t.left,i=r;else{for(r=t.right.left;r.left!==null;)r=r.left;r.parent&&(r.parent.left=r.right,i=r.parent,r.left=t.left,r.right=t.right)}t.parent!==null?t.isLeftChild()?t.parent.left=r:t.parent.right=r:this._setRoot(r),i&&this._rebalance(i)}t.dispose()}_rotateLeft(t){let e=t.parent,r=t.isLeftChild(),i=t.right;i&&(t.right=i.left,i.left=t),e!==null?r?e.left=i:e.right=i:this._setRoot(i)}_rotateRight(t){let e=t.parent,r=t.isLeftChild(),i=t.left;i&&(t.left=i.right,i.right=t),e!==null?r?e.left=i:e.right=i:this._setRoot(i)}_rebalance(t){let e=t.getBalance();e>1&&t.left?t.left.getBalance()<0?this._rotateLeft(t.left):this._rotateRight(t):e<-1&&t.right&&(t.right.getBalance()>0?this._rotateRight(t.right):this._rotateLeft(t))}get(t){if(this._root!==null){let e=[];if(this._root.search(t,e),e.length>0){let r=e[0];for(let i=1;i<e.length;i++)e[i].low>r.low&&(r=e[i]);return r.event}}return null}forEach(t){if(this._root!==null){let e=[];this._root.traverse(r=>e.push(r)),e.forEach(r=>{r.event&&t(r.event)})}return this}forEachAtTime(t,e){if(this._root!==null){let r=[];this._root.search(t,r),r.forEach(i=>{i.event&&e(i.event)})}return this}forEachFrom(t,e){if(this._root!==null){let r=[];this._root.searchAfter(t,r),r.forEach(i=>{i.event&&e(i.event)})}return this}dispose(){return super.dispose(),this._root!==null&&this._root.traverse(t=>t.dispose()),this._root=null,this}},qc=class{constructor(t,e,r){this._left=null,this._right=null,this.parent=null,this.height=0,this.event=r,this.low=t,this.high=e,this.max=this.high}insert(t){t.low<=this.low?this.left===null?this.left=t:this.left.insert(t):this.right===null?this.right=t:this.right.insert(t)}search(t,e){t>this.max||(this.left!==null&&this.left.search(t,e),this.low<=t&&this.high>t&&e.push(this),!(this.low>t)&&this.right!==null&&this.right.search(t,e))}searchAfter(t,e){this.low>=t&&(e.push(this),this.left!==null&&this.left.searchAfter(t,e)),this.right!==null&&this.right.searchAfter(t,e)}traverse(t){t(this),this.left!==null&&this.left.traverse(t),this.right!==null&&this.right.traverse(t)}updateHeight(){this.left!==null&&this.right!==null?this.height=Math.max(this.left.height,this.right.height)+1:this.right!==null?this.height=this.right.height+1:this.left!==null?this.height=this.left.height+1:this.height=0}updateMax(){this.max=this.high,this.left!==null&&(this.max=Math.max(this.max,this.left.max)),this.right!==null&&(this.max=Math.max(this.max,this.right.max))}getBalance(){let t=0;return this.left!==null&&this.right!==null?t=this.left.height-this.right.height:this.left!==null?t=this.left.height+1:this.right!==null&&(t=-(this.right.height+1)),t}isLeftChild(){return this.parent!==null&&this.parent.left===this}get left(){return this._left}set left(t){this._left=t,t!==null&&(t.parent=this),this.updateHeight(),this.updateMax()}get right(){return this._right}set right(t){this._right=t,t!==null&&(t.parent=this),this.updateHeight(),this.updateMax()}dispose(){this.parent=null,this._left=null,this._right=null,this.event=null}};var ys=class extends Qt{constructor(t){super(),this.name="TimelineValue",this._timeline=new qt({memory:10}),this._initialValue=t}set(t,e){return this._timeline.add({value:t,time:e}),this}get(t){let e=this._timeline.get(t);return e?e.value:this._initialValue}};var ie=class o extends j{constructor(){super(w(o.getDefaults(),arguments,["context"]))}connect(t,e=0,r=0){return $i(this,t,e,r),this}};var le=class o extends ie{constructor(){let t=w(o.getDefaults(),arguments,["mapping","length"]);super(t),this.name="WaveShaper",this._shaper=this.context.createWaveShaper(),this.input=this._shaper,this.output=this._shaper,Ot(t.mapping)||t.mapping instanceof Float32Array?this.curve=Float32Array.from(t.mapping):kd(t.mapping)&&this.setMap(t.mapping,t.length)}static getDefaults(){return Object.assign(K.getDefaults(),{length:1024})}setMap(t,e=1024){let r=new Float32Array(e);for(let i=0,n=e;i<n;i++){let s=i/(n-1)*2-1;r[i]=t(s,i)}return this.curve=r,this}get curve(){return this._shaper.curve}set curve(t){this._shaper.curve=t}get oversample(){return this._shaper.oversample}set oversample(t){let e=["none","2x","4x"].some(r=>r.includes(t));V(e,"oversampling must be either 'none', '2x', or '4x'"),this._shaper.oversample=t}dispose(){return super.dispose(),this._shaper.disconnect(),this}};var ro=class o extends ie{constructor(){let t=w(o.getDefaults(),arguments,["value"]);super(t),this.name="Pow",this._exponentScaler=this.input=this.output=new le({context:this.context,mapping:this._expFunc(t.value),length:8192}),this._exponent=t.value}static getDefaults(){return Object.assign(ie.getDefaults(),{value:1})}_expFunc(t){return e=>Math.pow(Math.abs(e),t)}get value(){return this._exponent}set value(t){this._exponent=t,this._exponentScaler.setMap(this._expFunc(this._exponent))}dispose(){return super.dispose(),this._exponentScaler.dispose(),this}};var yr=class o{constructor(t,e){this.id=o._eventId++,this._remainderTime=0;let r=Object.assign(o.getDefaults(),e);this.transport=t,this.callback=r.callback,this._once=r.once,this.time=Math.floor(r.time),this._remainderTime=r.time-this.time}static getDefaults(){return{callback:tt,once:!1,time:0}}get floatTime(){return this.time+this._remainderTime}invoke(t){if(this.callback){let e=this.transport.bpm.getDurationOfTicks(1,t);this.callback(t+this._remainderTime*e),this._once&&this.transport.clear(this.id)}}dispose(){return this.callback=void 0,this}};yr._eventId=0;var bs=class o extends yr{constructor(t,e){super(t,e),this._currentId=-1,this._nextId=-1,this._nextTick=this.time,this._boundRestart=this._restart.bind(this);let r=Object.assign(o.getDefaults(),e);this.duration=r.duration,this._interval=r.interval,this._nextTick=r.time,this.transport.on("start",this._boundRestart),this.transport.on("loopStart",this._boundRestart),this.transport.on("ticks",this._boundRestart),this.context=this.transport.context,this._restart()}static getDefaults(){return Object.assign({},yr.getDefaults(),{duration:1/0,interval:1,once:!1})}invoke(t){this._createEvents(t),super.invoke(t)}_createEvent(){return ri(this._nextTick,this.floatTime+this.duration)?this.transport.scheduleOnce(this.invoke.bind(this),new Ce(this.context,this._nextTick).toSeconds()):-1}_createEvents(t){ri(this._nextTick+this._interval,this.floatTime+this.duration)&&(this._nextTick+=this._interval,this._currentId=this._nextId,this._nextId=this.transport.scheduleOnce(this.invoke.bind(this),new Ce(this.context,this._nextTick).toSeconds()))}_restart(t){this.transport.clear(this._currentId),this.transport.clear(this._nextId),this._nextTick=this.floatTime;let e=this.transport.getTicksAtTime(t);xr(e,this.time)&&(this._nextTick=this.floatTime+Math.ceil((e-this.floatTime)/this._interval)*this._interval),this._currentId=this._createEvent(),this._nextTick+=this._interval,this._nextId=this._createEvent()}dispose(){return super.dispose(),this.transport.clear(this._currentId),this.transport.clear(this._nextId),this.transport.off("start",this._boundRestart),this.transport.off("loopStart",this._boundRestart),this.transport.off("ticks",this._boundRestart),this}};var As=class o extends Wt{constructor(){let t=w(o.getDefaults(),arguments);super(t),this.name="Transport",this._loop=new ys(!1),this._loopStart=0,this._loopEnd=0,this._scheduledEvents={},this._timeline=new qt,this._repeatedEvents=new xs,this._syncedSignals=[],this._swingAmount=0,this._ppq=t.ppq,this._clock=new to({callback:this._processTick.bind(this),context:this.context,frequency:0,units:"bpm"}),this._bindClockEvents(),this.bpm=this._clock.frequency,this._clock.frequency.multiplier=t.ppq,this.bpm.setValueAtTime(t.bpm,0),B(this,"bpm"),this._timeSignature=t.timeSignature,this._swingTicks=t.ppq/2}static getDefaults(){return Object.assign(Wt.getDefaults(),{bpm:120,loopEnd:"4m",loopStart:0,ppq:192,swing:0,swingSubdivision:"8n",timeSignature:4})}_processTick(t,e){if(this._loop.get(t)&&e>=this._loopEnd&&(this.emit("loopEnd",t),this._clock.setTicksAtTime(this._loopStart,t),e=this._loopStart,this.emit("loopStart",t,this._clock.getSecondsAtTime(t)),this.emit("loop",t)),this._swingAmount>0&&e%this._ppq!==0&&e%(this._swingTicks*2)!==0){let r=e%(this._swingTicks*2)/(this._swingTicks*2),i=Math.sin(r*Math.PI)*this._swingAmount;t+=new Ce(this.context,this._swingTicks*2/3).toSeconds()*i}Pc(!0),this._timeline.forEachAtTime(e,r=>r.invoke(t)),Pc(!1)}schedule(t,e){let r=new yr(this,{callback:t,time:new De(this.context,e).toTicks()});return this._addEvent(r,this._timeline)}scheduleRepeat(t,e,r,i=1/0){let n=new bs(this,{callback:t,duration:new Ae(this.context,i).toTicks(),interval:new Ae(this.context,e).toTicks(),time:new De(this.context,r).toTicks()});return this._addEvent(n,this._repeatedEvents)}scheduleOnce(t,e){let r=new yr(this,{callback:t,once:!0,time:new De(this.context,e).toTicks()});return this._addEvent(r,this._timeline)}clear(t){if(this._scheduledEvents.hasOwnProperty(t)){let e=this._scheduledEvents[t.toString()];e.timeline.remove(e.event),e.event.dispose(),delete this._scheduledEvents[t.toString()]}return this}_addEvent(t,e){return this._scheduledEvents[t.id.toString()]={event:t,timeline:e},e.add(t),t.id}cancel(t=0){let e=this.toTicks(t);return this._timeline.forEachFrom(e,r=>this.clear(r.id)),this._repeatedEvents.forEachFrom(e,r=>this.clear(r.id)),this}_bindClockEvents(){this._clock.on("start",(t,e)=>{e=new Ce(this.context,e).toSeconds(),this.emit("start",t,e)}),this._clock.on("stop",t=>{this.emit("stop",t)}),this._clock.on("pause",t=>{this.emit("pause",t)})}get state(){return this._clock.getStateAtTime(this.now())}start(t,e){this.context.resume();let r;return $(e)&&(r=this.toTicks(e)),this._clock.start(t,r),this}stop(t){return this._clock.stop(t),this}pause(t){return this._clock.pause(t),this}toggle(t){return t=this.toSeconds(t),this._clock.getStateAtTime(t)!=="started"?this.start(t):this.stop(t),this}get timeSignature(){return this._timeSignature}set timeSignature(t){Ot(t)&&(t=t[0]/t[1]*4),this._timeSignature=t}get loopStart(){return new Ae(this.context,this._loopStart,"i").toSeconds()}set loopStart(t){this._loopStart=this.toTicks(t)}get loopEnd(){return new Ae(this.context,this._loopEnd,"i").toSeconds()}set loopEnd(t){this._loopEnd=this.toTicks(t)}get loop(){return this._loop.get(this.now())}set loop(t){this._loop.set(t,this.now())}setLoopPoints(t,e){return this.loopStart=t,this.loopEnd=e,this}get swing(){return this._swingAmount}set swing(t){this._swingAmount=t}get swingSubdivision(){return new Ce(this.context,this._swingTicks).toNotation()}set swingSubdivision(t){this._swingTicks=this.toTicks(t)}get position(){let t=this.now(),e=this._clock.getTicksAtTime(t);return new Ce(this.context,e).toBarsBeatsSixteenths()}set position(t){let e=this.toTicks(t);this.ticks=e}get seconds(){return this._clock.seconds}set seconds(t){let e=this.now(),r=this._clock.frequency.timeToTicks(t,e);this.ticks=r}get progress(){if(this.loop){let t=this.now();return(this._clock.getTicksAtTime(t)-this._loopStart)/(this._loopEnd-this._loopStart)}else return 0}get ticks(){return this._clock.ticks}set ticks(t){if(this._clock.ticks!==t){let e=this.now();if(this.state==="started"){let r=this._clock.getTicksAtTime(e),i=this._clock.frequency.getDurationOfTicks(Math.ceil(r)-r,e),n=e+i;this.emit("stop",n),this._clock.setTicksAtTime(t,n),this.emit("start",n,this._clock.getSecondsAtTime(n))}else this.emit("ticks",e),this._clock.setTicksAtTime(t,e)}}getTicksAtTime(t){return this._clock.getTicksAtTime(t)}getSecondsAtTime(t){return this._clock.getSecondsAtTime(t)}get PPQ(){return this._clock.frequency.multiplier}set PPQ(t){this._clock.frequency.multiplier=t}nextSubdivision(t){if(t=this.toTicks(t),this.state!=="started")return 0;{let e=this.now(),r=this.getTicksAtTime(e),i=t-r%t;return this._clock.nextTickTime(i,e)}}syncSignal(t,e){let r=this.now(),i=this.bpm,n=1/(60/i.getValueAtTime(r)/this.PPQ),s=[];if(t.units==="time"){let c=.015625/n,u=new Y(c),h=new ro(-1),l=new Y(c);i.chain(u,h,l),i=l,n=1/n,s=[u,h,l]}e||(t.getValueAtTime(r)!==0?e=t.getValueAtTime(r)/n:e=0);let a=new Y(e);return i.connect(a),a.connect(t._param),s.push(a),this._syncedSignals.push({initial:t.value,nodes:s,signal:t}),t.value=0,this}unsyncSignal(t){for(let e=this._syncedSignals.length-1;e>=0;e--){let r=this._syncedSignals[e];r.signal===t&&(r.nodes.forEach(i=>i.dispose()),r.signal.value=r.initial,this._syncedSignals.splice(e,1))}return this}dispose(){return super.dispose(),this._clock.dispose(),oi(this,"bpm"),this._timeline.dispose(),this._repeatedEvents.dispose(),this}};Gr.mixin(As);Br(o=>{o.transport=new As({context:o})});Vr(o=>{o.transport.dispose()});var mt=class extends j{constructor(t){super(t),this.input=void 0,this._state=new nr("stopped"),this._synced=!1,this._scheduled=[],this._syncedStart=tt,this._syncedStop=tt,this._state.memory=100,this._state.increasing=!0,this._volume=this.output=new Pe({context:this.context,mute:t.mute,volume:t.volume}),this.volume=this._volume.volume,B(this,"volume"),this.onstop=t.onstop}static getDefaults(){return Object.assign(j.getDefaults(),{mute:!1,onstop:tt,volume:0})}get state(){return this._synced?this.context.transport.state==="started"?this._state.getValueAtTime(this.context.transport.seconds):"stopped":this._state.getValueAtTime(this.now())}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}_clampToCurrentTime(t){return this._synced?t:Math.max(t,this.context.currentTime)}start(t,e,r){let i=Ft(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t);if(i=this._clampToCurrentTime(i),!this._synced&&this._state.getValueAtTime(i)==="started")V(xr(i,this._state.get(i).time),"Start time must be strictly greater than previous start time"),this._state.cancel(i),this._state.setStateAtTime("started",i),this.log("restart",i),this.restart(i,e,r);else if(this.log("start",i),this._state.setStateAtTime("started",i),this._synced){let n=this._state.get(i);n&&(n.offset=this.toSeconds(be(e,0)),n.duration=r?this.toSeconds(r):void 0);let s=this.context.transport.schedule(a=>{this._start(a,e,r)},i);this._scheduled.push(s),this.context.transport.state==="started"&&this.context.transport.getSecondsAtTime(this.immediate())>i&&this._syncedStart(this.now(),this.context.transport.seconds)}else us(this.context),this._start(i,e,r);return this}stop(t){let e=Ft(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t);if(e=this._clampToCurrentTime(e),this._state.getValueAtTime(e)==="started"||$(this._state.getNextState("started",e))){if(this.log("stop",e),!this._synced)this._stop(e);else{let r=this.context.transport.schedule(this._stop.bind(this),e);this._scheduled.push(r)}this._state.cancel(e),this._state.setStateAtTime("stopped",e)}return this}restart(t,e,r){return t=this.toSeconds(t),this._state.getValueAtTime(t)==="started"&&(this._state.cancel(t),this._restart(t,e,r)),this}sync(){return this._synced||(this._synced=!0,this._syncedStart=(t,e)=>{if(xr(e,0)){let r=this._state.get(e);if(r&&r.state==="started"&&r.time!==e){let i=e-this.toSeconds(r.time),n;r.duration&&(n=this.toSeconds(r.duration)-i),this._start(t,this.toSeconds(r.offset)+i,n)}}},this._syncedStop=t=>{let e=this.context.transport.getSecondsAtTime(Math.max(t-this.sampleTime,0));this._state.getValueAtTime(e)==="started"&&this._stop(t)},this.context.transport.on("start",this._syncedStart),this.context.transport.on("loopStart",this._syncedStart),this.context.transport.on("stop",this._syncedStop),this.context.transport.on("pause",this._syncedStop),this.context.transport.on("loopEnd",this._syncedStop)),this}unsync(){return this._synced&&(this.context.transport.off("stop",this._syncedStop),this.context.transport.off("pause",this._syncedStop),this.context.transport.off("loopEnd",this._syncedStop),this.context.transport.off("start",this._syncedStart),this.context.transport.off("loopStart",this._syncedStart)),this._synced=!1,this._scheduled.forEach(t=>this.context.transport.clear(t)),this._scheduled=[],this._state.cancel(0),this._stop(0),this}dispose(){return super.dispose(),this.onstop=tt,this.unsync(),this._volume.dispose(),this._state.dispose(),this}};var sr=class o extends Qe{constructor(){let t=w(o.getDefaults(),arguments,["url","onload"]);super(t),this.name="ToneBufferSource",this._source=this.context.createBufferSource(),this._internalChannels=[this._source],this._sourceStarted=!1,this._sourceStopped=!1,Kt(this._source,this._gainNode),this._source.onended=()=>this._stopSource(),this.playbackRate=new nt({context:this.context,param:this._source.playbackRate,units:"positive",value:t.playbackRate}),this.loop=t.loop,this.loopStart=t.loopStart,this.loopEnd=t.loopEnd,this._buffer=new kt(t.url,t.onload,t.onerror),this._internalChannels.push(this._source)}static getDefaults(){return Object.assign(Qe.getDefaults(),{url:new kt,loop:!1,loopEnd:0,loopStart:0,onload:tt,onerror:tt,playbackRate:1})}get fadeIn(){return this._fadeIn}set fadeIn(t){this._fadeIn=t}get fadeOut(){return this._fadeOut}set fadeOut(t){this._fadeOut=t}get curve(){return this._curve}set curve(t){this._curve=t}start(t,e,r,i=1){V(this.buffer.loaded,"buffer is either not set or not loaded");let n=this.toSeconds(t);this._startGain(n,i),this.loop?e=be(e,this.loopStart):e=be(e,0);let s=Math.max(this.toSeconds(e),0);if(this.loop){let a=this.toSeconds(this.loopEnd)||this.buffer.duration,c=this.toSeconds(this.loopStart),u=a-c;Wo(s,a)&&(s=(s-c)%u+c),ae(s,this.buffer.duration)&&(s=0)}if(this._source.buffer=this.buffer.get(),this._source.loopEnd=this.toSeconds(this.loopEnd)||this.buffer.duration,ri(s,this.buffer.duration)&&(this._sourceStarted=!0,this._source.start(n,s)),$(r)){let a=this.toSeconds(r);a=Math.max(a,0),this.stop(n+a)}return this}_stopSource(t){!this._sourceStopped&&this._sourceStarted&&(this._sourceStopped=!0,this._source.stop(this.toSeconds(t)),this._onended())}get loopStart(){return this._source.loopStart}set loopStart(t){this._source.loopStart=this.toSeconds(t)}get loopEnd(){return this._source.loopEnd}set loopEnd(t){this._source.loopEnd=this.toSeconds(t)}get buffer(){return this._buffer}set buffer(t){this._buffer.set(t)}get loop(){return this._source.loop}set loop(t){this._source.loop=t,this._sourceStarted&&this.cancelStop()}dispose(){return super.dispose(),this._source.onended=null,this._source.disconnect(),this._buffer.dispose(),this.playbackRate.dispose(),this}};var si=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["type"]);super(t),this.name="Noise",this._source=null,this._playbackRate=t.playbackRate,this.type=t.type,this._fadeIn=t.fadeIn,this._fadeOut=t.fadeOut}static getDefaults(){return Object.assign(mt.getDefaults(),{fadeIn:0,fadeOut:0,playbackRate:1,type:"white"})}get type(){return this._type}set type(t){if(V(t in em,"Noise: invalid type: "+t),this._type!==t&&(this._type=t,this.state==="started")){let e=this.now();this._stop(e),this._start(e)}}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t,this._source&&(this._source.playbackRate.value=t)}_start(t){let e=em[this._type];this._source=new sr({url:e,context:this.context,fadeIn:this._fadeIn,fadeOut:this._fadeOut,loop:!0,onended:()=>this.onstop(this),playbackRate:this._playbackRate}).connect(this.output),this._source.start(this.toSeconds(t),Math.random()*(e.duration-.001))}_stop(t){this._source&&(this._source.stop(this.toSeconds(t)),this._source=null)}get fadeIn(){return this._fadeIn}set fadeIn(t){this._fadeIn=t,this._source&&(this._source.fadeIn=this._fadeIn)}get fadeOut(){return this._fadeOut}set fadeOut(t){this._fadeOut=t,this._source&&(this._source.fadeOut=this._fadeOut)}_restart(t){this._stop(t),this._start(t)}dispose(){return super.dispose(),this._source&&this._source.disconnect(),this}},io=44100*5,Wc=2,br={brown:null,pink:null,white:null},em={get brown(){if(!br.brown){let o=[];for(let t=0;t<Wc;t++){let e=new Float32Array(io);o[t]=e;let r=0;for(let i=0;i<io;i++){let n=Math.random()*2-1;e[i]=(r+.02*n)/1.02,r=e[i],e[i]*=3.5}}br.brown=new kt().fromArray(o)}return br.brown},get pink(){if(!br.pink){let o=[];for(let t=0;t<Wc;t++){let e=new Float32Array(io);o[t]=e;let r,i,n,s,a,c,u;r=i=n=s=a=c=u=0;for(let h=0;h<io;h++){let l=Math.random()*2-1;r=.99886*r+l*.0555179,i=.99332*i+l*.0750759,n=.969*n+l*.153852,s=.8665*s+l*.3104856,a=.55*a+l*.5329522,c=-.7616*c-l*.016898,e[h]=r+i+n+s+a+c+u+l*.5362,e[h]*=.11,u=l*.115926}}br.pink=new kt().fromArray(o)}return br.pink},get white(){if(!br.white){let o=[];for(let t=0;t<Wc;t++){let e=new Float32Array(io);o[t]=e;for(let r=0;r<io;r++)e[r]=Math.random()*2-1}br.white=new kt().fromArray(o)}return br.white}};function pe(o,t){return lt(this,void 0,void 0,function*(){let e=t/o.context.sampleRate,r=new Ye(1,e,o.context.sampleRate);return new o.constructor(Object.assign(o.get(),{frequency:2/e,detune:0,context:r})).toDestination().start(0),(yield r.render()).getChannelData(0)})}var Ho=class o extends Qe{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type"]);super(t),this.name="ToneOscillatorNode",this._oscillator=this.context.createOscillator(),this._internalChannels=[this._oscillator],Kt(this._oscillator,this._gainNode),this.type=t.type,this.frequency=new nt({context:this.context,param:this._oscillator.frequency,units:"frequency",value:t.frequency}),this.detune=new nt({context:this.context,param:this._oscillator.detune,units:"cents",value:t.detune}),B(this,["frequency","detune"])}static getDefaults(){return Object.assign(Qe.getDefaults(),{detune:0,frequency:440,type:"sine"})}start(t){let e=this.toSeconds(t);return this.log("start",e),this._startGain(e),this._oscillator.start(e),this}_stopSource(t){this._oscillator.stop(t)}setPeriodicWave(t){return this._oscillator.setPeriodicWave(t),this}get type(){return this._oscillator.type}set type(t){this._oscillator.type=t}dispose(){return super.dispose(),this.state==="started"&&this.stop(),this._oscillator.disconnect(),this.frequency.dispose(),this.detune.dispose(),this}};var Rt=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type"]);super(t),this.name="Oscillator",this._oscillator=null,this.frequency=new K({context:this.context,units:"frequency",value:t.frequency}),B(this,"frequency"),this.detune=new K({context:this.context,units:"cents",value:t.detune}),B(this,"detune"),this._partials=t.partials,this._partialCount=t.partialCount,this._type=t.type,t.partialCount&&t.type!=="custom"&&(this._type=this.baseType+t.partialCount.toString()),this.phase=t.phase}static getDefaults(){return Object.assign(mt.getDefaults(),{detune:0,frequency:440,partialCount:0,partials:[],phase:0,type:"sine"})}_start(t){let e=this.toSeconds(t),r=new Ho({context:this.context,onended:()=>this.onstop(this)});this._oscillator=r,this._wave?this._oscillator.setPeriodicWave(this._wave):this._oscillator.type=this._type,this._oscillator.connect(this.output),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.start(e)}_stop(t){let e=this.toSeconds(t);this._oscillator&&this._oscillator.stop(e)}_restart(t){let e=this.toSeconds(t);return this.log("restart",e),this._oscillator&&this._oscillator.cancelStop(),this._state.cancel(e),this}syncFrequency(){return this.context.transport.syncSignal(this.frequency),this}unsyncFrequency(){return this.context.transport.unsyncSignal(this.frequency),this}_getCachedPeriodicWave(){if(this._type==="custom")return o._periodicWaveCache.find(e=>e.phase===this._phase&&zd(e.partials,this._partials));{let t=o._periodicWaveCache.find(e=>e.type===this._type&&e.phase===this._phase);return this._partialCount=t?t.partialCount:this._partialCount,t}}get type(){return this._type}set type(t){this._type=t;let e=["sine","square","sawtooth","triangle"].indexOf(t)!==-1;if(this._phase===0&&e)this._wave=void 0,this._partialCount=0,this._oscillator!==null&&(this._oscillator.type=t);else{let r=this._getCachedPeriodicWave();if($(r)){let{partials:i,wave:n}=r;this._wave=n,this._partials=i,this._oscillator!==null&&this._oscillator.setPeriodicWave(this._wave)}else{let[i,n]=this._getRealImaginary(t,this._phase),s=this.context.createPeriodicWave(i,n);this._wave=s,this._oscillator!==null&&this._oscillator.setPeriodicWave(this._wave),o._periodicWaveCache.push({imag:n,partialCount:this._partialCount,partials:this._partials,phase:this._phase,real:i,type:this._type,wave:this._wave}),o._periodicWaveCache.length>100&&o._periodicWaveCache.shift()}}}get baseType(){return this._type.replace(this.partialCount.toString(),"")}set baseType(t){this.partialCount&&this._type!=="custom"&&t!=="custom"?this.type=t+this.partialCount:this.type=t}get partialCount(){return this._partialCount}set partialCount(t){Dt(t,0);let e=this._type,r=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(this._type);if(r&&(e=r[1]),this._type!=="custom")t===0?this.type=e:this.type=e+t.toString();else{let i=new Float32Array(t);this._partials.forEach((n,s)=>i[s]=n),this._partials=Array.from(i),this.type=this._type}}_getRealImaginary(t,e){let i=2048,n=new Float32Array(i),s=new Float32Array(i),a=1;if(t==="custom"){if(a=this._partials.length+1,this._partialCount=this._partials.length,i=a,this._partials.length===0)return[n,s]}else{let c=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(t);c?(a=parseInt(c[2],10)+1,this._partialCount=parseInt(c[2],10),t=c[1],a=Math.max(a,2),i=a):this._partialCount=0,this._partials=[]}for(let c=1;c<i;++c){let u=2/(c*Math.PI),h;switch(t){case"sine":h=c<=a?1:0,this._partials[c-1]=h;break;case"square":h=c&1?2*u:0,this._partials[c-1]=h;break;case"sawtooth":h=u*(c&1?1:-1),this._partials[c-1]=h;break;case"triangle":c&1?h=2*(u*u)*(c-1>>1&1?-1:1):h=0,this._partials[c-1]=h;break;case"custom":h=this._partials[c-1];break;default:throw new TypeError("Oscillator: invalid type: "+t)}h!==0?(n[c]=-h*Math.sin(e*c),s[c]=h*Math.cos(e*c)):(n[c]=0,s[c]=0)}return[n,s]}_inverseFFT(t,e,r){let i=0,n=t.length;for(let s=0;s<n;s++)i+=t[s]*Math.cos(s*r)+e[s]*Math.sin(s*r);return i}getInitialValue(){let[t,e]=this._getRealImaginary(this._type,0),r=0,i=Math.PI*2,n=32;for(let s=0;s<n;s++)r=Math.max(this._inverseFFT(t,e,s/n*i),r);return jc(-this._inverseFFT(t,e,this._phase)/r,-1,1)}get partials(){return this._partials.slice(0,this.partialCount)}set partials(t){this._partials=t,this._partialCount=this._partials.length,t.length&&(this.type="custom")}get phase(){return this._phase*(180/Math.PI)}set phase(t){this._phase=t*Math.PI/180,this.type=this._type}asArray(){return lt(this,arguments,void 0,function*(t=1024){return pe(this,t)})}dispose(){return super.dispose(),this._oscillator!==null&&this._oscillator.dispose(),this._wave=void 0,this.frequency.dispose(),this.detune.dispose(),this}};Rt._periodicWaveCache=[];var oo=class extends ie{constructor(){super(...arguments),this.name="AudioToGain",this._norm=new le({context:this.context,mapping:t=>(t+1)/2}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}};var Ut=class o extends K{constructor(){let t=w(o.getDefaults(),arguments,["value"]);super(t),this.name="Multiply",this.override=!1,this._mult=this.input=this.output=new Y({context:this.context,minValue:t.minValue,maxValue:t.maxValue}),this.factor=this._param=this._mult.gain,this.factor.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(K.getDefaults(),{value:0})}dispose(){return super.dispose(),this._mult.dispose(),this}};var Qo=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type","modulationType"]);super(t),this.name="AMOscillator",this._modulationScale=new oo({context:this.context}),this._modulationNode=new Y({context:this.context}),this._carrier=new Rt({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase,type:t.type}),this.frequency=this._carrier.frequency,this.detune=this._carrier.detune,this._modulator=new Rt({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new Ut({context:this.context,units:"positive",value:t.harmonicity}),this.frequency.chain(this.harmonicity,this._modulator.frequency),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),B(this,["frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(Rt.getDefaults(),{harmonicity:1,modulationType:"square"})}_start(t){this._modulator.start(t),this._carrier.start(t)}_stop(t){this._modulator.stop(t),this._carrier.stop(t)}_restart(t){this._modulator.restart(t),this._carrier.restart(t)}get type(){return this._carrier.type}set type(t){this._carrier.type=t}get baseType(){return this._carrier.baseType}set baseType(t){this._carrier.baseType=t}get partialCount(){return this._carrier.partialCount}set partialCount(t){this._carrier.partialCount=t}get modulationType(){return this._modulator.type}set modulationType(t){this._modulator.type=t}get phase(){return this._carrier.phase}set phase(t){this._carrier.phase=t,this._modulator.phase=t}get partials(){return this._carrier.partials}set partials(t){this._carrier.partials=t}asArray(){return lt(this,arguments,void 0,function*(t=1024){return pe(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this._modulationScale.dispose(),this}};var no=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type","modulationType"]);super(t),this.name="FMOscillator",this._modulationNode=new Y({context:this.context,gain:0}),this._carrier=new Rt({context:this.context,detune:t.detune,frequency:0,onstop:()=>this.onstop(this),phase:t.phase,type:t.type}),this.detune=this._carrier.detune,this.frequency=new K({context:this.context,units:"frequency",value:t.frequency}),this._modulator=new Rt({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new Ut({context:this.context,units:"positive",value:t.harmonicity}),this.modulationIndex=new Ut({context:this.context,units:"positive",value:t.modulationIndex}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this.detune.connect(this._modulator.detune),B(this,["modulationIndex","frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(Rt.getDefaults(),{harmonicity:1,modulationIndex:2,modulationType:"square"})}_start(t){this._modulator.start(t),this._carrier.start(t)}_stop(t){this._modulator.stop(t),this._carrier.stop(t)}_restart(t){return this._modulator.restart(t),this._carrier.restart(t),this}get type(){return this._carrier.type}set type(t){this._carrier.type=t}get baseType(){return this._carrier.baseType}set baseType(t){this._carrier.baseType=t}get partialCount(){return this._carrier.partialCount}set partialCount(t){this._carrier.partialCount=t}get modulationType(){return this._modulator.type}set modulationType(t){this._modulator.type=t}get phase(){return this._carrier.phase}set phase(t){this._carrier.phase=t,this._modulator.phase=t}get partials(){return this._carrier.partials}set partials(t){this._carrier.partials=t}asArray(){return lt(this,arguments,void 0,function*(t=1024){return pe(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this.modulationIndex.dispose(),this}};var ai=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","width"]);super(t),this.name="PulseOscillator",this._widthGate=new Y({context:this.context,gain:0}),this._thresh=new le({context:this.context,mapping:e=>e<=0?-1:1}),this.width=new K({context:this.context,units:"audioRange",value:t.width}),this._triangle=new Rt({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase,type:"triangle"}),this.frequency=this._triangle.frequency,this.detune=this._triangle.detune,this._triangle.chain(this._thresh,this.output),this.width.chain(this._widthGate,this._thresh),B(this,["width","frequency","detune"])}static getDefaults(){return Object.assign(mt.getDefaults(),{detune:0,frequency:440,phase:0,type:"pulse",width:.2})}_start(t){t=this.toSeconds(t),this._triangle.start(t),this._widthGate.gain.setValueAtTime(1,t)}_stop(t){t=this.toSeconds(t),this._triangle.stop(t),this._widthGate.gain.cancelScheduledValues(t),this._widthGate.gain.setValueAtTime(0,t)}_restart(t){this._triangle.restart(t),this._widthGate.gain.cancelScheduledValues(t),this._widthGate.gain.setValueAtTime(1,t)}get phase(){return this._triangle.phase}set phase(t){this._triangle.phase=t}get type(){return"pulse"}get baseType(){return"pulse"}get partials(){return[]}get partialCount(){return 0}set carrierType(t){this._triangle.type=t}asArray(){return lt(this,arguments,void 0,function*(t=1024){return pe(this,t)})}dispose(){return super.dispose(),this._triangle.dispose(),this.width.dispose(),this._widthGate.dispose(),this._thresh.dispose(),this}};var Zo=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type","spread"]);super(t),this.name="FatOscillator",this._oscillators=[],this.frequency=new K({context:this.context,units:"frequency",value:t.frequency}),this.detune=new K({context:this.context,units:"cents",value:t.detune}),this._spread=t.spread,this._type=t.type,this._phase=t.phase,this._partials=t.partials,this._partialCount=t.partialCount,this.count=t.count,B(this,["frequency","detune"])}static getDefaults(){return Object.assign(Rt.getDefaults(),{count:3,spread:20,type:"sawtooth"})}_start(t){t=this.toSeconds(t),this._forEach(e=>e.start(t))}_stop(t){t=this.toSeconds(t),this._forEach(e=>e.stop(t))}_restart(t){this._forEach(e=>e.restart(t))}_forEach(t){for(let e=0;e<this._oscillators.length;e++)t(this._oscillators[e],e)}get type(){return this._type}set type(t){this._type=t,this._forEach(e=>e.type=t)}get spread(){return this._spread}set spread(t){if(this._spread=t,this._oscillators.length>1){let e=-t/2,r=t/(this._oscillators.length-1);this._forEach((i,n)=>i.detune.value=e+r*n)}}get count(){return this._oscillators.length}set count(t){if(Dt(t,1),this._oscillators.length!==t){this._forEach(e=>e.dispose()),this._oscillators=[];for(let e=0;e<t;e++){let r=new Rt({context:this.context,volume:-6-t*1.1,type:this._type,phase:this._phase+e/t*360,partialCount:this._partialCount,onstop:e===0?()=>this.onstop(this):tt});this.type==="custom"&&(r.partials=this._partials),this.frequency.connect(r.frequency),this.detune.connect(r.detune),r.detune.overridden=!1,r.connect(this.output),this._oscillators[e]=r}this.spread=this._spread,this.state==="started"&&this._forEach(e=>e.start())}}get phase(){return this._phase}set phase(t){this._phase=t,this._forEach((e,r)=>e.phase=this._phase+r/this.count*360)}get baseType(){return this._oscillators[0].baseType}set baseType(t){this._forEach(e=>e.baseType=t),this._type=this._oscillators[0].type}get partials(){return this._oscillators[0].partials}set partials(t){this._partials=t,this._partialCount=this._partials.length,t.length&&(this._type="custom",this._forEach(e=>e.partials=t))}get partialCount(){return this._oscillators[0].partialCount}set partialCount(t){this._partialCount=t,this._forEach(e=>e.partialCount=t),this._type=this._oscillators[0].type}asArray(){return lt(this,arguments,void 0,function*(t=1024){return pe(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this._forEach(t=>t.dispose()),this}};var Xo=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","modulationFrequency"]);super(t),this.name="PWMOscillator",this.sourceType="pwm",this._scale=new Ut({context:this.context,value:2}),this._pulse=new ai({context:this.context,frequency:t.modulationFrequency}),this._pulse.carrierType="sine",this.modulationFrequency=this._pulse.frequency,this._modulator=new Rt({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase}),this.frequency=this._modulator.frequency,this.detune=this._modulator.detune,this._modulator.chain(this._scale,this._pulse.width),this._pulse.connect(this.output),B(this,["modulationFrequency","frequency","detune"])}static getDefaults(){return Object.assign(mt.getDefaults(),{detune:0,frequency:440,modulationFrequency:.4,phase:0,type:"pwm"})}_start(t){t=this.toSeconds(t),this._modulator.start(t),this._pulse.start(t)}_stop(t){t=this.toSeconds(t),this._modulator.stop(t),this._pulse.stop(t)}_restart(t){this._modulator.restart(t),this._pulse.restart(t)}get type(){return"pwm"}get baseType(){return"pwm"}get partials(){return[]}get partialCount(){return 0}get phase(){return this._modulator.phase}set phase(t){this._modulator.phase=t}asArray(){return lt(this,arguments,void 0,function*(t=1024){return pe(this,t)})}dispose(){return super.dispose(),this._pulse.dispose(),this._scale.dispose(),this._modulator.dispose(),this}};var rm={am:Qo,fat:Zo,fm:no,oscillator:Rt,pulse:ai,pwm:Xo},ci=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type"]);super(t),this.name="OmniOscillator",this.frequency=new K({context:this.context,units:"frequency",value:t.frequency}),this.detune=new K({context:this.context,units:"cents",value:t.detune}),B(this,["frequency","detune"]),this.set(t)}static getDefaults(){return Object.assign(Rt.getDefaults(),no.getDefaults(),Qo.getDefaults(),Zo.getDefaults(),ai.getDefaults(),Xo.getDefaults())}_start(t){this._oscillator.start(t)}_stop(t){this._oscillator.stop(t)}_restart(t){return this._oscillator.restart(t),this}get type(){let t="";return["am","fm","fat"].some(e=>this._sourceType===e)&&(t=this._sourceType),t+this._oscillator.type}set type(t){t.substr(0,2)==="fm"?(this._createNewOscillator("fm"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(2)):t.substr(0,2)==="am"?(this._createNewOscillator("am"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(2)):t.substr(0,3)==="fat"?(this._createNewOscillator("fat"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(3)):t==="pwm"?(this._createNewOscillator("pwm"),this._oscillator=this._oscillator):t==="pulse"?this._createNewOscillator("pulse"):(this._createNewOscillator("oscillator"),this._oscillator=this._oscillator,this._oscillator.type=t)}get partials(){return this._oscillator.partials}set partials(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&(this._oscillator.partials=t)}get partialCount(){return this._oscillator.partialCount}set partialCount(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&(this._oscillator.partialCount=t)}set(t){return Reflect.has(t,"type")&&t.type&&(this.type=t.type),super.set(t),this}_createNewOscillator(t){if(t!==this._sourceType){this._sourceType=t;let e=rm[t],r=this.now();if(this._oscillator){let i=this._oscillator;i.stop(r),this.context.setTimeout(()=>i.dispose(),this.blockTime)}this._oscillator=new e({context:this.context}),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.connect(this.output),this._oscillator.onstop=()=>this.onstop(this),this.state==="started"&&this._oscillator.start(r)}}get phase(){return this._oscillator.phase}set phase(t){this._oscillator.phase=t}get sourceType(){return this._sourceType}set sourceType(t){let e="sine";this._oscillator.type!=="pwm"&&this._oscillator.type!=="pulse"&&(e=this._oscillator.type),t==="fm"?this.type="fm"+e:t==="am"?this.type="am"+e:t==="fat"?this.type="fat"+e:t==="oscillator"?this.type=e:t==="pulse"?this.type="pulse":t==="pwm"&&(this.type="pwm")}_getOscType(t,e){return t instanceof rm[e]}get baseType(){return this._oscillator.baseType}set baseType(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&t!=="pulse"&&t!=="pwm"&&(this._oscillator.baseType=t)}get width(){if(this._getOscType(this._oscillator,"pulse"))return this._oscillator.width}get count(){if(this._getOscType(this._oscillator,"fat"))return this._oscillator.count}set count(t){this._getOscType(this._oscillator,"fat")&&Jt(t)&&(this._oscillator.count=t)}get spread(){if(this._getOscType(this._oscillator,"fat"))return this._oscillator.spread}set spread(t){this._getOscType(this._oscillator,"fat")&&Jt(t)&&(this._oscillator.spread=t)}get modulationType(){if(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))return this._oscillator.modulationType}set modulationType(t){(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))&&te(t)&&(this._oscillator.modulationType=t)}get modulationIndex(){if(this._getOscType(this._oscillator,"fm"))return this._oscillator.modulationIndex}get harmonicity(){if(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))return this._oscillator.harmonicity}get modulationFrequency(){if(this._getOscType(this._oscillator,"pwm"))return this._oscillator.modulationFrequency}asArray(){return lt(this,arguments,void 0,function*(t=1024){return pe(this,t)})}dispose(){return super.dispose(),this.detune.dispose(),this.frequency.dispose(),this._oscillator.dispose(),this}};function _s(o,t=1/0){let e=new WeakMap;return function(r,i){Reflect.defineProperty(r,i,{configurable:!0,enumerable:!0,get:function(){return e.get(this)},set:function(n){Dt(n,o,t),e.set(this,n)}})}}function de(o,t=1/0){let e=new WeakMap;return function(r,i){Reflect.defineProperty(r,i,{configurable:!0,enumerable:!0,get:function(){return e.get(this)},set:function(n){Dt(this.toSeconds(n),o,t),e.set(this,n)}})}}var Jo=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["url","onload"]);super(t),this.name="Player",this._activeSources=new Set,this._buffer=new kt({onload:this._onload.bind(this,t.onload),onerror:t.onerror,reverse:t.reverse,url:t.url}),this.autostart=t.autostart,this._loop=t.loop,this._loopStart=t.loopStart,this._loopEnd=t.loopEnd,this._playbackRate=t.playbackRate,this.fadeIn=t.fadeIn,this.fadeOut=t.fadeOut}static getDefaults(){return Object.assign(mt.getDefaults(),{autostart:!1,fadeIn:0,fadeOut:0,loop:!1,loopEnd:0,loopStart:0,onload:tt,onerror:tt,playbackRate:1,reverse:!1})}load(t){return lt(this,void 0,void 0,function*(){return yield this._buffer.load(t),this._onload(),this})}_onload(t=tt){t(),this.autostart&&this.start()}_onSourceEnd(t){this.onstop(this),this._activeSources.delete(t),this._activeSources.size===0&&!this._synced&&this._state.getValueAtTime(this.now())==="started"&&(this._state.cancel(this.now()),this._state.setStateAtTime("stopped",this.now()))}start(t,e,r){return super.start(t,e,r),this}_start(t,e,r){this._loop?e=be(e,this._loopStart):e=be(e,0);let i=this.toSeconds(e),n=r;r=be(r,Math.max(this._buffer.duration-i,0));let s=this.toSeconds(r);s=s/this._playbackRate,t=this.toSeconds(t);let a=new sr({url:this._buffer,context:this.context,fadeIn:this.fadeIn,fadeOut:this.fadeOut,loop:this._loop,loopEnd:this._loopEnd,loopStart:this._loopStart,onended:this._onSourceEnd.bind(this),playbackRate:this._playbackRate}).connect(this.output);!this._loop&&!this._synced&&(this._state.cancel(t+s),this._state.setStateAtTime("stopped",t+s,{implicitEnd:!0})),this._activeSources.add(a),this._loop&&Ft(n)?a.start(t,i):a.start(t,i,s-this.toSeconds(this.fadeOut))}_stop(t){let e=this.toSeconds(t);this._activeSources.forEach(r=>r.stop(e))}restart(t,e,r){return super.restart(t,e,r),this}_restart(t,e,r){var i;(i=[...this._activeSources].pop())===null||i===void 0||i.stop(t),this._start(t,e,r)}seek(t,e){let r=this.toSeconds(e);if(this._state.getValueAtTime(r)==="started"){let i=this.toSeconds(t);this._stop(r),this._start(r,i)}return this}setLoopPoints(t,e){return this.loopStart=t,this.loopEnd=e,this}get loopStart(){return this._loopStart}set loopStart(t){this._loopStart=t,this.buffer.loaded&&Dt(this.toSeconds(t),0,this.buffer.duration),this._activeSources.forEach(e=>{e.loopStart=t})}get loopEnd(){return this._loopEnd}set loopEnd(t){this._loopEnd=t,this.buffer.loaded&&Dt(this.toSeconds(t),0,this.buffer.duration),this._activeSources.forEach(e=>{e.loopEnd=t})}get buffer(){return this._buffer}set buffer(t){this._buffer.set(t)}get loop(){return this._loop}set loop(t){if(this._loop!==t&&(this._loop=t,this._activeSources.forEach(e=>{e.loop=t}),t)){let e=this._state.getNextState("stopped",this.now());e&&this._state.cancel(e.time)}}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t;let e=this.now(),r=this._state.getNextState("stopped",e);r&&r.implicitEnd&&(this._state.cancel(r.time),this._activeSources.forEach(i=>i.cancelStop())),this._activeSources.forEach(i=>{i.playbackRate.setValueAtTime(t,e)})}get reverse(){return this._buffer.reverse}set reverse(t){this._buffer.reverse=t}get loaded(){return this._buffer.loaded}dispose(){return super.dispose(),this._activeSources.forEach(t=>t.dispose()),this._activeSources.clear(),this._buffer.dispose(),this}};re([de(0)],Jo.prototype,"fadeIn",void 0);re([de(0)],Jo.prototype,"fadeOut",void 0);var vs=class extends ie{constructor(){super(...arguments),this.name="GainToAudio",this._norm=new le({context:this.context,mapping:t=>Math.abs(t)*2-1}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}};var ue=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["attack","decay","sustain","release"]);super(t),this.name="Envelope",this._sig=new K({context:this.context,value:0}),this.output=this._sig,this.input=void 0,this.attack=t.attack,this.decay=t.decay,this.sustain=t.sustain,this.release=t.release,this.attackCurve=t.attackCurve,this.releaseCurve=t.releaseCurve,this.decayCurve=t.decayCurve}static getDefaults(){return Object.assign(j.getDefaults(),{attack:.01,attackCurve:"linear",decay:.1,decayCurve:"exponential",release:1,releaseCurve:"exponential",sustain:.5})}get value(){return this.getValueAtTime(this.now())}_getCurve(t,e){if(te(t))return t;{let r;for(r in Is)if(Is[r][e]===t)return r;return t}}_setCurve(t,e,r){if(te(r)&&Reflect.has(Is,r)){let i=Is[r];We(i)?t!=="_decayCurve"&&(this[t]=i[e]):this[t]=i}else if(Ot(r)&&t!=="_decayCurve")this[t]=r;else throw new Error("Envelope: invalid curve: "+r)}get attackCurve(){return this._getCurve(this._attackCurve,"In")}set attackCurve(t){this._setCurve("_attackCurve","In",t)}get releaseCurve(){return this._getCurve(this._releaseCurve,"Out")}set releaseCurve(t){this._setCurve("_releaseCurve","Out",t)}get decayCurve(){return this._getCurve(this._decayCurve,"Out")}set decayCurve(t){this._setCurve("_decayCurve","Out",t)}triggerAttack(t,e=1){this.log("triggerAttack",t,e),t=this.toSeconds(t);let i=this.toSeconds(this.attack),n=this.toSeconds(this.decay),s=this.getValueAtTime(t);if(s>0){let a=1/i;i=(1-s)/a}if(i<this.sampleTime)this._sig.cancelScheduledValues(t),this._sig.setValueAtTime(e,t);else if(this._attackCurve==="linear")this._sig.linearRampTo(e,i,t);else if(this._attackCurve==="exponential")this._sig.targetRampTo(e,i,t);else{this._sig.cancelAndHoldAtTime(t);let a=this._attackCurve;for(let c=1;c<a.length;c++)if(a[c-1]<=s&&s<=a[c]){a=this._attackCurve.slice(c),a[0]=s;break}this._sig.setValueCurveAtTime(a,t,i,e)}if(n&&this.sustain<1){let a=e*this.sustain,c=t+i;this.log("decay",c),this._decayCurve==="linear"?this._sig.linearRampToValueAtTime(a,n+c):this._sig.exponentialApproachValueAtTime(a,c,n)}return this}triggerRelease(t){this.log("triggerRelease",t),t=this.toSeconds(t);let e=this.getValueAtTime(t);if(e>0){let r=this.toSeconds(this.release);r<this.sampleTime?this._sig.setValueAtTime(0,t):this._releaseCurve==="linear"?this._sig.linearRampTo(0,r,t):this._releaseCurve==="exponential"?this._sig.targetRampTo(0,r,t):(V(Ot(this._releaseCurve),"releaseCurve must be either 'linear', 'exponential' or an array"),this._sig.cancelAndHoldAtTime(t),this._sig.setValueCurveAtTime(this._releaseCurve,t,r,e))}return this}getValueAtTime(t){return this._sig.getValueAtTime(t)}triggerAttackRelease(t,e,r=1){return e=this.toSeconds(e),this.triggerAttack(e,r),this.triggerRelease(e+this.toSeconds(t)),this}cancel(t){return this._sig.cancelScheduledValues(this.toSeconds(t)),this}connect(t,e=0,r=0){return $i(this,t,e,r),this}asArray(){return lt(this,arguments,void 0,function*(t=1024){let e=t/this.context.sampleRate,r=new Ye(1,e,this.context.sampleRate),i=this.toSeconds(this.attack)+this.toSeconds(this.decay),n=i+this.toSeconds(this.release),s=n*.1,a=n+s,c=new this.constructor(Object.assign(this.get(),{attack:e*this.toSeconds(this.attack)/a,decay:e*this.toSeconds(this.decay)/a,release:e*this.toSeconds(this.release)/a,context:r}));return c._sig.toDestination(),c.triggerAttackRelease(e*(i+s)/a,0),(yield r.render()).getChannelData(0)})}dispose(){return super.dispose(),this._sig.dispose(),this}};re([de(0)],ue.prototype,"attack",void 0);re([de(0)],ue.prototype,"decay",void 0);re([_s(0,1)],ue.prototype,"sustain",void 0);re([de(0)],ue.prototype,"release",void 0);var Is=(()=>{let t,e,r=[];for(t=0;t<128;t++)r[t]=Math.sin(t/127*(Math.PI/2));let i=[],n=6.4;for(t=0;t<127;t++){e=t/127;let p=Math.sin(e*(Math.PI*2)*n-Math.PI/2)+1;i[t]=p/10+e*.83}i[127]=1;let s=[],a=5;for(t=0;t<128;t++)s[t]=Math.ceil(t/127*a)/a;let c=[];for(t=0;t<128;t++)e=t/127,c[t]=.5*(1-Math.cos(Math.PI*e));let u=[];for(t=0;t<128;t++){e=t/127;let p=Math.pow(e,3)*4+.2,d=Math.cos(p*Math.PI*2*e);u[t]=Math.abs(d*(1-e))}function h(p){let d=new Array(p.length);for(let f=0;f<p.length;f++)d[f]=1-p[f];return d}function l(p){return p.slice(0).reverse()}return{bounce:{In:h(u),Out:u},cosine:{In:r,Out:l(r)},exponential:"exponential",linear:"linear",ripple:{In:i,Out:h(i)},sine:{In:c,Out:h(c)},step:{In:s,Out:h(s)}}})();var _e=class o extends j{constructor(){let t=w(o.getDefaults(),arguments);super(t),this._scheduledEvents=[],this._synced=!1,this._original_triggerAttack=this.triggerAttack,this._original_triggerRelease=this.triggerRelease,this._syncedRelease=e=>this._original_triggerRelease(e),this._volume=this.output=new Pe({context:this.context,volume:t.volume}),this.volume=this._volume.volume,B(this,"volume")}static getDefaults(){return Object.assign(j.getDefaults(),{volume:0})}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",0),this.context.transport.on("stop",this._syncedRelease),this.context.transport.on("pause",this._syncedRelease),this.context.transport.on("loopEnd",this._syncedRelease)),this}_syncState(){let t=!1;return this._synced||(this._synced=!0,t=!0),t}_syncMethod(t,e){let r=this["_original_"+t]=this[t];this[t]=(...i)=>{let n=i[e],s=this.context.transport.schedule(a=>{i[e]=a,r.apply(this,i)},n);this._scheduledEvents.push(s)}}unsync(){return this._scheduledEvents.forEach(t=>this.context.transport.clear(t)),this._scheduledEvents=[],this._synced&&(this._synced=!1,this.triggerAttack=this._original_triggerAttack,this.triggerRelease=this._original_triggerRelease,this.context.transport.off("stop",this._syncedRelease),this.context.transport.off("pause",this._syncedRelease),this.context.transport.off("loopEnd",this._syncedRelease)),this}triggerAttackRelease(t,e,r,i){let n=this.toSeconds(r),s=this.toSeconds(e);return this.triggerAttack(t,n,i),this.triggerRelease(n+s),this}dispose(){return super.dispose(),this._volume.dispose(),this.unsync(),this._scheduledEvents=[],this}};var me=class o extends _e{constructor(){let t=w(o.getDefaults(),arguments);super(t),this.portamento=t.portamento,this.onsilence=t.onsilence}static getDefaults(){return Object.assign(_e.getDefaults(),{detune:0,onsilence:tt,portamento:0})}triggerAttack(t,e,r=1){this.log("triggerAttack",t,e,r);let i=this.toSeconds(e);return this._triggerEnvelopeAttack(i,r),this.setNote(t,i),this}triggerRelease(t){this.log("triggerRelease",t);let e=this.toSeconds(t);return this._triggerEnvelopeRelease(e),this}setNote(t,e){let r=this.toSeconds(e),i=t instanceof ce?t.toFrequency():t;if(this.portamento>0&&this.getLevelAtTime(r)>.05){let n=this.toSeconds(this.portamento);this.frequency.exponentialRampTo(i,n,r)}else this.frequency.setValueAtTime(i,r);return this}};re([de(0)],me.prototype,"portamento",void 0);var so=class o extends ue{constructor(){super(w(o.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="AmplitudeEnvelope",this._gainNode=new Y({context:this.context,gain:0}),this.output=this._gainNode,this.input=this._gainNode,this._sig.connect(this._gainNode.gain),this.output=this._gainNode,this.input=this._gainNode}dispose(){return super.dispose(),this._gainNode.dispose(),this}};var ar=class o extends me{constructor(){let t=w(o.getDefaults(),arguments);super(t),this.name="Synth",this.oscillator=new ci(Object.assign({context:this.context,detune:t.detune,onstop:()=>this.onsilence(this)},t.oscillator)),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.envelope=new so(Object.assign({context:this.context},t.envelope)),this.oscillator.chain(this.envelope,this.output),B(this,["oscillator","frequency","detune","envelope"])}static getDefaults(){return Object.assign(me.getDefaults(),{envelope:Object.assign(ze(ue.getDefaults(),Object.keys(j.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.3}),oscillator:Object.assign(ze(ci.getDefaults(),[...Object.keys(mt.getDefaults()),"frequency","detune"]),{type:"triangle"})})}_triggerEnvelopeAttack(t,e){if(this.envelope.triggerAttack(t,e),this.oscillator.start(t),this.envelope.sustain===0){let r=this.toSeconds(this.envelope.attack),i=this.toSeconds(this.envelope.decay);this.oscillator.stop(t+r+i)}}_triggerEnvelopeRelease(t){this.envelope.triggerRelease(t),this.oscillator.stop(t+this.toSeconds(this.envelope.release))}getLevelAtTime(t){return t=this.toSeconds(t),this.envelope.getValueAtTime(t)}dispose(){return super.dispose(),this.oscillator.dispose(),this.envelope.dispose(),this}};var Ko=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type"]);super(t),this.name="BiquadFilter",this._filter=this.context.createBiquadFilter(),this.input=this.output=this._filter,this.Q=new nt({context:this.context,units:"number",value:t.Q,param:this._filter.Q}),this.frequency=new nt({context:this.context,units:"frequency",value:t.frequency,param:this._filter.frequency}),this.detune=new nt({context:this.context,units:"cents",value:t.detune,param:this._filter.detune}),this.gain=new nt({context:this.context,units:"decibels",convert:!1,value:t.gain,param:this._filter.gain}),this.type=t.type}static getDefaults(){return Object.assign(j.getDefaults(),{Q:1,type:"lowpass",frequency:350,detune:0,gain:0})}get type(){return this._filter.type}set type(t){V(["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(t)!==-1,`Invalid filter type: ${t}`),this._filter.type=t}getFrequencyResponse(t=128){let e=new Float32Array(t);for(let s=0;s<t;s++){let c=Math.pow(s/t,2)*19980+20;e[s]=c}let r=new Float32Array(t),i=new Float32Array(t),n=this.context.createBiquadFilter();return n.type=this.type,n.Q.value=this.Q.value,n.frequency.value=this.frequency.value,n.gain.value=this.gain.value,n.getFrequencyResponse(e,r,i),r}dispose(){return super.dispose(),this._filter.disconnect(),this.Q.dispose(),this.frequency.dispose(),this.gain.dispose(),this.detune.dispose(),this}};var Ar=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type","rolloff"]);super(t),this.name="Filter",this.input=new Y({context:this.context}),this.output=new Y({context:this.context}),this._filters=[],this._filters=[],this.Q=new K({context:this.context,units:"positive",value:t.Q}),this.frequency=new K({context:this.context,units:"frequency",value:t.frequency}),this.detune=new K({context:this.context,units:"cents",value:t.detune}),this.gain=new K({context:this.context,units:"decibels",convert:!1,value:t.gain}),this._type=t.type,this.rolloff=t.rolloff,B(this,["detune","frequency","gain","Q"])}static getDefaults(){return Object.assign(j.getDefaults(),{Q:1,detune:0,frequency:350,gain:0,rolloff:-12,type:"lowpass"})}get type(){return this._type}set type(t){V(["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(t)!==-1,`Invalid filter type: ${t}`),this._type=t,this._filters.forEach(r=>r.type=t)}get rolloff(){return this._rolloff}set rolloff(t){let e=Jt(t)?t:parseInt(t,10),r=[-12,-24,-48,-96],i=r.indexOf(e);V(i!==-1,`rolloff can only be ${r.join(", ")}`),i+=1,this._rolloff=e,this.input.disconnect(),this._filters.forEach(n=>n.disconnect()),this._filters=new Array(i);for(let n=0;n<i;n++){let s=new Ko({context:this.context});s.type=this._type,this.frequency.connect(s.frequency),this.detune.connect(s.detune),this.Q.connect(s.Q),this.gain.connect(s.gain),this._filters[n]=s}this._internalChannels=this._filters,ke(this.input,...this._internalChannels,this.output)}getFrequencyResponse(t=128){let e=new Ko({context:this.context,frequency:this.frequency.value,gain:this.gain.value,Q:this.Q.value,type:this._type,detune:this.detune.value}),r=new Float32Array(t).map(()=>1);return this._filters.forEach(()=>{e.getFrequencyResponse(t).forEach((n,s)=>r[s]*=n)}),e.dispose(),r}dispose(){return super.dispose(),this._filters.forEach(t=>{t.dispose()}),oi(this,["detune","frequency","gain","Q"]),this.frequency.dispose(),this.Q.dispose(),this.detune.dispose(),this.gain.dispose(),this}};var Ss=class o extends ar{constructor(){let t=w(o.getDefaults(),arguments);super(t),this.name="MembraneSynth",this.portamento=0,this.pitchDecay=t.pitchDecay,this.octaves=t.octaves,B(this,["oscillator","envelope"])}static getDefaults(){return Me(me.getDefaults(),ar.getDefaults(),{envelope:{attack:.001,attackCurve:"exponential",decay:.4,release:1.4,sustain:.01},octaves:10,oscillator:{type:"sine"},pitchDecay:.05})}setNote(t,e){let r=this.toSeconds(e),i=this.toFrequency(t instanceof ce?t.toFrequency():t),n=i*this.octaves;return this.oscillator.frequency.setValueAtTime(n,r),this.oscillator.frequency.exponentialRampToValueAtTime(i,r+this.toSeconds(this.pitchDecay)),this}dispose(){return super.dispose(),this}};re([_s(0)],Ss.prototype,"octaves",void 0);re([de(0)],Ss.prototype,"pitchDecay",void 0);var im=new Set;function co(o){im.add(o)}function ws(o,t){let e=`registerProcessor("${o}", ${t})`;im.add(e)}var ay=`
|
|
20
20
|
/**
|
|
21
21
|
* The base AudioWorkletProcessor for use in Tone.js. Works with the {@link ToneAudioWorklet}.
|
|
22
22
|
*/
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
`;co(
|
|
49
|
+
`;co(ay);var cy=`
|
|
50
50
|
/**
|
|
51
51
|
* Abstract class for a single input/output processor.
|
|
52
52
|
* has a 'generate' function which processes one sample at a time
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
return !this.disposed;
|
|
114
114
|
}
|
|
115
115
|
};
|
|
116
|
-
`;co(
|
|
116
|
+
`;co(cy);var uy=`
|
|
117
117
|
/**
|
|
118
118
|
* A multichannel buffer for use within an AudioWorkletProcessor as a delay line
|
|
119
119
|
*/
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
return this.buffer[channel][readHead];
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
|
-
`;co(
|
|
160
|
+
`;co(uy);var om="feedback-comb-filter",hy=`
|
|
161
161
|
class FeedbackCombFilterWorklet extends SingleIOProcessor {
|
|
162
162
|
|
|
163
163
|
constructor(options) {
|
|
@@ -187,7 +187,7 @@
|
|
|
187
187
|
return delayedSample;
|
|
188
188
|
}
|
|
189
189
|
}
|
|
190
|
-
`;
|
|
190
|
+
`;ws(om,hy);var Ts=class o extends _e{constructor(){let t=w(o.getDefaults(),arguments,["voice","options"]);super(t),this.name="PolySynth",this._availableVoices=[],this._activeVoices=[],this._voices=[],this._gcTimeout=-1,this._averageActiveVoices=0,this._syncedRelease=i=>this.releaseAll(i),V(!Jt(t.voice),"DEPRECATED: The polyphony count is no longer the first argument.");let e=t.voice.getDefaults();this.options=Object.assign(e,t.options),this.voice=t.voice,this.maxPolyphony=t.maxPolyphony,this._dummyVoice=this._getNextAvailableVoice();let r=this._voices.indexOf(this._dummyVoice);this._voices.splice(r,1),this._gcTimeout=this.context.setInterval(this._collectGarbage.bind(this),1)}static getDefaults(){return Object.assign(_e.getDefaults(),{maxPolyphony:32,options:{},voice:ar})}get activeVoices(){return this._activeVoices.length}_makeVoiceAvailable(t){this._availableVoices.push(t);let e=this._activeVoices.findIndex(r=>r.voice===t);this._activeVoices.splice(e,1)}_getNextAvailableVoice(){if(this._availableVoices.length)return this._availableVoices.shift();if(this._voices.length<this.maxPolyphony){let t=new this.voice(Object.assign(this.options,{context:this.context,onsilence:this._makeVoiceAvailable.bind(this)}));return V(t instanceof me,"Voice must extend Monophonic class"),t.connect(this.output),this._voices.push(t),t}else ei("Max polyphony exceeded. Note dropped.")}_collectGarbage(){if(this._averageActiveVoices=Math.max(this._averageActiveVoices*.95,this.activeVoices),this._availableVoices.length&&this._voices.length>Math.ceil(this._averageActiveVoices+1)){let t=this._availableVoices.shift(),e=this._voices.indexOf(t);this._voices.splice(e,1),this.context.isOffline||t.dispose()}}_triggerAttack(t,e,r){t.forEach(i=>{let n=new Yo(this.context,i).toMidi(),s=this._getNextAvailableVoice();s&&(s.triggerAttack(i,e,r),this._activeVoices.push({midi:n,voice:s,released:!1}),this.log("triggerAttack",i,e))})}_triggerRelease(t,e){t.forEach(r=>{let i=new Yo(this.context,r).toMidi(),n=this._activeVoices.find(({midi:s,released:a})=>s===i&&!a);n&&(n.voice.triggerRelease(e),n.released=!0,this.log("triggerRelease",r,e))})}_scheduleEvent(t,e,r,i){V(!this.disposed,"Synth was already disposed"),r<=this.now()?t==="attack"?this._triggerAttack(e,r,i):this._triggerRelease(e,r):this.context.setTimeout(()=>{this.disposed||this._scheduleEvent(t,e,r,i)},r-this.now())}triggerAttack(t,e,r){Array.isArray(t)||(t=[t]);let i=this.toSeconds(e);return this._scheduleEvent("attack",t,i,r),this}triggerRelease(t,e){Array.isArray(t)||(t=[t]);let r=this.toSeconds(e);return this._scheduleEvent("release",t,r),this}triggerAttackRelease(t,e,r,i){let n=this.toSeconds(r);if(this.triggerAttack(t,n,i),Ot(e)){V(Ot(t),"If the duration is an array, the notes must also be an array"),t=t;for(let s=0;s<t.length;s++){let a=e[Math.min(s,e.length-1)],c=this.toSeconds(a);V(c>0,"The duration must be greater than 0"),this.triggerRelease(t[s],n+c)}}else{let s=this.toSeconds(e);V(s>0,"The duration must be greater than 0"),this.triggerRelease(t,n+s)}return this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1),this.context.transport.on("stop",this._syncedRelease),this.context.transport.on("pause",this._syncedRelease),this.context.transport.on("loopEnd",this._syncedRelease)),this}set(t){let e=ze(t,["onsilence","context"]);return this.options=Me(this.options,e),this._voices.forEach(r=>r.set(e)),this._dummyVoice.set(e),this}get(){return this._dummyVoice.get()}releaseAll(t){let e=this.toSeconds(t);return this._activeVoices.forEach(({voice:r})=>{r.triggerRelease(e)}),this}dispose(){return super.dispose(),this._dummyVoice.dispose(),this._voices.forEach(t=>t.dispose()),this._activeVoices=[],this._availableVoices=[],this.context.clearInterval(this._gcTimeout),this}};var Ns=class o extends _e{constructor(){let t=w(o.getDefaults(),arguments,["urls","onload","baseUrl"],"urls");super(t),this.name="Sampler",this._activeSources=new Map;let e={};Object.keys(t.urls).forEach(r=>{let i=parseInt(r,10);if(V(qo(r)||Jt(i)&&isFinite(i),`url key is neither a note or midi pitch: ${r}`),qo(r)){let n=new ce(this.context,r).toMidi();e[n]=t.urls[r]}else Jt(i)&&isFinite(i)&&(e[i]=t.urls[i])}),this._buffers=new eo({urls:e,onload:t.onload,baseUrl:t.baseUrl,onerror:t.onerror}),this.attack=t.attack,this.release=t.release,this.curve=t.curve,this._buffers.loaded&&Promise.resolve().then(t.onload)}static getDefaults(){return Object.assign(_e.getDefaults(),{attack:0,baseUrl:"",curve:"exponential",onload:tt,onerror:tt,release:.1,urls:{}})}_findClosest(t){let r=0;for(;r<96;){if(this._buffers.has(t+r))return-r;if(this._buffers.has(t-r))return r;r++}throw new Error(`No available buffers for note: ${t}`)}triggerAttack(t,e,r=1){return this.log("triggerAttack",t,e,r),Array.isArray(t)||(t=[t]),t.forEach(i=>{let n=Fc(new ce(this.context,i).toFrequency()),s=Math.round(n),a=n-s,c=this._findClosest(s),u=s-c,h=this._buffers.get(u),l=ni(c+a),p=new sr({url:h,context:this.context,curve:this.curve,fadeIn:this.attack,fadeOut:this.release,playbackRate:l}).connect(this.output);p.start(e,0,h.duration/l,r),Ot(this._activeSources.get(s))||this._activeSources.set(s,[]),this._activeSources.get(s).push(p),p.onended=()=>{if(this._activeSources&&this._activeSources.has(s)){let d=this._activeSources.get(s),f=d.indexOf(p);f!==-1&&d.splice(f,1)}}}),this}triggerRelease(t,e){return this.log("triggerRelease",t,e),Array.isArray(t)||(t=[t]),t.forEach(r=>{let i=new ce(this.context,r).toMidi();if(this._activeSources.has(i)&&this._activeSources.get(i).length){let n=this._activeSources.get(i);e=this.toSeconds(e),n.forEach(s=>{s.stop(e)}),this._activeSources.set(i,[])}}),this}releaseAll(t){let e=this.toSeconds(t);return this._activeSources.forEach(r=>{for(;r.length;)r.shift().stop(e)}),this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1)),this}triggerAttackRelease(t,e,r,i=1){let n=this.toSeconds(r);return this.triggerAttack(t,n,i),Ot(e)?(V(Ot(t),"notes must be an array when duration is array"),t.forEach((s,a)=>{let c=e[Math.min(a,e.length-1)];this.triggerRelease(s,n+this.toSeconds(c))})):this.triggerRelease(t,n+this.toSeconds(e)),this}add(t,e,r){if(V(qo(t)||isFinite(t),`note must be a pitch or midi: ${t}`),qo(t)){let i=new ce(this.context,t).toMidi();this._buffers.add(i,e,r)}else this._buffers.add(t,e,r);return this}get loaded(){return this._buffers.loaded}dispose(){return super.dispose(),this._buffers.dispose(),this._activeSources.forEach(t=>{t.forEach(e=>e.dispose())}),this._activeSources.clear(),this}};re([de(0)],Ns.prototype,"attack",void 0);re([de(0)],Ns.prototype,"release",void 0);var uo=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["fade"]);super(t),this.name="CrossFade",this._panner=this.context.createStereoPanner(),this._split=this.context.createChannelSplitter(2),this._g2a=new vs({context:this.context}),this.a=new Y({context:this.context,gain:0}),this.b=new Y({context:this.context,gain:0}),this.output=new Y({context:this.context}),this._internalChannels=[this.a,this.b],this.fade=new K({context:this.context,units:"normalRange",value:t.fade}),B(this,"fade"),this.context.getConstant(1).connect(this._panner),this._panner.connect(this._split),this._panner.channelCount=1,this._panner.channelCountMode="explicit",Kt(this._split,this.a.gain,0),Kt(this._split,this.b.gain,1),this.fade.chain(this._g2a,this._panner.pan),this.a.connect(this.output),this.b.connect(this.output)}static getDefaults(){return Object.assign(j.getDefaults(),{fade:.5})}dispose(){return super.dispose(),this.a.dispose(),this.b.dispose(),this.output.dispose(),this.fade.dispose(),this._g2a.dispose(),this._panner.disconnect(),this._split.disconnect(),this}};var fe=class extends j{constructor(t){super(t),this.name="Effect",this._dryWet=new uo({context:this.context}),this.wet=this._dryWet.fade,this.effectSend=new Y({context:this.context}),this.effectReturn=new Y({context:this.context}),this.input=new Y({context:this.context}),this.output=this._dryWet,this.input.fan(this._dryWet.a,this.effectSend),this.effectReturn.connect(this._dryWet.b),this.wet.setValueAtTime(t.wet,0),this._internalChannels=[this.effectReturn,this.effectSend],B(this,"wet")}static getDefaults(){return Object.assign(j.getDefaults(),{wet:1})}connectEffect(t){return this._internalChannels.push(t),this.effectSend.chain(t,this.effectReturn),this}dispose(){return super.dispose(),this._dryWet.dispose(),this.effectSend.dispose(),this.effectReturn.dispose(),this.wet.dispose(),this}};var $o=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["pan"]);super(t),this.name="Panner",this._panner=this.context.createStereoPanner(),this.input=this._panner,this.output=this._panner,this.pan=new nt({context:this.context,param:this._panner.pan,value:t.pan,minValue:-1,maxValue:1}),this._panner.channelCount=t.channelCount,this._panner.channelCountMode="explicit",B(this,"pan")}static getDefaults(){return Object.assign(j.getDefaults(),{pan:0,channelCount:1})}dispose(){return super.dispose(),this._panner.disconnect(),this.pan.dispose(),this}};var sm="bit-crusher",xy=`
|
|
191
191
|
class BitCrusherWorklet extends SingleIOProcessor {
|
|
192
192
|
|
|
193
193
|
static get parameterDescriptors() {
|
|
@@ -206,8 +206,8 @@
|
|
|
206
206
|
return val;
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
|
-
`;Ts(am,yy);var qr=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["channels"]);super(t),this.name="Merge",this._merger=this.output=this.input=this.context.createChannelMerger(t.channels)}static getDefaults(){return Object.assign(j.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}};var TJ=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100];var PJ=[1687/25e3,1601/25e3,2053/25e3,2251/25e3];var Ms=class o extends fe{constructor(){let t=w(o.getDefaults(),arguments,["decay"]);super(t),this.name="Reverb",this._convolver=this.context.createConvolver(),this.ready=Promise.resolve();let e=this.toSeconds(t.decay);Mt(e,.001),this._decay=e;let r=this.toSeconds(t.preDelay);Mt(r,0),this._preDelay=r,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(fe.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(t){t=this.toSeconds(t),Mt(t,.001),this._decay=t,this.generate()}get preDelay(){return this._preDelay}set preDelay(t){t=this.toSeconds(t),Mt(t,0),this._preDelay=t,this.generate()}generate(){return lt(this,void 0,void 0,function*(){let t=this.ready,e=new Ye(2,this._decay+this._preDelay,this.context.sampleRate),r=new si({context:e}),i=new si({context:e}),n=new qr({context:e});r.connect(n,0,0),i.connect(n,0,1);let s=new Y({context:e}).toDestination();n.connect(s),r.start(0),i.start(0),s.gain.setValueAtTime(0,0),s.gain.setValueAtTime(1,this._preDelay),s.gain.exponentialApproachValueAtTime(0,this._preDelay,this.decay);let a=e.render();return this.ready=a.then(tt),yield t,this._convolver.buffer=(yield a).get(),this})}dispose(){return super.dispose(),this._convolver.disconnect(),this}};var ho=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["solo"]);super(t),this.name="Solo",this.input=this.output=new Y({context:this.context}),o._allSolos.has(this.context)||o._allSolos.set(this.context,new Set),o._allSolos.get(this.context).add(this),this.solo=t.solo}static getDefaults(){return Object.assign(j.getDefaults(),{solo:!1})}get solo(){return this._isSoloed()}set solo(t){t?this._addSolo():this._removeSolo(),o._allSolos.get(this.context).forEach(e=>e._updateSolo())}get muted(){return this.input.gain.value===0}_addSolo(){o._soloed.has(this.context)||o._soloed.set(this.context,new Set),o._soloed.get(this.context).add(this)}_removeSolo(){o._soloed.has(this.context)&&o._soloed.get(this.context).delete(this)}_isSoloed(){return o._soloed.has(this.context)&&o._soloed.get(this.context).has(this)}_noSolos(){return!o._soloed.has(this.context)||o._soloed.has(this.context)&&o._soloed.get(this.context).size===0}_updateSolo(){this._isSoloed()?this.input.gain.value=1:this._noSolos()?this.input.gain.value=1:this.input.gain.value=0}dispose(){return super.dispose(),o._allSolos.get(this.context).delete(this),this._removeSolo(),this}};ho._allSolos=new Map;ho._soloed=new Map;var Ds=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["pan","volume"]);super(t),this.name="PanVol",this._panner=this.input=new $o({context:this.context,pan:t.pan,channelCount:t.channelCount}),this.pan=this._panner.pan,this._volume=this.output=new Pe({context:this.context,volume:t.volume}),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=t.mute,B(this,["pan","volume"])}static getDefaults(){return Object.assign(j.getDefaults(),{mute:!1,pan:0,volume:0,channelCount:1})}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}dispose(){return super.dispose(),this._panner.dispose(),this.pan.dispose(),this._volume.dispose(),this.volume.dispose(),this}};var Zc=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["volume","pan"]);super(t),this.name="Channel",this._solo=this.input=new ho({solo:t.solo,context:this.context}),this._panVol=this.output=new Ds({context:this.context,pan:t.pan,volume:t.volume,mute:t.mute,channelCount:t.channelCount}),this.pan=this._panVol.pan,this.volume=this._panVol.volume,this._solo.connect(this._panVol),B(this,["pan","volume"])}static getDefaults(){return Object.assign(j.getDefaults(),{pan:0,volume:0,mute:!1,solo:!1,channelCount:1})}get solo(){return this._solo.solo}set solo(t){this._solo.solo=t}get muted(){return this._solo.muted||this.mute}get mute(){return this._panVol.mute}set mute(t){this._panVol.mute=t}_getBus(t){return o.buses.has(t)||o.buses.set(t,new Y({context:this.context})),o.buses.get(t)}send(t,e=0){let r=this._getBus(t),i=new Y({context:this.context,units:"decibels",gain:e});return this.connect(i),i.connect(r),i}receive(t){return this._getBus(t).connect(this),this}dispose(){return super.dispose(),this._panVol.dispose(),this.pan.dispose(),this.volume.dispose(),this._solo.dispose(),this}};Zc.buses=new Map;var vrt=Ft().transport;var Irt=Ft().destination,Srt=Ft().destination;var wrt=Ft().listener;var Trt=Ft().draw;var Nrt=Ft();var Xc=class{constructor(){m(this,"audioSource");try{let t=new Ms({decay:3,wet:.4}).toDestination(),e=new Ar(800,"lowpass").connect(t);this.audioSource=new Ns(ar,{oscillator:{type:"triangle"},envelope:{attack:.001,decay:2,sustain:.1,release:1.2}}).connect(e)}catch(t){this.audioSource=void 0,console.error(t)}}getName(){return"Synthesizer"}playNote(t,e,r){try{this.audioSource&&(r!==void 0&&(this.audioSource.volume.value=I.Math.linearToDecibels(r)),this.audioSource.triggerAttackRelease(t,e!=null?e:"2n"))}catch(i){}}stop(){try{this.audioSource&&this.audioSource.releaseAll()}catch(t){}}},Jc=new Xc;Qr();function wy(o){return typeof o=="string"?o:(typeof o=="number"&&(o=G.getChromaticNote(o)),o.format(0,0))}var ks=[Jc],lo=Jc;function Ty(){return ks.map(o=>o.getName())}function Ny(){return lo.getName()}function Oy(o){ks.some(t=>t.getName()===o.getName())||(ks.push(o),um(o.getName()))}function um(o){if(o===lo.getName())return;lo.stop();let t=ks.find(e=>e.getName()===o);t&&(lo=t)}function Ps(o,t,e){lo.playNote(wy(o),t,e)}function Kc(){lo.stop()}var pu={};_i(pu,{Annotation:()=>ui,Arpeggio:()=>Ur,Clef:()=>Wr,Connective:()=>_r,DivRect:()=>F,DocumentBuilder:()=>Ir,Fermata:()=>en,Label:()=>po,MAccidental:()=>sn,MArpeggio:()=>hn,MBarLineLeft:()=>vn,MBarLineRight:()=>_n,MBeamGroup:()=>mn,MConnective:()=>Nn,MDocument:()=>Hr,MEnding:()=>Sn,MExtensionLine:()=>Tn,MFermata:()=>wn,MHeader:()=>Mn,MImage:()=>nn,MMeasure:()=>Rn,MNoteGroup:()=>gn,MPlaybackButtons:()=>lu,MPlayer:()=>jn,MRenderer:()=>hu,MRest:()=>ln,MRhythmColumn:()=>bn,MScoreRow:()=>En,MSignature:()=>cn,MSpecialText:()=>An,MStaff:()=>rn,MStaffBeamGroup:()=>fn,MStaffNoteGroup:()=>xn,MStaffRest:()=>pn,MStaffTabBarLine:()=>In,MTab:()=>on,MTabNoteGroup:()=>yn,MText:()=>an,MusicInterface:()=>bt,Navigation:()=>Ie,NoteAnchor:()=>ve,PlayState:()=>js,ScoreEvent:()=>Dn,ScoreObjectEvent:()=>li,ScoreStaffPosEvent:()=>hi,StaffPreset:()=>Cr,Stem:()=>je,TieType:()=>cr,getStringNumbers:()=>$c,getVoiceIds:()=>oe});var F=class o{constructor(...t){m(this,"left");m(this,"centerX");m(this,"right");m(this,"top");m(this,"centerY");m(this,"bottom");if(t.length===6)this.left=t[0],this.centerX=t[1],this.right=t[2],this.top=t[3],this.centerY=t[4],this.bottom=t[5];else if(t.length===4)this.left=t[0],this.right=t[1],this.centerX=(this.left+this.right)/2,this.top=t[2],this.bottom=t[3],this.centerY=(this.top+this.bottom)/2;else if(t.length===0)this.left=this.centerX=this.right=0,this.top=this.centerY=this.bottom=0;else throw new E(1,`Invalid DivRect args: ${t}`)}static create(t,e,r,i){return new o(t,t+r,e,e+i)}static createCentered(t,e,r,i){return new o(t-r/2,t+r/2,e-i/2,e+i/2)}static createSections(t,e,r,i){return new o(-t,0,e,-r,0,i)}get width(){return this.right-this.left}get height(){return this.bottom-this.top}get leftw(){return this.centerX-this.left}get rightw(){return this.right-this.centerX}get toph(){return this.centerY-this.top}get bottomh(){return this.bottom-this.centerY}contains(t,e){return t>=this.left&&t<=this.right&&e>=this.top&&e<=this.bottom}static overlap(t,e){return t.right>e.left&&t.left<e.right&&t.bottom>e.top&&t.top<e.bottom}static overlapX(t,e){return t.right>e.left&&t.left<e.right}static equals(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.left===e.left&&t.centerX===e.centerX&&t.right===e.right&&t.top===e.top&&t.centerY===e.centerY&&t.bottom===e.bottom}static equalsFrame(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.left===e.left&&t.right===e.right&&t.top===e.top&&t.bottom===e.bottom}copy(){return new o(this.left,this.centerX,this.right,this.top,this.centerY,this.bottom)}offsetInPlace(t,e){return this.left+=t,this.centerX+=t,this.right+=t,this.top+=e,this.centerY+=e,this.bottom+=e,this}offsetCopy(t,e){return this.copy().offsetInPlace(t,e)}expandInPlace(t){return this.left=Math.min(this.left,t.left),this.right=Math.max(this.right,t.right),this.top=Math.min(this.top,t.top),this.bottom=Math.max(this.bottom,t.bottom),this}expandCopy(t){return this.copy().expandInPlace(t)}clipInPlace(t){return this.left=Math.max(this.left,t.left),this.right=Math.min(this.right,t.right),this.centerX=I.Math.clamp(this.centerX,this.left,this.right),this.top=Math.max(this.top,t.top),this.bottom=Math.min(this.bottom,t.bottom),this.centerY=I.Math.clamp(this.centerY,this.top,this.bottom),this}clipCopy(t){return this.copy().clipInPlace(t)}scaleInPlace(t,e){return e=e!=null?e:t,this.left=this.centerX-this.leftw*t,this.right=this.centerX+this.rightw*t,this.top=this.centerY-this.toph*e,this.bottom=this.centerY+this.bottomh*e,this}scaleCopy(t,e){return this.copy().scaleInPlace(t,e)}getRect(){return this}};var Cr=(s=>(s[s.Treble=1]="Treble",s[s.Bass=2]="Bass",s[s.Grand=3]="Grand",s[s.GuitarTreble=4]="GuitarTreble",s[s.GuitarTab=8]="GuitarTab",s[s.GuitarCombined=12]="GuitarCombined",s))(Cr||{}),Wr=(e=>(e.G="G",e.F="F",e))(Wr||{});function oe(){return[0,1,2,3]}function $c(){return[1,2,3,4,5,6]}var je=(r=>(r[r.Auto=0]="Auto",r[r.Up=1]="Up",r[r.Down=2]="Down",r))(je||{}),Ur=(e=>(e[e.Up=0]="Up",e[e.Down=1]="Down",e))(Ur||{}),cr=(e=>(e[e.Stub=-1]="Stub",e[e.ToMeasureEnd=-2]="ToMeasureEnd",e))(cr||{}),ve=(n=>(n[n.Auto=0]="Auto",n[n.Above=1]="Above",n[n.Center=2]="Center",n[n.Below=3]="Below",n[n.StemTip=4]="StemTip",n))(ve||{}),_r=(r=>(r[r.Tie=0]="Tie",r[r.Slur=1]="Slur",r[r.Slide=2]="Slide",r))(_r||{}),js=(r=>(r[r.Playing=0]="Playing",r[r.Paused=1]="Paused",r[r.Stopped=2]="Stopped",r))(js||{}),en=(e=>(e[e.AtNote=0]="AtNote",e[e.AtMeasureEnd=1]="AtMeasureEnd",e))(en||{}),Ie=(l=>(l[l.DC_al_Fine=0]="DC_al_Fine",l[l.DC_al_Coda=1]="DC_al_Coda",l[l.DS_al_Fine=2]="DS_al_Fine",l[l.DS_al_Coda=3]="DS_al_Coda",l[l.Coda=4]="Coda",l[l.toCoda=5]="toCoda",l[l.Segno=6]="Segno",l[l.Fine=7]="Fine",l[l.StartRepeat=8]="StartRepeat",l[l.EndRepeat=9]="EndRepeat",l[l.Ending=10]="Ending",l))(Ie||{}),ui=(e=>(e[e.Dynamics=0]="Dynamics",e[e.Tempo=1]="Tempo",e))(ui||{}),po=(e=>(e[e.Note=0]="Note",e[e.Chord=1]="Chord",e))(po||{});var Ls=class{constructor(t){m(this,"head");m(this,"tail");this.head=t,this.tail=[]}getHead(){return this.head}getTails(){return this.tail}addTail(t){this.tail.push(t)}detachTail(t){let e=this.tail.indexOf(t);e>=0&&this.tail.splice(e,1)}},et=class{constructor(t){this.parent=t;m(this,"anchoredLayoutObjects",[]);m(this,"link");m(this,"rect",new F);m(this,"needRectUpdate",!0)}getParent(){return this.parent}requestRectUpdate(){this.needRectUpdate=!0}updateRect(){}getRect(){return this.needRectUpdate&&(this.updateRect(),this.needRectUpdate=!1),this.rect}getShapeRects(){return[this.rect]}addAnchoredLayoutObject(t){this.anchoredLayoutObjects.push(t)}getAnchoredLayoutObjects(){return this.anchoredLayoutObjects}setLink(t){this.link=t}getLink(){return this.link}isLinked(){return this.link!==null}};var Fs={DrawDebugRects:!1,DisableBeams:!1},ct={DocumentScale:1,DocumentMinWidth:75,PostMeasureBreakWidth:10,NoteDotSpace:.5,NoteAccSpace:.5,NoteHeadWidth:2,NoteHeadHeight:1.3,DiamondNoteHeadSize:1.8,DotSize:.8,StemHeight:7,FlagWidth:1.5,FlagHeight:4,FlagSeparation:2,BeamSeparation:1.25,BeamAngleFactor:.5,RestDotSpace:.5,LedgerLineWidth:3.6,StubTieLength:5,StaffHeight:8,TabHeight:20};var hm="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAACWCAYAAACCe+v6AAADHXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7ZZRcu0mDIbfWUWXgCSExHIwmJnu4C6/Pxg7J2kyTdv7GJhjsJCF0CfZJ5y//hzhDzRK5iGpeS45R7RUUuGKicerHetKMa3ratL2Gr2Xh5L3AkMkU/O6LbzlJ+SY074vexO69W9D94QqZvq2UOuWH+/lxzbI/tHQ9kDo2jn2/cA2JLw9Std92x7l4vbuaH2fGYqXyN9+SYyzZrKEa+JolgvmzjEZ4tmno6NxWYb0CugjuO9vVYZPfApJxFUkXV7K/IlUjBlXrAYokhhuFMK5UFbgI1DCBXha9kY1PsF8jc1bjL5o3zlWxCbjnMov1J7xQ97k/HnePLOdBg81z3tB3mON+Rk/lZPehu4Fefbh1529PTu/k4vE9BqK8Ip7jO5jHRqnqCkjFnkf6j7KmkHvmFFcT2V0izkgax2T2Qu6xxobcqrHhko7MC/EoDsoUadKg841NmpwMfHJhpG5BZYldEAq3GQmQ5qdBpsU6eLImHblkPDjC61ty9qukcceYieoMsEY4ZH/3MN3FceYtUQU/YoT0gJ+8axOeBEJ+OcANTCgsYOqK8B3/9gm18lMV5gdB6zxCJeJQ+ktuWSBFigqxgsyWd8GECJsrXCGBARiJlHK8MiYjQiBdACqcJ0l8QECpModTnISyYCD6sDeeMZoqbLyJcZbVVJAsWYUrYNQBayUFPljyZFDVUWTqmY1dS1as+RZeTlbnq/namLJ1LIZ3tlWrLp4cvXs5u7Fa+EieH1rQZ0WL6XUik0rLFc8XaFQ68GHHOnQIx92+FHCURvSp6WmLTdr3kqrnbt0FHjP3br30utJJ1LpTKee+bTTz3LWgVQbMtLQkYeF4aOM+lCjXbYf+7+gRpsaL1JT0R5qkJrdJmi+TnQyAzFOBOAGaiCGxJ7MolNKPMlNZvgeoSqU4aROOJ0mMRBMJ7EOethtcoHr7+EWzBc3/r/kwkT3TXJ/5/YZtT6/Em0Ru8pwBjUKqg/rp1f2Oj+vX47hnxS+O/4Y+jH0Y+jrcYwROv51hb8AKbCqdGIdCl0AAAGFaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1O1UqoOdhBxyFCd7OAH0rFUsQgWSluhVQeTS7+gSUOS4uIouBYc/FisOrg46+rgKgiCHyCuLk6KLlLi/5JCi1gPjvvx7t7j7h0gNCpMNXuigKpZRioeE7O5VdH3ij74MYgpRCRm6on0YgZdx9c9PHy9C/Os7uf+HANK3mSARySOMt2wiDeI5zYtnfM+cZCVJIX4nHjSoAsSP3JddvmNc9FhgWcGjUxqnjhILBY7WO5gVjJU4lnikKJqlC9kXVY4b3FWKzXWuid/YSCvraS5TnMMcSwhgSREyKihjAoshGnVSDGRov1YF/+o40+SSyZXGYwcC6hCheT4wf/gd7dmYWbaTQrEgN4X2/4YB3y7QLNu29/Htt08AbzPwJXW9lcbQOST9HpbCx0BQ9vAxXVbk/eAyx1g5EmXDMmRvDSFQgF4P6NvygHDt4B/ze2ttY/TByBDXS3fAAeHwESRste7vLu/s7d/z7T6+wEMNXLkxtwRywAADzRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6NDA3ODVjMzYtNDAxZC00YTZlLTkxODctMDQ1NTI4MmM0ZGY2IgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhiZTJkYzc1LTVlYjQtNDk0Yy1iNWRlLWQ2MzZkNzZhNjI2YiIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmU3YWE0MWNhLTNiYjMtNGU5Yi05NDQxLTllNTNmZTJiZjM5ZiIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjg2NDA4NjA5MzE2NDM4IgogICBHSU1QOlZlcnNpb249IjIuMTAuMzQiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIgogICB4bXA6TWV0YWRhdGFEYXRlPSIyMDIzOjA2OjEwVDE3OjUwOjA5KzAzOjAwIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMzowNjoxMFQxNzo1MDowOSswMzowMCI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjI3MzY2YmY0LWVkZDMtNDE5OC05NjJhLWU5ZTM5MTBlNThiZSIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wOC0yMlQwMjo1NTozNiIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5NjVlMTM3OS0wZDlmLTQ5ODItYWQ3MC05MzhjOWMzOWE0ZjMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDktMTFUMTY6MzU6MDAiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MTBmYmEwYTMtOTI5Yi00NTRlLThjNGMtOGVkOGM4YWJhZGRjIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIzLTA2LTEwVDE3OjUwOjA5Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Ppn4NIQAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfnBgoOMgm5WlWBAAAAGXRFWHRDb21tZW50AENyZWF0ZWQgd2l0aCBHSU1QV4EOFwAACHtJREFUeNrtnXuQVmMcxz+77cauTWUpbGSVu2w3BpnUEBq3chkmBjGayG1GBuNWLtUgw5SJkBkjl4QKg1wyQyarK0lRSlstU20bWam9+OM8O3P6vc8553nOe97tnO18Z84f57zP7XvOc/ndnueFfQx5e6neUmAI0B3oDPwD/AJ8Dvzcml5we+Al4D+gyeOaB1S0BrLHAut9iLqvf4ERSSZbBmwwJOu+RieV8JwQZJuARjXWE4WBIck2X38AByaJ8MwsCTcBTyWFbCFQFwHhv4DiKBqUn2PCPYEin9+bgI3AUuBPn3TtgMuT8IWv8vlq7wLdRPrTgPke6d9JAuFbPBo/3UfKK1TCh8yzIQmEb/cYjx0C8pUDuzV5D477GN6mefY+UBuQby0wV/O8U9wJr9E8W2iY92vNs45xJ6zTfKoN827UPNsdd8K1SlJyo8Awb7XhEIkVYYAVmjXVBPtr1uyqJBBeLu5LDPMdppkPdiaRcHvDfKeJ+++SIFoCLBP3R1toWW58lhQFogiodwkPlYZf1y1w/AcclCQVcYWQtILwqiA8M2lGgDcFgSN90nbXiJUXRdWQ/BYiLMdxH5+0k8VavRb4JGmEl4j7vh7pRgDni2fj1RyQKBwiuqjui/Un015dBbQloXCbaTdrZuUajTp4IwnGbEHmKPX8QmCHhuwC9p4rKBI8IghdB0zCsT1Lsg0+4zwxuEiQqqcVmGWDlAETk+zSJE9Ublyjuqof2TrgxKQT7anMNSZfd1iSiZYCUwy+avP1dJLJXglsxdyV8hHQJolEDwBewc5v9J3Klzj0xYnTsCG7W4mdicMdwC7CeQaPTBLRAjUxZeMKvSwpZPcDPghBUGpE45JAthjH92NLdiUwSDz7NO5k24YkuwTHGZYvtKMtcSabD7wVguy37OkilU7v8rgSfjoE2c816+wkkebKOJK9NgTZ2Wpykxgu0k2IG9lTcMIBbchOx9tTWKHpBbFBoZpwbMi+iL9FtEC8wG1xIvyQJdlJhuVWinzd4kD2cJxYZlOyky3KfkHkvSoOhF+2IPu8Zdk3x82O1QV96JDumhJSu5KB4XsVEwzJziCcy2Z/8UK3K5G1PZnhDi2iBW02IDvPY501xY8BuvJ6JcY+AQzAPCDGGucZkF2GefiCxFk4AWoN2K0AG4HHiSBATWJqQMXr1Qxui3Jlv8o2nHiHIl4UFeF1+G/ACOMGuZVoYqfd12qgX7ZkuwZUMjyEoWBaxETd1y5gVDaEr/YpfGqIyW9ODsm6r7FhCY/z6T625tTpLUS2+bo3DOHZHoVdYFnOqBYmG3rbz1JNQbZ2p2MsZfAor604G8OMsUVTyEBLwjMsv4r7vkapl28AH+PEWNqu1++ZNjRPk3mFJdnjDBu4HBipVoUGsewVaGb6fjgRPSsMSQ8wNb/KjA9bEp5osIzcLUitEml6BNQxxGPoWVtROmoynmFJ+CefRvytxFaJt0W6GwwtqE8GkA56cZSSGVxiI74FhTUM9ch3f0irCerleNU3wbZL2xrJzwhp+hks0s6PaBitMsnsXk7WWlY8xKPi7fjvOZI94x/sHOQFPobGw+U4kHBvrrDVRrw2RE4L6C3V7Ln3sBg43qLeeuAxj996BxHeJCYxm2i4Gh8RMwjL/BpqgA/VpKgTgnwJuzdXtbWUWpZpntUCiwwlPDf6WBLeBSzWPO8URFjuHOthUWm1ptJFaizZErb9wvJjNaMkiLDck2CrYD8n7k13hUrCvUIYB3Vdui6I8FI1qzbjUstKXwe+EV3aBKtE40pwjsKwwQEeuoEv4d3ALNf9ycCpFpU24ngRVrvkYNN8y7Ps1rqlb3MQYXCc3m7YytOb1FCYa2lhzHbiqjAoU4s2GoG+D+Fg85VGijq/ssh7qEboqLGZB6QDvBLHdZpLnK6R0EzlgNs0hGfZVJ6v1lV3ARNzTLhYo0sfY5h3sYWy4ole7Blh16ismrnEStFok/ou05BdR8iA1QfJDN2/PoeEZZTQkwZL0RoN4bvCNiCPzONlGpVJNBe7Tu4TdX1h2bbmmLCCbMfWAvTew6iDQy/QzLReZJ/RtKk+pFiagXZqmdCdyzGG8J5Eic6aOuSe4yK8A+RGRfn2/SqqwdmbVBZBPX/gHbh2MfAbEbtbTAQEr7itehyX6DDCn6zyCZlhUHcoTc7Ltj2WHKNcLexBRvaFaqxdr0Q/k2OixmNudN9uo+BEMcsOAB4AzrXIU6vUxlrVU3YqJaMEOELZoUzW0PeBezz04JyjN07o0mZy7zD7EjiTmKAQOAfHJlyJ/xmWtsHlo1UPCI28FnoBJym9urtaYspwdrOUKkmprerC/6pl7lel/HdxlTORBB/7aIJnLSQuK40orlisUWRaNXpoxnHX1ky4DZlhTkNbc5duwAlNjLRb58f8Ky/e1wgv2dcmrr6aiSur3agFOWxsL6XM91a6crUSCWfi+H9NoDtEsIKY7YI52sNQ4D5uZpBFeTKMamScyJqeFL4L8yOjfhB5x8Rp0ppoaPEoBF4j86A/HerEfUlcCB8GXGGRvqPSZYPQIeAF7DXC/bE3fJsY2eWsvCEuhMtC9oouAROgPPxveVwIN4TM53f08tnifgfmh/nmnPC6kPk2+fx2k7ifpWb4WKAT9mG+foFvMqqvkRj+pYntFp0HPMrZj8wg1VieEd8Tc6NdFXr3TCFOgLc77TZifE7AaAOyv+MY9iS64pxBK7vyJXHWcLy8eu4T0dybo9vhBMBMJvMwwEbgzqSodnfhvxOtDieQzOv3ncRkE7UNytV4tJ295+LsnUgsugKPAt/jvQm7DmcX2+Bcj7eWRjFwAo4rtYOa1avUMrSTFClSpEiRIkWKFClSpEiRIkWKFClSpEiRIkWKFClSpEiRIgL8D6ed2EKeJMaTAAAAAElFTkSuQmCC";var lm="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAABGCAYAAACQRffVAAADInpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7VdbktwgDPznFDkCkgCJ4/AwVblBjp8GY+/OZFPZPD7yMVADWIiWUEt2jTu+fR3uCxplTi5EtZRT8mghh8wFC/Nnq2skH9a4mrS9R49yF9LeYIhkap6Pmbf8gBxr2s95G6FL/wK6FlSwim8bpWx5fZTXDcj2DLQ3hE7Lvu8DG0h4exTO57Y9Stn04Wp93xmKp8jefkGUU0ykAWNgr5oy1sY+KOLZp6PcznP31S7B9XypMnziQ0g8RpFweinzJ1IwJ4wk4qA4hUXiGlmWGTiUEG4Fbj6BR/F3MN/H5i1GP2mfuZaHkXFM5XdXu+envOn147y5VzsN3JU3lvaGPNLq0z1/KKd4AV0bctvh95at3ZYf5ENWdt3Nvad7jG5jXRq3KCEhFmlf6rrKWkGvziiuUwldfXLANSxmz+jmi2/Iqe4bKq1inYnB/aBAnQoNOtbcqMHFwAcrZubmWJbQQFLmhlQgCbPTYJUsXQwp0c4cEr59oWU2L3ONzHfnO0GVCWCEI3/c3WcVx5i1ROTtjBM8g188qxNeeAL9c4IaGKGxgxpXgK/+3CavAgbjCrPhgsVXd0LUSG/JJYvoSW/EfFY9ad8ACBFMRzhDAgZ8IomU4JEyKxECaSCowHWWwBUMUIzc4SQHkQRyUB2wjTNKS5Ujn2K8VSU4FGsSBTdZCsgKISJ/NBhyqESJIcaYokaLOZYkaVZeSprm67moaNCoSVXNadZiYsGiJVMzy1YyZ8HrO2bUabaccykwWoBccLpAoZTKVWqosaaq1Wp2tTSkTwstttS0WcutdO7SUeA9de3Wcy8HHUilIxzxSIceduSjDKTakBFGHGmoGzbyKDdrtMv2uf8Ga7RZ48XUVNSbNUhVLwiar5M4OQNjHAiEK1gDY0jsyZk3CoEnc5MzfI9QFZHhZJzkdJqMgcFwEMdBN3ebOcfl3/Dm1BZv/LfMuUndJ5n7kbePWOvzK9EWY2cZzqB6QfVh/7DCVubn9aez+5XCZ+cX0AvoBfQCegG9gP57oIEPJ/4Bue+bLIaQwqExNwAAAYVpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVfU7UiFQeLijhkqE4WREUcSxWLYKG0FVp1MLn0Q2jSkKS4OAquBQc/FqsOLs66OrgKguAHiKuLk6KLlPi/pNAixoPjfry797h7Bwj1MlPNjiigapaRisfEbG5FDLyiC0EMYgIDEjP1RHohA8/xdQ8fX+8iPMv73J+jV8mbDPCJxFGmGxbxOvHMpqVz3icOsZKkEJ8Tjxt0QeJHrssuv3EuOizwzJCRSc0Rh4jFYhvLbcxKhko8TRxWVI3yhazLCuctzmq5ypr35C8M5rXlNNdpjiCORSSQhAgZVWygDAsRWjVSTKRoP+bhH3b8SXLJ5NoAI8c8KlAhOX7wP/jdrVmYmnSTgjGg88W2P0aBwC7QqNn297FtN04A/zNwpbX8lTow+0l6raWFj4C+beDiuqXJe8DlDjD0pEuG5Eh+mkKhALyf0TflgP5boGfV7a25j9MHIENdLd0AB4fAWJGy1zze3d3e279nmv39ANCccsygwwDVAAAQE2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDo0MDc4NWMzNi00MDFkLTRhNmUtOTE4Ny0wNDU1MjgyYzRkZjYiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Nzg3YjYxN2YtMjg1MS00YzhlLTg2MTYtZWM3NGMwYzYwMWVlIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZTdhYTQxY2EtM2JiMy00ZTliLTk0NDEtOWU1M2ZlMmJmMzlmIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2ODY2MTM5NDcxOTU2ODAiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4zNCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjM6MDY6MTNUMDI6NTI6MjUrMDM6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIzOjA2OjEzVDAyOjUyOjI1KzAzOjAwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MjczNjZiZjQtZWRkMy00MTk4LTk2MmEtZTllMzkxMGU1OGJlIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTA4LTIyVDAyOjU1OjM2Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjk2NWUxMzc5LTBkOWYtNDk4Mi1hZDcwLTkzOGM5YzM5YTRmMyIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wOS0xMVQxNjozNTowMCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMGZiYTBhMy05MjliLTQ1NGUtOGM0Yy04ZWQ4YzhhYmFkZGMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjMtMDYtMTBUMTc6NTA6MDkiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDBmYjM4YTMtZjZiMi00NjQ1LTliMTYtMjlhNWE0ODZlMjhhIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIzLTA2LTEzVDAyOjUyOjI3Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PsIRrtIAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfnBgwXNBsqJURsAAAAGXRFWHRDb21tZW50AENyZWF0ZWQgd2l0aCBHSU1QV4EOFwAABF9JREFUeNrtmluIF1Ucxz9/E8P1VnnJ9dJWC4Frmq2JJmqolGEILoQvK2gZeXlRCSm1Fx9UEsJQERWsXhRftECs0Gq70EK9ZHlbFyHbds3VVXFX91+7664P81tYhpnfmft//st84TzMzDm/8/vOnPO7nYEMGTJkyJAhQ4YMGSJBLkJZw4FyYAIwDHgU+A9oAxqBv4C7xfyySoBlwKfAFaAb6DG0euAzoAoYXCxEnwH2A60eCGrtFrALGJNWokNEwY6QRO2tFXgPGJAmss8DlyImam/fASPTQHaeGJueBFod8FQhrfSLwM+ynDX8L1/oV+BP4LZY58eBUUAlMB94ycPSvQTMERmJ4jGgwYPh2Qg84VFmGbAP6DTI/aoQS/lzg1JfA2MDyn4ZuGaQvyZJspUGv3oKGBhyjmeBJmWOmxLMJIITiiIXIgwaZgFdylxbDeNHANXAZmAVUBpEiScNe2xRxC/3Y2WuRmUlLRHD1rd/HljvV4F3FAVqYlhNo4B7Pl/wdPEMbmOq/ShwRBH0Vkxb6LAy536fW64HuOpn8vOKoLKYCC9Q5rzs0L/JQxDjyYPkgHYXAW0xGslByrLuFuPUFw0eCI92mmiAQ4LgZoEbYyTcAZxVPsJk271ag7x6cWueCLvhfsyu8LzybKLtersUF9ywxe2BnXBnAZOUJuXZeNv1OSki3LLdzwPrgONuguw+7g7wAHjEoW+vEagAXgeelr1yUSZoCUn4hvJsqMO9byRaWyLGtFkiwOtBJnYzBKcVg/ZuSMIrlHl3RrWMnFK1OqX/q8oXOAisDqFLVxL7xonw9yHk7Q5RoxpuyLdjI3wmhLzBwMqAY0ck4SGcCNeKIQqKOTF84RtxEu4BPgohc2QM467HSRjgqBL5mBDUPU1Rnl1JwqBNUuJqrW0M+OLdYuk8Cdas38Rf4b3FR0HP/nLdZNYaioKbxSVuA6ZGQfoNvNWlO6VvEKxW5O5yGbNc4ml7ZrUtCtLjgGMSdjop9Q+wMIT8GoXwKw79ZxrKUG9r+a8flMoyr5AA4ybwo1QgggYHpZJ6Ou3Ta5IpddvufwEsVWQ2xFisCI1Nypf6RMmsIql4JI0S8bFuSs9UvmCgikeh8b6i8C/KuKOYD+VShzGSwLsprRnByYYYoSqNhE8qCv/kYfxrYjT7jmuPIC+PBWsVsl1YRzBeE45qqWGtwjo1SR0WoZ8a7KAfYa5h7/2OVaPuF1gqtS83srclpi565IAP0c+b7wOz+wPZckOc3Jt0LC52oiXABx7y6VasGnfRYgiwwRAu9raGqPLXQmAGcADvvyN+m9bgXnP4i4E9wN8+KiJ5WQG5QilumnioJP9lwHPANKw/fF7A+fxJw2ms/y9SFdiPBf4Vn9hJNL8T/iFxbyoxgej+m6zBOtnLpXlvhiXcDOyVJV8UCEL4KnBI/OnAtBP0q+ADMTq/SfshrdUFr4TzwJdY9d57WIdYzRIk1GMdeXSQIUOGDBmSwUMtd8u2ArdcUAAAAABJRU5ErkJggg==";var Ry="#55cc55",Ey="#55cc55",My="#44aa44",tu=new Map([[0,{src:hm}],[1,{src:lm}]]);function Dy(o,t){return!o&&!t?!0:!o||!t?!1:o.scoreRow===t.scoreRow&&o.diatonicId===t.diatonicId}function ky(o,t){return!o&&!t?!0:!o||!t?!1:o.length===t.length&&o.every((e,r)=>e===t[r])}var Bs=class{constructor(t){this.mi=t;m(this,"devicePixelRatio");m(this,"fontSize");m(this,"unitSize");m(this,"lineWidth");m(this,"beamThickness");m(this,"scoreEventListener");m(this,"canvas");m(this,"ctx");m(this,"mdoc");m(this,"cursorRect");m(this,"mousePos");m(this,"curStaffPos");m(this,"curObjects");m(this,"hilightedStaffPos");m(this,"hilightedObj");m(this,"usingTouch",!1);m(this,"onClickFn");m(this,"onMouseMoveFn");m(this,"onMouseLeaveFn");m(this,"onTouchEndFn");this.devicePixelRatio=window.devicePixelRatio,this.fontSize=wo.FontSize*ct.DocumentScale*this.devicePixelRatio,this.unitSize=this.fontSize*.3,this.lineWidth=this.unitSize*.2,this.beamThickness=this.unitSize*.8,tu.forEach(e=>{if(e.finished!==!0){let r=new Image;r.src=e.src,r.onload=()=>{e.img=r,this.finishImageAsset(e)},r.onerror=()=>{throw this.finishImageAsset(e),new E(6,"Failed to load image: "+e.src)}}}),this.onClickFn=this.onClick.bind(this),this.onMouseMoveFn=this.onMouseMove.bind(this),this.onMouseLeaveFn=this.onMouseLeave.bind(this),this.onTouchEndFn=this.onTouchEnd.bind(this)}getMusicInterface(){return this.mi}get doc(){var t;return(t=this.mdoc)==null?void 0:t.getMusicObject()}finishImageAsset(t){t.finished=!0,Array.from(tu).every(r=>r[1].finished===!0)&&this.onLoad()}getImageAsset(t){var e;return(e=tu.get(t))==null?void 0:e.img}setDocument(t){if(this.mdoc===t)return;this.updateCursorRect(void 0);let e=this.mdoc;this.mdoc=t,e&&e.getMusicObject().setRenderer(void 0),t&&t.getMusicObject().setRenderer(this)}setCanvas(t){var e,r;this.canvas!==t&&(this.canvas&&(this.canvas.removeEventListener("click",this.onClickFn),this.canvas.removeEventListener("mousemove",this.onMouseMoveFn),this.canvas.removeEventListener("mouseleave",this.onMouseLeaveFn),this.canvas.removeEventListener("touchend",this.onTouchEndFn)),this.canvas=t,this.canvas.addEventListener("click",this.onClickFn),this.canvas.addEventListener("mousemove",this.onMouseMoveFn),this.canvas.addEventListener("mouseleave",this.onMouseLeaveFn),this.canvas.addEventListener("touchend",this.onTouchEndFn),this.canvas.style.position="relative"),this.ctx=(r=(e=this.canvas)==null?void 0:e.getContext("2d"))!=null?r:void 0}setScoreEventListener(t){this.scoreEventListener=t}needMouseInput(){return this.scoreEventListener!==void 0}getMousePos(t){return new Ou(t.offsetX,t.offsetY)}updateCurStaffPos(t,e){let r=!Dy(t,this.curStaffPos);if(r&&this.curStaffPos&&this.scoreEventListener){let{scoreRow:i,diatonicId:n}=this.curStaffPos;this.scoreEventListener(new hi("leave",this.getMusicInterface(),i.getMusicInterface(),n))}if(r&&t&&this.scoreEventListener){let{scoreRow:i,diatonicId:n}=t;this.scoreEventListener(new hi("enter",this.getMusicInterface(),i.getMusicInterface(),n))}if(e&&t&&this.scoreEventListener){let{scoreRow:i,diatonicId:n}=t;this.scoreEventListener(new hi("click",this.getMusicInterface(),i.getMusicInterface(),n))}return this.curStaffPos=t,r}updateCurObjects(t,e){let r=!ky(t,this.curObjects);return r&&this.curObjects&&this.curObjects.length>0&&this.scoreEventListener&&this.scoreEventListener(new li("leave",this.getMusicInterface(),this.curObjects.map(i=>i.getMusicInterface()))),r&&t&&t.length>0&&this.scoreEventListener&&this.scoreEventListener(new li("enter",this.getMusicInterface(),t.map(i=>i.getMusicInterface()))),e&&t&&t.length>0&&this.scoreEventListener&&this.scoreEventListener(new li("click",this.getMusicInterface(),t.map(i=>i.getMusicInterface()))),this.curObjects=t,r}onClick(t){let{doc:e}=this;if(!(!this.needMouseInput()||!e)&&(this.mousePos=this.txFromScreenCoord(this.getMousePos(t)),this.scoreEventListener)){let r=e.pick(this.mousePos.x,this.mousePos.y),i=e.pickStaffPosAt(this.mousePos.x,this.mousePos.y),n=this.updateCurStaffPos(i,!0),s=this.updateCurObjects(r,!0);(n||s)&&this.draw()}}onMouseMove(t){let{doc:e}=this;if(!(!this.needMouseInput()||!e)&&(this.mousePos=this.txFromScreenCoord(this.getMousePos(t)),!this.usingTouch)){let r=e.pick(this.mousePos.x,this.mousePos.y),i=e.pickStaffPosAt(this.mousePos.x,this.mousePos.y),n=this.updateCurStaffPos(i,!1),s=this.updateCurObjects(r,!1);(n||s)&&this.draw()}}onMouseLeave(t){if(!this.needMouseInput())return;this.mousePos=void 0;let e=this.updateCurStaffPos(void 0,!1),r=this.updateCurObjects(void 0,!1);(e||r)&&this.draw()}onTouchEnd(t){this.usingTouch=!0}onLoad(){this.doc&&(this.doc.requestFullLayout(),this.draw())}hilightObject(t){this.hilightedObj=t}hilightStaffPos(t){this.hilightedStaffPos=t}updateCursorRect(t){this.cursorRect=t,this.draw()}updateCanvasSize(){let{canvas:t,doc:e}=this;if(t&&e){let r=e.getRect(),i=r.width+1,n=r.height+1;t.width=i,t.height=n,t.style.width=i/this.devicePixelRatio+"px",t.style.height=n/this.devicePixelRatio+"px"}}draw(){let{ctx:t,doc:e}=this;!t||!e||(e.layout(),this.updateCanvasSize(),this.clearCanvas(),this.drawHilightStaffPosRect(),this.drawHilightObjectRect(),this.drawPlayCursor(),e.drawContent())}drawHilightStaffPosRect(){let t=this.getCanvasContext(),{mousePos:e,hilightedStaffPos:r,unitSize:i}=this;if(!t||!r)return;let{scoreRow:n,diatonicId:s}=r,a=n.getStaff(s);a&&(t.fillStyle=Ry,t.fillRect(0,a.getDiatonicIdY(s)-i,t.canvas.width,2*i),e!==void 0&&this.drawLedgerLines(a,s,e.x))}drawHilightObjectRect(){let t=this.getCanvasContext(),{hilightedObj:e}=this;if(!t||!e)return;let r=e.getRect();t.strokeStyle=Ey,t.strokeRect(r.left,r.top,r.width,r.height)}drawPlayCursor(){let{cursorRect:t,lineWidth:e}=this;t&&this.drawLine(t.centerX,t.top,t.centerX,t.bottom,My,e*2)}txFromScreenCoord(t){return t.mul(this.devicePixelRatio)}txToScreenCoord(t){return t.div(this.devicePixelRatio)}getCanvasContext(){return this.ctx}clearCanvas(){let t=this.getCanvasContext();t&&t.clearRect(0,0,t.canvas.width,t.canvas.height)}getTextWidth(t,e){let r=this.getCanvasContext();if(r){let i=r.font;r.font=e;let n=r.measureText(t);return r.font=i,n.width}else return I.Dom.getCanvasTextWidth(t,e)}drawDebugRect(t){if(!Fs.DrawDebugRects)return;let e=this.getCanvasContext();e&&(e.lineWidth=1,e.strokeStyle="red",e.beginPath(),e.rect(t.left,t.top,t.right-t.left,t.bottom-t.top),e.stroke())}fillCircle(t,e,r,i){let n=this.getCanvasContext();n&&(i!==void 0&&(n.fillStyle=i),n.beginPath(),n.arc(t,e,r,0,2*Math.PI),n.fill())}drawLine(t,e,r,i,n,s){let a=this.getCanvasContext();a&&(a.strokeStyle=n!=null?n:"black",a.lineWidth=s!=null?s:this.lineWidth,a.beginPath(),a.moveTo(t,e),a.lineTo(r,i),a.stroke())}drawPartialLine(t,e,r,i,n,s,a,c){let u=this.getCanvasContext();if(u){let h=t+(r-t)*n,l=e+(i-e)*n,p=t+(r-t)*s,d=e+(i-e)*s;u.strokeStyle=a!=null?a:"black",u.lineWidth=c!=null?c:this.lineWidth,u.beginPath(),u.moveTo(h,l),u.lineTo(p,d),u.stroke()}}drawLedgerLines(t,e,r){let{unitSize:i}=this,n=i*ct.LedgerLineWidth;if(e>=t.topLineDiatonicId+2){for(let s=t.topLineDiatonicId+2;s<=e;s+=2)if(t.containsDiatonicId(s)){let a=t.getDiatonicIdY(s);this.drawLine(r-n/2,a,r+n/2,a)}}else if(e<=t.bottomLineDiatonicId-2){for(let s=t.bottomLineDiatonicId-2;s>=e;s-=2)if(t.containsDiatonicId(s)){let a=t.getDiatonicIdY(s);this.drawLine(r-n/2,a,r+n/2,a)}}}};var Bt=class extends et{constructor(e,r){super(e);this.row=e;this.staffConfig=r;m(this,"clefImageAsset");m(this,"clefLineDiatonicId");m(this,"topLineDiatonicId");m(this,"middleLineDiatonicId");m(this,"bottomLineDiatonicId");m(this,"minDiatonicId");m(this,"maxDiatonicId");m(this,"joinedGrandStaff");m(this,"topLineY",0);m(this,"bottomLineY",0);m(this,"objects",[]);m(this,"mi");let i=(n,s)=>G.getNote(n).diatonicId-(s?7:0);r.clef==="G"?(this.clefImageAsset=0,this.clefLineDiatonicId=i("G4",r.isOctaveDown===!0),this.middleLineDiatonicId=this.clefLineDiatonicId+2):(this.clefImageAsset=1,this.clefLineDiatonicId=i("F3",r.isOctaveDown===!0),this.middleLineDiatonicId=this.clefLineDiatonicId-2),this.topLineDiatonicId=this.middleLineDiatonicId+4,this.bottomLineDiatonicId=this.middleLineDiatonicId-4,this.minDiatonicId=r.minNote!==void 0?Math.min(i(r.minNote,!1),this.bottomLineDiatonicId):void 0,this.maxDiatonicId=r.maxNote!==void 0?Math.max(i(r.maxNote,!1),this.topLineDiatonicId):void 0,this.mi=new rn(this)}getMusicInterface(){return this.mi}get isOctaveDown(){return this.staffConfig.isOctaveDown===!0}getTopLineY(){return this.topLineY}getMiddleLineY(){return(this.topLineY+this.bottomLineY)/2}getBottomLineY(){return this.bottomLineY}joinGrandStaff(e){e!==this&&(this.joinedGrandStaff=e)}getLineSpacing(){return(this.bottomLineY-this.topLineY)/4}getDiatonicSpacing(){return this.getLineSpacing()/2}containsDiatonicId(e){return G.validateDiatonicId(e),(this.minDiatonicId===void 0||e>=this.minDiatonicId)&&(this.maxDiatonicId===void 0||e<=this.maxDiatonicId)}getDiatonicIdY(e){if(this.containsDiatonicId(e))return this.bottomLineY+(this.bottomLineDiatonicId-e)*this.getDiatonicSpacing();if(this.joinedGrandStaff&&this.joinedGrandStaff.containsDiatonicId(e))return this.joinedGrandStaff.getDiatonicIdY(e);throw new E(6,"Staff does not contain diatonicId "+e)}getActualStaff(e){if(this.containsDiatonicId(e))return this;if(this.joinedGrandStaff&&this.joinedGrandStaff.containsDiatonicId(e))return this.joinedGrandStaff;throw new E(6,"Staff does not contain diatonicId "+e)}getDiatonicIdAt(e){let r=Math.round(this.bottomLineDiatonicId-(e-this.bottomLineY)/this.getDiatonicSpacing());return this.containsDiatonicId(r)?r:void 0}isLine(e){return e%2===this.middleLineDiatonicId%2}isSpace(e){return e%2!==this.middleLineDiatonicId%2}containsVoiceId(e){return!this.staffConfig.voiceIds||this.staffConfig.voiceIds.includes(e)}isGrand(){return this.staffConfig.isGrand===!0}calcTop(){let e=this.topLineY;if(this.objects.forEach(r=>e=Math.min(e,r.getRect().top)),this.maxDiatonicId!==void 0){let r=this.getDiatonicIdY(this.maxDiatonicId),i=this.getDiatonicIdY(this.maxDiatonicId-1);e=Math.min(e,r-Math.abs(i-r)+1)}return e}calcBottom(){let e=this.bottomLineY;if(this.objects.forEach(r=>e=Math.max(e,r.getRect().bottom)),this.minDiatonicId!==void 0){let r=this.getDiatonicIdY(this.minDiatonicId),i=this.getDiatonicIdY(this.minDiatonicId+1);e=Math.max(e,r+Math.abs(i-r)-1)}return e}addObject(e){this.objects.push(e)}removeObjects(){this.objects.length=0}pick(e,r){return[this]}layoutHeight(e){let{unitSize:r}=e,i=r*ct.StaffHeight;this.topLineY=-i/2,this.bottomLineY=i/2,this.rect=new F(0,0,this.topLineY,this.bottomLineY)}layoutWidth(e){this.rect.left=this.row.getRect().left,this.rect.right=this.row.getRect().right}offset(e,r){this.topLineY+=r,this.bottomLineY+=r,this.objects.forEach(i=>{i.offsetInPlace?i.offsetInPlace(0,r):i.offset&&i.offset(0,r)}),this.rect.offsetInPlace(e,r)}draw(e){}},zr=class extends et{constructor(e,r){super(e);this.row=e;this.tabConfig=r;m(this,"top",0);m(this,"bottom",0);m(this,"objects",[]);m(this,"tuningName");m(this,"tuningStrings");m(this,"mi");I.Is.isArray(r.tuning)?(this.tuningName=void 0,this.tuningStrings=r.tuning.map(i=>G.getNote(i)).reverse()):typeof r.tuning=="string"?(this.tuningName=Wa(r.tuning),this.tuningStrings=Wn(this.tuningName)):(this.tuningName="Standard",this.tuningStrings=Wn(this.tuningName)),this.mi=new on(this)}getMusicInterface(){return this.mi}getTuningName(){return this.tuningName}getTuningStrings(){return this.tuningStrings}getStringY(e){return this.top+(this.bottom-this.top)/6*(e+.5)}getTopStringY(){return this.getStringY(0)}getBottomStringY(){return this.getStringY(5)}getTop(){return this.top}getBottom(){return this.bottom}containsVoiceId(e){return!this.tabConfig.voiceIds||this.tabConfig.voiceIds.includes(e)}calcTop(){return this.top}calcBottom(){return this.bottom}addObject(e){this.objects.push(e)}removeObjects(){this.objects.length=0}pick(e,r){return[this]}layoutHeight(e){let{unitSize:r}=e,i=r*ct.TabHeight;this.top=-i/2,this.bottom=i/2,this.rect=new F(0,0,this.top,this.bottom)}layoutWidth(e){this.rect.left=this.row.getRect().left,this.rect.right=this.row.getRect().right}offset(e,r){this.top+=r,this.bottom+=r,this.objects.forEach(i=>{i.offsetInPlace?i.offsetInPlace(0,r):i.offset&&i.offset(0,r)}),this.rect.offsetInPlace(e,r)}draw(e){}};var Vs=class{constructor(t){this.measure=t;m(this,"accidentalByDiatonicId",[])}getAccidentalFromKeySignature(t){let r=this.measure.getKeySignature().getOrderedAccidentalNotes().find(i=>i.diatonicClass===G.getDiatonicClass(t));return r?r.accidental:void 0}setAccidental(t){this.accidentalByDiatonicId[t.diatonicId]=t.accidental}needAccidental(t){var r,i;let e=(i=(r=this.accidentalByDiatonicId[t.diatonicId])!=null?r:this.getAccidentalFromKeySignature(t.diatonicId))!=null?i:0;return t.accidental!==e}};var Gs=class extends et{constructor(e,r,i,n,s){super(e);this.image=r;this.anchorX=i;this.anchorY=n;this.imageScale=s;m(this,"mi");this.mi=new nn(this)}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{anchorX:r,anchorY:i,image:n,imageScale:s}=this,{unitSize:a}=e;try{let c=n.naturalWidth*s*a,u=n.naturalHeight*s*a;this.rect=F.createSections(c*r,c*(1-r),u*i,u*(1-i))}catch(c){this.rect=new F}}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;let i=this.rect;e.drawDebugRect(i);try{r.drawImage(this.image,i.centerX-i.leftw,i.centerY-i.toph,i.width,i.height)}catch(n){}}};var pi=class extends et{constructor(e,r,i,n="black"){super(e);this.diatonicId=r;this.accidental=i;this.color=n;m(this,"mi");this.mi=new sn(this)}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e;switch(this.accidental){case-2:this.rect=F.createSections(r*1.25,r*1.25,r*4,r*1.2);break;case-1:this.rect=F.createSections(r*.75,r*.75,r*4,r*1.2);break;case 0:this.rect=F.createSections(r*.75,r*.75,r*2.2,r*2.2);break;case 1:this.rect=F.createSections(r*.75,r*.75,r*2,r*2);break;case 2:this.rect=F.createSections(r*1,r*1,r*1,r*1);break;default:throw new E(6,"Invalid accidental value: "+this.accidental)}}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;e.drawDebugRect(this.rect);let{unitSize:i,lineWidth:n}=e,{accidental:s}=this,a=this.rect.centerX,c=this.rect.centerY;r.strokeStyle=r.fillStyle=this.color;function u(h,l){r&&(r.lineWidth=n,r.beginPath(),r.moveTo(h-i*.75,l-i*4),r.lineTo(h-i*.75,l+i*1.1),r.bezierCurveTo(h+i*.75,l-i*0,h+i*.75,l-i*2.2,h-i*.75,l-i*.5),r.stroke())}s===-2?(u(a-i*.5,c),u(a+i*.5,c)):s===-1&&u(a,c),s===0?(r.beginPath(),r.lineWidth=n,r.moveTo(a-i*.5,c-i*2.2),r.lineTo(a-i*.5,c+i*1),r.moveTo(a+i*.5,c+i*2.2),r.lineTo(a+i*.5,c-i*1),r.stroke(),r.beginPath(),r.lineWidth=n*2,r.moveTo(a-i*.5,c+i*1),r.lineTo(a+i*.5,c+i*.6),r.moveTo(a+i*.5,c-i*1),r.lineTo(a-i*.5,c-i*.6),r.stroke()):s===1?(r.lineWidth=n,r.beginPath(),r.moveTo(a-i*.3,c-i*1.6),r.lineTo(a-i*.3,c+i*2),r.moveTo(a+i*.3,c-i*2),r.lineTo(a+i*.3,c+i*1.6),r.stroke(),r.lineWidth=n*2,r.beginPath(),r.moveTo(a-i*.75,c-i*.5),r.lineTo(a+i*.75,c-i*.9),r.moveTo(a-i*.75,c+i*.9),r.lineTo(a+i*.75,c+i*.5),r.stroke()):s===2&&(r.lineWidth=n,r.beginPath(),r.moveTo(a-i*.75,c-i*.75),r.lineTo(a+i*.75,c+i*.75),r.moveTo(a-i*.75,c+i*.75),r.lineTo(a+i*.75,c-i*.75),r.stroke(),r.fillRect(a-i*1,c-i*1,i*.7,i*.7),r.fillRect(a+i*.3,c-i*1,i*.7,i*.7),r.fillRect(a-i*1,c+i*.3,i*.7,i*.7),r.fillRect(a+i*.3,c+i*.3,i*.7,i*.7))}};var Py=.5,ht=class extends et{constructor(e,r,i,n){var a,c,u,h,l,p;super(e);this.anchorX=i;this.anchorY=n;m(this,"text");m(this,"scale");m(this,"color");m(this,"bold");m(this,"italic");m(this,"boxed");m(this,"padding");m(this,"bgcolor");m(this,"font","");m(this,"textLines");m(this,"lineWidths",[]);m(this,"lineHeight",0);m(this,"mi");let s=typeof r=="string"?{text:r}:r;this.text=s.text,this.scale=(a=s.scale)!=null?a:1,this.color=(c=s.color)!=null?c:"black",this.bold=(u=s.bold)!=null?u:!1,this.italic=(h=s.italic)!=null?h:!1,this.boxed=(l=s.boxed)!=null?l:!1,this.padding=(p=s.padding)!=null?p:this.boxed?Py:0,this.bgcolor=s.bgcolor,(!isFinite(this.padding)||this.padding<0)&&(this.padding=0),this.textLines=this.text.split(`
|
|
210
|
-
`),this.textLines.length===0&&(this.textLines=[""]),this.rect=new F,this.mi=new an(this)}getMusicInterface(){return this.mi}getText(){return this.text}updateAnchorX(e){this.anchorX=e;let{width:r}=this.rect;this.rect.left=this.rect.centerX-r*e,this.rect.right=this.rect.centerX+r*(1-e)}updateAnchorY(e){this.anchorY=e;let{height:r}=this.rect;this.rect.top=this.rect.centerY-r*e,this.rect.bottom=this.rect.centerY+r*(1-e)}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{scale:r,anchorX:i,anchorY:n,bold:s,italic:a}=this,c=e.fontSize*r;this.font=(a?"italic ":"")+(s?"bold ":"")+c+"px Times New Roman",this.lineWidths=this.textLines.map(p=>e.getTextWidth(p,this.font)),this.lineHeight=c;let u=this.padding*e.unitSize,h=u+Math.max(...this.lineWidths)+u,l=u+this.lineHeight*this.textLines.length+u;(this.boxed==="square"||this.boxed==="circle")&&(l=h=Math.max(l,h)),this.rect=F.createSections(h*i,h*(1-i),l*n,l*(1-n))}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;e.drawDebugRect(this.rect),r.lineWidth=e.lineWidth,r.strokeStyle=r.fillStyle=this.color,r.font=this.font;let{rect:i,padding:n,lineHeight:s,lineWidths:a,anchorX:c,anchorY:u,italic:h}=this;this.bgcolor!==void 0&&(r.save(),r.fillStyle=this.bgcolor,r.beginPath(),r.fillRect(i.left,i.top,i.width,i.height),r.fill(),r.restore());let p=this.textLines.length*s,d=-s*(h?.25:.175),f=n*e.unitSize,g=(i.left+f)*(1-c)+(i.right-f)*c,x=(i.top+f)*(1-u)+(i.bottom-f)*u;switch(this.textLines.forEach((b,v)=>{let S=g-a[v]*c,T=x-p*u+s*(v+1)+d;r.fillText(b,S,T)}),this.boxed){case"square":case"rectangle":r.strokeRect(i.left,i.top,i.width,i.height);break;case"circle":case"ellipse":let b=(i.left+i.right)/2,v=(i.top+i.bottom)/2,S=(i.right-i.left)/2,T=(i.bottom-i.top)/2;r.beginPath(),r.ellipse(b,v,S,T,0,0,2*Math.PI),r.stroke();break}}};var qs=class extends et{constructor(e,r){super(e);this.measure=e;this.staff=r;m(this,"clefImage");m(this,"eightBelowClef");m(this,"measureNumber");m(this,"ksNeutralizeAccidentals",[]);m(this,"ksNewAccidentals",[]);m(this,"beatCountText");m(this,"beatSizeText");m(this,"tempoText");m(this,"mi");this.mi=new cn(this)}getMusicInterface(){return this.mi}updateClefImage(e,r){if(r){let i=e.getImageAsset(this.staff.clefImageAsset);this.clefImage=i?new Gs(this,i,0,.5,.1):void 0,this.eightBelowClef=this.clefImage&&this.staff.isOctaveDown?new ht(this,"8",.5,0):void 0}else this.clefImage=void 0}updateMeasureNumber(e){if(e){let r=this.measure.getMeasureNumber().toString();this.measureNumber=new ht(this,r,0,1)}else this.measureNumber=void 0}updateKeySignature(e){if(e){let{measure:r}=this,i=r.getPrevMeasure(),n=i?i.getKeySignature():void 0,s=r.getKeySignature();this.ksNeutralizeAccidentals=[],this.ksNewAccidentals=[],n&&!Le.equals(s,n)&&n.getOrderedAccidentalNotes().forEach(a=>{this.ksNeutralizeAccidentals.push(new pi(this,this.getAccidentalDiatonicId(a),0))}),s.getOrderedAccidentalNotes().forEach(a=>{this.ksNewAccidentals.push(new pi(this,this.getAccidentalDiatonicId(a),a.accidental))})}else this.ksNeutralizeAccidentals=[],this.ksNewAccidentals=[]}updateTimeSignature(e){if(e){let r=this.measure.getTimeSignature(),i=r.beatCount.toString();this.beatCountText=new ht(this,{text:i,scale:1.4},0,.5);let n=r.beatSize.toString();this.beatSizeText=new ht(this,{text:n,scale:1.4},0,.5)}else this.beatCountText=this.beatSizeText=void 0}updateTempo(e){if(e){let r=Ya(this.measure.getTempo());this.tempoText=new ht(this,r,.5,1)}else this.tempoText=void 0}getAccidentalDiatonicId(e){let{clef:r}=this.staff.staffConfig,i;if(r==="G"?e.accidental>0?i=this.staff.bottomLineDiatonicId+3:e.accidental<0&&(i=this.staff.bottomLineDiatonicId+1):r==="F"&&(e.accidental>0?i=this.staff.bottomLineDiatonicId+1:e.accidental<0&&(i=this.staff.bottomLineDiatonicId-1)),i!==void 0)return G.findNextDiatonicIdAbove(e.diatonicId,i,!1);throw new E(6,"Cannot get accidental diatonicId because note has no accidental.")}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.eightBelowClef){let i=this.eightBelowClef.pick(e,r);if(i.length>0)return[this,...i]}if(this.clefImage){let i=this.clefImage.pick(e,r);if(i.length>0)return[this,...i]}for(let i=0;i<this.ksNeutralizeAccidentals.length;i++){let n=this.ksNeutralizeAccidentals[i].pick(e,r);if(n.length>0)return[this,...n]}for(let i=0;i<this.ksNewAccidentals.length;i++){let n=this.ksNewAccidentals[i].pick(e,r);if(n.length>0)return[this,...n]}if(this.beatCountText){let i=this.beatCountText.pick(e,r);if(i.length>0)return[this,...i]}if(this.beatSizeText){let i=this.beatSizeText.pick(e,r);if(i.length>0)return[this,...i]}if(this.tempoText){let i=this.tempoText.pick(e,r);if(i.length>0)return[this,...i]}if(this.measureNumber){let i=this.measureNumber.pick(e,r);if(i.length>0)return[this,...i]}return[this]}layout(e){let{unitSize:r}=e,{staff:i}=this,n=r,s=0;if(this.rect=new F,this.clefImage&&(s+=n,this.clefImage.layout(e),this.clefImage.offset(s,i.getDiatonicIdY(i.clefLineDiatonicId)),this.rect.expandInPlace(this.clefImage.getRect()),s=this.rect.right,this.eightBelowClef)){let c=this.clefImage.getRect();this.eightBelowClef.layout(e),this.eightBelowClef.offset(c.left+c.width/2,Math.max(c.centerY+c.height*.3,i.getBottomLineY())),this.rect.expandInPlace(this.eightBelowClef.getRect())}if(this.measureNumber){this.measureNumber.layout(e);let c=this.clefImage?this.clefImage.getRect().top:i.getTopLineY();this.measureNumber.offset(0,c),this.rect.expandInPlace(this.measureNumber.getRect()),s=Math.max(s,this.rect.right)}this.ksNeutralizeAccidentals.length>0&&(s+=n,this.ksNeutralizeAccidentals.forEach(c=>{c.layout(e),c.offset(s+c.getRect().leftw,i.getDiatonicIdY(c.diatonicId)),this.rect.expandInPlace(c.getRect()),s=this.rect.right})),this.ksNewAccidentals&&(s+=n,this.ksNewAccidentals.forEach(c=>{c.layout(e),c.offset(s+c.getRect().leftw,i.getDiatonicIdY(c.diatonicId)),this.rect.expandInPlace(c.getRect()),s=this.rect.right}));let a=s;this.beatCountText&&(this.beatCountText.layout(e),this.beatCountText.offset(s+n,i.getDiatonicIdY(i.middleLineDiatonicId+2)),this.rect.expandInPlace(this.beatCountText.getRect()),a=Math.max(a,this.rect.right)),this.beatSizeText&&(this.beatSizeText.layout(e),this.beatSizeText.offset(s+n,i.getDiatonicIdY(i.bottomLineDiatonicId+2)),this.rect.expandInPlace(this.beatSizeText.getRect()),a=Math.max(a,this.rect.right)),s=a,this.tempoText&&(this.tempoText.layout(e),this.tempoText.offset(s,Math.min(this.rect.top,i.getTopLineY())),this.rect.expandInPlace(this.tempoText.getRect())),this.rect.right+=n}offset(e,r){this.clefImage&&this.clefImage.offset(e,r),this.eightBelowClef&&this.eightBelowClef.offset(e,r),this.measureNumber&&this.measureNumber.offset(e,r),this.ksNeutralizeAccidentals.forEach(i=>i.offset(e,r)),this.ksNewAccidentals.forEach(i=>i.offset(e,r)),this.beatCountText&&this.beatCountText.offset(e,r),this.beatSizeText&&this.beatSizeText.offset(e,r),this.tempoText&&this.tempoText.offset(e,r),this.rect.offsetInPlace(e,r)}draw(e){this.clefImage&&this.clefImage.draw(e),this.eightBelowClef&&this.eightBelowClef.draw(e),this.measureNumber&&this.measureNumber.draw(e),this.ksNeutralizeAccidentals.forEach(r=>r.draw(e)),this.ksNewAccidentals.forEach(r=>r.draw(e)),this.beatCountText&&this.beatCountText.draw(e),this.beatSizeText&&this.beatSizeText.draw(e),this.tempoText&&this.tempoText.draw(e)}};var un=class un extends et{constructor(e,r){super(e);this.col=e;this.arpeggioDir=r;m(this,"topArrowHeight",0);m(this,"bottomArrowHeight",0);m(this,"cycleHeight",0);m(this,"color","black");m(this,"mi");this.mi=new hn(this)}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e;this.topArrowHeight=this.arpeggioDir===0?r:0,this.bottomArrowHeight=this.arpeggioDir===1?r:0,this.cycleHeight=r*2;let i=r*2,n=un.NumCycles*this.cycleHeight+this.topArrowHeight+this.bottomArrowHeight;this.rect=new F(-i/2,i/2,-n/2,n/2)}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;let{lineWidth:i,unitSize:n}=e,{rect:s,topArrowHeight:a,bottomArrowHeight:c}=this;e.drawDebugRect(this.rect),r.strokeStyle=r.fillStyle=this.color,r.lineWidth=i*2,r.beginPath();for(let u=0;u<un.NumCycles;u++){let h=s.top+a+u*this.cycleHeight;r.moveTo(s.centerX,h),r.quadraticCurveTo(s.left,h+this.cycleHeight/4,s.centerX,h+this.cycleHeight/2),r.quadraticCurveTo(s.right,h+this.cycleHeight*3/4,s.centerX,h+this.cycleHeight)}r.stroke(),a>0&&(r.beginPath(),r.moveTo(s.centerX,s.top),r.lineTo(s.right,s.top+n),r.lineTo(s.left,s.top+n),r.fill()),c>0&&(r.beginPath(),r.moveTo(s.centerX,s.bottom),r.lineTo(s.left,s.bottom-n),r.lineTo(s.right,s.bottom-n),r.fill())}};m(un,"NumCycles",5);var Ws=un;function jy(o){return typeof o=="number"?G.getChromaticNote(o).diatonicId:typeof o=="string"?G.getNote(o).diatonicId:o instanceof G?o.diatonicId:void 0}var Us=class extends et{constructor(e,r){super(e);this.staff=e;this.rest=r;m(this,"restRect",new F);m(this,"dotRect");m(this,"mi");e.addObject(this),this.mi=new pn(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}offset(e,r){var i;this.restRect.offsetInPlace(e,r),(i=this.dotRect)==null||i.offsetInPlace(e,r),this.requestRectUpdate(),this.rest.requestRectUpdate()}updateRect(){this.rect=this.restRect.copy(),this.dotRect&&this.rect.expandInPlace(this.dotRect)}},di=class extends et{constructor(e,r,i,n){var c,u;super(e);this.col=e;this.voiceId=r;m(this,"ownStemDir");m(this,"ownDiatonicId");m(this,"color");m(this,"hide");m(this,"rhythmProps");m(this,"beamGroup");m(this,"staffObjects",[]);m(this,"mi");let s=jy(n==null?void 0:n.staffPos);if(s!==void 0){let h=this.row.hasStaff,l=this.row.getStaff(s);if(h&&!l)throw new E(6,"Rest staffPos is out of staff boundaries!")}this.ownDiatonicId=this.measure.updateOwnDiatonicId(r,s),this.ownStemDir=this.measure.updateOwnStemDir(this);let a=this.row.getStaff(this.ownDiatonicId);a&&a.isSpace(this.ownDiatonicId)&&(this.ownDiatonicId+=this.ownDiatonicId>=a.middleLineDiatonicId?1:-1),this.color=(c=n==null?void 0:n.color)!=null?c:"black",this.hide=(u=n==null?void 0:n.hide)!=null?u:!1,this.rhythmProps=new $t(i,n==null?void 0:n.dotted,n==null?void 0:n.triplet),this.mi=new ln(this)}getMusicInterface(){return this.mi}get doc(){return this.col.doc}get measure(){return this.col.measure}get row(){return this.col.row}get noteLength(){return this.rhythmProps.noteLength}get dotted(){return this.rhythmProps.dotted}get stemDir(){return this.beamGroup?this.beamGroup.stemDir:this.ownStemDir}get triplet(){return this.rhythmProps.triplet}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let i=0;i<this.staffObjects.length;i++){let n=this.staffObjects[i].pick(e,r);if(n.length>0)return[this,...n]}return[this]}getBeamGroup(){return this.beamGroup}setBeamGroup(e){this.beamGroup=e}resetBeamGroup(){this.beamGroup=void 0}getBeamCoords(){return this.staffObjects.map(e=>{let r=e.staff,i=e.getRect().centerX,n=this.stemDir===1?e.getRect().top:e.getRect().bottom,s=Math.abs(e.getRect().centerY-n);return{staff:r,x:i,y:n,stemHeight:s}})}isEmpty(){return this.staffObjects.length===0}visibleInStaff(e){return e.containsVoiceId(this.voiceId)&&this.staffObjects.some(r=>r instanceof Us&&r.staff===e)}getRestDotVerticalDisplacement(e){switch(e){case 192:return 1;case 96:return-1;case 48:return-1;case 24:return-1;case 12:return-1;case 6:return-3;case 3:return-3;default:throw new E(6,"Cannot get rest dot vertical displacement because note length is invalid.")}}updateAccidentalState(e){}layout(e,r){if(this.requestRectUpdate(),this.staffObjects.length=0,this.hide)return;let{unitSize:i}=e,{ownDiatonicId:n}=this,{noteLength:s,dotted:a,flagCount:c}=this.rhythmProps,u=0,h=0,l=0,p=0;if(s===192)u=i,h=i,l=0,p=i;else if(s===96)u=i,h=i,l=i,p=0;else if(s===48)u=i*1,h=i*1,l=i*3.2,p=i*3;else{let d=1-c%2;u=i*(1+c*.25),h=i*(1+c*.125),l=i*(.5+c-d),p=i*(1+c+d)}this.row.getStaves().forEach(d=>{if(!d.containsDiatonicId(n)||!d.containsVoiceId(this.voiceId))return;let f=new Us(d,this);if(f.restRect=new F(-u,0,h,-l,0,p),a){let g=ct.DotSize*i,x=h+(ct.RestDotSpace+ct.DotSize/2)*i,b=this.getRestDotVerticalDisplacement(s)*i;f.dotRect=F.createCentered(x,b,g,g)}f.offset(0,d.getDiatonicIdY(n)),this.staffObjects.push(f)})}updateRect(){if(this.staffObjects.length===0)this.rect=new F;else if(this.rect=this.staffObjects[0].getRect().copy(),this.staffObjects.length>1)for(let e=1;e<this.staffObjects.length;e++)this.rect.expandInPlace(this.staffObjects[e].getRect())}offset(e,r){this.staffObjects.forEach(i=>i.offset(e,0)),this.requestRectUpdate()}draw(e){let r=e.getCanvasContext();if(!r||this.staffObjects.length===0)return;e.drawDebugRect(this.getRect());let{unitSize:i,lineWidth:n}=e,{color:s}=this,{noteLength:a,flagCount:c}=this.rhythmProps;r.strokeStyle=r.fillStyle=s,r.lineWidth=n,this.staffObjects.forEach(u=>{let{dotRect:h,restRect:l}=u,p=l.centerX,d=l.centerY;if(a===192)r.fillRect(p-i,d,i*2,i);else if(a===96)r.fillRect(p-i,d-i,i*2,i);else if(a===48)r.beginPath(),r.moveTo(p-i*.6,d-i*3.2),r.lineTo(p+i*.7,d-i*1.5),r.quadraticCurveTo(p-i*.8,d-i*.5,p+i*1,d+i*1.5),r.lineTo(p-i*1,d-i*.75),r.quadraticCurveTo(p+i*.2,d-i*1.5,p-i*.6,d-i*3.2),r.moveTo(p+i*1,d+i*1.5),r.quadraticCurveTo(p-i*.8,d+i*1,p-i*.2,d+i*2.8),r.bezierCurveTo(p-i*1.8,d+i*1.5,p-i*.6,d-i*.2,p+i*.9,d+i*1.5),r.fill(),r.stroke();else if(c>0){let f=1-c%2,g=b=>p+(-b*.25+.5)*i,x=b=>d+(b+f)*i;r.beginPath(),r.moveTo(g(1+c),x(1+c)),r.lineTo(g(-.5-c),x(-.5-c)),r.stroke();for(let b=0;b<c;b++){let v=c-b*2;r.beginPath(),r.moveTo(g(v-2.5),x(v-2.5)),r.quadraticCurveTo(g(v-.5)+i*.25,x(v-1.5),g(v-1.5)-i*1.5,x(v-1.5)),r.stroke(),r.beginPath(),r.arc(g(v-2)-i*1.5,x(v-2),i*.5,0,Math.PI*2),r.fill()}}h&&e.fillCircle(h.centerX,h.centerY,h.width/2)})}};var Ly=(o,t)=>{let e=ct.BeamAngleFactor;if(!Number.isFinite(e)||e===0)return t;{let r=o/t/e;return r=Math.sign(r)*Math.sqrt(Math.abs(r)),o/r*e}},dn=class{constructor(t,e,r,i,n){this.staff=t;this.beamGroup=e;this.symbol=r;this.x=i;this.y=n;m(this,"topBeamsHeight",0);m(this,"bottomBeamsHeight",0);t.addObject(this)}offset(t,e){this.x+=t,this.y+=e,this.beamGroup.requestRectUpdate()}getRect(){return new F(this.x,this.x,this.x,this.y-this.topBeamsHeight,this.y,this.y+this.bottomBeamsHeight)}},eu=class extends et{constructor(e,r){super(e);this.staff=e;this.beamGroup=r;m(this,"tripletNumber");m(this,"tripletNumberOffsetY",0);m(this,"points",[]);m(this,"mi");e.addObject(this),this.mi=new fn(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}offset(e,r){var i;this.points.forEach(n=>n.offset(e,0)),(i=this.tripletNumber)==null||i.offset(e,r),this.requestRectUpdate(),this.beamGroup.requestRectUpdate()}updateRect(){this.points.length>0?this.rect=this.points[0].getRect().copy():this.tripletNumber&&(this.rect=this.tripletNumber.getRect().copy()),this.points.forEach(e=>this.rect.expandInPlace(e.getRect())),this.tripletNumber&&this.rect.expandInPlace(this.tripletNumber.getRect())}},mi=class o extends et{constructor(e,r){super(e[0].measure);this.symbols=e;m(this,"mi");m(this,"type");m(this,"staffObjects",[]);if(this.mi=new mn(this),e.every(i=>i.measure===e[0].measure)){if(e.length<2)throw new E(6,"Beam group need minimum 2 symbols, but "+e.length+" given.")}else throw new E(6,"All beam group symbols are not in same measure.");if(r){if(!e.every(n=>n.triplet))throw new E(6,"Not every symbol's triplet property is true.");let i=e.length<3||e.some(n=>!(n instanceof St))||e.some(n=>n.rhythmProps.flagCount!==e[0].rhythmProps.flagCount);e.length===3&&e[0]instanceof St&&e[e.length-1]instanceof St&&e[0].rhythmProps.flagCount===e[e.length-1].rhythmProps.flagCount&&(i=!1),e.some(n=>n.rhythmProps.noteLength>=48)&&(i=!0),this.type=i?2:1,St.setTripletBeamCounts(this)}else this.type=0;if(e.every(i=>i.getBeamGroup()===void 0))e.forEach(i=>i.setBeamGroup(this)),e[0].measure.addBeamGroup(this);else throw new E(6,"Cannot add beam group because some symbol already has one.")}static createBeam(e){e.length>1&&new o(e,!1)}static createTriplet(e){if(!e.every(n=>n.triplet))return!1;let r=96,i=e.map(n=>n.rhythmProps.noteLength);if(e.length==2){if(i[0]<=r&&i[1]===i[0]/2&&i[0]/2>=Si||i[1]<=r&&i[0]===i[1]/2&&i[1]/2>=Si)return new o(e,!0),!0}else if(e.length===3&&i[0]<=r&&i.every(n=>n===i[0]))return new o(e,!0),!0;return!1}getMusicInterface(){return this.mi}detach(){this.getSymbols().forEach(e=>e.resetBeamGroup())}isEmpty(){return this.staffObjects.length===0}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let i=0;i<this.staffObjects.length;i++){let n=this.staffObjects[i].pick(e,r);if(n.length>0)return[this,...n]}return[this]}getType(){return this.type}isTriplet(){return this.type===1||this.type===2}getSymbols(){return this.symbols}getFirstSymbol(){return this.symbols[0]}getLastSymbol(){return this.symbols[this.symbols.length-1]}get stemDir(){return this.symbols[0].ownStemDir}layout(e){this.requestRectUpdate(),this.staffObjects.length=0;let r=this.getSymbols();if(r.length===0)return;let i=r[0].voiceId;if(r.some(c=>c.voiceId!==i))return;let{unitSize:n}=e,{stemDir:s}=this,a=r.map(c=>c.getBeamCoords());a[0].map(c=>c==null?void 0:c.staff).forEach((c,u)=>{var W,k;if(!c)return;let h=a.map(L=>{var P;return(P=L[u])==null?void 0:P.x}),l=a.map(L=>{var P;return(P=L[u])==null?void 0:P.y}),p=a.map(L=>{var P;return(P=L[u])==null?void 0:P.staff}),d=a.map(L=>{var P;return(P=L[u])==null?void 0:P.stemHeight}),f=r[0],g=h[0],x=l[0],b=p[0],v=r[r.length-1],S=h[h.length-1],T=l[l.length-1],_=p[l.length-1];if(g===void 0||x===void 0||b===void 0||S===void 0||T===void 0||_===void 0)return;let C=(W=d[0])!=null?W:0,A=(k=d[d.length-1])!=null?k:0;if(this.type!==2){let L=C<A?Math.sqrt(A-C):0,P=A<C?Math.sqrt(C-A):0;s===1&&(L*=-1,P*=-1),L!==0&&(x+=L,l[0]+=L),P!==0&&(T+=P,l[l.length-1]+=P)}let y=n*2*(s===1?-1:1),N=(T+x)/2,D=Ly(S-g,T-x)/2;x=N-D,T=N+D;let M=0;l.forEach((L,P)=>{let q=h[P];if(q!==void 0&&L!==void 0){let H=I.Math.interpolateY(g,x,S,T,q),Q=L-H;s===1&&Q<0?M=Math.min(M,Q):s===2&&Q>0&&(M=Math.max(M,Q))}}),x+=M,T+=M,l=l.map(L=>L===void 0?void 0:L+M);let O=new eu(c,this);if(this.type===2){let L=n/(S-g),P=I.Math.interpolateCoord(g,x+y,S,T+y,-L),q=I.Math.interpolateCoord(g,x+y,S,T+y,1+L);O.points.push(new dn(b,this,f,P.x,P.y)),O.points.push(new dn(_,this,v,q.x,q.y)),O.tripletNumberOffsetY=0}else if(this.type===0||this.type===1){M*=.5;let{beamThickness:L}=e,P=q=>{let H=r[q];if(H instanceof St){let Q=H instanceof St?Math.max(H.getLeftBeamCount(),H.getRightBeamCount()):0;return ct.BeamSeparation*n*(this.stemDir===1?Q-1:0)}else return 0};r.forEach((q,H)=>{let Q=p[H],rt=h[H],at=l[H];if(Q&&rt!==void 0&&at!==void 0){let yt=new dn(Q,this,q,rt,at);yt.topBeamsHeight=L/2+(s===2?P(H):0),yt.bottomBeamsHeight=L/2+(s===1?P(H):0),O.points.push(yt)}}),O.tripletNumberOffsetY=y}this.isTriplet()&&(O.tripletNumber=new ht(this,"3",.5,.5),O.tripletNumber.layout(e),O.tripletNumber.offset((g+S)/2,(x+T)/2+O.tripletNumberOffsetY)),O.points.length>=2&&this.staffObjects.push(O)})}updateRect(){if(this.staffObjects.length===0)this.rect=new F;else{this.staffObjects.forEach(e=>e.updateRect()),this.rect=this.staffObjects[0].getRect().copy();for(let e=1;e<this.staffObjects.length;e++)this.rect.expandInPlace(this.staffObjects[e].getRect())}}updateStemTips(){this.staffObjects.forEach(e=>{let r=e.points[0],i=e.points[e.points.length-1];if(this.type!==2&&e.points.forEach(n=>{n.symbol instanceof St&&(n!==r&&n!==i&&(n.y=I.Math.interpolateY(r.x,r.y,i.x,i.y,n.x)),n.symbol.setStemTipY(n.staff,n.y))}),e.tripletNumber){let n=(r.y+i.y)/2+e.tripletNumberOffsetY;e.tripletNumber.offset(0,-e.tripletNumber.getRect().centerY+n)}})}offset(e,r){this.staffObjects.forEach(i=>i.offset(e,0)),this.requestRectUpdate()}draw(e){let{unitSize:r,beamThickness:i,lineWidth:n}=e,s="black";this.staffObjects.forEach(a=>{if(this.type===2){let c=a.points[0],u=a.points[a.points.length-1];if(c&&u){let h=a.tripletNumber?a.tripletNumber.getRect().width/(u.x-c.x)*1.2:0,l=I.Math.interpolateCoord(c.x,c.y,u.x,u.y,.5-h/2),p=I.Math.interpolateCoord(c.x,c.y,u.x,u.y,.5+h/2),d=this.stemDir===1?r:-r;e.drawLine(c.x,c.y,l.x,l.y,s,n),e.drawLine(p.x,p.y,u.x,u.y,s,n),e.drawLine(c.x,c.y,c.x,c.y+d,s,n),e.drawLine(u.x,u.y,u.x,u.y+d,s,n)}}else if(this.type===0||this.type===1){let c=ct.BeamSeparation*r*(this.stemDir===1?1:-1),u=a.points.filter(h=>h.symbol instanceof St);for(let h=0;h<u.length-1;h++){let l=u[h],p=u[h+1];if(!(l.symbol instanceof St&&p.symbol instanceof St))continue;let d=l.symbol.getRightBeamCount(),f=p.symbol.getLeftBeamCount(),g=l.x,x=l.y,b=p.x,v=p.y;for(let S=0;S<Math.max(d,f);S++)S<d&&S<f?e.drawLine(g,x,b,v,s,i):d>f?e.drawPartialLine(g,x,b,v,0,.25,s,i):f>d&&e.drawPartialLine(g,x,b,v,.75,1,s,i),x+=c,v+=c}}a.tripletNumber&&a.tripletNumber.draw(e)})}};function Fy(o,t){let e=I.Arr.isArray(t)?t:t!==void 0?[t]:[],r=o.map((i,n)=>({note:i,string:e[n]}));return r=I.Arr.removeDuplicatesCmp(r,(i,n)=>G.equals(i.note,n.note)).sort((i,n)=>G.compareFunc(i.note,n.note)),{notes:r.map(i=>i.note),strings:r.every(i=>i.string===void 0)?void 0:r.map(i=>i.string)}}function By(o){return o===!0||o===0?0:o===1?1:void 0}var zs=class extends et{constructor(e,r){super(e);this.staff=e;this.noteGroup=r;m(this,"noteHeadRects",[]);m(this,"dotRects",[]);m(this,"accidentals",[]);m(this,"stemTip");m(this,"stemBase");m(this,"flagRects",[]);m(this,"prevTopNoteY",0);m(this,"prevBottomNoteY",0);m(this,"mi");this.mi=new xn(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}updateRect(){this.rect=this.noteHeadRects[0].copy(),this.noteHeadRects.forEach(e=>this.rect.expandInPlace(e)),this.stemTip&&this.rect.expandInPlace(this.stemTip),this.stemBase&&this.rect.expandInPlace(this.stemBase),this.dotRects.forEach(e=>this.rect.expandInPlace(e)),this.flagRects.forEach(e=>this.rect.expandInPlace(e)),this.accidentals.forEach(e=>this.rect.expandInPlace(e.getRect()))}getRect(){let e=this.noteHeadRects[0],r=this.noteHeadRects[this.noteHeadRects.length-1];return(this.prevTopNoteY!==r.centerY||this.prevBottomNoteY!==e.centerY)&&(this.prevTopNoteY=r.centerY,this.prevBottomNoteY=e.centerY,this.requestRectUpdate()),super.getRect()}offset(e,r){var i,n;this.noteHeadRects.forEach(s=>s.offsetInPlace(e,r)),this.dotRects.forEach(s=>s.offsetInPlace(e,r)),this.accidentals.forEach(s=>s.offset(e,r)),(i=this.stemTip)==null||i.offsetInPlace(e,r),(n=this.stemBase)==null||n.offsetInPlace(e,r),this.flagRects.forEach(s=>s.offsetInPlace(e,r)),this.requestRectUpdate(),this.noteGroup.requestRectUpdate()}},ru=class extends et{constructor(e,r){super(e);this.tab=e;this.noteGroup=r;m(this,"fretNumbers",[]);m(this,"mi");e.addObject(this),this.mi=new yn(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}updateRect(){this.rect=this.fretNumbers[0].getRect().copy(),this.fretNumbers.forEach(e=>this.rect.expandInPlace(e.getRect()))}offset(e,r){this.fretNumbers.forEach(i=>i.offset(e,r)),this.requestRectUpdate(),this.noteGroup.requestRectUpdate()}},St=class o extends et{constructor(e,r,i,n,s){var c,u,h;super(e);this.col=e;this.voiceId=r;this.notes=i;m(this,"minDiatonicId");m(this,"maxDiatonicId");m(this,"ownDiatonicId");m(this,"ownStemDir");m(this,"ownString");m(this,"color");m(this,"staccato");m(this,"diamond");m(this,"arpeggio");m(this,"rhythmProps");m(this,"startConnnectives",[]);m(this,"runningConnectives",[]);m(this,"leftBeamCount",0);m(this,"rightBeamCount",0);m(this,"beamGroup");m(this,"staffObjects",[]);m(this,"tabObjects",[]);m(this,"mi");if(!I.Is.isIntegerGte(i.length,1))throw new E(6,"Cannot create note group object because notes array is empty.");let a=Fy(i,s==null?void 0:s.string);this.notes=a.notes,this.minDiatonicId=this.notes[0].diatonicId,this.maxDiatonicId=this.notes[this.notes.length-1].diatonicId,this.ownDiatonicId=this.measure.updateOwnDiatonicId(r,Math.round((this.minDiatonicId+this.maxDiatonicId)/2)),this.ownStemDir=this.measure.updateOwnStemDir(this,s==null?void 0:s.stem),this.ownString=this.measure.updateOwnString(this,a.strings),this.color=(c=s==null?void 0:s.color)!=null?c:"black",this.staccato=(u=s==null?void 0:s.staccato)!=null?u:!1,this.diamond=(h=s==null?void 0:s.diamond)!=null?h:!1,this.arpeggio=By(s==null?void 0:s.arpeggio),this.rhythmProps=new $t(n,s==null?void 0:s.dotted,s==null?void 0:s.triplet),this.mi=new gn(this)}getMusicInterface(){return this.mi}get doc(){return this.col.doc}get measure(){return this.col.measure}get row(){return this.col.row}get stemDir(){return this.beamGroup?this.beamGroup.stemDir:this.ownStemDir}get triplet(){return this.rhythmProps.triplet}enableConnective(e){return e.containsVoiceId(this.voiceId)&&(e instanceof zr||e.containsDiatonicId(this.ownDiatonicId))}startConnective(e){if(!this.row.hasStaff&&e.connective===0)throw new E(6,"Ties not implemented for guitar tabs alone, staff is required!");if(!this.row.hasStaff&&e.connective===1)throw new E(6,"Slurs not implemented for guitar tabs alone, staff is required!");this.startConnnectives.push(e),this.doc.addConnectiveProps(e)}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let i=0;i<this.staffObjects.length;i++){let n=this.staffObjects[i].pick(e,r);if(n.length>0)return[this,...n]}for(let i=0;i<this.tabObjects.length;i++){let n=this.tabObjects[i].pick(e,r);if(n.length>0)return[this,...n]}return[this]}getTopNote(){return this.notes[this.notes.length-1]}getBottomNote(){return this.notes[0]}getConnectiveAnchorPoint(e,r,i,n,s){if(r instanceof Bt){let a=r;if(i<0||i>=this.notes.length)throw new E(6,"Invalid noteIndex: "+i);let c=this.staffObjects.find(_=>_.staff===a);if(!c||i<0||i>=c.noteHeadRects.length){let _=this.getRect();return{x:_.centerX,y:_.bottom}}let u=c.noteHeadRects[i],h=c.stemTip,l=this.stemDir,p=h!==void 0,d=p?l===1?"right":"left":void 0,f=u.height/2,g=u.centerX,x=u.centerY,b=u.left-f,v=u.right+f,S=u.top-f,T=u.bottom+f;switch(n===0?n=3:n===4&&!p&&(n=l===1?1:3),n){case 2:return s==="left"?{x:v,y:x}:{x:b,y:x};case 1:return!p||l===2?{x:g,y:S}:{x:s==="left"&&d==="right"?v:s==="right"&&d==="left"?b:g,y:S};case 3:return!p||l===1?{x:g,y:T}:{x:s==="left"&&d==="right"?v:s==="right"&&d==="left"?b:g,y:T};case 4:return{x:g,y:h.centerY+(l===1?-f:f)};default:throw new E(6,"Invalid noteAnchor: "+n)}}else{let a=r,c=this.tabObjects.find(f=>f.tab===a),u=c==null?void 0:c.fretNumbers[i];if(!c||!u)return{x:0,y:0};let h=u.getRect(),l=s==="right"?h.left:h.right,p,d=.9;if(e.connective===2){let f=e.noteGroups[0].getFretNumber(c,0),g=e.noteGroups[1].getFretNumber(c,0),x=f===void 0||g===void 0||f<=g;s==="left"?p=x?h.centerY+h.bottomh*d:h.centerY-h.toph*d:p=x?h.centerY-h.toph*d:h.centerY+h.bottomh*d}else p=h.centerY+h.bottomh*d;return{x:l,y:p}}}getFretNumberString(e){return this.ownString[e]}getFretNumber(e,r){let i=e.fretNumbers[r];return i===void 0?void 0:+i.getText()}getNextNoteGroup(){let e=this.measure.getVoiceSymbols(this.voiceId).filter(n=>n instanceof o),r=e.indexOf(this);if(r<0)return;if(r<e.length-1)return e[r+1];let i=this.measure.getNextMeasure();for(;i;){let n=i.getVoiceSymbols(this.voiceId).filter(s=>s instanceof o);if(n.length>0)return n[0];i=i.getNextMeasure()}}collectConnectiveProps(){this.startConnnectives.forEach(e=>{this.runningConnectives.push(e);let r=this.getNextNoteGroup();for(;r&&e.addNoteGroup(r);)r.runningConnectives.push(e),r=r.getNextNoteGroup()})}removeConnectiveProps(){this.runningConnectives=[]}getPlaySlur(){let e=this.runningConnectives.filter(r=>r.connective===1).map(r=>r.startsWith(this)?"first":"slurred");return e.indexOf("first")>=0?"first":e.indexOf("slurred")>=0?"slurred":void 0}getBeamGroup(){return this.beamGroup}setBeamGroup(e){this.beamGroup=e}resetBeamGroup(){this.leftBeamCount=this.rightBeamCount=0,this.beamGroup=void 0}getBeamCoords(){return this.staffObjects.map(e=>{var a,c,u,h;let r=e.staff,i=(c=(a=e.stemTip)==null?void 0:a.centerX)!=null?c:e.noteHeadRects[0].centerX,n=(h=(u=e.stemTip)==null?void 0:u.centerY)!=null?h:this.stemDir===1?e.getRect().top:e.getRect().bottom,s=this.stemDir===1?Math.abs(e.noteHeadRects[0].centerY-n):Math.abs(e.noteHeadRects[e.noteHeadRects.length-1].centerY-n);return{staff:r,x:i,y:n,stemHeight:s}})}getStemHeight(e){let{unitSize:r}=e,{noteLength:i,flagCount:n}=this.rhythmProps;if(i>=192)return 0;{let s=this.hasBeamCount()?ct.BeamSeparation:ct.FlagSeparation;return(ct.StemHeight+Math.max(0,n-1)*s)*r}}hasBeamCount(){return this.leftBeamCount>0||this.rightBeamCount>0}getLeftBeamCount(){return this.leftBeamCount}getRightBeamCount(){return this.rightBeamCount}isEmpty(){return this.staffObjects.length===0&&this.tabObjects.length===0}visibleInStaff(e){return e.containsVoiceId(this.voiceId)&&this.staffObjects.some(r=>r instanceof zs&&r.staff===e)}getPlayTicks(e){let r=this.runningConnectives.filter(i=>i.connective===0).map(i=>{let n=i.noteGroups,s=n.indexOf(this);if(s<0)return 0;if(i.span===-1||i.span===-2)return Math.max(this.rhythmProps.ticks,this.measure.getMeasureTicks()-this.col.positionTicks);let a=n[s-1];return a&&a.notes.some(c=>G.equals(c,e))?0:(n=n.slice(s),s=n.findIndex(c=>c.notes.every(u=>!G.equals(u,e))),s>=0&&(n=n.slice(0,s)),I.Math.sum(n.map(c=>c.rhythmProps.ticks)))});return r.length===0?this.rhythmProps.ticks:Math.max(...r)}updateAccidentalState(e){this.notes.forEach(r=>{e.needAccidental(r)&&e.setAccidental(r)})}layout(e,r){this.requestRectUpdate();let{unitSize:i}=e,{row:n,stemDir:s}=this,{dotted:a,flagCount:c}=this.rhythmProps,u=ct.DotSize*i,h=(this.diamond?ct.DiamondNoteHeadSize:ct.NoteHeadWidth)*i,l=(this.diamond?ct.DiamondNoteHeadSize:ct.NoteHeadHeight)*i;this.staffObjects.length=0,n.getStaves().forEach(p=>{if(!p.containsDiatonicId(this.ownDiatonicId)||!p.containsVoiceId(this.voiceId))return;let d=new zs(p,this),f=p,g=p;this.notes.forEach((C,A)=>{var L;let y=A===0,N=A===this.notes.length-1,D=(L=p.getActualStaff(C.diatonicId))!=null?L:p,M=this.col.getNoteHeadDisplacement(this,C)*h,O=D.getDiatonicIdY(C.diatonicId),W=D.isLine(C.diatonicId);y&&s===1&&(f=D),N&&s===1&&(g=D),y&&s===2&&(g=D),N&&s===2&&(f=D);let k=d.noteHeadRects[A]=F.createCentered(M,O,h,l);if(D.addObject(k),r.needAccidental(C)){let P=d.accidentals[A]=new pi(this,C.diatonicId,C.accidental,this.color);P&&(P.layout(e),P.offset(-k.leftw-i*ct.NoteAccSpace-P.getRect().rightw,O)),D.addObject(P)}if(a){let P=k.right+ct.NoteDotSpace*i+u/2,q=O+this.getDotVerticalDisplacement(p,C.diatonicId,s)*i,H=F.createCentered(P,q,u,u);d.dotRects.push(H),D.addObject(H)}if(this.staccato){if(s===1&&y){let P=M,q=O+i*(W?3:2),H=F.createCentered(P,q,u,u);d.dotRects.push(H),f.addObject(H)}else if(s===2&&N){let P=M,q=O-i*(W?3:2),H=F.createCentered(P,q,u,u);d.dotRects.push(H),f.addObject(H)}}});let x=d.noteHeadRects[0].centerY,b=d.noteHeadRects[d.noteHeadRects.length-1].centerY,v=s===1?h/2:-h/2,S=this.getStemHeight(e),T=s===1?b-S:x+S,_=s===1?x:b;if(this.rhythmProps.hasStem()&&(d.stemTip=new F(v,v,T,T),d.stemBase=new F(v,v,_,_),g.addObject(d.stemTip),f.addObject(d.stemBase)),!this.hasBeamCount()){let C=c===0?0:ct.FlagWidth*i,A=c===0?0:ct.FlagHeight*i;for(let y=0;y<c;y++){let N=y*i*ct.FlagSeparation,D=d.flagRects[y]=s===1?new F(v,v+C,T+N,T+A+N):new F(v,v+C,T-A-N,T-N);g.addObject(D)}}this.staffObjects.push(d)}),this.tabObjects.length=0,n.getTabs().forEach(p=>{if(!p.containsVoiceId(this.voiceId))return;let d=new ru(p,this);this.notes.forEach((f,g)=>{var x,b;if(this.ownString[g]!==void 0){let v=this.ownString[g]-1,S=f.chromaticId-p.getTuningStrings()[v].chromaticId,T=S<0?"red":"black",_=new ht(this,{text:String(S),color:T,bgcolor:"white"},.5,.5);d.fretNumbers.push(_),_.layout(e);let C=this.col.getNoteHeadDisplacement(this,f)*h,A=(b=(x=this.staffObjects[0])==null?void 0:x.stemBase)==null?void 0:b.centerX,y=A!=null?A:C,N=p.getStringY(v);_.offset(y,N)}}),d.fretNumbers.length>0&&this.tabObjects.push(d)})}updateRect(){if(this.staffObjects.length>0)this.rect=this.staffObjects[0].noteHeadRects[0].copy();else if(this.tabObjects.length>0&&this.tabObjects[0].fretNumbers.length>0)this.rect=this.tabObjects[0].fretNumbers[0].getRect().copy();else{this.rect=new F;return}this.staffObjects.forEach(e=>this.rect.expandInPlace(e.getRect())),this.tabObjects.forEach(e=>this.rect.expandInPlace(e.getRect()))}setStemTipY(e,r){let i=this.staffObjects.find(n=>n.staff===e);!(i!=null&&i.stemTip)||r===i.stemTip.centerY||(i.stemTip.top=i.stemTip.centerY=i.stemTip.bottom=r,this.requestRectUpdate())}offset(e,r){this.staffObjects.forEach(i=>i.offset(e,0)),this.tabObjects.forEach(i=>i.offset(e,0)),this.requestRectUpdate()}draw(e){let r=e.getCanvasContext();if(!r)return;e.drawDebugRect(this.getRect());let{lineWidth:i}=e,{color:n,stemDir:s}=this,{noteLength:a}=this.rhythmProps;this.staffObjects.forEach(c=>{c.accidentals.forEach(u=>u.draw(e)),r.strokeStyle=r.fillStyle=n,r.lineWidth=i,c.noteHeadRects.forEach(u=>{let h=a>=96;this.diamond?h?(r.beginPath(),r.lineWidth=i*2.5,r.moveTo(u.centerX,u.top),r.lineTo(u.right,u.centerY),r.moveTo(u.left,u.centerY),r.lineTo(u.centerX,u.bottom),r.stroke(),r.beginPath(),r.lineWidth=i,r.moveTo(u.right,u.centerY),r.lineTo(u.centerX,u.bottom),r.moveTo(u.centerX,u.top),r.lineTo(u.left,u.centerY),r.stroke()):(r.beginPath(),r.moveTo(u.centerX,u.top),r.lineTo(u.right,u.centerY),r.lineTo(u.centerX,u.bottom),r.lineTo(u.left,u.centerY),r.lineTo(u.centerX,u.top),r.fill()):(r.beginPath(),r.ellipse(u.centerX,u.centerY,u.leftw,u.toph,-.3,0,Math.PI*2),h?r.stroke():r.fill())}),c.dotRects.forEach(u=>e.fillCircle(u.centerX,u.centerY,u.width/2)),c.stemTip&&c.stemBase&&(r.beginPath(),r.moveTo(c.stemBase.centerX,c.stemBase.centerY),r.lineTo(c.stemTip.centerX,c.stemTip.centerY),r.stroke()),c.flagRects.forEach(u=>{let h=u.left,p=u.right-h,d=s===1?u.top:u.bottom,f=s===1?u.bottom:u.top;r.beginPath(),r.moveTo(h,d),r.bezierCurveTo(h,d*.75+f*.25,h+p*1.5,d*.5+f*.5,h+p*.5,f),r.stroke()})}),this.tabObjects.forEach(c=>{c.fretNumbers.forEach(u=>u.draw(e))})}static setBeamCounts(e){let r=(n,s)=>n.rhythmProps.noteLength===s.rhythmProps.noteLength*2&&n.rhythmProps.dotted&&!s.rhythmProps.dotted&&n.rhythmProps.flagCount>0&&s.rhythmProps.flagCount>0;for(let n=0;n<e.length;n++){let s=e[n],a=e[n-1],c=e[n+1];s&&(s.leftBeamCount=0,s.rightBeamCount=0,a&&(a.rhythmProps.flagCount===s.rhythmProps.flagCount||r(a,s)||r(s,a)?s.leftBeamCount=s.rhythmProps.flagCount:s.leftBeamCount=Math.min(a.rhythmProps.flagCount,s.rhythmProps.flagCount)),c&&(c.rhythmProps.flagCount===s.rhythmProps.flagCount||r(c,s)||r(s,c)?s.rightBeamCount=s.rhythmProps.flagCount:s.rightBeamCount=Math.min(c.rhythmProps.flagCount,s.rhythmProps.flagCount)))}let i;do{i=!1;for(let n=0;n<e.length;n++){let s=e[n],a=e[n-1],c=e[n+1];s&&s.leftBeamCount!==s.rhythmProps.flagCount&&s.rightBeamCount!==s.rhythmProps.flagCount&&(s.leftBeamCount=s.rightBeamCount=0,a&&a.rightBeamCount>0&&(a.rightBeamCount=0,i=!0),c&&c.leftBeamCount>0&&(c.leftBeamCount=0,i=!0))}}while(i)}static setTripletBeamCounts(e){let r=e.getType(),i=e.getSymbols();if(r===1)i.forEach((n,s)=>{n instanceof o&&(n.leftBeamCount=s===0?0:n.rhythmProps.flagCount,n.rightBeamCount=s===i.length-1?0:n.rhythmProps.flagCount)});else if(r===2)i.forEach(n=>{n instanceof o&&(n.leftBeamCount=n.rightBeamCount=0)});else throw new E(6,"Cannot set triplet beam count because triplet beam group type is invalid.")}getDotVerticalDisplacement(e,r,i){return e.isLine(r)?i===1?-1:1:0}static hasSameNotes(e,r){if(e.notes.length!==r.notes.length)return!1;for(let i=0;i<e.notes.length;i++){let n=e.notes[i],s=r.notes[i];if(n.diatonicId!==s.diatonicId||n.accidental!==s.accidental)return!1}return!0}};var Vy=(o,t)=>{let e=G.compareFunc(o.note,t.note);return e===0&&(e=o.noteGroup.stemDir===t.noteGroup.stemDir?0:o.noteGroup.stemDir===1?1:-1),e},vr=class extends et{constructor(e,r){super(e);this.measure=e;this.positionTicks=r;m(this,"voiceSymbol",[]);m(this,"minDiatonicId");m(this,"maxDiatonicId");m(this,"staffMinDiatonicId",new Map);m(this,"staffMaxDiatonicId",new Map);m(this,"arpeggioDir");m(this,"arpeggios",[]);m(this,"noteHeadDisplacements",[]);m(this,"playerProps");m(this,"needLayout",!0);m(this,"shapeRects",[]);m(this,"mi");this.playerProps=new mo(this),this.mi=new bn(this)}getMusicInterface(){return this.mi}getPlayerProps(){return this.playerProps}getNextColumnInMeasure(){let e=this.measure.getColumns().indexOf(this);if(e>=0&&e<this.measure.getColumnCount())return this.measure.getColumn(e+1);throw new E(6,"Cannot get next column in measure because current column's id in mesure is invalid.")}getNextColumn(){var r;let e=this.getNextColumnInMeasure();return e||((r=this.measure.getNextMeasure())==null?void 0:r.getColumn(0))}getTicksToNextColumn(){let e=this.getNextColumnInMeasure(),r=this.positionTicks,i=e?e.positionTicks:this.measure.getConsumedTicks();return Math.max(0,i-r)}getShapeRects(){return this.getRect(),this.shapeRects}get doc(){return this.measure.doc}get row(){return this.measure.row}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let i=0;i<this.voiceSymbol.length;i++)if(this.voiceSymbol[i]){let n=this.voiceSymbol[i].pick(e,r);if(n.length>0)return[this,...n]}for(let i=0;i<this.arpeggios.length;i++){let n=this.arpeggios[i].pick(e,r);if(n.length>0)return[this,...n]}return[this]}hasArpeggio(){return this.arpeggioDir!==void 0}getArpeggioDir(){var e;return(e=this.arpeggioDir)!=null?e:0}setVoiceSymbol(e,r){iu(e),this.voiceSymbol[e]=r,r instanceof di?!r.hide&&r.noteLength>=96&&(this.minDiatonicId=this.minDiatonicId===void 0?r.ownDiatonicId:Math.min(this.minDiatonicId,r.ownDiatonicId),this.maxDiatonicId=this.maxDiatonicId===void 0?r.ownDiatonicId:Math.max(this.maxDiatonicId,r.ownDiatonicId)):r instanceof St&&(this.minDiatonicId=this.minDiatonicId===void 0?r.notes[0].diatonicId:Math.min(this.minDiatonicId,r.notes[0].diatonicId),this.maxDiatonicId=this.maxDiatonicId===void 0?r.notes[r.notes.length-1].diatonicId:Math.max(this.maxDiatonicId,r.notes[r.notes.length-1].diatonicId),r.arpeggio!==void 0&&(this.arpeggioDir=r.arpeggio),this.setupNoteHeadDisplacements()),this.requestLayout()}getVoiceSymbol(e){return this.voiceSymbol[e]}getMinWidth(){let e=Math.max(...this.voiceSymbol.map(i=>i.rhythmProps.noteLength)),r=ct.NoteHeadWidth;switch(e){case 192:return r*5;case 96:return r*3;case 48:return r*2;default:return r}}setupNoteHeadDisplacements(){if(this.noteHeadDisplacements=[],this.voiceSymbol.forEach(e=>{e instanceof St&&e.notes.forEach(r=>{this.noteHeadDisplacements.push({noteGroup:e,note:r})})}),this.noteHeadDisplacements.sort(Vy),!(this.noteHeadDisplacements.length<2)){for(let e=0;e<this.noteHeadDisplacements.length;e++){let r=this.noteHeadDisplacements[e],i=this.noteHeadDisplacements[e+1];i&&r.note.diatonicId===i.note.diatonicId&&(r.displacement=i.displacement=0)}for(let e=0;e<this.noteHeadDisplacements.length;e++){let r=this.noteHeadDisplacements[e-1],i=this.noteHeadDisplacements[e],n=this.noteHeadDisplacements[e+1];if(i.displacement!==void 0)continue;let s=i.noteGroup.stemDir===2?-1:1;r&&i.note.diatonicId-r.note.diatonicId<=1?i.displacement=r.displacement===0?s:0:n&&n.note.diatonicId-i.note.diatonicId<=1&&(i.displacement=n.displacement===0?s:0)}}}getNoteHeadDisplacement(e,r){let i=this.noteHeadDisplacements.find(n=>n.noteGroup===e&&G.equals(n.note,r));return(i==null?void 0:i.displacement)!==void 0?i.displacement:0}isEmpty(){for(let e=0;e<this.voiceSymbol.length;e++)if(this.voiceSymbol[e]!==void 0&&!this.voiceSymbol[e].isEmpty())return!1;return!0}getPlayerNotes(){let e=[];function r(i,n,s,a){if(n<=0)return;e.some(u=>i.diatonicId===u.note.diatonicId&&i.accidental===u.note.accidental?(u.ticks=Math.max(u.ticks,n),!0):!1)||e.push({note:i,ticks:n,staccato:s,slur:a})}return oe().forEach(i=>{let n=this.getVoiceSymbol(i);if(n instanceof St){let s=n.getPlaySlur();n.notes.forEach(a=>{let c=n.getPlayTicks(a),u=n.staccato;r(a,c,u,s)})}}),e.sort((i,n)=>G.compareFunc(i.note,n.note)),this.hasArpeggio()&&this.getArpeggioDir()===1&&e.reverse(),e}requestLayout(){this.needLayout||(this.needLayout=!0,this.measure.requestLayout())}layout(e,r){if(!this.needLayout)return;this.rect=new F;let{row:i}=this,{unitSize:n}=e,s=this.getMinWidth()*n/2,a=s,c=s;if(this.voiceSymbol.forEach(h=>{h.layout(e,r);let l=h.getRect();a=Math.max(a,l.leftw),c=Math.max(c,l.rightw)}),this.arpeggioDir!==void 0){let h=0;this.arpeggios=i.getStaves().map(l=>{let p=new Ws(this,this.getArpeggioDir());return p.layout(e),p.offset(-a-p.getRect().right,l.getMiddleLineY()-p.getRect().centerY),h=Math.max(h,p.getRect().width),l.addObject(p),p}),a+=h}else this.arpeggios=[];let u=this.getAnchoredLayoutObjects().filter(h=>h.layoutGroup.widensColumn);u.length>0&&u.forEach(h=>{a=Math.max(a,h.musicObj.getRect().leftw),c=Math.max(c,h.musicObj.getRect().rightw)}),this.voiceSymbol.forEach(h=>h.updateAccidentalState(r)),this.rect.left=-a,this.rect.centerX=0,this.rect.right=c,this.requestRectUpdate(),this.row.getStaves().forEach(h=>{let l,p;this.voiceSymbol.forEach(d=>{d.visibleInStaff(h)&&(d instanceof St?(l=l===void 0?d.minDiatonicId:Math.min(l,d.minDiatonicId),p=p===void 0?d.maxDiatonicId:Math.max(p,d.maxDiatonicId)):d instanceof di&&(l=l===void 0?d.ownDiatonicId:Math.min(l,d.ownDiatonicId),p=p===void 0?d.ownDiatonicId:Math.max(p,d.ownDiatonicId)))}),l!==void 0?this.staffMinDiatonicId.set(h,l):this.staffMinDiatonicId.delete(h),p!==void 0?this.staffMaxDiatonicId.set(h,p):this.staffMaxDiatonicId.delete(h)})}layoutDone(){this.needLayout=!1}updateRect(){this.shapeRects=[...this.voiceSymbol.filter(e=>!!e).map(e=>e.getRect().copy()),...this.arpeggios.map(e=>e.getRect().copy())],this.rect.top=Math.min(...this.shapeRects.map(e=>e.top)),this.rect.bottom=Math.max(...this.shapeRects.map(e=>e.bottom)),this.rect.centerY=(this.rect.top+this.rect.bottom)/2}offset(e,r){this.voiceSymbol.forEach(i=>i==null?void 0:i.offset(e,0)),this.arpeggios.forEach(i=>i.offset(e,0)),this.shapeRects.forEach(i=>i.offsetInPlace(e,r)),this.rect.offsetInPlace(e,r)}draw(e){this.row.getStaves().forEach(r=>{let i=this.staffMinDiatonicId.get(r),n=this.staffMaxDiatonicId.get(r);i!==void 0&&e.drawLedgerLines(r,i,this.getRect().centerX),n!==void 0&&e.drawLedgerLines(r,n,this.getRect().centerX)}),this.voiceSymbol.forEach(r=>{r&&r.draw(e)}),this.arpeggios.forEach(r=>r.draw(e))}};var ur=class ur extends et{constructor(e,r){super(e);this.text=r;m(this,"components",[]);m(this,"mi");switch(this.text){case ur.Coda:this.components=[new ht(this,{text:"\u{1D10C}",scale:1.7},.5,.3),new ht(this," Coda",0,1)];break;case ur.toCoda:this.components=[new ht(this,"toCoda ",1,1),new ht(this,{text:"\u{1D10C}",scale:1.7},.5,.3)];break;case ur.Segno:this.components=[new ht(this,{text:"\u{1D10B}",scale:1.1},.5,1)];break;default:this.components=[];break}this.mi=new An(this)}getMusicInterface(){return this.mi}getText(){return this.text}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){switch(this.text){case ur.Coda:{let r=this.components[0],i=this.components[1];r.layout(e),i.layout(e),r.offset(0,(i.getRect().top+i.getRect().bottom)/2),i.offset(r.getRect().right,0),this.rect=new F(r.getRect().left,r.getRect().centerX,i.getRect().right,i.getRect().top,i.getRect().centerY,i.getRect().bottom);break}case ur.toCoda:{let r=this.components[0],i=this.components[1];r.layout(e),i.layout(e),i.offset(0,(r.getRect().top+r.getRect().bottom)/2),r.offset(i.getRect().left,0),this.rect=new F(r.getRect().left,i.getRect().centerX,i.getRect().right,r.getRect().top,r.getRect().centerY,r.getRect().bottom);break}default:{let r=this.components[0];r.layout(e),this.rect=r.getRect().copy();break}}}offset(e,r){this.components.forEach(i=>i.offset(e,r)),this.rect.offsetInPlace(e,r)}draw(e){e.drawDebugRect(this.rect),this.components.forEach(r=>r.draw(e))}};m(ur,"toCoda","\u{1D10C} toCoda"),m(ur,"Coda","Coda \u{1D10C}"),m(ur,"Segno","\u{1D10B}");var Ze=ur;function Cn(o){switch(o){case 1:return"D.C. al Coda";case 0:return"D.C. al Fine";case 3:return"D.S. al Coda";case 2:return"D.S. al Fine";case 7:return"Fine";case 6:return Ze.Segno;case 4:return Ze.Coda;case 5:return Ze.toCoda;default:return Ie[o]}}function ou(o){return["ppp","pp","p","mp","m","mf","f","ff","fff","cresc.","decresc.","dim."].indexOf(o)>=0}function Ys(o){return["ppp","pp","p","mp","m","mf","f","ff","fff"].indexOf(o)>=0}function nu(o){return["accel.","rit.","a tempo"].indexOf(o)>=0}function Gy(o){switch(o){case"bottom":return .8;case"middle":return .5}}function qy(o){return ou(o)?2:nu(o)?1:0}var fi=class extends Ls{constructor(e,r,i,n,s,a){super(e);m(this,"length");m(this,"visible");m(this,"lineStyle");m(this,"linePos");m(this,"startColumn");m(this,"context");if(this.length=i,this.visible=n,this.lineStyle=s,this.linePos=a,this.startColumn=r,this.context=e instanceof ht?qy(e.getText()):0,e instanceof ht)e.updateAnchorY(Gy(a));else throw new E(6,"Update anchor's y-coordinate is only implemented for text objects.")}isVisible(){return this.visible}getLineStyle(){return this.lineStyle}getLinePos(){return this.linePos}getSpanBreakText(e,r){if(e===e.measure.getColumn(0)){let i=e.measure.getPrevMeasure();if(i){if(i.hasEndSection()||i.hasEndSong())return"section-break";let n=[9,10];for(let s=0;s<n.length;s++)if(i.hasNavigation(n[s]))return"section-break"}}if(r===1){let i=e.getAnchoredLayoutObjects();for(let n=0;n<i.length;n++){let s=i[n].getTextContent();if(s&&nu(s))return s}}else if(r===2){let i=e.getAnchoredLayoutObjects();for(let n=0;n<i.length;n++){let s=i[n].getTextContent();if(s&&ou(s))return s}}}getExtensionRangeInfo(){let{startColumn:e,length:r,context:i}=this,n=[e];if(r<=0)return{startColumn:e,endColumn:e,columnRange:n,extensionBreakText:void 0};let s=r,a=e;for(;;){let c=a.getNextColumn();if(!c)return{startColumn:e,endColumn:a,columnRange:n,extensionBreakText:void 0};let u=this.getSpanBreakText(c,i);if(u!==void 0)return{startColumn:e,endColumn:a,columnRange:n,extensionBreakText:u};if(s-=a.getTicksToNextColumn(),s<=0)return{startColumn:e,endColumn:a,columnRange:n,extensionBreakText:void 0};a=c,n.push(a)}}};var Wy=2,Uy=2,zy=.5,Yy=.5;function Hy(o,t){let e=new $t(t.options.beatLength,t.options.dotted).ticks,r=t.beatsPerMinute*e;return 60*o/r}function fo(o){switch(o){case"fff":return .9;case"ff":return .8;case"f":return .7;case"mf":return .6;default:case"m":return .5;case"mp":return .4;case"p":return .3;case"pp":return .2;case"ppp":return .1}}function su(){return fo("m")}function Qy(o){return o*1.25}var Zy=.5,mo=class{constructor(t){this.col=t;m(this,"speed");m(this,"volume");this.speed=1,this.volume=su()}get measure(){return this.col.measure}reset(){this.speed=1,this.volume=su()}setSpeed(t){this.speed=t}getSpeed(){return this.speed}getTempo(){let t=I.Math.clamp(this.getSpeed(),.1,10);return Ha(this.measure.getTempo(),t)}setVolume(t){this.volume=t}getVolume(){return this.volume}hasFermata(){return this.measure.hasFermata(this.col)}getFermataHoldTicks(){if(!this.hasFermata())return 0;let{col:t}=this;if(t instanceof gi)return this.measure.getMeasureTicks()/2;{let r=oe().map(i=>t.getVoiceSymbol(i)).filter(i=>!!i).map(i=>i.rhythmProps.ticks);return r.length===0?0:I.Math.sum(r)/r.length}}},Hs=class o{constructor(){m(this,"playTimer");m(this,"playPos");m(this,"playState",2);m(this,"doc");m(this,"cursorPositionChangeListener");m(this,"playStateChnageListener");m(this,"playerColumnSequence",[])}setDocument(t){this.doc=t,this.doc.resetMeasures(),this.playerColumnSequence=this.collectPlayerColumnSequence(),this.updatePlayerProps()}setCursorPositionChangeListener(t){this.cursorPositionChangeListener=t}setPlayStateChnageListener(t){this.playStateChnageListener=t}notifyCursorPositionChanged(){this.cursorPositionChangeListener&&this.cursorPositionChangeListener(this.getCursorRect())}notifyPlayStateChanged(){let t=this.playPos!==void 0&&this.playTimer!==void 0?0:this.playPos!==void 0&&this.playTimer===void 0?1:2;this.playState!==t&&(this.playStateChnageListener&&this.playStateChnageListener(t),this.playState=t)}collectPlayerMeasureSequence(){var a;if(!this.doc)return[];let t=[],e=this.doc.getFirstMeasure(),r=e,i,n=!1,s=!1;for(;e;){if(e.incPassCount(),e.getEnding()){let u=e.getPassCount();e=o.getMeasureByEndingPassage(e,u)}if(e)if(t.push(e),e.hasNavigation(8)&&(r=e),e.hasNavigation(6)&&(i=e),s&&e.hasNavigation(5))for(;e&&!e.hasNavigation(4);)e=e.getNextMeasure();else if(n&&e.hasNavigation(7))e=void 0;else if(e.hasNavigation(1))s=!0,e=this.doc.getFirstMeasure();else if(e.hasNavigation(0))n=!0,e=this.doc.getFirstMeasure();else if(e.hasNavigation(3))s=!0,e=i;else if(e.hasNavigation(2))n=!0,e=i;else if(e.hasNavigation(9)){let u=e.getPassCount(),h=e.getEndRepeatPlayCount()-1,l=((a=e.getNextMeasure())==null?void 0:a.hasNavigation(10))===!0;u<=h||l?e=r:e=e.getNextMeasure()}else e.hasEndSong()?e=void 0:e=e.getNextMeasure()}return t}collectPlayerColumnSequence(){let t=this.collectPlayerMeasureSequence(),e=[];for(let r=0;r<t.length;r++){let i=t[r];e=e.concat(i.getColumns()),i.hasFermata(i.getBarLineRight())&&e.push(i.getBarLineRight())}return e}updatePlayerProps(){if(this.playerColumnSequence.forEach(a=>a.getPlayerProps().reset()),!this.doc)return;let t=1,e=su(),r=new Map,i=new Map,n=(a,c)=>{var u;return r.set(a,[...(u=r.get(a))!=null?u:[],c])},s=(a,c)=>{var u;return i.set(a,[...(u=i.get(a))!=null?u:[],c])};this.playerColumnSequence.forEach(a=>{var h,l;if(!(a instanceof vr))return;a.getAnchoredLayoutObjects().forEach(p=>{var f;let d=(f=p.getTextContent())!=null?f:"";if(d==="a tempo")t=1;else if(Ys(d))e=fo(d);else if(p.musicObj.getLink()instanceof fi){let g=p.musicObj.getLink(),{columnRange:x,extensionBreakText:b}=g.getExtensionRangeInfo(),v=I.Math.sum(x.map(S=>S.getTicksToNextColumn()));switch(d){case"accel.":{let S=t,T=S*Wy,_=0;x.forEach(C=>{_+=C.getTicksToNextColumn(),n(C,S+(T-S)*_/v)});break}case"rit.":{let S=t,T=S/Uy,_=0;x.forEach(C=>{_+=C.getTicksToNextColumn(),n(C,S+(T-S)*_/v)});break}case"cresc.":{let S=e,T=S+zy;b&&Ys(b)&&fo(b)>S&&(T=fo(b));let _=0;x.forEach(C=>{_+=C.getTicksToNextColumn(),s(C,S+(T-S)*_/v)});break}case"decresc.":case"dim.":{let S=e,T=S-Yy;b&&Ys(b)&&fo(b)<S&&(T=fo(b));let _=0;x.forEach(C=>{_+=C.getTicksToNextColumn(),s(C,S+(T-S)*_/v)});break}}}});let c=(h=r.get(a))!=null?h:[];c.length>0&&(t=I.Math.sum(c)/c.length);let u=(l=i.get(a))!=null?l:[];u.length>0&&(e=I.Math.sum(u)/u.length),a.getPlayerProps().setSpeed(t),a.getPlayerProps().setVolume(e)})}static getMeasureByEndingPassage(t,e){for(let r=t;;r=r.getNextMeasure()){let i=r==null?void 0:r.getEnding();if(i&&i.hasPassage(e))return r;let n=r==null?void 0:r.getNextMeasure();if(!r||r.hasEndSong()||r.hasEndSection()||!n||n.hasNavigation(8))return}}playStep(){if(this.notifyCursorPositionChanged(),this.notifyPlayStateChanged(),this.playPos===void 0){this.stop();return}let t=this.playerColumnSequence[this.playPos],e=(s,a)=>{let c=Hy(s,a);return Math.max(0,c)},r=t.getPlayerProps().getTempo(),i=t.getPlayerProps().getFermataHoldTicks(),n;t instanceof gi?n=e(i,r):(t.getPlayerNotes().forEach((a,c)=>{let u=t.hasArpeggio()?6*c:0,h=e(a.ticks+i-u,r);if(h>0){a.staccato&&(h=Math.min(e(24,r)/2,h/2));let l=Qy(t.getPlayerProps().getVolume());if(a.slur==="slurred"&&(l*=Zy),u>0){let p=e(u,r);window.setTimeout(()=>Ps(a.note,h,l),p*1e3)}else Ps(a.note,h,l)}}),n=e(t.getTicksToNextColumn()+i,r)),this.playTimer=window.setTimeout(()=>this.playStep(),n*1e3),this.playPos=this.getNextPlayPosition(this.playPos),this.notifyPlayStateChanged()}play(){if(this.playState===0)this.stop();else if(this.playState===1){this.playStep();return}let{doc:t}=this;if(!t)return;t.getFirstMeasure()?(this.playPos=0,this.playStep()):this.playPos=void 0,this.notifyPlayStateChanged()}pause(){this.playTimer&&(window.clearTimeout(this.playTimer),this.playTimer=void 0),this.notifyCursorPositionChanged(),this.notifyPlayStateChanged()}stop(){this.playPos=void 0,this.playTimer&&(window.clearTimeout(this.playTimer),this.playTimer=void 0),this.notifyCursorPositionChanged(),this.notifyPlayStateChanged()}getNextPlayPosition(t){return this.playPos!==void 0&&++this.playPos>=this.playerColumnSequence.length&&(this.playPos=void 0),this.playPos}getCursorRect(){if(this.playPos===void 0)return;let t=this.playerColumnSequence[this.playPos],e=t.measure,r=t.getRect().centerX,i=e.row.getRect().top,n=e.row.getRect().bottom;return new F(r,r,i,n)}};var au=class extends et{constructor(e){super(e);this.line=e;m(this,"lineRects",[]);m(this,"dotRects",[]);m(this,"mi");e.addObject(this),this.mi=new In(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}setRect(e){this.rect=e}offset(e,r){this.lineRects.forEach(i=>i.offsetInPlace(e,r)),this.dotRects.forEach(i=>i.offsetInPlace(e,r)),this.rect.offsetInPlace(e,r)}},Qs=class extends et{constructor(e){super(e);this.measure=e;m(this,"staffTabObjects",[]);m(this,"barLineType",0)}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let i=0;i<this.staffTabObjects.length;i++){let n=this.staffTabObjects[i].pick(e,r);if(n.length>0)return[this,...n]}return[this]}layout(e){this.requestRectUpdate(),this.staffTabObjects.length=0,this.barLineType=this.solveBarLineType();let{unitSize:r,lineWidth:i}=e,{measure:n,barLineType:s}=this,{row:a}=n,c=i,u=.7*r,h=.7*r,l=ct.DotSize*r,p=l/2;a.getNotationLines().forEach(d=>{let f=new au(d),g,x,b,v,S=(_,C)=>{f.lineRects.push(new F(_,_+C/2,_+C,b,0,v))},T=_=>{for(let C=-1;C<=1;C+=2){let A=g+C*x;f.dotRects.push(new F(_-p,_,_+p,A-p,A,A+p))}};switch(d instanceof Bt?(g=d.getMiddleLineY(),x=d.getDiatonicSpacing(),b=d.getTopLineY(),v=d.getBottomLineY()):(g=(d.getBottom()+d.getTop())/2,x=(d.getBottom()-d.getTop())/6,b=d.getTopStringY(),v=d.getBottomStringY()),s){case 0:f.setRect(new F(0,0,0,b,0,v));break;case 1:f.setRect(new F(-c,0,0,b,0,v)),S(-c,c);break;case 2:f.setRect(new F(-c-h-c,0,0,b,0,v)),S(-c-h-c,c),S(-c,c);break;case 3:f.setRect(new F(-u-h-c,0,0,b,0,v)),S(-c-h-u,c),S(-u,u);break;case 4:f.setRect(new F(0,0,u+h+c+h+l,b,0,v)),S(0,u),S(u+h,c),T(u+h+c+h+p);break;case 5:f.setRect(new F(-u-h-c-h-l,0,0,b,0,v)),S(-c-h-u,c),S(-u,u),T(-c-h-u-h-p);break;case 6:f.setRect(new F(-l-h-c-h-u/2,0,u/2+h+c+h+l,b,0,v)),S(-u/2,u),S(-u/2-h-c,c),S(u/2+h,c),T(-u/2-h-c-h-p),T(u/2+h+c+h+p);break}this.staffTabObjects.push(f)})}updateRect(){if(this.staffTabObjects.length>0){this.rect=this.staffTabObjects[0].getRect().copy();for(let e=1;e<this.staffTabObjects.length;e++)this.rect.expandInPlace(this.staffTabObjects[e].getRect())}else this.rect=new F}offset(e,r){this.staffTabObjects.forEach(i=>i.offset(e,0)),this.requestRectUpdate()}draw(e){let r=e.getCanvasContext();!r||this.barLineType===0||(e.drawDebugRect(this.getRect()),r.strokeStyle=r.fillStyle="black",this.staffTabObjects.forEach(i=>{i.lineRects.forEach(n=>r.fillRect(n.left,n.top,n.width,n.height)),i.dotRects.forEach(n=>e.fillCircle(n.centerX,n.centerY,n.width/2))}))}},go=class extends Qs{constructor(e){super(e);m(this,"mi");this.mi=new vn(this)}getMusicInterface(){return this.mi}solveBarLineType(){let e=this.measure,r=e.getPrevMeasure();return e.hasNavigation(8)?r&&r.row===e.row&&r.hasNavigation(9)?0:4:0}},gi=class extends Qs{constructor(e){super(e);m(this,"playerProps");m(this,"mi");this.playerProps=new mo(this),this.mi=new _n(this)}getMusicInterface(){return this.mi}getPlayerProps(){return this.playerProps}solveBarLineType(){let e=this.measure,r=e.getNextMeasure();return e.hasNavigation(9)?r&&r.row===e.row&&r.hasNavigation(8)?6:5:!e.doc.hasSingleMeasure()&&(e.hasEndSong()||!e.getNextMeasure())?3:e.hasEndSection()||e===e.row.getLastMeasure()&&r&&r.row===e.row.getNextRow()&&r.hasNavigation(8)?2:r&&r.hasNavigation(8)?0:1}};var xi=class extends et{constructor(e,r){super(e);this.measure=e;this.passages=r;m(this,"endingText");m(this,"shapeRects",[]);m(this,"mi");if(this.mi=new Sn(this),I.Is.isIntegerGte(r.length,1)){if(!this.passages.every(n=>I.Is.isIntegerGte(n,1)))throw new E(6,"Invalid passages: "+this.passages)}else throw new E(6,"Passages is empty.");this.passages.sort((n,s)=>n-s);let i=this.passages.map(n=>n+".").join("");this.endingText=new ht(this,i,0,1)}getMusicInterface(){return this.mi}getShapeRects(){return this.shapeRects}isSingleMeasureEnding(){let{measure:e}=this,r=e.getNextMeasure();return(r==null?void 0:r.hasNavigation(10))===!0||e.hasNavigation(9)||e.isLastMeasure()}hasPassage(e){return this.passages.some(r=>r===e)}getHighestPassage(){return Math.max(0,...this.passages)}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){this.rect=new F,this.shapeRects=[this.rect.copy()]}layoutFitToMeasure(e){let{unitSize:r}=e,{measure:i}=this;this.endingText.layout(e);let n=this.endingText.getRect(),s=i.getColumnsContentRect(),a=n.height;this.rect=new F(s.left+r,s.right-r,-a,0),this.endingText.offset(this.rect.left+r/2,this.rect.bottom),this.shapeRects=[new F(this.rect.left,this.rect.left+1,this.rect.top,this.rect.bottom),new F(this.rect.left,this.rect.right,this.rect.top,this.rect.top+1),new F(this.rect.right-1,this.rect.right,this.rect.top,this.rect.bottom),this.endingText.getRect().copy()]}offset(e,r){this.endingText.offset(e,r),this.shapeRects.forEach(i=>i.offsetInPlace(e,r)),this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;let{lineWidth:i}=e,{rect:n}=this;e.drawDebugRect(this.rect),r.strokeStyle=r.fillStyle="black",r.lineWidth=i,r.beginPath(),r.moveTo(n.left,n.bottom),r.lineTo(n.left,n.top),r.lineTo(n.right,n.top),this.isSingleMeasureEnding()&&r.lineTo(n.right,n.bottom),r.stroke(),this.endingText.draw(e)}};var Yr=class extends et{constructor(e,r){super(e);this.pos=r;m(this,"color","black");m(this,"mi");this.mi=new wn(this)}getMusicInterface(){return this.mi}static getFermataPositions(e){let{measure:r}=e,{row:i}=r;return i.getTopStaff()!==i.getBottomStaff()?[0,1]:[0]}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e,i=r*4,n=r*3;this.rect=new F(-i/2,i/2,-n,0)}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;let{lineWidth:i,unitSize:n}=e,s=this.pos===1,a=(s?n:-n)*.7,c=this.rect.left,u=this.rect.right,h=(s?this.rect.bottom:this.rect.top)+a,l=(s?this.rect.top:this.rect.bottom)+a,p=l-h;e.drawDebugRect(this.rect),r.strokeStyle=r.fillStyle=this.color,r.lineWidth=i,r.beginPath(),r.moveTo(c,l),r.bezierCurveTo(c,h,u,h,u,l),r.bezierCurveTo(u,h+p/5,c,h+p/5,c,l),r.stroke(),r.fill();let d=p/6;e.fillCircle((c+u)/2,l-d,Math.abs(d))}};var xo=class extends et{constructor(e,r,i,n){super(e);this.measure=e;this.extension=r;this.leftObj=i;this.rightObj=n;m(this,"mi");r.addTail(this),this.mi=new Tn(this)}get row(){return this.measure.row}getMusicInterface(){return this.mi}getLineLeft(){return this.leftObj instanceof go?this.leftObj.getRect().centerX:this.leftObj.getRect().right}getLineRight(){if(this.rightObj instanceof vr){let e=this.rightObj,r=e.getNextColumn();return r&&r.measure===e.measure?(e.getRect().right+r.getRect().left)/2:(e.getRect().right+e.measure.getBarLineRight().getRect().left)/2}else return this.rightObj.getRect().centerX}layoutFitToMeasure(e){let{unitSize:r}=e,i=this.getLineLeft(),n=this.getLineRight(),s=r;this.rect=new F(i,n,-s/2,s/2)}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){this.rect=new F}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;let{rect:i}=this;this.extension.getLineStyle()==="dashed"&&r.setLineDash([7,3]),e.drawLine(i.left,i.centerY,i.right,i.centerY,"black",e.lineWidth),r.setLineDash([]);let n=this.extension.getTails();if(n.length>0&&this===n[n.length-1]){let s=i.centerY>this.measure.row.getRect().centerY?-e.unitSize:e.unitSize;e.drawLine(i.right,i.centerY,i.right,i.centerY+s,"black",e.lineWidth)}}};var yi=class extends et{constructor(e,r,i,n,s,...a){super(i);this.connectiveProps=e;this.line=r;this.measure=i;m(this,"lx",0);m(this,"ly",0);m(this,"rx",0);m(this,"ry",0);m(this,"cp1x",0);m(this,"cp1y",0);m(this,"cp2x",0);m(this,"cp2y",0);m(this,"arcHeight",0);m(this,"leftNoteGroup");m(this,"leftNoteId");m(this,"rightNoteGroup");m(this,"rightNoteId");m(this,"tieType");m(this,"mi");this.leftNoteGroup=n,this.leftNoteId=s,a[0]instanceof St&&typeof a[1]=="number"?(this.rightNoteGroup=a[0],this.rightNoteId=a[1],this.tieType=void 0):I.Is.isEnumValue(a[0],cr)&&(this.rightNoteGroup=void 0,this.rightNoteId=void 0,this.tieType=a[0]),this.measure.addConnectiveObject(this),this.mi=new Nn(this)}getMusicInterface(){return this.mi}isInsideMeasure(){return this.rightNoteGroup===void 0||this.leftNoteGroup.measure===this.rightNoteGroup.measure}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e,{measure:i,line:n,leftNoteGroup:s,leftNoteId:a,rightNoteGroup:c,rightNoteId:u,connectiveProps:h}=this,{noteAnchor:l,arcDir:p}=h,{row:d}=i,f=d.getPrevRow(),g=d.getNextRow(),x=d.getConnectivesContentRect(),b,v;b=s.getConnectiveAnchorPoint(h,n,a,l,"left"),c!==void 0&&u!==void 0?v=c.getConnectiveAnchorPoint(h,n,u,l,"right"):v=this.tieType===-2?{x:i.getColumnsContentRect().right,y:b.y}:{x:b.x+r*ct.StubTieLength,y:b.y};let S,T,_,C;if(c===void 0)S=b.x,T=b.y,_=v.x,C=v.y;else if(s.row===d&&c.row===d)S=b.x,T=b.y,_=v.x,C=v.y;else if(s.row===f&&c.row===d){let O=f.getConnectivesContentRect().right-b.x,W=v.x-x.left;S=x.left,T=b.y+(v.y-b.y)*O/(O+W),_=v.x,C=v.y}else if(s.row===d&&c.row===g){let M=g.getConnectivesContentRect(),O=x.right-b.x,W=v.x-M.left;S=b.x,T=b.y,_=x.right,C=b.y+(v.y-b.y)*O/(O+W)}else throw new E(6,"Cannot layout connective object because no valid left and right note groups.");let y=(p==="up"?-1:1)*r*Math.log2(_-S)/3;this.lx=S,this.ly=T,this.rx=_,this.ry=C,this.arcHeight=this.connectiveProps.connective===2?0:y;let{nx:N,ny:D}=I.Math.calcNormal(S,T,_,C);this.cp1x=S*.7+_*.3+N*this.arcHeight,this.cp1y=T*.7+C*.3+D*this.arcHeight,this.cp2x=S*.3+_*.7+N*this.arcHeight,this.cp2y=T*.3+C*.7+D*this.arcHeight,this.rect=new F(Math.min(this.lx,this.cp1x,this.cp2x,this.rx),Math.max(this.lx,this.cp1x,this.cp2x,this.rx),Math.min(this.ly,this.cp1y,this.cp2y,this.ry),Math.max(this.ly,this.cp1y,this.cp2y,this.ry)),this.line.addObject(this)}offset(e,r){this.lx+=e,this.ly+=r,this.rx+=e,this.ry+=r,this.cp1x+=e,this.cp1y+=r,this.cp2x+=e,this.cp2y+=r,this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;if(this.rightNoteGroup!==void 0){if(this.leftNoteGroup.measure!==this.rightNoteGroup.measure){if(this.leftNoteGroup.row.getNextRow()!==this.rightNoteGroup.row){if(this.measure!==this.rightNoteGroup.measure)return}}}let{rect:i}=this,{lineWidth:n}=e;e.drawDebugRect(i);let s=n*1.5,a=n*.25;r.strokeStyle=r.fillStyle="black",r.lineWidth=n,this.arcHeight===0?(r.beginPath(),r.moveTo(this.lx,this.ly),r.lineTo(this.rx,this.ry),r.stroke()):(r.beginPath(),r.moveTo(this.lx,this.ly-a),r.bezierCurveTo(this.cp1x,this.cp1y-s,this.cp2x,this.cp2y-s,this.rx,this.ry-a),r.lineTo(this.rx,this.ry+a),r.bezierCurveTo(this.cp2x,this.cp2y+s,this.cp1x,this.cp1y+s,this.lx,this.ly+a),r.fill())}};var yo=class{constructor(t,e,r,i){this.connective=t;this.span=e;this.noteAnchor=r;m(this,"noteGroups");m(this,"arcDir","down");this.noteGroups=[i]}getStartNoteGroup(){return this.noteGroups[0]}startsWith(t){return this.noteGroups[0]===t}addNoteGroup(t){return this.span===-1||this.span===-2?!1:this.span>this.noteGroups.length?(this.noteGroups.push(t),!0):!1}computeParams(){let t=this.noteGroups[0].stemDir,e=this.noteGroups[0].rhythmProps.hasStem;if(this.noteAnchor===4)this.arcDir=t===1?"up":"down";else if(this.noteAnchor===0)this.arcDir=t===1||!e?"down":"up",this.noteGroups[0].notes.length>1?this.noteAnchor=2:this.connective===2?this.noteAnchor=2:this.arcDir==="up"?this.noteAnchor=1:this.noteAnchor=3;else if(this.noteAnchor===2){let{row:r}=this.noteGroups[0].measure,i=this.noteGroups[0].ownDiatonicId,n=r.getStaff(i);this.arcDir=!n||i<n.middleLineDiatonicId?"down":"up"}else this.noteAnchor===1?this.arcDir="up":this.noteAnchor===3&&(this.arcDir="down")}removeConnectives(){this.noteGroups.forEach(t=>{t.measure.removeConnectiveObjects(),t.removeConnectiveProps()}),this.noteGroups.length=1}createConnectives(){this.getStartNoteGroup().collectConnectiveProps(),this.computeParams();let{connective:t,span:e}=this;if(t===0){if(e===-1||e===-2){let r=this.noteGroups[0];for(let i=0;i<r.notes.length;i++)this.createObjConnectiveWithTieType(r,i,e)}else if(this.noteGroups.length>=2)for(let r=0;r<this.noteGroups.length-1;r++){let i=this.noteGroups[r],n=this.noteGroups[r+1];i.notes.forEach((s,a)=>{let c=n.notes.findIndex(u=>G.equals(u,s));c>=0&&this.createObjConnective(i,a,n,c)})}}else if(t===1){if(typeof e=="number"&&e>=2&&this.noteGroups.length===e){let r=this.noteGroups[0],i=this.noteGroups[this.noteGroups.length-1];this.createObjConnective(r,0,i,0)}}else if(t===2&&this.noteGroups.length>=2)for(let r=0;r<this.noteGroups.length-1;r++){let i=this.noteGroups[r],n=this.noteGroups[r+1];this.createObjConnective(i,0,n,0)}}createObjConnectiveWithTieType(t,e,r){t.row.getNotationLines().filter(i=>t.enableConnective(i)).forEach(i=>{i instanceof Bt?new yi(this,i,t.measure,t,e,r):t.getFretNumberString(e)!==void 0&&new yi(this,i,t.measure,t,e,r)})}createObjConnective(t,e,r,i){let n=(s,a,c,u,h)=>{s.row.getNotationLines().filter(l=>a.enableConnective(l)&&u.enableConnective(l)).forEach(l=>{if(l instanceof Bt)new yi(this,l,s,a,c,u,h);else{let p=a.getFretNumberString(c),d=u.getFretNumberString(h);p!==void 0&&d!==void 0&&(p===d||this.connective===1)&&new yi(this,l,s,a,c,u,h)}})};if(t.measure===r.measure)n(t.measure,t,e,r,i);else if(t.measure.getNextMeasure()===r.measure)n(t.measure,t,e,r,i),n(r.measure,t,e,r,i);else throw new E(6,"Cannot create connective because it is jumping measures.")}};function iu(o){if(oe().indexOf(o)<0)throw new E(6,"Invalid voiceId: "+o);return o}var On=class On extends et{constructor(e){super(e);this.row=e;m(this,"prevMeasure");m(this,"nextMeasure");m(this,"keySignature",Gn());m(this,"timeSignature",Un());m(this,"tempo",zn());m(this,"alterKeySignature");m(this,"alterTimeSignature");m(this,"alterTempo");m(this,"signatures",[]);m(this,"tabStringNotes",[]);m(this,"barLineLeft");m(this,"columns",[]);m(this,"barLineRight");m(this,"connectives",[]);m(this,"beamGroups",[]);m(this,"tabStringNotesWidth",0);m(this,"measureId");m(this,"needLayout",!0);m(this,"leftSolidAreaWidth",0);m(this,"minColumnsAreaWidth",0);m(this,"rightSolidAreaWidth",0);m(this,"useDiatonicId",[]);m(this,"useStemDir",[]);m(this,"useString",[]);m(this,"voiceSymbols",[]);m(this,"lastAddedRhythmColumn");m(this,"lastAddedRhythmSymbol");m(this,"addExtensionToMusicObject");m(this,"layoutObjects",[]);m(this,"postMeasureBreakWidth",0);m(this,"passCount",0);m(this,"needBeamsUpdate",!0);m(this,"navigationSet",new Set);m(this,"isEndSong",!1);m(this,"isEndSection",!1);m(this,"endRepeatPlayCount",2);m(this,"endRepeatPlayCountText");m(this,"mi");this.mi=new Rn(this),this.prevMeasure=e.doc.getLastMeasure(),this.prevMeasure&&(this.prevMeasure.nextMeasure=this),this.barLineLeft=new go(this),this.barLineRight=new gi(this),this.measureId=this.prevMeasure?this.prevMeasure.measureId+1:0,this.updateKeySignature(),this.updateTimeSignature(),this.updateTempo()}getMusicInterface(){return this.mi}get doc(){return this.row.doc}isPartialMeasure(){return this.getConsumedTicks()<this.getMeasureTicks()}isUpBeat(){return this===this.doc.getFirstMeasure()}resetPassCount(){this.passCount=0}incPassCount(){this.passCount++}getPassCount(){return this.passCount}updateOwnDiatonicId(e,r){if(typeof r=="number")this.useDiatonicId[e]=r;else if(this.useDiatonicId[e]===void 0){let n=this.getPrevMeasure();n&&n.useDiatonicId[e]!==void 0&&(this.useDiatonicId[e]=n.useDiatonicId[e])}let i=this.useDiatonicId[e];return i===void 0&&(this.row.hasStaff?i=this.row.getTopStaff().middleLineDiatonicId:i=G.getNote("C4").diatonicId),this.useDiatonicId[e]=G.validateDiatonicId(i)}updateOwnStemDir(e,r){var s,a;let{voiceId:i}=e;r!==void 0?this.useStemDir[i]=r:this.useStemDir[i]===void 0&&(this.useStemDir[i]=(a=(s=this.getPrevMeasure())==null?void 0:s.useStemDir[i])!=null?a:0);let n=this.useStemDir[i];if(n===0||n===void 0){let c=this.row.getStaff(e.ownDiatonicId);return c?e.ownDiatonicId>c.middleLineDiatonicId?2:1:1}else return n}updateOwnString(e,r){var n,s;let{voiceId:i}=e;return r!==void 0?this.useString[i]=r:this.useString[i]===void 0&&(this.useString[i]=(s=(n=this.getPrevMeasure())==null?void 0:n.useString[i])!=null?s:[]),this.useString[i]}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let i=0;i<this.signatures.length;i++){let n=this.signatures[i].pick(e,r);if(n.length>0)return[this,...n]}for(let i=0;i<this.tabStringNotes.length;i++){let n=this.tabStringNotes[i].pick(e,r);if(n.length>0)return[this,...n]}for(let i=0;i<this.columns.length;i++){let n=this.columns[i].pick(e,r);if(n.length>0)return[this,...n]}if(this.barLineLeft){let i=this.barLineLeft.pick(e,r);if(i.length>0)return[this,...i]}if(this.barLineRight){let i=this.barLineRight.pick(e,r);if(i.length>0)return[this,...i]}if(this.endRepeatPlayCountText){let i=this.endRepeatPlayCountText.pick(e,r);if(i.length>0)return[this,...i]}for(let i=0;i<this.connectives.length;i++){let n=this.connectives[i].pick(e,r);if(n.length>0)return[this,...n]}for(let i=0;i<this.beamGroups.length;i++){let n=this.beamGroups[i].pick(e,r);if(n.length>0)return[this,...n]}for(let i=0;i<this.layoutObjects.length;i++){let n=this.layoutObjects[i].musicObj.pick(e,r);if(n.length>0)return[this,...n]}return[this]}getMeasureNumber(){let e=this.doc.getFirstMeasure();return e&&e.isPartialMeasure()?this.measureId:this.measureId+1}getColumns(){return this.columns}getColumnCount(){return this.columns.length}getColumn(e){return this.getColumns()[e]}isFirstMeasure(){return this.prevMeasure===void 0}isLastMeasure(){return this.nextMeasure===void 0}getNextMeasure(){return this.nextMeasure}getPrevMeasure(){return this.prevMeasure}getKeySignature(){return this.keySignature}setKeySignature(...e){var r;if((r=this.getPrevMeasure())==null||r.endSection(),e[0]instanceof Le)this.alterKeySignature=e[0];else if(e[0]instanceof Er)this.alterKeySignature=e[0];else try{let i=""+e[0],n=Ba(""+e[1]);this.alterKeySignature=Rr(i,n)}catch(i){throw new E(6,"Cannot set key signature because invalid args: "+e)}this.updateKeySignature()}updateKeySignature(){this.keySignature=this.prevMeasure?this.prevMeasure.keySignature:Gn(),this.alterKeySignature&&(this.keySignature=this.alterKeySignature),this.nextMeasure&&this.nextMeasure.updateKeySignature(),this.requestLayout()}getTimeSignature(){return this.timeSignature}setTimeSignature(e){var r;(r=this.getPrevMeasure())==null||r.endSection(),this.alterTimeSignature=e instanceof pr?e:new pr(e),this.updateTimeSignature()}updateTimeSignature(){this.timeSignature=this.prevMeasure?this.prevMeasure.timeSignature:Un(),this.alterTimeSignature&&(this.timeSignature=this.alterTimeSignature),this.nextMeasure&&this.nextMeasure.updateTimeSignature(),this.requestLayout()}getTempo(){return this.tempo}setTempo(e,r,i){var s;(s=this.getPrevMeasure())==null||s.endSection();let n=r!==void 0?{beatLength:r,dotted:i}:void 0;this.alterTempo={beatsPerMinute:e,options:n},this.updateTempo()}updateTempo(){var e;if(this.tempo=this.prevMeasure?this.prevMeasure.tempo:zn(),this.alterTempo){let r=this.alterTempo.beatsPerMinute,i,n;this.alterTempo.options?(i=this.alterTempo.options.beatLength,n=(e=this.alterTempo.options.dotted)!=null?e:!1):this.alterTimeSignature?(i=this.alterTimeSignature.beatLength,n=!1):(i=this.tempo.options.beatLength,n=this.tempo.options.dotted),this.tempo={beatsPerMinute:r,options:{beatLength:i,dotted:n}}}this.nextMeasure&&this.nextMeasure.updateTempo(),this.requestLayout()}hasPostMeasureBreak(){return this.isEndSong&&this!==this.row.getLastMeasure()}getPostMeasureBreakWidth(){return this.postMeasureBreakWidth}addLayoutObject(e,r,i){let n=new Zs(e,r,i);this.layoutObjects.push(n),this.requestLayout()}addFermata(e){let r=e===1?this.barLineRight:this.lastAddedRhythmColumn;if(!r)throw new E(6,"Cannot add Fermata because anchor is undefined.");let i=r.getAnchoredLayoutObjects().map(a=>a.musicObj).filter(a=>a instanceof Yr),n=i.some(a=>a.pos===0),s=i.some(a=>a.pos===1);Yr.getFermataPositions(r).forEach(a=>{a===0&&!n?this.addLayoutObject(new Yr(r,a),0,a):a===1&&!s&&this.addLayoutObject(new Yr(r,a),0,a)}),this.disableExtension(),this.requestLayout()}hasFermata(e){return this.layoutObjects.some(r=>r.musicObj instanceof Yr&&r.anchor===e)}addNavigation(e,...r){switch(e){case 10:if(this.navigationSet.has(e))throw new E(6,"Cannot add ending beasure measure already has one.");let i=this,n=r;this.addLayoutObject(new xi(i,n),3,0);break;case 1:case 0:case 3:case 2:{let s=this.barLineRight,a=Cn(e);this.addLayoutObject(new ht(s,a,1,1),2,0),this.addNavigation(9),this.endSong();break}case 7:{let s=this.barLineRight,a=Cn(e);this.addLayoutObject(new ht(s,a,1,1),2,0);break}case 6:case 4:{let s=this.barLineLeft,a=Cn(e);this.addLayoutObject(new Ze(s,a),2,0);break}case 5:{let s=this.barLineRight,a=Cn(e);this.addLayoutObject(new Ze(s,a),2,0);break}case 9:if(r.length===0)this.endRepeatPlayCount=2;else if(I.Is.isIntegerGte(r[0],2))this.endRepeatPlayCount=r[0];else throw new E(6,"Invalid end repeat play count (should be 2 or greater integer): "+r[0]);if(this.endRepeatPlayCount!==2){let s={text:""+this.endRepeatPlayCount+"x",scale:.8};this.endRepeatPlayCountText=new ht(this,s,.5,1)}break}this.navigationSet.add(e),this.disableExtension()}hasNavigation(e){return this.navigationSet.has(e)}getEnding(){return this.layoutObjects.map(e=>e.musicObj).find(e=>e instanceof xi)}getEndRepeatPlayCount(){return this.endRepeatPlayCount}addConnective(e,...r){let i=this.lastAddedRhythmSymbol;if(!(i instanceof St))throw new E(6,"Connective can be added to note group only.");if(e===0){let n=I.Is.isInteger(r[0])||I.Is.isEnumValue(r[0],cr)?r[0]:2,s=I.Is.isEnumValue(r[1],ve)?r[1]:0;i.startConnective(new yo(0,n,s,i))}else if(e===1){let n=I.Is.isInteger(r[0])?r[0]:2,s=I.Is.isEnumValue(r[1],ve)?r[1]:0;i.startConnective(new yo(1,n,s,i))}else if(e===2){let n=I.Is.isEnumValue(r[0],ve)?r[0]:0;i.startConnective(new yo(2,2,n,i))}}addLabel(e,r){let i=this.lastAddedRhythmColumn;if(i){if(r.length===0)throw new E(6,"Cannot add label because label text is empty.")}else throw new E(6,"Cannot add label because anchor is undefined.");let n={text:r},s,a;switch(e){case 0:s=1,a=1;break;case 1:s=6,a=0;break}let c=new ht(i,n,.5,1);this.addLayoutObject(c,s,a),this.enableExtension(c)}addAnnotation(e,r){let i=this.lastAddedRhythmColumn;if(i){if(r.length===0)throw new E(6,"Cannot add annotation because annotation text is empty.")}else throw new E(6,"Cannot add annotation because anchor is undefined.");let n={text:r},s,a;switch(e){case 0:s=5,a=0,n.italic=!0;break;case 1:s=4,a=0,n.italic=!0;break}let c=new ht(i,n,.5,1);this.addLayoutObject(c,s,a),this.enableExtension(c)}endSong(){this.isEndSong=!0,this.requestLayout(),this.disableExtension()}hasEndSong(){return this.isEndSong}endSection(){this.isEndSection=!0,this.requestLayout(),this.disableExtension()}hasEndSection(){return this.isEndSection}endRow(){this.doc.requestNewRow(),this.disableExtension()}enableExtension(e){this.addExtensionToMusicObject=e}disableExtension(){this.addExtensionToMusicObject=void 0}addExtension(e,r){let i=this.addExtensionToMusicObject,n=i==null?void 0:i.getParent();if(i instanceof ht&&n instanceof vr){let s="dashed",a="bottom",c=new fi(i,n,e,r,s,a);i.setLink(c),this.disableExtension(),this.requestLayout()}else throw i===void 0?new E(6,"Cannot add extension because music object to attach it to is undefined."):new E(6,"Cannot add extension becaue no compatible music object to attach it to.")}addRhythmSymbol(e,r){let{col:i}=r;i.setVoiceSymbol(e,r),this.getVoiceSymbols(e),this.voiceSymbols[e].push(r),this.requestBeamsUpdate(),this.lastAddedRhythmColumn=i,this.lastAddedRhythmSymbol=r}addNoteGroup(e,r,i,n){let s=r.map(c=>typeof c=="string"?G.getNote(c):c),a=this.getRhythmColumn(e);this.addRhythmSymbol(e,new St(a,e,s,i,n))}addRest(e,r,i){let n=this.getRhythmColumn(e);this.addRhythmSymbol(e,new di(n,e,r,i))}getRhythmColumn(e){let r=0;for(let i=this.columns.length-1;i>=0&&r===0;i--){let n=this.columns[i],s=n.getVoiceSymbol(e);s&&(r=n.positionTicks+s.rhythmProps.ticks)}for(let i=0;i<=this.columns.length;i++){let n=this.columns[i];if(n&&n.positionTicks===r)return n;if(!n||n.positionTicks>r){let s=new vr(this,r);return this.columns.splice(i,0,s),s}}throw new E(6,"Error in rhythm column. Should never get here.")}getMeasureTicks(){return this.getTimeSignature().measureTicks}getConsumedTicks(e){let r=0;return this.columns.forEach(i=>{oe().forEach(n=>{let s=i.getVoiceSymbol(n);s&&(e===void 0||e===n)&&(r=Math.max(r,i.positionTicks+s.rhythmProps.ticks))})}),r}getColumnsContentRect(){return new F(this.barLineLeft.getRect().centerX,this.barLineRight.getRect().centerX,this.getRect().top,this.getRect().bottom)}getLeftSolidAreaWidth(){return this.leftSolidAreaWidth}getMinColumnsAreaWidth(){return this.minColumnsAreaWidth}getRightSolidAreaWidth(){return this.rightSolidAreaWidth}getSolidAreaWidth(){return this.leftSolidAreaWidth+this.rightSolidAreaWidth}getMinWidth(){return this.leftSolidAreaWidth+this.minColumnsAreaWidth+this.rightSolidAreaWidth}getStaffLineLeft(){let e=this.getPrevMeasure();return e&&e.row===this.row&&!e.hasPostMeasureBreak()?e.getStaffLineRight():this.getRect().left+this.tabStringNotesWidth}getStaffLineRight(){return this.barLineRight.getRect().centerX}getStaticObjects(){return[...this.getColumns(),...this.layoutObjects.filter(e=>e.isPositionResolved()).map(e=>e.musicObj)]}removeLayoutObjects(e){this.layoutObjects=this.layoutObjects.filter(r=>{if(r.musicObj===e){let i=r.musicObj.getLink();return i&&i.detachTail(r.musicObj),r.layoutGroup.remove(r),!1}else return!0})}addConnectiveObject(e){this.connectives.push(e),this.requestLayout()}removeConnectiveObjects(){this.connectives.length>0&&(this.connectives=[],this.requestLayout())}createExtensions(){this.layoutObjects.forEach(e=>{if(e.musicObj.getLink()instanceof fi){let r=e.musicObj.getLink();if(r.getHead()===e.musicObj){r.getTails().forEach(s=>e.measure.removeLayoutObjects(s));let{startColumn:i,endColumn:n}=r.getExtensionRangeInfo();if(r.isVisible()&&i!==n)for(let s=i.measure;s!==void 0;s=s===n.measure?void 0:s.getNextMeasure()){let a=s===i.measure?r.getHead():s.getBarLineLeft(),c=s===n.measure?n:s.getBarLineRight();s.addLayoutObject(new xo(s,r,a,c),e.layoutGroupId,e.verticalPos)}}}})}addBeamGroup(e){this.beamGroups.push(e)}requestBeamsUpdate(){this.needBeamsUpdate=!0}createBeams(){!this.needBeamsUpdate||!this.row.hasStaff||(this.beamGroups.forEach(e=>e.detach()),this.beamGroups.length=0,oe().forEach(e=>{let r=this.getVoiceSymbols(e);if(!(r.length<=2)){for(let i=0;i<r.length;){let n=r.slice(i,i+2),s=r.slice(i,i+3);n.length===2&&mi.createTriplet(n)?i+=2:s.length===3&&mi.createTriplet(s)?i+=3:i++}if(!Fs.DisableBeams){let i=[],n=0,s=0;this.isUpBeat()&&(n=s=Math.max(0,this.getMeasureTicks()-this.getConsumedTicks()));let a=this.getTimeSignature();r.forEach(c=>{for(i.push(c),s+=c.rhythmProps.ticks,n===0&&s===a.beamGroupLength&&On.setupBeamGroup(i);s>=a.beamGroupLength;)i=[],n=s=s-a.beamGroupLength})}}}),this.needBeamsUpdate=!1,this.requestLayout())}static setupBeamGroup(e){let r=e.map(n=>{var s;return n instanceof St&&((s=n.getBeamGroup())==null?void 0:s.isTriplet())!==!0?n:void 0});St.setBeamCounts(r);let i=[];r.forEach(n=>{n&&n.hasBeamCount()?i.push(n):(mi.createBeam(i),i=[])}),mi.createBeam(i)}getBarLineLeft(){return this.barLineLeft}getBarLineRight(){return this.barLineRight}getVoiceSymbols(e){return iu(e),this.voiceSymbols[e]===void 0&&(this.voiceSymbols[e]=[]),this.voiceSymbols[e]}completeRests(e){if(e===void 0){this.getConsumedTicks()===0?this.completeRests(0):oe().forEach(c=>{this.getConsumedTicks(c)>0&&this.completeRests(c)});return}let r=this.getMeasureTicks(),i=this.getConsumedTicks(e),n=r-i,s=[],a=I.Enum.getEnumValues(Vt);for(;n>0;)a.forEach(c=>{let u=new $t(c,!1);if(u.canDot()){let h=new $t(c,!0);for(;h.ticks<=n;)s.push(h),n-=h.ticks}for(;u.ticks<=n;)s.push(u),n-=u.ticks});s.reverse().forEach(c=>this.addRest(e,c.noteLength,{dotted:c.dotted}))}requestLayout(){this.needLayout||(this.needLayout=!0,this.row.requestLayout())}layout(e){var d;if(!this.needLayout)return;this.requestRectUpdate();let{unitSize:r}=e;this.postMeasureBreakWidth=this.hasPostMeasureBreak()?ct.PostMeasureBreakWidth*r:0;let i=this===this.row.getFirstMeasure(),n=((d=this.getPrevMeasure())==null?void 0:d.hasPostMeasureBreak())===!0;this.tabStringNotesWidth=i&&this.row.hasTab?r*4:0;let s=i||n,a=i&&!this.row.isFirstRow(),c=i||n||!!this.alterKeySignature,u=!!this.alterTimeSignature,h=!!this.alterTempo;s||a||c||u||h?this.signatures=this.row.getStaves().map((f,g)=>{let x=this.signatures.find(v=>v.staff===f),b=x!=null?x:new qs(this,f);return b.staff.addObject(b),b.updateClefImage(e,s),b.updateMeasureNumber(a&&g===0),b.updateKeySignature(c),b.updateTimeSignature(u),b.updateTempo(h&&g===0),b}):this.signatures=[],this.signatures.forEach(f=>f.layout(e)),this.tabStringNotes.length=0,this===this.row.getFirstMeasure()&&this.row.getTabs().forEach(f=>{for(let g=0;g<6;g++){let x=f.getTuningStrings()[g].format(1,1),b=new ht(this,{text:x,scale:.8},1,.5);b.layout(e),b.offset(this.tabStringNotesWidth*.8,f.getStringY(g)),this.tabStringNotes.push(b),f.addObject(b)}}),this.barLineLeft.layout(e);let l=new Vs(this);this.columns.forEach(f=>f.layout(e,l)),this.barLineRight.layout(e),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.layout(e);let p=e.unitSize;this.leftSolidAreaWidth=this.tabStringNotesWidth+Math.max(0,...this.signatures.map(f=>f.getRect().width))+this.barLineLeft.getRect().width+p,this.rightSolidAreaWidth=p+this.barLineRight.getRect().width,this.minColumnsAreaWidth=0,this.columns.forEach(f=>this.minColumnsAreaWidth+=f.getRect().width),this.minColumnsAreaWidth=Math.max(this.minColumnsAreaWidth,On.MinFlexContentWidth*r)}layoutWidth(e,r){if(!this.needLayout)return;r=Math.max(r,this.getMinWidth()),this.rect=new F,this.rect.centerX=this.rect.left+r/2,this.rect.right=this.rect.left+r;let i;this.signatures.forEach(p=>{i=p.getRect(),p.offset(this.rect.left+this.tabStringNotesWidth-i.left,-i.centerY)});let n=Math.max(0,...this.signatures.map(p=>p.getRect().width));i=this.barLineLeft.getRect(),this.barLineLeft.offset(this.rect.left+this.tabStringNotesWidth+n-i.left,-i.centerY),i=this.barLineRight.getRect(),this.barLineRight.offset(this.rect.right-i.right,-i.centerY),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.offset(this.barLineRight.getRect().left,this.barLineRight.getRect().top);let s=this.rect.left+this.leftSolidAreaWidth,c=this.rect.right-this.rightSolidAreaWidth-s,u=I.Math.sum(this.columns.map(p=>p.getRect().width)),h=c/u,l=s;this.columns.forEach(p=>{i=p.getRect();let d=l+i.leftw*h;p.offset(d-i.centerX,-i.centerY),l+=i.width*h})}layoutConnectives(e){this.needLayout&&this.connectives.forEach(r=>{r.layout(e),this.rect.top=Math.min(this.rect.top,r.getRect().top),this.rect.bottom=Math.max(this.rect.bottom,r.getRect().bottom)})}layoutBeams(e){this.needLayout&&this.beamGroups.forEach(r=>{r.layout(e),this.rect.top=Math.min(this.rect.top,r.getRect().top),this.rect.bottom=Math.max(this.rect.bottom,r.getRect().bottom)})}alignStemsToBeams(){this.beamGroups.forEach(e=>e.updateStemTips())}layoutDone(){this.columns.forEach(e=>e.layoutDone()),this.needLayout=!1}updateRect(){this.rect.top=Math.min(...this.signatures.map(e=>e.getRect().top),...this.tabStringNotes.map(e=>e.getRect().top),this.barLineLeft.getRect().top,...this.columns.filter(e=>!e.isEmpty()).map(e=>e.getRect().top),this.barLineRight.getRect().top,...this.connectives.map(e=>e.getRect().top),...this.beamGroups.filter(e=>!e.isEmpty()).map(e=>e.getRect().top)),this.rect.bottom=Math.max(...this.signatures.map(e=>e.getRect().bottom),...this.tabStringNotes.map(e=>e.getRect().bottom),this.barLineLeft.getRect().bottom,...this.columns.filter(e=>!e.isEmpty()).map(e=>e.getRect().bottom),this.barLineRight.getRect().bottom,...this.connectives.map(e=>e.getRect().bottom),...this.beamGroups.filter(e=>!e.isEmpty()).map(e=>e.getRect().bottom)),this.row.getNotationLines().forEach(e=>{this.rect.top=Math.min(this.rect.top,e.calcTop()),this.rect.bottom=Math.max(this.rect.bottom,e.calcBottom())})}offset(e,r){this.signatures.forEach(i=>i.offset(e,0)),this.tabStringNotes.forEach(i=>i.offset(e,0)),this.barLineLeft.offset(e,r),this.columns.forEach(i=>i.offset(e,r)),this.barLineRight.offset(e,r),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.offset(e,r),this.connectives.forEach(i=>i.offset(e,0)),this.beamGroups.forEach(i=>i.offset(e,r)),this.layoutObjects.forEach(i=>i.musicObj.offset(e,r)),this.rect.offsetInPlace(e,r),this.requestRectUpdate()}draw(e){e.drawDebugRect(this.getRect());let r=this.getStaffLineLeft(),i=this.getStaffLineRight(),n=a=>e.drawLine(r,a,i,a),{row:s}=this;s.getNotationLines().forEach(a=>{if(a instanceof Bt)for(let c=a.bottomLineDiatonicId;c<=a.topLineDiatonicId;c+=2)n(a.getDiatonicIdY(c));else for(let c=0;c<6;c++)n(a.getStringY(c))}),this.signatures.forEach(a=>a.draw(e)),this.tabStringNotes.forEach(a=>a.draw(e)),this.barLineLeft.draw(e),this.columns.forEach(a=>a.draw(e)),this.barLineRight.draw(e),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.draw(e),this.connectives.forEach(a=>a.draw(e)),this.layoutObjects.forEach(a=>a.musicObj.draw(e)),this.beamGroups.forEach(a=>a.draw(e))}};m(On,"MinFlexContentWidth",10);var bo=On;var Xy=[1,6],Jy=[2,3,4,5,6];function Ky(o){for(;o;){if(o instanceof bo)return o;o=o.getParent()}throw new E(6,"Parent measure is required but not found!")}var Zs=class{constructor(t,e,r){this.musicObj=t;this.layoutGroupId=e;this.verticalPos=r;m(this,"anchor");m(this,"measure");m(this,"row");m(this,"layoutGroup");m(this,"positionResolved",!0);this.measure=Ky(t),this.row=this.measure.row;let i=this.musicObj.getParent();if(!i)throw new E(6,"Parent music object is required as an anchor.");this.anchor=i,this.anchor.addAnchoredLayoutObject(this),this.layoutGroup=this.measure.doc.getLayoutGroup(e),this.layoutGroup.add(this)}clearPositionResolved(){this.positionResolved=!1}setPositionResolved(){this.positionResolved=!0}isPositionResolved(){return this.positionResolved}resolveClosestToStaffY(t){let{musicObj:e,measure:r,verticalPos:i}=this,{row:n}=r,s=n.hasStaff?n.getTopStaff().getTopLineY():n.getRect().centerY,a=n.hasStaff?n.getBottomStaff().getBottomLineY():n.getRect().centerY,c=t.unitSize*2,u=i===1?a+c+e.getRect().toph:s-c-e.getRect().bottomh,h=r.getStaticObjects(),l=e.getShapeRects();return h.forEach(p=>{let d=p.getShapeRects();l.forEach(f=>{d.forEach(g=>{F.overlapX(f,g)&&(u=i===1?Math.max(u,g.bottom+f.toph+f.centerY):Math.min(u,g.top-f.bottomh-f.centerY))})})}),u}getTextContent(){if(this.musicObj instanceof ht||this.musicObj instanceof Ze)return this.musicObj.getText()}},Xs=class{constructor(t){this.layoutGroupId=t;m(this,"layoutObjectTable",[]);m(this,"rowAlign");m(this,"widensColumn");this.layoutObjectTable[0]=[],this.layoutObjectTable[1]=[],this.rowAlign=Jy.indexOf(t)>=0,this.widensColumn=Xy.indexOf(t)>=0}getLayoutObjects(t){return this.layoutObjectTable[t]}add(t){this.layoutObjectTable[t.verticalPos].push(t)}remove(t){this.layoutObjectTable.forEach(e=>{let r=e.indexOf(t);r>=0&&e.splice(r,1)})}clearPositionAndLayout(t){this.layoutObjectTable.forEach(e=>{e.forEach(r=>{r.clearPositionResolved(),r.musicObj.layout(t)})})}};var Js=class extends et{constructor(e,r,i){super(e);this.doc=e;this.prevRow=r;this.scoreConfig=i;m(this,"nextRow");m(this,"minWidth",0);m(this,"notationLines");m(this,"staves");m(this,"tabs");m(this,"measures",[]);m(this,"needLayout",!0);m(this,"mi");this.notationLines=this.createNotationLines(),this.staves=this.notationLines.filter(n=>n instanceof Bt),this.tabs=this.notationLines.filter(n=>n instanceof zr),this.prevRow&&(this.prevRow.nextRow=this),this.mi=new En(this)}getMusicInterface(){return this.mi}createNotationLines(){let e=this.scoreConfig.map(r=>r.type==="staff"?new Bt(this,r):new zr(this,r));for(let r=0;r<e.length-1;r++){let i=e[r],n=e[r+1];i instanceof Bt&&i.isGrand()&&i.staffConfig.clef==="G"&&n instanceof Bt&&n.isGrand()&&n.staffConfig.clef==="F"&&(i.joinGrandStaff(n),n.joinGrandStaff(i))}return e}getNotationLines(){return this.notationLines}getStaves(){return this.staves}getTabs(){return this.tabs}get hasStaff(){return this.staves.length>0}get hasTab(){return this.tabs.length>0}getTopStaff(){let e=this.staves[0];if(e)return e;throw new E(6,"Top staff is required!")}getBottomStaff(){let e=this.staves[this.staves.length-1];if(e)return e;throw new E(6,"Bottom staff is required!")}getStaff(e){G.validateDiatonicId(e);for(let r=0;r<this.notationLines.length;r++){let i=this.notationLines[r];if(i instanceof Bt&&i.containsDiatonicId(e))return i}}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let i=0;i<this.measures.length;i++){let n=this.measures[i].pick(e,r);if(n.length>0)return[this,...n]}for(let i=0;i<this.notationLines.length;i++){let n=this.notationLines[i].pick(e,r);if(n.length>0)return[this,...n]}return[this]}getConnectivesContentRect(){let e=this.getRect(),r=this.getFirstMeasure(),i=r?r.getColumnsContentRect().left:e.left;return new F(i,(i+e.right)/2,e.right,e.top,e.centerY,e.bottom)}getDiatonicIdAt(e){for(let r=0;r<this.notationLines.length;r++){let i=this.notationLines[r],n=i instanceof Bt?i.getDiatonicIdAt(e):void 0;if(n!==void 0)return n}}addMeasure(e){this.measures.push(e)}getMeasures(){return this.measures}isFirstRow(){return this===this.doc.getFirstRow()}isLastRow(){return this===this.doc.getLastRow()}getPrevRow(){return this.prevRow}getNextRow(){return this.nextRow}getFirstMeasure(){return this.measures.length>0?this.measures[0]:void 0}getLastMeasure(){return this.measures.length>0?this.measures[this.measures.length-1]:void 0}getMinWidth(){return this.minWidth}requestLayout(){this.needLayout||(this.needLayout=!0,this.doc.requestLayout())}layout(e){this.needLayout&&(this.requestRectUpdate(),this.notationLines.forEach(r=>{r.removeObjects(),r.layoutHeight(e)}),this.rect=new F(0,0,0,0),this.minWidth=0,this.measures.forEach(r=>{r.layout(e),this.rect.expandInPlace(new F(0,0,r.getRect().top,r.getRect().bottom)),this.minWidth+=r.getMinWidth(),this.minWidth+=r.getPostMeasureBreakWidth()}))}layoutWidth(e,r){if(!this.needLayout)return;let i=Math.max(r,this.minWidth);this.rect.centerX=this.rect.left+i/2,this.rect.right=this.rect.left+i,this.notationLines.forEach(u=>u.layoutWidth(e));let n=i,s=0;this.measures.forEach(u=>{n-=u.getSolidAreaWidth()+u.getPostMeasureBreakWidth(),s+=u.getMinColumnsAreaWidth()});let a=n/s,c=0;this.measures.forEach(u=>{let h=u.getSolidAreaWidth()+u.getMinColumnsAreaWidth()*a;u.layoutWidth(e,h);let l=u.getRect();u.offset(c-l.left,-l.centerY),c+=l.width,c+=u.getPostMeasureBreakWidth()}),this.measures.forEach(u=>{u.layoutConnectives(e),u.layoutBeams(e)})}alignStemsToBeams(){this.measures.forEach(e=>e.alignStemsToBeams())}layoutPositionLines(e){let{unitSize:r}=e;for(let n=1;n<this.notationLines.length;n++){let s=this.notationLines[n-1],a=this.notationLines[n];if(s instanceof Bt&&s.isGrand()&&s.staffConfig.clef==="G"&&a instanceof Bt&&a.isGrand()&&a.staffConfig.clef==="F"){let c=r*6;a.offset(0,s.getBottomLineY()-a.getTopLineY()+c)}else{let c=r*3;a.offset(0,s.calcBottom()-a.calcTop()+c)}}this.requestRectUpdate(),this.measures.forEach(n=>{n.requestRectUpdate(),n.getBarLineLeft().requestRectUpdate(),n.getBarLineRight().requestRectUpdate(),n.getColumns().forEach(s=>{s.requestRectUpdate(),oe().forEach(a=>{var c;return(c=s.getVoiceSymbol(a))==null?void 0:c.requestRectUpdate()})})});let i=this.getNotationLines();this.rect.top=i[0].calcTop(),this.rect.bottom=i[i.length-1].calcBottom(),this.alignStemsToBeams()}updateRect(){}setObjectY(e,r){if(r===void 0)return;let{measure:i,musicObj:n}=e;n.offset(0,r-n.getRect().centerY),e.setPositionResolved(),i.getRect().expandInPlace(n.getRect()),this.rect.expandInPlace(i.getRect())}alignObjectsY(e,r){r=r.filter(n=>!n.isPositionResolved());let i;r.forEach(n=>{let s=n.resolveClosestToStaffY(e);i=n.verticalPos===1?Math.max(s,i!=null?i:s):Math.min(s,i!=null?i:s)}),r.forEach(n=>this.setObjectY(n,i))}layoutLayoutGroup(e,r,i){let n=r.getLayoutObjects(i).filter(s=>s.row===this&&!s.isPositionResolved());n.forEach(s=>{let{musicObj:a,anchor:c}=s;a instanceof xi||a instanceof xo?a.layoutFitToMeasure(e):a.offset(c.getRect().centerX-a.getRect().centerX,0)}),r.rowAlign?this.alignObjectsY(e,n):n.forEach(s=>{let a=s.musicObj.getLink();if(a&&a.getHead()===s.musicObj){let c=[a.getHead(),...a.getTails()],u=n.filter(h=>c.some(l=>l===h.musicObj));this.alignObjectsY(e,u)}else this.alignObjectsY(e,[s])})}layoutPadding(e){let r=e.unitSize/2;this.rect.left-=r,this.rect.right+=r,this.rect.top-=r,this.rect.bottom+=r}layoutDone(){this.measures.forEach(e=>e.layoutDone()),this.needLayout=!1}offset(e,r){this.measures.forEach(i=>i.offset(e,r)),this.rect.offsetInPlace(e,r),this.notationLines.forEach(i=>i.offset(e,r))}draw(e){let r=e.getCanvasContext();if(r){if(e.drawDebugRect(this.getRect()),r.save(),r.rect(this.getRect().left,this.getRect().top,this.getRect().width,this.getRect().height),r.clip(),this.getFirstMeasure()&&this.notationLines.length>1||this.notationLines.length===1&&this.notationLines[0]instanceof zr){let i=this.getFirstMeasure().getStaffLineLeft(),n=[],s=[];this.notationLines.forEach(u=>{u instanceof Bt?(n.push(u.getTopLineY()),s.push(u.getBottomLineY())):(n.push(u.getTopStringY()),s.push(u.getBottomStringY()))});let a=Math.min(...n),c=Math.max(...s);e.drawLine(i,a,i,c)}this.measures.forEach(i=>i.draw(e)),this.notationLines.forEach(i=>i.draw(e)),r.restore()}}};var Ks=class extends et{constructor(e,r,i,n){super(e);this.title=r;this.composer=i;this.arranger=n;m(this,"titleText");m(this,"composerText");m(this,"arrangerText");m(this,"mi");this.mi=new Mn(this),this.titleText=this.title?new ht(this,{text:this.title,scale:2},.5,0):void 0,this.composerText=this.composer?new ht(this,this.composer,1,0):void 0,this.arrangerText=this.arranger?new ht(this,"Arr.: "+this.arranger,1,0):void 0}getMusicInterface(){return this.mi}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.titleText){let i=this.titleText.pick(e,r);if(i)return[this,...i]}if(this.composerText){let i=this.composerText.pick(e,r);if(i)return[this,...i]}if(this.arrangerText){let i=this.arrangerText.pick(e,r);if(i)return[this,...i]}return[this]}layoutWidth(e,r){let i=0;this.rect=new F(0,r,0,0),this.titleText&&(this.titleText.layout(e),this.titleText.offset(r/2,i),i+=this.titleText.getRect().height,this.rect.expandInPlace(this.titleText.getRect())),this.composerText&&(this.composerText.layout(e),this.composerText.offset(r,i),i+=this.composerText.getRect().height,this.rect.expandInPlace(this.composerText.getRect())),this.arrangerText&&(this.arrangerText.layout(e),this.arrangerText.offset(r,i),i+=this.arrangerText.getRect().height,this.rect.expandInPlace(this.arrangerText.getRect()))}offset(e,r){this.titleText&&this.titleText.offset(e,r),this.composerText&&this.composerText.offset(e,r),this.arrangerText&&this.arrangerText.offset(e,r),this.rect.offsetInPlace(e,r)}draw(e){this.titleText&&this.titleText.draw(e),this.composerText&&this.composerText.draw(e),this.arrangerText&&this.arrangerText.draw(e)}};var $s=class extends et{constructor(){super(void 0);m(this,"needLayout",!0);m(this,"renderer");m(this,"rows",[]);m(this,"measures",[]);m(this,"measuresPerRow",1/0);m(this,"curScoreConfig",[{type:"staff",clef:"G"}]);m(this,"header");m(this,"layoutGroups",[]);m(this,"newRowRequested",!1);m(this,"allConnectiveProps",[]);m(this,"mi");this.mi=new Hr(this)}getMusicInterface(){return this.mi}setScoreConfiguration(e){if(I.Is.isEnumValue(e,Cr))switch(e){default:case 1:this.curScoreConfig=[{type:"staff",clef:"G"}];break;case 2:this.curScoreConfig=[{type:"staff",clef:"F"}];break;case 3:this.curScoreConfig=[{type:"staff",clef:"G",isGrand:!0},{type:"staff",clef:"F",isGrand:!0}];break;case 4:this.curScoreConfig=[{type:"staff",clef:"G",isOctaveDown:!0}];break;case 8:this.curScoreConfig=[{type:"tab",tuning:"Standard"}];break;case 12:this.curScoreConfig=[{type:"staff",clef:"G",isOctaveDown:!0},{type:"tab",tuning:"Standard"}];break}else I.Is.isArray(e)?this.curScoreConfig=e:this.curScoreConfig=[e];for(let r=0;r<this.curScoreConfig.length-1;r++){let i=this.curScoreConfig[r],n=this.curScoreConfig[r+1];i.type==="staff"&&n.type==="staff"?i.clef==="G"&&i.isGrand&&n.clef==="F"&&n.isGrand?(i.minNote="C4",n.maxNote="B3",i.isOctaveDown=n.isOctaveDown=!1):i.isGrand=n.isGrand=!1:i.type==="staff"?i.isGrand=!1:n.type==="staff"&&(n.isGrand=!1)}this.requestNewRow()}setMeasuresPerRow(e){this.measuresPerRow=e}addConnectiveProps(e){this.allConnectiveProps.push(e)}getLayoutGroup(e){let r=this.layoutGroups[e];return r||(r=this.layoutGroups[e]=new Xs(e)),r}setRenderer(e){if(this.renderer===e)return;let r=this.renderer;this.renderer=e,r&&r.setDocument(void 0),e&&e.setDocument(this.mi),this.requestFullLayout()}setHeader(e,r,i){this.header=new Ks(this,e,r,i),this.requestLayout()}getTitle(){var e;return(e=this.header)==null?void 0:e.title}getComposer(){var e;return(e=this.header)==null?void 0:e.composer}getArranger(){var e;return(e=this.header)==null?void 0:e.arranger}hasSingleMeasure(){return this.measures.length===1}getFirstMeasure(){return this.measures.length>0?this.measures[0]:void 0}getLastMeasure(){return this.measures.length>0?this.measures[this.measures.length-1]:void 0}addNewRow(e){let r=new Js(this,e,this.curScoreConfig);return this.rows.push(r),r}getFirstRow(){return this.rows.length===0?this.addNewRow(void 0):this.rows[0]}getLastRow(){return this.rows.length===0?this.addNewRow(void 0):this.rows[this.rows.length-1]}requestNewRow(){this.newRowRequested=!0}addMeasure(){let e=this.rows[this.rows.length-1];(!e||this.newRowRequested&&e.getMeasures().length>0||e.getMeasures().length>=this.measuresPerRow)&&(e=this.addNewRow(e),this.newRowRequested=!1);let r=new bo(e);return this.measures.push(r),e.addMeasure(r),this.requestLayout(),r}getVoiceSymbols(e){let r=[];return this.forEachMeasure(i=>r=r.concat(i.getVoiceSymbols(e))),r}removeLayoutObjects(e){this.forEachMeasure(r=>r.removeLayoutObjects(e))}forEachMeasure(e){let r=this.getFirstMeasure();for(;r;)e(r),r=r.getNextMeasure()}resetMeasures(){this.measures.forEach(e=>e.resetPassCount())}updateCursorRect(e){this.renderer&&this.renderer.updateCursorRect(e)}requestLayout(){this.needLayout=!0}requestFullLayout(){this.rows.forEach(e=>e.requestLayout()),this.forEachMeasure(e=>{e.getColumns().forEach(r=>r.requestLayout()),e.requestLayout()}),this.requestLayout()}layout(){if(!this.needLayout)return;let{renderer:e}=this;if(!e)return;let{unitSize:r}=e;this.forEachMeasure(s=>s.createBeams()),this.forEachMeasure(s=>s.createExtensions()),this.allConnectiveProps.forEach(s=>s.removeConnectives()),this.allConnectiveProps.forEach(s=>s.createConnectives());let i=this.layoutGroups.filter(s=>!!s);i.forEach(s=>s.clearPositionAndLayout(e)),this.rows.forEach(s=>s.layout(e));let n=Math.max(ct.DocumentMinWidth*r,...this.rows.map(s=>1.4*s.getMinWidth()));this.rows.forEach(s=>s.layoutWidth(e,n)),this.rows.forEach(s=>s.layoutPositionLines(e)),i.forEach(s=>{this.rows.forEach(a=>{a.layoutLayoutGroup(e,s,0),a.layoutLayoutGroup(e,s,1)})}),this.rows.forEach(s=>s.layoutPadding(e)),this.rect=new F,this.header&&(this.header.layoutWidth(e,n),this.rect.expandInPlace(this.header.getRect())),this.rows.forEach(s=>{s.offset(-this.rect.left,this.rect.bottom+r*2-s.getRect().top),this.rect.expandInPlace(s.getRect())}),this.rows.forEach(s=>s.layoutDone()),this.needLayout=!1}drawContent(){let{renderer:e}=this;e&&(this.rows.forEach(r=>r.draw(e)),this.header&&this.header.draw(e))}pickStaffPosAt(e,r){if(this.rect.contains(e,r))for(let i=0;i<this.rows.length;i++){let n=this.rows[i];if(!n.hasStaff||!n.getRect().contains(e,r))continue;let s=n.getDiatonicIdAt(r);if(s!==void 0)return{scoreRow:n,diatonicId:s}}}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.header){let i=this.header.pick(e,r);if(i.length>0)return[this,...i]}for(let i=0;i<this.rows.length;i++){let n=this.rows[i].pick(e,r);if(n.length>0)return[this,...n]}return[this]}};function z(o,t,e){if(!o)throw new E(6,`Invalid arg: ${t} = ${e}`)}function uu(o){if(typeof o!="string")return!1;{let t=G.parseNote(o);return t!==void 0&&t.octave!==void 0}}function ta(o){return I.Is.isNumber(o)&&oe().indexOf(o)>=0}function pm(o){return I.Is.isNumber(o)&&$c().indexOf(o)>=0}function dm(o){z(I.Is.isObject(o),"staffConfig",o),z(o.type==="staff","staffConfig.type",o.type),z(I.Is.isEnumValue(o.clef,Wr),"staffConfig.clef",o.clef),z(I.Is.isBooleanOrUndefined(o.isOctaveDown),"staffConfig.isOctaveDown",o.isOctaveDown),z(I.Is.isUndefined(o.minNote)||uu(o.minNote),"staffConfig.minNote",o.minNote),z(I.Is.isUndefined(o.maxNote)||uu(o.maxNote),"staffConfig.maxNote",o.maxNote),z(I.Is.isUndefined(o.voiceIds)||I.Is.isArray(o.voiceIds)&&o.voiceIds.every(t=>I.Is.isNumber(t)),"staffConfig.voiceIds",o.voiceIds),z(I.Is.isBooleanOrUndefined(o.isGrand),"staffConfig.isGrand",o.isGrand)}function mm(o){z(I.Is.isObject(o),"tabConfig",o),z(o.type==="tab","tabConfig.type",o.type),typeof o.tuning=="string"?z(Oo.includes(o.tuning),"tabConfig.tuning",o.tuning):I.Is.isArray(o.tuning)&&z(o.tuning.length===6&&o.tuning.every(t=>uu(t)),"tabConfig.tuning",o.tuning),z(I.Is.isUndefined(o.voiceIds)||I.Is.isArray(o.voiceIds)&&o.voiceIds.every(t=>I.Is.isNumber(t)),"tabConfig.voiceIds",o.voiceIds)}function fm(o){z(I.Is.isObject(o),"noteOptions",o),z(I.Is.isBooleanOrUndefined(o.dotted),"noteOptions.dotted",o.dotted),z(I.Is.isEnumValueOrUndefined(o.stem,je),"noteOptions.stem",o.stem),z(I.Is.isStringOrUndefined(o.color),"noteOptions.color",o.color),z(I.Is.isBooleanOrUndefined(o.arpeggio)||I.Is.isEnumValue(o.arpeggio,Ur),"noteOptions.arpeggio",o.arpeggio),z(I.Is.isBooleanOrUndefined(o.staccato),"noteOptions.staccato",o.staccato),z(I.Is.isBooleanOrUndefined(o.diamond),"noteOptions.diamond",o.diamond),z(I.Is.isBooleanOrUndefined(o.triplet),"noteOptions.triplet",o.triplet),z(I.Is.isUndefined(o.string)||pm(o.string)||I.Is.isArray(o.string)&&o.string.length>0&&o.string.every(t=>pm(t)),"noteOptions.string",o.string)}function $y(o){z(I.Is.isObject(o),"restOptions",o),z(I.Is.isBooleanOrUndefined(o.dotted),"restOptions.dotted",o.dotted),z(I.Is.isStringOrUndefined(o.staffPos)||I.Is.isInteger(o.staffPos)||o.staffPos instanceof G,"restOptions.staffPos",o.staffPos),z(I.Is.isStringOrUndefined(o.color),"restOptions.color",o.color),z(I.Is.isBooleanOrUndefined(o.hide),"restOptions.hide",o.hide),z(I.Is.isBooleanOrUndefined(o.triplet),"restOptions.triplet",o.triplet)}var Ir=class{constructor(){m(this,"doc");this.doc=new $s}setScoreConfiguration(t){return I.Is.isEnumValue(t,Cr)||(I.Is.isObject(t)&&t.type==="staff"?dm(t):I.Is.isObject(t)&&t.type==="tab"?mm(t):I.Is.isArray(t)?(z(t.length>0,"config",t),t.forEach(e=>{I.Is.isObject(e)&&e.type==="staff"?dm(e):I.Is.isObject(e)&&e.type==="tab"?mm(e):z(!1,"config",t)})):z(!1,"config",t)),this.doc.setScoreConfiguration(t),this}getMeasure(){var t;return(t=this.doc.getLastMeasure())!=null?t:this.doc.addMeasure()}getDocument(){return this.doc.getMusicInterface()}setHeader(t,e,r){return z(I.Is.isStringOrUndefined(t),"title",t),z(I.Is.isStringOrUndefined(e),"composer",e),z(I.Is.isStringOrUndefined(r),"arranger",r),this.doc.setHeader(t,e,r),this}setMeasuresPerRow(t){return z(I.Is.isIntegerGte(t,1)||t===1/0,"measuresPerRow",t),this.doc.setMeasuresPerRow(t),this}addMeasure(){return this.doc.addMeasure(),this}setKeySignature(...t){return z(t[0]instanceof Er||t[0]instanceof Le||I.Is.isString(t[0])&&I.Is.isEnumValue(t[1],Je),"keySignature",t),this.getMeasure().setKeySignature(...t),this}setTimeSignature(t){return z(t instanceof pr||I.Is.isString(t),"timeSignature",t),this.getMeasure().setTimeSignature(t),this}setTempo(t,e,r){return z(I.Is.isIntegerGte(t,1),"beatsPerMinute",t),e===void 0?z(I.Is.isUndefined(r),"dotted",r):(z(I.Is.isEnumValue(e,Vt),"beatLength",e),z(I.Is.isBooleanOrUndefined(r),"dotted",r)),this.getMeasure().setTempo(t,e,r),this}addNote(t,e,r,i){return z(ta(t),"voiceId",t),z(e instanceof G||I.Is.isString(e),"note",e),z(I.Is.isEnumValue(r,Vt),"noteLength",r),i!==void 0&&fm(i),this.getMeasure().addNoteGroup(t,[e],r,i),this}addChord(t,e,r,i){return z(ta(t),"voiceId",t),z(I.Is.isArray(e)&&e.length>=1&&e.every(n=>n instanceof G||I.Is.isString(n)),"notes",e),z(I.Is.isEnumValue(r,Vt),"noteLength",r),i!==void 0&&fm(i),this.getMeasure().addNoteGroup(t,e,r,i),this}addRest(t,e,r){return z(ta(t),"voiceId",t),z(I.Is.isEnumValue(e,Vt),"restLength",e),r!==void 0&&$y(r),this.getMeasure().addRest(t,e,r),this}addFermata(t){return z(I.Is.isEnumValueOrUndefined(t,en),"fermata",t),this.getMeasure().addFermata(t!=null?t:0),this}addNavigation(t,...e){return z(I.Is.isEnumValue(t,Ie),"navigation",t),t===9&&e.length>0?z(I.Is.isIntegerGte(e[0],1),"playCount",e[0]):t===10&&e.length>0&&z(e.every(r=>I.Is.isIntegerGte(r,1)),"passages",e),this.getMeasure().addNavigation(t,...e),this}addConnective(t,...e){if(z(I.Is.isEnumValue(t,_r),"connective",t),t===0){z(I.Is.isUndefined(e[0])||I.Is.isInteger(e[0])||I.Is.isEnumValue(e[0],cr),"tieSpan",e[0]),z(I.Is.isEnumValueOrUndefined(e[1],ve),"noteAnchor",e[1]);let r=e[0],i=e[1];this.getMeasure().addConnective(t,r,i)}else if(t===1){z(I.Is.isUndefined(e[0])||I.Is.isInteger(e[0]),"slurSpan",e[0]),z(I.Is.isEnumValueOrUndefined(e[1],ve),"noteAnchor",e[1]);let r=e[0],i=e[1];this.getMeasure().addConnective(t,r,i)}else if(t===2){z(I.Is.isEnumValueOrUndefined(e[0],ve),"noteAnchor",e[0]);let r=e[0];this.getMeasure().addConnective(t,r)}return this}addLabel(t,e){return z(I.Is.isEnumValue(t,po),"label",t),z(I.Is.isString(e),"text",e),this.getMeasure().addLabel(t,e),this}addAnnotation(t,e){return z(I.Is.isEnumValue(t,ui),"annotation",t),z(I.Is.isString(e),"text",e),this.getMeasure().addAnnotation(t,e),this}addExtension(t,e){return z(I.Is.isIntegerGte(t,0)||t===1/0||I.Is.isEnumValue(t,Vt),"extendionLength",t),z(I.Is.isBooleanOrUndefined(e),"extensionVisible",e),this.getMeasure().addExtension(t,e!=null?e:!0),this}endSong(){return this.getMeasure().endSong(),this}endSection(){return this.getMeasure().endSection(),this}endRow(){var t;return(t=this.doc.getLastMeasure())==null||t.endRow(),this}completeRests(t){return z(I.Is.isUndefined(t)||ta(t),"voiceId",t),this.getMeasure().completeRests(t),this}addScaleArpeggio(t,e,r){z(I.Is.isString(e),"bottomNote",e),z(I.Is.isIntegerGte(r,1),"numOctaves",r);let i=this.getMeasure().getTimeSignature(),n=t.getScaleNotes(e,r);for(let s=0;s<n.length;s++){s%i.beatCount===0&&s>0&&this.addMeasure();let a=n[s];this.addNote(0,a,i.beatLength),this.addLabel(0,a.formatOmitOctave(1))}return this}};var Dn=class{constructor(t){this.type=t}},hi=class extends Dn{constructor(e,r,i,n){super(e);this.renderer=r;this.scoreRow=i;this.diatonicId=n}},li=class extends Dn{constructor(e,r,i){super(e);this.renderer=r;this.objects=i;if(arguments.length===0)throw new E(6,"Empty array in score object event!")}get topObject(){return this.objects[this.objects.length-1]}findObject(e){return this.objects.find(r=>e(r))}};function ge(o,t,e){if(!o)throw new E(6,`Invalid arg: ${t} = ${e}`)}function kn(o,t){if(o==null)throw new TypeError(t);return o}function tb(o){return I.Is.isNumber(o)&&oe().indexOf(o)>=0}var bt=class{constructor(t){this.name=t}getParent(){var t;return(t=this.getMusicObject().getParent())==null?void 0:t.getMusicInterface()}},ea=class ea extends bt{constructor(e){super(ea.Name);this.obj=e}getMusicObject(){return this.obj}getAccidental(){return this.obj.accidental}};m(ea,"Name","Accidental");var sn=ea,ra=class ra extends bt{constructor(e){super(ra.Name);this.obj=e}getMusicObject(){return this.obj}};m(ra,"Name","Connective");var Nn=ra,ia=class ia extends bt{constructor(e){super(ia.Name);this.obj=e}getMusicObject(){return this.obj}};m(ia,"Name","Arpeggio");var hn=ia,oa=class oa extends bt{constructor(e){super(oa.Name);this.obj=e}getMusicObject(){return this.obj}};m(oa,"Name","BeamGroup");var mn=oa,na=class na extends bt{constructor(e){super(na.Name);this.obj=e}getMusicObject(){return this.obj}};m(na,"Name","StaffBeamGroup");var fn=na,sa=class sa extends bt{constructor(e){super(sa.Name);this.obj=e}getMusicObject(){return this.obj}getTitle(){return this.obj.getTitle()}getComposer(){return this.obj.getComposer()}getArranger(){return this.obj.getArranger()}play(e){return ge(I.Is.isFunctionOrUndefined(e),"playStateChangeListener",e),new jn(this,e).play()}};m(sa,"Name","Document");var Hr=sa,aa=class aa extends bt{constructor(e){super(aa.Name);this.obj=e}getMusicObject(){return this.obj}getPassages(){return this.obj.passages}hasPassage(e){return ge(I.Is.isIntegerGte(e,1),"passage",e),this.obj.hasPassage(e)}};m(aa,"Name","Ending");var Sn=aa,ca=class ca extends bt{constructor(e){super(ca.Name);this.obj=e}getMusicObject(){return this.obj}};m(ca,"Name","Fermata");var wn=ca,ua=class ua extends bt{constructor(e){super(ua.Name);this.obj=e}getMusicObject(){return this.obj}getTitle(){return this.obj.title}getComposer(){return this.obj.composer}getArranger(){return this.obj.arranger}};m(ua,"Name","Header");var Mn=ua,ha=class ha extends bt{constructor(e){super(ha.Name);this.obj=e}getMusicObject(){return this.obj}};m(ha,"Name","Image");var nn=ha,la=class la extends bt{constructor(e){super(la.Name);this.obj=e}getMusicObject(){return this.obj}getMeasureNumber(){return this.obj.getMeasureNumber()}getRhythmColumns(){return this.obj.getColumns().map(e=>e.getMusicInterface())}};m(la,"Name","Measure");var Rn=la,pa=class pa extends bt{constructor(e){super(pa.Name);this.obj=e}getMusicObject(){return this.obj}};m(pa,"Name","BarLineRight");var _n=pa,da=class da extends bt{constructor(e){super(da.Name);this.obj=e}getMusicObject(){return this.obj}};m(da,"Name","BarLineLeft");var vn=da,ma=class ma extends bt{constructor(e){super(ma.Name);this.obj=e}getMusicObject(){return this.obj}};m(ma,"Name","StaffTabBarLine");var In=ma,fa=class fa extends bt{constructor(e){super(fa.Name);this.obj=e}getMusicObject(){return this.obj}getNotes(){return this.obj.notes}getRhythmProps(){return this.obj.rhythmProps}};m(fa,"Name","NoteGroup");var gn=fa,ga=class ga extends bt{constructor(e){super(ga.Name);this.obj=e}getMusicObject(){return this.obj}getNoteGroup(){return this.obj.noteGroup.getMusicInterface()}};m(ga,"Name","StaffNoteGroup");var xn=ga,xa=class xa extends bt{constructor(e){super(xa.Name);this.obj=e}getMusicObject(){return this.obj}getNoteGroup(){return this.obj.noteGroup.getMusicInterface()}};m(xa,"Name","TabNoteGroup");var yn=xa,ya=class ya extends bt{constructor(e){super(ya.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmProps(){return this.obj.rhythmProps}};m(ya,"Name","Rest");var ln=ya,ba=class ba extends bt{constructor(e){super(ba.Name);this.obj=e}getMusicObject(){return this.obj}getRest(){return this.obj.rest.getMusicInterface()}};m(ba,"Name","StaffRest");var pn=ba,Aa=class Aa extends bt{constructor(e){super(Aa.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmSymbol(e){var r;return ge(tb(e),"voiceId",e),(r=this.obj.getVoiceSymbol(e))==null?void 0:r.getMusicInterface()}};m(Aa,"Name","RhythmColumn");var bn=Aa,Ca=class Ca extends bt{constructor(e){super(Ca.Name);this.obj=e}getMusicObject(){return this.obj}getMeasures(){return this.obj.getMeasures().map(e=>e.getMusicInterface())}};m(Ca,"Name","ScoreRow");var En=Ca,_a=class _a extends bt{constructor(e){super(_a.Name);this.obj=e}getMusicObject(){return this.obj}};m(_a,"Name","Staff");var rn=_a,va=class va extends bt{constructor(e){super(va.Name);this.obj=e}getMusicObject(){return this.obj}};m(va,"Name","Tab");var on=va,Ia=class Ia extends bt{constructor(e){super(Ia.Name);this.obj=e}getMusicObject(){return this.obj}};m(Ia,"Name","Signature");var cn=Ia,Sa=class Sa extends bt{constructor(e){super(Sa.Name);this.obj=e}getMusicObject(){return this.obj}};m(Sa,"Name","SpecialText");var An=Sa,wa=class wa extends bt{constructor(e){super(wa.Name);this.obj=e}getMusicObject(){return this.obj}getText(){return this.obj.getText()}};m(wa,"Name","Text");var an=wa,Ta=class Ta extends bt{constructor(e){super(Ta.Name);this.obj=e}getMusicObject(){return this.obj}};m(Ta,"Name","ExtensionLine");var Tn=Ta,Pn=class Pn{constructor(t,e){m(this,"player");ge(t instanceof Hr,"doc",t),ge(I.Is.isFunctionOrUndefined(e),"playStateChangeListener",e),this.player=new Hs,this.player.setDocument(t.getMusicObject()),this.player.setCursorPositionChangeListener(r=>t.getMusicObject().updateCursorRect(r)),e&&this.player.setPlayStateChnageListener(e)}static stopAll(){this.currentlyPlaying.forEach(t=>t.stop()),Kc()}play(){return Pn.currentlyPlaying.add(this),this.player.play(),this}pause(){return this.player.pause(),this}stop(){return this.player.stop(),Pn.currentlyPlaying.delete(this),this}};m(Pn,"currentlyPlaying",new Set);var jn=Pn,hu=class{constructor(){m(this,"renderer");this.renderer=new Bs(this)}setDocument(t){return ge(I.Is.isUndefined(t)||t instanceof Hr,"doc",t),this.renderer.setDocument(t),this}setCanvas(t){return t=kn(I.Dom.getCanvas(t),typeof t=="string"?"Cannot set renderer canvas because invalid canvas id: "+t:"Cannot set renderer canvas because given canvas is undefined."),this.renderer.setCanvas(t),this}setScoreEventListener(t){ge(I.Is.isFunctionOrUndefined(t),"scoreEventListener",t),this.renderer.setScoreEventListener(t)}hilightObject(t){this.renderer.hilightObject(t==null?void 0:t.getMusicObject())}hilightStaffPos(t){this.renderer.hilightStaffPos(t?{scoreRow:t.scoreRow.getMusicObject(),diatonicId:t.diatonicId}:void 0)}draw(){try{this.renderer.draw()}catch(t){console.log("Draw failed in music renderer."),console.log(t)}}},he=class he{constructor(){m(this,"playButton");m(this,"stopButton");m(this,"playStopButton");m(this,"pauseButton");m(this,"onPlay");m(this,"onStop");m(this,"onPlayStop");m(this,"onPause");m(this,"playLabel","Play");m(this,"stopLabel","Stop");m(this,"pauseLabel","Pause");m(this,"playState",2);m(this,"player");this.onPlay=()=>{var t;return(t=this.player)==null?void 0:t.play()},this.onStop=()=>{var t;return(t=this.player)==null?void 0:t.stop()},this.onPlayStop=()=>{var t,e;this.playState===0?(t=this.player)==null||t.stop():(e=this.player)==null||e.play()},this.onPause=()=>{var t;return(t=this.player)==null?void 0:t.pause()},this.updateButtons()}setDocument(t){return ge(I.Is.isUndefined(t)||t instanceof Hr,"doc",t),this.onStop(),t?this.player=new jn(t,e=>{this.playState=e,this.updateButtons()}):this.player=void 0,this.updateButtons(),this}detachDocument(){this.setDocument(void 0)}updateButtons(){this.playButton&&(this.playButton.disabled=this.player?this.playState===0:!0,this.playButton.innerText=this.playLabel),this.stopButton&&(this.stopButton.disabled=this.player?this.playState===2:!0,this.stopButton.innerText=this.stopLabel),this.playStopButton&&(this.playStopButton.disabled=!this.player,this.playStopButton.innerText=this.playState===0?this.stopLabel:this.playLabel),this.pauseButton&&(this.pauseButton.disabled=this.player?this.playState!==0:!0,this.pauseButton.innerText=this.pauseLabel)}setPlayButton(t,e){return ge(I.Is.isStringOrUndefined(e),"btnLabel",e),he.removeOnClickListeners(this.playButton,this.onPlay),this.playButton=kn(I.Dom.getButton(t),"Play button required!"),this.playLabel=e!=null?e:"Play",he.removeOnClickListeners(this.playButton,"all"),he.addOnClickListener(this.playButton,this.onPlay),this.updateButtons(),this}setStopButton(t,e){return ge(I.Is.isStringOrUndefined(e),"btnLabel",e),he.removeOnClickListeners(this.stopButton,this.onStop),this.stopButton=kn(I.Dom.getButton(t),"Stop button required!"),this.stopLabel=e!=null?e:"Stop",he.removeOnClickListeners(this.stopButton,"all"),he.addOnClickListener(this.stopButton,this.onStop),this.updateButtons(),this}setPlayStopButton(t,e,r){return ge(I.Is.isStringOrUndefined(e),"playLabel",e),ge(I.Is.isStringOrUndefined(r),"stopLabel",r),he.removeOnClickListeners(this.playStopButton,this.onPlayStop),this.playStopButton=kn(I.Dom.getButton(t),"Play/stop button required!"),this.playLabel=e!=null?e:"Play",this.stopLabel=r!=null?r:"Stop",he.removeOnClickListeners(this.playStopButton,"all"),he.addOnClickListener(this.playStopButton,this.onPlayStop),this.updateButtons(),this}setPauseButton(t,e){return ge(I.Is.isStringOrUndefined(e),"btnLabel",e),he.removeOnClickListeners(this.pauseButton,this.onPause),this.pauseButton=kn(I.Dom.getButton(t),"Pause button required!"),this.pauseLabel=e!=null?e:"Pause",he.removeOnClickListeners(this.pauseButton,"all"),he.addOnClickListener(this.pauseButton,this.onPause),this.updateButtons(),this}static removeOnClickListeners(t,e){if(t){let r=this.savedOnClickListeners.get(t)||[],i=[];r.forEach(n=>{e===n||e==="all"?t.removeEventListener("click",n):i.push(n)}),this.savedOnClickListeners.set(t,i)}}static addOnClickListener(t,e){ge(I.Is.isFunction(e),"onClick",e),t.addEventListener("click",e);let r=this.savedOnClickListeners.get(t)||[];this.savedOnClickListeners.set(t,[...r,e])}};m(he,"savedOnClickListeners",new Map);var lu=he;Qr();var du={};_i(du,{createAndanteByDiabelli:()=>ib,createFrereJacques:()=>eb,createGreensleeves:()=>rb});function eb(){return new Ir().setScoreConfiguration(4).setHeader("Frere Jacques").addMeasure().setKeySignature("G","Major").setTimeSignature("4/4").addNote(0,"G3",48).addNote(0,"A3",48).addNote(0,"B3",48).addNote(0,"G3",48).addMeasure().addNote(0,"G3",48).addNote(0,"A3",48).addNote(0,"B3",48).addNote(0,"G3",48).addMeasure().addNote(0,"B3",48).addNote(0,"C4",48).addNote(0,"D4",96).endRow().addMeasure().addNote(0,"B3",48).addNote(0,"C4",48).addNote(0,"D4",96).addMeasure().addNote(0,"D4",24).addNote(0,"E4",24).addNote(0,"D4",24).addNote(0,"C4",24).addNote(0,"B3",48).addNote(0,"G3",48).endRow().addMeasure().addNote(0,"D4",24).addNote(0,"E4",24).addNote(0,"D4",24).addNote(0,"C4",24).addNote(0,"B3",48).addNote(0,"G3",48).addMeasure().addNote(0,"G3",48).addNote(0,"D3",48).addNote(0,"G3",96).addMeasure().addNote(0,"G3",48).addNote(0,"D3",48).addNote(0,"G3",96).getDocument()}function rb(){return new Ir().setScoreConfiguration(4).setHeader("Greensleeves").addMeasure().setKeySignature("C","Major").setTimeSignature("6/8").setTempo(140).addNote(0,"A3",24).addMeasure().addNavigation(8).addNote(0,"C4",48,{stem:1}).addLabel(1,"Am").addNote(0,"D4",24).addNote(0,"E4",24,{dotted:!0}).addNote(0,"F4",12).addNote(0,"E4",24).addNote(1,"A2",24,{stem:2}).addNote(1,"E3",48).addNote(1,"A2",24).addNote(1,"E3",48).addMeasure().addNote(0,"D4",48,{stem:1}).addLabel(1,"G").addNote(0,"B3",24).addNote(0,"G3",24,{dotted:!0}).addLabel(1,"Em").addNote(0,"A3",12).addNote(0,"B3",24).addNote(1,"G2",24,{stem:2}).addNote(1,"D3",48).addNote(1,"E2",24).addNote(1,"B2",48).addMeasure().addNote(0,"C4",48,{stem:1}).addLabel(1,"Am").addNote(0,"A3",24).addNote(0,"A3",24,{dotted:!0}).addLabel(1,"F").addNote(0,"G#3",12).addNote(0,"A3",24).addNote(1,"A2",24,{stem:2}).addNote(1,"E3",48).addNote(1,"F2",24).addNote(1,"A2",48).addMeasure().addNote(0,"B3",48,{stem:1}).addLabel(1,"E").addNote(0,"G#3",24).addNote(0,"E3",48).addNote(0,"A3",24).addNote(1,"E2",24,{stem:2}).addNote(1,"B2",48).addNote(1,"E2",24).addNote(1,"B2",48).endRow().addMeasure().addNote(0,"C4",48,{stem:1}).addLabel(1,"Am").addNote(0,"D4",24).addNote(0,"E4",24,{dotted:!0}).addNote(0,"F4",12).addNote(0,"E4",24).addNote(1,"A2",24,{stem:2}).addNote(1,"E3",48).addNote(1,"A2",24).addNote(1,"E3",48).addMeasure().addNote(0,"D4",48,{stem:1}).addLabel(1,"G").addNote(0,"B3",24).addNote(0,"G3",24,{dotted:!0}).addLabel(1,"Em").addNote(0,"A3",12).addNote(0,"B3",24).addNote(1,"G2",24,{stem:2}).addNote(1,"D3",48).addNote(1,"E2",24).addNote(1,"B2",48).addMeasure().addNote(0,"C4",24,{dotted:!0,stem:1}).addLabel(1,"Am").addNote(0,"B3",12).addNote(0,"A3",24).addNote(0,"G#3",24,{dotted:!0}).addLabel(1,"E").addNote(0,"F#3",12).addNote(0,"G#3",24).addNote(1,"A2",24,{stem:2}).addNote(1,"E3",48).addNote(1,"E2",24).addNote(1,"B2",48).addMeasure().addNote(0,"A3",48,{dotted:!0,stem:1}).addLabel(1,"Am").addNote(0,"A3",48,{dotted:!0}).addNote(1,"A2",24,{stem:2}).addNote(1,"E3",24).addNote(1,"C4",24).addNote(1,"A2",48,{dotted:!0}).endRow().addMeasure().addChord(0,["C3","E3","G3","C4","G4"],48,{dotted:!0,arpeggio:0,stem:1}).addLabel(1,"C").addNote(0,"G4",24,{dotted:!0}).addNote(0,"F#4",12).addNote(0,"E4",24).addRest(1,48,{dotted:!0,hide:!0}).addNote(1,"C3",24,{stem:2}).addNote(1,"G3",48).addMeasure().addNote(0,"D4",48,{stem:1}).addLabel(1,"G").addNote(0,"B3",24).addNote(0,"G3",24,{dotted:!0}).addLabel(1,"Em").addNote(0,"A3",12).addNote(0,"B3",24).addNote(1,"G2",24,{stem:2}).addNote(1,"D3",48).addNote(1,"E2",24).addNote(1,"B2",48).addMeasure().addNote(0,"C4",48,{stem:1}).addLabel(1,"Am").addNote(0,"A3",24).addNote(0,"A3",24,{dotted:!0}).addLabel(1,"F").addNote(0,"G#3",12).addNote(0,"A3",24).addNote(1,"A2",24,{stem:2}).addNote(1,"E3",48).addNote(1,"F2",24).addNote(1,"A2",48).addMeasure().addNote(0,"B3",48,{stem:1}).addLabel(1,"E").addNote(0,"G#3",24).addNote(0,"E3",48,{dotted:!0}).addNote(1,"E2",24,{stem:2}).addNote(1,"B2",48).addNote(1,"E2",24).addNote(1,"B2",24).addNote(1,"E3",24).endRow().addMeasure().addNote(0,"G4",48,{dotted:!0,stem:1}).addLabel(1,"C").addNote(0,"G4",24,{dotted:!0}).addNote(0,"F#4",12).addNote(0,"E4",24).addNote(1,"C3",24,{stem:2}).addNote(1,"G3",24).addNote(1,"C4",24).addNote(1,"C3",24).addNote(1,"G3",48).addMeasure().addNote(0,"D4",48,{stem:1}).addLabel(1,"G").addNote(0,"B3",24).addNote(0,"G3",24,{dotted:!0}).addLabel(1,"Em").addNote(0,"A3",12).addNote(0,"B3",24).addNote(1,"G2",24,{stem:2}).addNote(1,"D3",48).addNote(1,"E2",24).addNote(1,"B2",48).addMeasure().addNote(0,"C4",24,{dotted:!0,stem:1}).addLabel(1,"Am").addNote(0,"B3",12).addNote(0,"A3",24).addNote(0,"G#3",24,{dotted:!0}).addLabel(1,"E").addNote(0,"F#3",12).addNote(0,"G#3",24).addNote(1,"A2",24,{stem:2}).addNote(1,"E3",48).addNote(1,"E2",24).addNote(1,"B2",48).addMeasure().addNavigation(10,1).addNavigation(9).addNote(0,"A3",48,{dotted:!0,stem:1}).addLabel(1,"Am").addNote(0,"A3",48).addNote(0,"A3",24).addNote(1,"A2",24,{stem:2}).addNote(1,"E3",24).addNote(1,"C4",24).addNote(1,"A2",48,{dotted:!0}).addMeasure().addNavigation(10,2).addNote(0,"A3",48,{dotted:!0,stem:1}).addLabel(1,"Am").addNote(0,"A3",48,{dotted:!0}).addFermata().addNote(1,"A2",24,{stem:2}).addNote(1,"E3",24).addNote(1,"C4",24).addNote(1,"A2",48,{dotted:!0}).getDocument()}function ib(){return new Ir().setScoreConfiguration(4).setHeader("Andante","A. Diabelli").addMeasure().setKeySignature("D","Major").setTimeSignature("3/4").setTempo(80).addRest(0,24,{staffPos:"G4"}).addAnnotation(0,"p").addNote(0,"F#4",24,{stem:1}).addNote(0,"G4",24).addConnective(1,2,3).addNote(0,"F#4",24).addNote(0,"E4",24).addNote(0,"D4",24).addNote(1,"D3",96,{dotted:!0,stem:2}).addMeasure().addNote(0,"C#4",24).addConnective(1,2,3).addNote(0,"D4",24).addNote(0,"E4",24).addNote(0,"F#4",24).addNote(0,"G4",48).addNote(1,"A2",96,{dotted:!0}).addMeasure().addRest(0,24,{staffPos:"B3"}).addAnnotation(0,"f").addNote(0,"A3",24).addNote(0,"G#3",24).addConnective(1,2,3).addNote(0,"A3",24).addNote(0,"B3",24).addNote(0,"C#4",24).addNote(1,"A2",96,{dotted:!0}).endRow().addMeasure().addNote(0,"D4",24,{string:3}).addNote(0,"E4",24).addNote(0,"F#4",24).addNote(0,"G4",24).addNote(0,"A4",48).addNote(1,"D3",96,{dotted:!0}).addMeasure().addRest(0,24,{staffPos:"G4"}).addAnnotation(0,"p").addNote(0,"F#4",24).addNote(0,"G4",24).addConnective(1,2,3).addNote(0,"F#4",24).addNote(0,"E4",24).addNote(0,"D4",24).addNote(1,"D3",96,{dotted:!0}).addMeasure().addNote(0,"C#4",24).addConnective(1,2,3).addNote(0,"D4",24).addNote(0,"E4",24).addNote(0,"F#4",24).addNote(0,"G4",48).addNote(1,"A2",96,{dotted:!0}).endRow().addMeasure().addRest(0,24,{staffPos:"B3"}).addAnnotation(0,"f").addNote(0,"A3",24).addNote(0,"G#3",24).addConnective(1,2,3).addNote(0,"A3",24).addNote(0,"B3",24).addNote(0,"C#4",24).addNote(1,"A2",96,{dotted:!0}).addMeasure().addNote(0,"D4",48).addRest(1,48,{staffPos:"D3"}).addNote(0,"D3",48).addNote(1,"D3",48).addRest(1,48,{staffPos:"B3"}).addNavigation(9).addMeasure().addRest(0,24,{staffPos:"D4"}).addAnnotation(0,"f").addNote(0,"D4",24).addNote(0,"E4",24).addConnective(1,2,3).addNote(0,"D4",24).addNote(0,"C#4",24).addNote(0,"B3",24).addNote(1,"E2",96,{dotted:!0}).endRow().addMeasure().addNote(0,"C#4",24).addConnective(1,2,3).addNote(0,"D4",24).addNote(0,"E4",24).addNote(0,"F#4",24).addNote(0,"E4",48).addNote(1,"A2",96,{dotted:!0}).addMeasure().addRest(0,24,{staffPos:"B3"}).addAnnotation(0,"p").addNote(0,"E3",24).addNote(0,"D#3",24).addConnective(1,2,3).addNote(0,"E3",24).addNote(0,"F#3",24).addNote(0,"G#3",24).addNote(1,"E2",96,{dotted:!0}).addMeasure().addNote(0,"A3",24).addConnective(1,2,3).addNote(0,"G#3",24).addNote(0,"A3",24).addNote(0,"B3",24).addNote(0,"C#4",48).addNote(1,"A2",96,{dotted:!0}).endRow().addMeasure().addRest(0,24,{staffPos:"G4"}).addAnnotation(0,"f").addNote(0,"G4",24).addNote(0,"A4",24).addConnective(1,2,3).addNote(0,"G4",24).addNote(0,"F#4",24).addNote(0,"E4",24).addNote(1,"A2",96,{dotted:!0}).addMeasure().addNote(0,"D4",24).addNote(0,"C#4",24).addNote(0,"D4",24).addNote(0,"E4",24).addNote(0,"F#4",48).addNote(1,"D3",96,{dotted:!0}).addMeasure().addRest(0,24,{staffPos:"B3"}).addAnnotation(0,"ff").addNote(0,"A3",24).addNote(0,"G#3",24).addConnective(1,2,3).addNote(0,"A3",24).addNote(0,"B3",24).addNote(0,"C#4",24).addNote(1,"A2",96,{dotted:!0}).addMeasure().addNote(0,"D4",48).addRest(1,48,{staffPos:"D3"}).addNote(0,"D3",48).addNote(1,"D3",48).addRest(1,48,{staffPos:"B3"}).endSong().getDocument()}return vm(ob);})();
|
|
209
|
+
`;ws(sm,xy);var qr=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["channels"]);super(t),this.name="Merge",this._merger=this.output=this.input=this.context.createChannelMerger(t.channels)}static getDefaults(){return Object.assign(j.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}};var wJ=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100];var kJ=[1687/25e3,1601/25e3,2053/25e3,2251/25e3];var Es=class o extends fe{constructor(){let t=w(o.getDefaults(),arguments,["decay"]);super(t),this.name="Reverb",this._convolver=this.context.createConvolver(),this.ready=Promise.resolve();let e=this.toSeconds(t.decay);Dt(e,.001),this._decay=e;let r=this.toSeconds(t.preDelay);Dt(r,0),this._preDelay=r,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(fe.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(t){t=this.toSeconds(t),Dt(t,.001),this._decay=t,this.generate()}get preDelay(){return this._preDelay}set preDelay(t){t=this.toSeconds(t),Dt(t,0),this._preDelay=t,this.generate()}generate(){return lt(this,void 0,void 0,function*(){let t=this.ready,e=new Ye(2,this._decay+this._preDelay,this.context.sampleRate),r=new si({context:e}),i=new si({context:e}),n=new qr({context:e});r.connect(n,0,0),i.connect(n,0,1);let s=new Y({context:e}).toDestination();n.connect(s),r.start(0),i.start(0),s.gain.setValueAtTime(0,0),s.gain.setValueAtTime(1,this._preDelay),s.gain.exponentialApproachValueAtTime(0,this._preDelay,this.decay);let a=e.render();return this.ready=a.then(tt),yield t,this._convolver.buffer=(yield a).get(),this})}dispose(){return super.dispose(),this._convolver.disconnect(),this}};var ho=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["solo"]);super(t),this.name="Solo",this.input=this.output=new Y({context:this.context}),o._allSolos.has(this.context)||o._allSolos.set(this.context,new Set),o._allSolos.get(this.context).add(this),this.solo=t.solo}static getDefaults(){return Object.assign(j.getDefaults(),{solo:!1})}get solo(){return this._isSoloed()}set solo(t){t?this._addSolo():this._removeSolo(),o._allSolos.get(this.context).forEach(e=>e._updateSolo())}get muted(){return this.input.gain.value===0}_addSolo(){o._soloed.has(this.context)||o._soloed.set(this.context,new Set),o._soloed.get(this.context).add(this)}_removeSolo(){o._soloed.has(this.context)&&o._soloed.get(this.context).delete(this)}_isSoloed(){return o._soloed.has(this.context)&&o._soloed.get(this.context).has(this)}_noSolos(){return!o._soloed.has(this.context)||o._soloed.has(this.context)&&o._soloed.get(this.context).size===0}_updateSolo(){this._isSoloed()?this.input.gain.value=1:this._noSolos()?this.input.gain.value=1:this.input.gain.value=0}dispose(){return super.dispose(),o._allSolos.get(this.context).delete(this),this._removeSolo(),this}};ho._allSolos=new Map;ho._soloed=new Map;var Ms=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["pan","volume"]);super(t),this.name="PanVol",this._panner=this.input=new $o({context:this.context,pan:t.pan,channelCount:t.channelCount}),this.pan=this._panner.pan,this._volume=this.output=new Pe({context:this.context,volume:t.volume}),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=t.mute,B(this,["pan","volume"])}static getDefaults(){return Object.assign(j.getDefaults(),{mute:!1,pan:0,volume:0,channelCount:1})}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}dispose(){return super.dispose(),this._panner.dispose(),this.pan.dispose(),this._volume.dispose(),this.volume.dispose(),this}};var Qc=class o extends j{constructor(){let t=w(o.getDefaults(),arguments,["volume","pan"]);super(t),this.name="Channel",this._solo=this.input=new ho({solo:t.solo,context:this.context}),this._panVol=this.output=new Ms({context:this.context,pan:t.pan,volume:t.volume,mute:t.mute,channelCount:t.channelCount}),this.pan=this._panVol.pan,this.volume=this._panVol.volume,this._solo.connect(this._panVol),B(this,["pan","volume"])}static getDefaults(){return Object.assign(j.getDefaults(),{pan:0,volume:0,mute:!1,solo:!1,channelCount:1})}get solo(){return this._solo.solo}set solo(t){this._solo.solo=t}get muted(){return this._solo.muted||this.mute}get mute(){return this._panVol.mute}set mute(t){this._panVol.mute=t}_getBus(t){return o.buses.has(t)||o.buses.set(t,new Y({context:this.context})),o.buses.get(t)}send(t,e=0){let r=this._getBus(t),i=new Y({context:this.context,units:"decibels",gain:e});return this.connect(i),i.connect(r),i}receive(t){return this._getBus(t).connect(this),this}dispose(){return super.dispose(),this._panVol.dispose(),this.pan.dispose(),this.volume.dispose(),this._solo.dispose(),this}};Qc.buses=new Map;var _rt=Bt().transport;var vrt=Bt().destination,Irt=Bt().destination;var Srt=Bt().listener;var wrt=Bt().draw;var Trt=Bt();var Zc=class{constructor(){m(this,"audioSource");try{let t=new Es({decay:3,wet:.4}).toDestination(),e=new Ar(800,"lowpass").connect(t);this.audioSource=new Ts(ar,{oscillator:{type:"triangle"},envelope:{attack:.001,decay:2,sustain:.1,release:1.2}}).connect(e)}catch(t){this.audioSource=void 0,console.error(t)}}getName(){return"Synthesizer"}playNote(t,e,r){try{this.audioSource&&(r!==void 0&&(this.audioSource.volume.value=I.Math.linearToDecibels(r)),this.audioSource.triggerAttackRelease(t,e!=null?e:"2n"))}catch(i){}}stop(){try{this.audioSource&&this.audioSource.releaseAll()}catch(t){}}},Xc=new Zc;Qr();function Sy(o){return typeof o=="string"?o:(typeof o=="number"&&(o=G.getChromaticNote(o)),o.format(0,0))}var Ds=[Xc],lo=Xc;function wy(){return Ds.map(o=>o.getName())}function Ty(){return lo.getName()}function Ny(o){Ds.some(t=>t.getName()===o.getName())||(Ds.push(o),cm(o.getName()))}function cm(o){if(o===lo.getName())return;lo.stop();let t=Ds.find(e=>e.getName()===o);t&&(lo=t)}function ks(o,t,e){lo.playNote(Sy(o),t,e)}function Jc(){lo.stop()}var lu={};_i(lu,{Annotation:()=>ui,Arpeggio:()=>Ur,Clef:()=>Wr,Connective:()=>_r,DivRect:()=>F,DocumentBuilder:()=>Ir,Fermata:()=>en,Label:()=>po,MAccidental:()=>sn,MArpeggio:()=>un,MBarLineLeft:()=>_n,MBarLineRight:()=>Cn,MBeamGroup:()=>dn,MConnective:()=>Tn,MDocument:()=>Hr,MEnding:()=>In,MExtensionLine:()=>wn,MFermata:()=>Sn,MHeader:()=>En,MImage:()=>nn,MMeasure:()=>On,MNoteGroup:()=>fn,MPlaybackButtons:()=>hu,MPlayer:()=>Pn,MRenderer:()=>uu,MRest:()=>hn,MRhythmColumn:()=>yn,MScoreRow:()=>Rn,MSignature:()=>cn,MSpecialText:()=>bn,MStaff:()=>rn,MStaffBeamGroup:()=>mn,MStaffNoteGroup:()=>gn,MStaffRest:()=>ln,MStaffTabBarLine:()=>vn,MTab:()=>on,MTabNoteGroup:()=>xn,MText:()=>an,MusicInterface:()=>bt,Navigation:()=>Ie,NoteAnchor:()=>ve,PlayState:()=>Ps,ScoreEvent:()=>Mn,ScoreObjectEvent:()=>li,ScoreStaffPosEvent:()=>hi,StaffPreset:()=>Cr,Stem:()=>je,TieType:()=>cr,getStringNumbers:()=>Kc,getVoiceIds:()=>oe});var F=class o{constructor(...t){m(this,"left");m(this,"centerX");m(this,"right");m(this,"top");m(this,"centerY");m(this,"bottom");if(t.length===6)this.left=t[0],this.centerX=t[1],this.right=t[2],this.top=t[3],this.centerY=t[4],this.bottom=t[5];else if(t.length===4)this.left=t[0],this.right=t[1],this.centerX=(this.left+this.right)/2,this.top=t[2],this.bottom=t[3],this.centerY=(this.top+this.bottom)/2;else if(t.length===0)this.left=this.centerX=this.right=0,this.top=this.centerY=this.bottom=0;else throw new E(1,`Invalid DivRect args: ${t}`)}static create(t,e,r,i){return new o(t,t+r,e,e+i)}static createCentered(t,e,r,i){return new o(t-r/2,t+r/2,e-i/2,e+i/2)}static createSections(t,e,r,i){return new o(-t,0,e,-r,0,i)}get width(){return this.right-this.left}get height(){return this.bottom-this.top}get leftw(){return this.centerX-this.left}get rightw(){return this.right-this.centerX}get toph(){return this.centerY-this.top}get bottomh(){return this.bottom-this.centerY}contains(t,e){return t>=this.left&&t<=this.right&&e>=this.top&&e<=this.bottom}static overlap(t,e){return t.right>e.left&&t.left<e.right&&t.bottom>e.top&&t.top<e.bottom}static overlapX(t,e){return t.right>e.left&&t.left<e.right}static equals(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.left===e.left&&t.centerX===e.centerX&&t.right===e.right&&t.top===e.top&&t.centerY===e.centerY&&t.bottom===e.bottom}static equalsFrame(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.left===e.left&&t.right===e.right&&t.top===e.top&&t.bottom===e.bottom}copy(){return new o(this.left,this.centerX,this.right,this.top,this.centerY,this.bottom)}offsetInPlace(t,e){return this.left+=t,this.centerX+=t,this.right+=t,this.top+=e,this.centerY+=e,this.bottom+=e,this}offsetCopy(t,e){return this.copy().offsetInPlace(t,e)}expandInPlace(t){return this.left=Math.min(this.left,t.left),this.right=Math.max(this.right,t.right),this.top=Math.min(this.top,t.top),this.bottom=Math.max(this.bottom,t.bottom),this}expandCopy(t){return this.copy().expandInPlace(t)}clipInPlace(t){return this.left=Math.max(this.left,t.left),this.right=Math.min(this.right,t.right),this.centerX=I.Math.clamp(this.centerX,this.left,this.right),this.top=Math.max(this.top,t.top),this.bottom=Math.min(this.bottom,t.bottom),this.centerY=I.Math.clamp(this.centerY,this.top,this.bottom),this}clipCopy(t){return this.copy().clipInPlace(t)}scaleInPlace(t,e){return e=e!=null?e:t,this.left=this.centerX-this.leftw*t,this.right=this.centerX+this.rightw*t,this.top=this.centerY-this.toph*e,this.bottom=this.centerY+this.bottomh*e,this}scaleCopy(t,e){return this.copy().scaleInPlace(t,e)}getRect(){return this}};var Cr=(s=>(s[s.Treble=1]="Treble",s[s.Bass=2]="Bass",s[s.Grand=3]="Grand",s[s.GuitarTreble=4]="GuitarTreble",s[s.GuitarTab=8]="GuitarTab",s[s.GuitarCombined=12]="GuitarCombined",s))(Cr||{}),Wr=(e=>(e.G="G",e.F="F",e))(Wr||{});function oe(){return[0,1,2,3]}function Kc(){return[1,2,3,4,5,6]}var je=(r=>(r[r.Auto=0]="Auto",r[r.Up=1]="Up",r[r.Down=2]="Down",r))(je||{}),Ur=(e=>(e[e.Up=0]="Up",e[e.Down=1]="Down",e))(Ur||{}),cr=(e=>(e[e.Stub=-1]="Stub",e[e.ToMeasureEnd=-2]="ToMeasureEnd",e))(cr||{}),ve=(n=>(n[n.Auto=0]="Auto",n[n.Above=1]="Above",n[n.Center=2]="Center",n[n.Below=3]="Below",n[n.StemTip=4]="StemTip",n))(ve||{}),_r=(r=>(r[r.Tie=0]="Tie",r[r.Slur=1]="Slur",r[r.Slide=2]="Slide",r))(_r||{}),Ps=(r=>(r[r.Playing=0]="Playing",r[r.Paused=1]="Paused",r[r.Stopped=2]="Stopped",r))(Ps||{}),en=(e=>(e[e.AtNote=0]="AtNote",e[e.AtMeasureEnd=1]="AtMeasureEnd",e))(en||{}),Ie=(l=>(l[l.DC_al_Fine=0]="DC_al_Fine",l[l.DC_al_Coda=1]="DC_al_Coda",l[l.DS_al_Fine=2]="DS_al_Fine",l[l.DS_al_Coda=3]="DS_al_Coda",l[l.Coda=4]="Coda",l[l.toCoda=5]="toCoda",l[l.Segno=6]="Segno",l[l.Fine=7]="Fine",l[l.StartRepeat=8]="StartRepeat",l[l.EndRepeat=9]="EndRepeat",l[l.Ending=10]="Ending",l))(Ie||{}),ui=(e=>(e[e.Dynamics=0]="Dynamics",e[e.Tempo=1]="Tempo",e))(ui||{}),po=(e=>(e[e.Note=0]="Note",e[e.Chord=1]="Chord",e))(po||{});var js=class{constructor(t){m(this,"head");m(this,"tail");this.head=t,this.tail=[]}getHead(){return this.head}getTails(){return this.tail}addTail(t){this.tail.push(t)}detachTail(t){let e=this.tail.indexOf(t);e>=0&&this.tail.splice(e,1)}},et=class{constructor(t){this.parent=t;m(this,"anchoredLayoutObjects",[]);m(this,"link");m(this,"rect",new F);m(this,"needRectUpdate",!0)}getParent(){return this.parent}requestRectUpdate(){this.needRectUpdate=!0}updateRect(){}getRect(){return this.needRectUpdate&&(this.updateRect(),this.needRectUpdate=!1),this.rect}getShapeRects(){return[this.rect]}addAnchoredLayoutObject(t){this.anchoredLayoutObjects.push(t)}getAnchoredLayoutObjects(){return this.anchoredLayoutObjects}setLink(t){this.link=t}getLink(){return this.link}isLinked(){return this.link!==null}};var Ls={DrawDebugRects:!1,DisableBeams:!1},ct={DocumentScale:1,DocumentMinWidth:75,PostMeasureBreakWidth:10,NoteDotSpace:.5,NoteAccSpace:.5,NoteHeadWidth:2,NoteHeadHeight:1.3,DiamondNoteHeadSize:1.8,DotSize:.8,StemHeight:7,FlagWidth:1.5,FlagHeight:4,FlagSeparation:2,BeamSeparation:1.25,BeamAngleFactor:.5,RestDotSpace:.5,LedgerLineWidth:3.6,StubTieLength:5,StaffHeight:8,TabHeight:20};var um="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAACWCAYAAACCe+v6AAADHXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7ZZRcu0mDIbfWUWXgCSExHIwmJnu4C6/Pxg7J2kyTdv7GJhjsJCF0CfZJ5y//hzhDzRK5iGpeS45R7RUUuGKicerHetKMa3ratL2Gr2Xh5L3AkMkU/O6LbzlJ+SY074vexO69W9D94QqZvq2UOuWH+/lxzbI/tHQ9kDo2jn2/cA2JLw9Std92x7l4vbuaH2fGYqXyN9+SYyzZrKEa+JolgvmzjEZ4tmno6NxWYb0CugjuO9vVYZPfApJxFUkXV7K/IlUjBlXrAYokhhuFMK5UFbgI1DCBXha9kY1PsF8jc1bjL5o3zlWxCbjnMov1J7xQ97k/HnePLOdBg81z3tB3mON+Rk/lZPehu4Fefbh1529PTu/k4vE9BqK8Ip7jO5jHRqnqCkjFnkf6j7KmkHvmFFcT2V0izkgax2T2Qu6xxobcqrHhko7MC/EoDsoUadKg841NmpwMfHJhpG5BZYldEAq3GQmQ5qdBpsU6eLImHblkPDjC61ty9qukcceYieoMsEY4ZH/3MN3FceYtUQU/YoT0gJ+8axOeBEJ+OcANTCgsYOqK8B3/9gm18lMV5gdB6zxCJeJQ+ktuWSBFigqxgsyWd8GECJsrXCGBARiJlHK8MiYjQiBdACqcJ0l8QECpModTnISyYCD6sDeeMZoqbLyJcZbVVJAsWYUrYNQBayUFPljyZFDVUWTqmY1dS1as+RZeTlbnq/namLJ1LIZ3tlWrLp4cvXs5u7Fa+EieH1rQZ0WL6XUik0rLFc8XaFQ68GHHOnQIx92+FHCURvSp6WmLTdr3kqrnbt0FHjP3br30utJJ1LpTKee+bTTz3LWgVQbMtLQkYeF4aOM+lCjXbYf+7+gRpsaL1JT0R5qkJrdJmi+TnQyAzFOBOAGaiCGxJ7MolNKPMlNZvgeoSqU4aROOJ0mMRBMJ7EOethtcoHr7+EWzBc3/r/kwkT3TXJ/5/YZtT6/Em0Ru8pwBjUKqg/rp1f2Oj+vX47hnxS+O/4Y+jH0Y+jrcYwROv51hb8AKbCqdGIdCl0AAAGFaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1O1UqoOdhBxyFCd7OAH0rFUsQgWSluhVQeTS7+gSUOS4uIouBYc/FisOrg46+rgKgiCHyCuLk6KLlLi/5JCi1gPjvvx7t7j7h0gNCpMNXuigKpZRioeE7O5VdH3ij74MYgpRCRm6on0YgZdx9c9PHy9C/Os7uf+HANK3mSARySOMt2wiDeI5zYtnfM+cZCVJIX4nHjSoAsSP3JddvmNc9FhgWcGjUxqnjhILBY7WO5gVjJU4lnikKJqlC9kXVY4b3FWKzXWuid/YSCvraS5TnMMcSwhgSREyKihjAoshGnVSDGRov1YF/+o40+SSyZXGYwcC6hCheT4wf/gd7dmYWbaTQrEgN4X2/4YB3y7QLNu29/Htt08AbzPwJXW9lcbQOST9HpbCx0BQ9vAxXVbk/eAyx1g5EmXDMmRvDSFQgF4P6NvygHDt4B/ze2ttY/TByBDXS3fAAeHwESRste7vLu/s7d/z7T6+wEMNXLkxtwRywAADzRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6NDA3ODVjMzYtNDAxZC00YTZlLTkxODctMDQ1NTI4MmM0ZGY2IgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhiZTJkYzc1LTVlYjQtNDk0Yy1iNWRlLWQ2MzZkNzZhNjI2YiIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmU3YWE0MWNhLTNiYjMtNGU5Yi05NDQxLTllNTNmZTJiZjM5ZiIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjg2NDA4NjA5MzE2NDM4IgogICBHSU1QOlZlcnNpb249IjIuMTAuMzQiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIgogICB4bXA6TWV0YWRhdGFEYXRlPSIyMDIzOjA2OjEwVDE3OjUwOjA5KzAzOjAwIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMzowNjoxMFQxNzo1MDowOSswMzowMCI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjI3MzY2YmY0LWVkZDMtNDE5OC05NjJhLWU5ZTM5MTBlNThiZSIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wOC0yMlQwMjo1NTozNiIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5NjVlMTM3OS0wZDlmLTQ5ODItYWQ3MC05MzhjOWMzOWE0ZjMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDktMTFUMTY6MzU6MDAiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MTBmYmEwYTMtOTI5Yi00NTRlLThjNGMtOGVkOGM4YWJhZGRjIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIzLTA2LTEwVDE3OjUwOjA5Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Ppn4NIQAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfnBgoOMgm5WlWBAAAAGXRFWHRDb21tZW50AENyZWF0ZWQgd2l0aCBHSU1QV4EOFwAACHtJREFUeNrtnXuQVmMcxz+77cauTWUpbGSVu2w3BpnUEBq3chkmBjGayG1GBuNWLtUgw5SJkBkjl4QKg1wyQyarK0lRSlstU20bWam9+OM8O3P6vc8553nOe97tnO18Z84f57zP7XvOc/ndnueFfQx5e6neUmAI0B3oDPwD/AJ8Dvzcml5we+Al4D+gyeOaB1S0BrLHAut9iLqvf4ERSSZbBmwwJOu+RieV8JwQZJuARjXWE4WBIck2X38AByaJ8MwsCTcBTyWFbCFQFwHhv4DiKBqUn2PCPYEin9+bgI3AUuBPn3TtgMuT8IWv8vlq7wLdRPrTgPke6d9JAuFbPBo/3UfKK1TCh8yzIQmEb/cYjx0C8pUDuzV5D477GN6mefY+UBuQby0wV/O8U9wJr9E8W2iY92vNs45xJ6zTfKoN827UPNsdd8K1SlJyo8Awb7XhEIkVYYAVmjXVBPtr1uyqJBBeLu5LDPMdppkPdiaRcHvDfKeJ+++SIFoCLBP3R1toWW58lhQFogiodwkPlYZf1y1w/AcclCQVcYWQtILwqiA8M2lGgDcFgSN90nbXiJUXRdWQ/BYiLMdxH5+0k8VavRb4JGmEl4j7vh7pRgDni2fj1RyQKBwiuqjui/Un015dBbQloXCbaTdrZuUajTp4IwnGbEHmKPX8QmCHhuwC9p4rKBI8IghdB0zCsT1Lsg0+4zwxuEiQqqcVmGWDlAETk+zSJE9Ublyjuqof2TrgxKQT7anMNSZfd1iSiZYCUwy+avP1dJLJXglsxdyV8hHQJolEDwBewc5v9J3Klzj0xYnTsCG7W4mdicMdwC7CeQaPTBLRAjUxZeMKvSwpZPcDPghBUGpE45JAthjH92NLdiUwSDz7NO5k24YkuwTHGZYvtKMtcSabD7wVguy37OkilU7v8rgSfjoE2c816+wkkebKOJK9NgTZ2Wpykxgu0k2IG9lTcMIBbchOx9tTWKHpBbFBoZpwbMi+iL9FtEC8wG1xIvyQJdlJhuVWinzd4kD2cJxYZlOyky3KfkHkvSoOhF+2IPu8Zdk3x82O1QV96JDumhJSu5KB4XsVEwzJziCcy2Z/8UK3K5G1PZnhDi2iBW02IDvPY501xY8BuvJ6JcY+AQzAPCDGGucZkF2GefiCxFk4AWoN2K0AG4HHiSBATWJqQMXr1Qxui3Jlv8o2nHiHIl4UFeF1+G/ACOMGuZVoYqfd12qgX7ZkuwZUMjyEoWBaxETd1y5gVDaEr/YpfGqIyW9ODsm6r7FhCY/z6T625tTpLUS2+bo3DOHZHoVdYFnOqBYmG3rbz1JNQbZ2p2MsZfAor604G8OMsUVTyEBLwjMsv4r7vkapl28AH+PEWNqu1++ZNjRPk3mFJdnjDBu4HBipVoUGsewVaGb6fjgRPSsMSQ8wNb/KjA9bEp5osIzcLUitEml6BNQxxGPoWVtROmoynmFJ+CefRvytxFaJt0W6GwwtqE8GkA56cZSSGVxiI74FhTUM9ch3f0irCerleNU3wbZL2xrJzwhp+hks0s6PaBitMsnsXk7WWlY8xKPi7fjvOZI94x/sHOQFPobGw+U4kHBvrrDVRrw2RE4L6C3V7Ln3sBg43qLeeuAxj996BxHeJCYxm2i4Gh8RMwjL/BpqgA/VpKgTgnwJuzdXtbWUWpZpntUCiwwlPDf6WBLeBSzWPO8URFjuHOthUWm1ptJFaizZErb9wvJjNaMkiLDck2CrYD8n7k13hUrCvUIYB3Vdui6I8FI1qzbjUstKXwe+EV3aBKtE40pwjsKwwQEeuoEv4d3ALNf9ycCpFpU24ngRVrvkYNN8y7Ps1rqlb3MQYXCc3m7YytOb1FCYa2lhzHbiqjAoU4s2GoG+D+Fg85VGijq/ssh7qEboqLGZB6QDvBLHdZpLnK6R0EzlgNs0hGfZVJ6v1lV3ARNzTLhYo0sfY5h3sYWy4ole7Blh16ismrnEStFok/ou05BdR8iA1QfJDN2/PoeEZZTQkwZL0RoN4bvCNiCPzONlGpVJNBe7Tu4TdX1h2bbmmLCCbMfWAvTew6iDQy/QzLReZJ/RtKk+pFiagXZqmdCdyzGG8J5Eic6aOuSe4yK8A+RGRfn2/SqqwdmbVBZBPX/gHbh2MfAbEbtbTAQEr7itehyX6DDCn6zyCZlhUHcoTc7Ltj2WHKNcLexBRvaFaqxdr0Q/k2OixmNudN9uo+BEMcsOAB4AzrXIU6vUxlrVU3YqJaMEOELZoUzW0PeBezz04JyjN07o0mZy7zD7EjiTmKAQOAfHJlyJ/xmWtsHlo1UPCI28FnoBJym9urtaYspwdrOUKkmprerC/6pl7lel/HdxlTORBB/7aIJnLSQuK40orlisUWRaNXpoxnHX1ky4DZlhTkNbc5duwAlNjLRb58f8Ky/e1wgv2dcmrr6aiSur3agFOWxsL6XM91a6crUSCWfi+H9NoDtEsIKY7YI52sNQ4D5uZpBFeTKMamScyJqeFL4L8yOjfhB5x8Rp0ppoaPEoBF4j86A/HerEfUlcCB8GXGGRvqPSZYPQIeAF7DXC/bE3fJsY2eWsvCEuhMtC9oouAROgPPxveVwIN4TM53f08tnifgfmh/nmnPC6kPk2+fx2k7ifpWb4WKAT9mG+foFvMqqvkRj+pYntFp0HPMrZj8wg1VieEd8Tc6NdFXr3TCFOgLc77TZifE7AaAOyv+MY9iS64pxBK7vyJXHWcLy8eu4T0dybo9vhBMBMJvMwwEbgzqSodnfhvxOtDieQzOv3ncRkE7UNytV4tJ295+LsnUgsugKPAt/jvQm7DmcX2+Bcj7eWRjFwAo4rtYOa1avUMrSTFClSpEiRIkWKFClSpEiRIkWKFClSpEiRIkWKFClSpEiRIgL8D6ed2EKeJMaTAAAAAElFTkSuQmCC";var hm="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAABGCAYAAACQRffVAAADInpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7VdbktwgDPznFDkCkgCJ4/AwVblBjp8GY+/OZFPZPD7yMVADWIiWUEt2jTu+fR3uCxplTi5EtZRT8mghh8wFC/Nnq2skH9a4mrS9R49yF9LeYIhkap6Pmbf8gBxr2s95G6FL/wK6FlSwim8bpWx5fZTXDcj2DLQ3hE7Lvu8DG0h4exTO57Y9Stn04Wp93xmKp8jefkGUU0ykAWNgr5oy1sY+KOLZp6PcznP31S7B9XypMnziQ0g8RpFweinzJ1IwJ4wk4qA4hUXiGlmWGTiUEG4Fbj6BR/F3MN/H5i1GP2mfuZaHkXFM5XdXu+envOn147y5VzsN3JU3lvaGPNLq0z1/KKd4AV0bctvh95at3ZYf5ENWdt3Nvad7jG5jXRq3KCEhFmlf6rrKWkGvziiuUwldfXLANSxmz+jmi2/Iqe4bKq1inYnB/aBAnQoNOtbcqMHFwAcrZubmWJbQQFLmhlQgCbPTYJUsXQwp0c4cEr59oWU2L3ONzHfnO0GVCWCEI3/c3WcVx5i1ROTtjBM8g188qxNeeAL9c4IaGKGxgxpXgK/+3CavAgbjCrPhgsVXd0LUSG/JJYvoSW/EfFY9ad8ACBFMRzhDAgZ8IomU4JEyKxECaSCowHWWwBUMUIzc4SQHkQRyUB2wjTNKS5Ujn2K8VSU4FGsSBTdZCsgKISJ/NBhyqESJIcaYokaLOZYkaVZeSprm67moaNCoSVXNadZiYsGiJVMzy1YyZ8HrO2bUabaccykwWoBccLpAoZTKVWqosaaq1Wp2tTSkTwstttS0WcutdO7SUeA9de3Wcy8HHUilIxzxSIceduSjDKTakBFGHGmoGzbyKDdrtMv2uf8Ga7RZ48XUVNSbNUhVLwiar5M4OQNjHAiEK1gDY0jsyZk3CoEnc5MzfI9QFZHhZJzkdJqMgcFwEMdBN3ebOcfl3/Dm1BZv/LfMuUndJ5n7kbePWOvzK9EWY2cZzqB6QfVh/7DCVubn9aez+5XCZ+cX0AvoBfQCegG9gP57oIEPJ/4Bue+bLIaQwqExNwAAAYVpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVfU7UiFQeLijhkqE4WREUcSxWLYKG0FVp1MLn0Q2jSkKS4OAquBQc/FqsOLs66OrgKguAHiKuLk6KLlPi/pNAixoPjfry797h7Bwj1MlPNjiigapaRisfEbG5FDLyiC0EMYgIDEjP1RHohA8/xdQ8fX+8iPMv73J+jV8mbDPCJxFGmGxbxOvHMpqVz3icOsZKkEJ8Tjxt0QeJHrssuv3EuOizwzJCRSc0Rh4jFYhvLbcxKhko8TRxWVI3yhazLCuctzmq5ypr35C8M5rXlNNdpjiCORSSQhAgZVWygDAsRWjVSTKRoP+bhH3b8SXLJ5NoAI8c8KlAhOX7wP/jdrVmYmnSTgjGg88W2P0aBwC7QqNn297FtN04A/zNwpbX8lTow+0l6raWFj4C+beDiuqXJe8DlDjD0pEuG5Eh+mkKhALyf0TflgP5boGfV7a25j9MHIENdLd0AB4fAWJGy1zze3d3e279nmv39ANCccsygwwDVAAAQE2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDo0MDc4NWMzNi00MDFkLTRhNmUtOTE4Ny0wNDU1MjgyYzRkZjYiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Nzg3YjYxN2YtMjg1MS00YzhlLTg2MTYtZWM3NGMwYzYwMWVlIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZTdhYTQxY2EtM2JiMy00ZTliLTk0NDEtOWU1M2ZlMmJmMzlmIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2ODY2MTM5NDcxOTU2ODAiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4zNCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjM6MDY6MTNUMDI6NTI6MjUrMDM6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIzOjA2OjEzVDAyOjUyOjI1KzAzOjAwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MjczNjZiZjQtZWRkMy00MTk4LTk2MmEtZTllMzkxMGU1OGJlIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTA4LTIyVDAyOjU1OjM2Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjk2NWUxMzc5LTBkOWYtNDk4Mi1hZDcwLTkzOGM5YzM5YTRmMyIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wOS0xMVQxNjozNTowMCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMGZiYTBhMy05MjliLTQ1NGUtOGM0Yy04ZWQ4YzhhYmFkZGMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjMtMDYtMTBUMTc6NTA6MDkiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDBmYjM4YTMtZjZiMi00NjQ1LTliMTYtMjlhNWE0ODZlMjhhIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIzLTA2LTEzVDAyOjUyOjI3Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PsIRrtIAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfnBgwXNBsqJURsAAAAGXRFWHRDb21tZW50AENyZWF0ZWQgd2l0aCBHSU1QV4EOFwAABF9JREFUeNrtmluIF1Ucxz9/E8P1VnnJ9dJWC4Frmq2JJmqolGEILoQvK2gZeXlRCSm1Fx9UEsJQERWsXhRftECs0Gq70EK9ZHlbFyHbds3VVXFX91+7664P81tYhpnfmft//st84TzMzDm/8/vOnPO7nYEMGTJkyJAhQ4YMGSJBLkJZw4FyYAIwDHgU+A9oAxqBv4C7xfyySoBlwKfAFaAb6DG0euAzoAoYXCxEnwH2A60eCGrtFrALGJNWokNEwY6QRO2tFXgPGJAmss8DlyImam/fASPTQHaeGJueBFod8FQhrfSLwM+ynDX8L1/oV+BP4LZY58eBUUAlMB94ycPSvQTMERmJ4jGgwYPh2Qg84VFmGbAP6DTI/aoQS/lzg1JfA2MDyn4ZuGaQvyZJspUGv3oKGBhyjmeBJmWOmxLMJIITiiIXIgwaZgFdylxbDeNHANXAZmAVUBpEiScNe2xRxC/3Y2WuRmUlLRHD1rd/HljvV4F3FAVqYlhNo4B7Pl/wdPEMbmOq/ShwRBH0Vkxb6LAy536fW64HuOpn8vOKoLKYCC9Q5rzs0L/JQxDjyYPkgHYXAW0xGslByrLuFuPUFw0eCI92mmiAQ4LgZoEbYyTcAZxVPsJk271ag7x6cWueCLvhfsyu8LzybKLtersUF9ywxe2BnXBnAZOUJuXZeNv1OSki3LLdzwPrgONuguw+7g7wAHjEoW+vEagAXgeelr1yUSZoCUn4hvJsqMO9byRaWyLGtFkiwOtBJnYzBKcVg/ZuSMIrlHl3RrWMnFK1OqX/q8oXOAisDqFLVxL7xonw9yHk7Q5RoxpuyLdjI3wmhLzBwMqAY0ck4SGcCNeKIQqKOTF84RtxEu4BPgohc2QM467HSRjgqBL5mBDUPU1Rnl1JwqBNUuJqrW0M+OLdYuk8Cdas38Rf4b3FR0HP/nLdZNYaioKbxSVuA6ZGQfoNvNWlO6VvEKxW5O5yGbNc4ml7ZrUtCtLjgGMSdjop9Q+wMIT8GoXwKw79ZxrKUG9r+a8flMoyr5AA4ybwo1QgggYHpZJ6Ou3Ta5IpddvufwEsVWQ2xFisCI1Nypf6RMmsIql4JI0S8bFuSs9UvmCgikeh8b6i8C/KuKOYD+VShzGSwLsprRnByYYYoSqNhE8qCv/kYfxrYjT7jmuPIC+PBWsVsl1YRzBeE45qqWGtwjo1SR0WoZ8a7KAfYa5h7/2OVaPuF1gqtS83srclpi565IAP0c+b7wOz+wPZckOc3Jt0LC52oiXABx7y6VasGnfRYgiwwRAu9raGqPLXQmAGcADvvyN+m9bgXnP4i4E9wN8+KiJ5WQG5QilumnioJP9lwHPANKw/fF7A+fxJw2ms/y9SFdiPBf4Vn9hJNL8T/iFxbyoxgej+m6zBOtnLpXlvhiXcDOyVJV8UCEL4KnBI/OnAtBP0q+ADMTq/SfshrdUFr4TzwJdY9d57WIdYzRIk1GMdeXSQIUOGDBmSwUMtd8u2ArdcUAAAAABJRU5ErkJggg==";var Oy="#55cc55",Ry="#55cc55",Ey="#44aa44",$c=new Map([[0,{src:um}],[1,{src:hm}]]);function My(o,t){return!o&&!t?!0:!o||!t?!1:o.scoreRow===t.scoreRow&&o.diatonicId===t.diatonicId}function Dy(o,t){return!o&&!t?!0:!o||!t?!1:o.length===t.length&&o.every((e,r)=>e===t[r])}var Fs=class{constructor(t){this.mi=t;m(this,"devicePixelRatio");m(this,"fontSize");m(this,"unitSize");m(this,"lineWidth");m(this,"beamThickness");m(this,"scoreEventListener");m(this,"canvas");m(this,"ctx");m(this,"mdoc");m(this,"cursorRect");m(this,"mousePos");m(this,"curStaffPos");m(this,"curObjects");m(this,"hilightedStaffPos");m(this,"hilightedObj");m(this,"usingTouch",!1);m(this,"onClickFn");m(this,"onMouseMoveFn");m(this,"onMouseLeaveFn");m(this,"onTouchEndFn");this.devicePixelRatio=window.devicePixelRatio,this.fontSize=wo.FontSize*ct.DocumentScale*this.devicePixelRatio,this.unitSize=this.fontSize*.3,this.lineWidth=this.unitSize*.2,this.beamThickness=this.unitSize*.8,$c.forEach(e=>{if(e.finished!==!0){let r=new Image;r.src=e.src,r.onload=()=>{e.img=r,this.finishImageAsset(e)},r.onerror=()=>{throw this.finishImageAsset(e),new E(6,"Failed to load image: "+e.src)}}}),this.onClickFn=this.onClick.bind(this),this.onMouseMoveFn=this.onMouseMove.bind(this),this.onMouseLeaveFn=this.onMouseLeave.bind(this),this.onTouchEndFn=this.onTouchEnd.bind(this)}getMusicInterface(){return this.mi}get doc(){var t;return(t=this.mdoc)==null?void 0:t.getMusicObject()}finishImageAsset(t){t.finished=!0,Array.from($c).every(r=>r[1].finished===!0)&&this.onLoad()}getImageAsset(t){var e;return(e=$c.get(t))==null?void 0:e.img}setDocument(t){if(this.mdoc===t)return;this.updateCursorRect(void 0);let e=this.mdoc;this.mdoc=t,e&&e.getMusicObject().setRenderer(void 0),t&&t.getMusicObject().setRenderer(this)}setCanvas(t){var e,r;this.canvas!==t&&(this.canvas&&(this.canvas.removeEventListener("click",this.onClickFn),this.canvas.removeEventListener("mousemove",this.onMouseMoveFn),this.canvas.removeEventListener("mouseleave",this.onMouseLeaveFn),this.canvas.removeEventListener("touchend",this.onTouchEndFn)),this.canvas=t,this.canvas.addEventListener("click",this.onClickFn),this.canvas.addEventListener("mousemove",this.onMouseMoveFn),this.canvas.addEventListener("mouseleave",this.onMouseLeaveFn),this.canvas.addEventListener("touchend",this.onTouchEndFn),this.canvas.style.position="relative"),this.ctx=(r=(e=this.canvas)==null?void 0:e.getContext("2d"))!=null?r:void 0}setScoreEventListener(t){this.scoreEventListener=t}needMouseInput(){return this.scoreEventListener!==void 0}getMousePos(t){return new Nu(t.offsetX,t.offsetY)}updateCurStaffPos(t,e){let r=!My(t,this.curStaffPos);if(r&&this.curStaffPos&&this.scoreEventListener){let{scoreRow:i,diatonicId:n}=this.curStaffPos;this.scoreEventListener(new hi("leave",this.getMusicInterface(),i.getMusicInterface(),n))}if(r&&t&&this.scoreEventListener){let{scoreRow:i,diatonicId:n}=t;this.scoreEventListener(new hi("enter",this.getMusicInterface(),i.getMusicInterface(),n))}if(e&&t&&this.scoreEventListener){let{scoreRow:i,diatonicId:n}=t;this.scoreEventListener(new hi("click",this.getMusicInterface(),i.getMusicInterface(),n))}return this.curStaffPos=t,r}updateCurObjects(t,e){let r=!Dy(t,this.curObjects);return r&&this.curObjects&&this.curObjects.length>0&&this.scoreEventListener&&this.scoreEventListener(new li("leave",this.getMusicInterface(),this.curObjects.map(i=>i.getMusicInterface()))),r&&t&&t.length>0&&this.scoreEventListener&&this.scoreEventListener(new li("enter",this.getMusicInterface(),t.map(i=>i.getMusicInterface()))),e&&t&&t.length>0&&this.scoreEventListener&&this.scoreEventListener(new li("click",this.getMusicInterface(),t.map(i=>i.getMusicInterface()))),this.curObjects=t,r}onClick(t){let{doc:e}=this;if(!(!this.needMouseInput()||!e)&&(this.mousePos=this.txFromScreenCoord(this.getMousePos(t)),this.scoreEventListener)){let r=e.pick(this.mousePos.x,this.mousePos.y),i=e.pickStaffPosAt(this.mousePos.x,this.mousePos.y),n=this.updateCurStaffPos(i,!0),s=this.updateCurObjects(r,!0);(n||s)&&this.draw()}}onMouseMove(t){let{doc:e}=this;if(!(!this.needMouseInput()||!e)&&(this.mousePos=this.txFromScreenCoord(this.getMousePos(t)),!this.usingTouch)){let r=e.pick(this.mousePos.x,this.mousePos.y),i=e.pickStaffPosAt(this.mousePos.x,this.mousePos.y),n=this.updateCurStaffPos(i,!1),s=this.updateCurObjects(r,!1);(n||s)&&this.draw()}}onMouseLeave(t){if(!this.needMouseInput())return;this.mousePos=void 0;let e=this.updateCurStaffPos(void 0,!1),r=this.updateCurObjects(void 0,!1);(e||r)&&this.draw()}onTouchEnd(t){this.usingTouch=!0}onLoad(){this.doc&&(this.doc.requestFullLayout(),this.draw())}hilightObject(t){this.hilightedObj=t}hilightStaffPos(t){this.hilightedStaffPos=t}updateCursorRect(t){this.cursorRect=t,this.draw()}updateCanvasSize(){let{canvas:t,doc:e}=this;if(t&&e){let r=e.getRect(),i=r.width+1,n=r.height+1;t.width=i,t.height=n,t.style.width=i/this.devicePixelRatio+"px",t.style.height=n/this.devicePixelRatio+"px"}}draw(){let{ctx:t,doc:e}=this;!t||!e||(e.layout(),this.updateCanvasSize(),this.clearCanvas(),this.drawHilightStaffPosRect(),this.drawHilightObjectRect(),this.drawPlayCursor(),e.drawContent())}drawHilightStaffPosRect(){let t=this.getCanvasContext(),{mousePos:e,hilightedStaffPos:r,unitSize:i}=this;if(!t||!r)return;let{scoreRow:n,diatonicId:s}=r,a=n.getStaff(s);a&&(t.fillStyle=Oy,t.fillRect(0,a.getDiatonicIdY(s)-i,t.canvas.width,2*i),e!==void 0&&this.drawLedgerLines(a,s,e.x))}drawHilightObjectRect(){let t=this.getCanvasContext(),{hilightedObj:e}=this;if(!t||!e)return;let r=e.getRect();t.strokeStyle=Ry,t.strokeRect(r.left,r.top,r.width,r.height)}drawPlayCursor(){let{cursorRect:t,lineWidth:e}=this;t&&this.drawLine(t.centerX,t.top,t.centerX,t.bottom,Ey,e*2)}txFromScreenCoord(t){return t.mul(this.devicePixelRatio)}txToScreenCoord(t){return t.div(this.devicePixelRatio)}getCanvasContext(){return this.ctx}clearCanvas(){let t=this.getCanvasContext();t&&t.clearRect(0,0,t.canvas.width,t.canvas.height)}getTextWidth(t,e){let r=this.getCanvasContext();if(r){let i=r.font;r.font=e;let n=r.measureText(t);return r.font=i,n.width}else return I.Dom.getCanvasTextWidth(t,e)}drawDebugRect(t){if(!Ls.DrawDebugRects)return;let e=this.getCanvasContext();e&&(e.lineWidth=1,e.strokeStyle="red",e.beginPath(),e.rect(t.left,t.top,t.right-t.left,t.bottom-t.top),e.stroke())}fillCircle(t,e,r,i){let n=this.getCanvasContext();n&&(i!==void 0&&(n.fillStyle=i),n.beginPath(),n.arc(t,e,r,0,2*Math.PI),n.fill())}drawLine(t,e,r,i,n,s){let a=this.getCanvasContext();a&&(a.strokeStyle=n!=null?n:"black",a.lineWidth=s!=null?s:this.lineWidth,a.beginPath(),a.moveTo(t,e),a.lineTo(r,i),a.stroke())}drawPartialLine(t,e,r,i,n,s,a,c){let u=this.getCanvasContext();if(u){let h=t+(r-t)*n,l=e+(i-e)*n,p=t+(r-t)*s,d=e+(i-e)*s;u.strokeStyle=a!=null?a:"black",u.lineWidth=c!=null?c:this.lineWidth,u.beginPath(),u.moveTo(h,l),u.lineTo(p,d),u.stroke()}}drawLedgerLines(t,e,r){let{unitSize:i}=this,n=i*ct.LedgerLineWidth;if(e>=t.topLineDiatonicId+2){for(let s=t.topLineDiatonicId+2;s<=e;s+=2)if(t.containsDiatonicId(s)){let a=t.getDiatonicIdY(s);this.drawLine(r-n/2,a,r+n/2,a)}}else if(e<=t.bottomLineDiatonicId-2){for(let s=t.bottomLineDiatonicId-2;s>=e;s-=2)if(t.containsDiatonicId(s)){let a=t.getDiatonicIdY(s);this.drawLine(r-n/2,a,r+n/2,a)}}}};var Tt=class extends et{constructor(e,r){super(e);this.row=e;this.staffConfig=r;m(this,"clefImageAsset");m(this,"clefLineDiatonicId");m(this,"topLineDiatonicId");m(this,"middleLineDiatonicId");m(this,"bottomLineDiatonicId");m(this,"minDiatonicId");m(this,"maxDiatonicId");m(this,"joinedGrandStaff");m(this,"topLineY",0);m(this,"bottomLineY",0);m(this,"objects",[]);m(this,"mi");let i=(n,s)=>G.getNote(n).diatonicId-(s?7:0);r.clef==="G"?(this.clefImageAsset=0,this.clefLineDiatonicId=i("G4",r.isOctaveDown===!0),this.middleLineDiatonicId=this.clefLineDiatonicId+2):(this.clefImageAsset=1,this.clefLineDiatonicId=i("F3",r.isOctaveDown===!0),this.middleLineDiatonicId=this.clefLineDiatonicId-2),this.topLineDiatonicId=this.middleLineDiatonicId+4,this.bottomLineDiatonicId=this.middleLineDiatonicId-4,this.minDiatonicId=r.minNote!==void 0?Math.min(i(r.minNote,!1),this.bottomLineDiatonicId):void 0,this.maxDiatonicId=r.maxNote!==void 0?Math.max(i(r.maxNote,!1),this.topLineDiatonicId):void 0,this.mi=new rn(this)}getMusicInterface(){return this.mi}get isOctaveDown(){return this.staffConfig.isOctaveDown===!0}getTopLineY(){return this.topLineY}getMiddleLineY(){return(this.topLineY+this.bottomLineY)/2}getBottomLineY(){return this.bottomLineY}joinGrandStaff(e){e!==this&&(this.joinedGrandStaff=e)}getLineSpacing(){return(this.bottomLineY-this.topLineY)/4}getDiatonicSpacing(){return this.getLineSpacing()/2}containsDiatonicId(e){return G.validateDiatonicId(e),(this.minDiatonicId===void 0||e>=this.minDiatonicId)&&(this.maxDiatonicId===void 0||e<=this.maxDiatonicId)}getDiatonicIdY(e){if(this.containsDiatonicId(e))return this.bottomLineY+(this.bottomLineDiatonicId-e)*this.getDiatonicSpacing();if(this.joinedGrandStaff&&this.joinedGrandStaff.containsDiatonicId(e))return this.joinedGrandStaff.getDiatonicIdY(e);throw new E(6,"Staff does not contain diatonicId "+e)}getActualStaff(e){if(this.containsDiatonicId(e))return this;if(this.joinedGrandStaff&&this.joinedGrandStaff.containsDiatonicId(e))return this.joinedGrandStaff;throw new E(6,"Staff does not contain diatonicId "+e)}getDiatonicIdAt(e){let r=Math.round(this.bottomLineDiatonicId-(e-this.bottomLineY)/this.getDiatonicSpacing());return this.containsDiatonicId(r)?r:void 0}isLine(e){return e%2===this.middleLineDiatonicId%2}isSpace(e){return e%2!==this.middleLineDiatonicId%2}containsVoiceId(e){return!this.staffConfig.voiceIds||this.staffConfig.voiceIds.includes(e)}isGrand(){return this.staffConfig.isGrand===!0}calcTop(){let e=this.topLineY;if(this.objects.forEach(r=>e=Math.min(e,r.getRect().top)),this.maxDiatonicId!==void 0){let r=this.getDiatonicIdY(this.maxDiatonicId),i=this.getDiatonicIdY(this.maxDiatonicId-1);e=Math.min(e,r-Math.abs(i-r)+1)}return e}calcBottom(){let e=this.bottomLineY;if(this.objects.forEach(r=>e=Math.max(e,r.getRect().bottom)),this.minDiatonicId!==void 0){let r=this.getDiatonicIdY(this.minDiatonicId),i=this.getDiatonicIdY(this.minDiatonicId+1);e=Math.max(e,r+Math.abs(i-r)-1)}return e}addObject(e){this.objects.push(e)}removeObjects(){this.objects.length=0}pick(e,r){return[this]}layoutHeight(e){let{unitSize:r}=e,i=r*ct.StaffHeight;this.topLineY=-i/2,this.bottomLineY=i/2,this.rect=new F(0,0,this.topLineY,this.bottomLineY)}layoutWidth(e){this.rect.left=this.row.getRect().left,this.rect.right=this.row.getRect().right}offset(e,r){this.topLineY+=r,this.bottomLineY+=r,this.objects.forEach(i=>{i.offsetInPlace?i.offsetInPlace(0,r):i.offset&&i.offset(0,r)}),this.rect.offsetInPlace(e,r)}draw(e){}},zr=class extends et{constructor(e,r){super(e);this.row=e;this.tabConfig=r;m(this,"top",0);m(this,"bottom",0);m(this,"objects",[]);m(this,"tuningName");m(this,"tuningStrings");m(this,"mi");I.Is.isArray(r.tuning)?(this.tuningName=void 0,this.tuningStrings=r.tuning.map(i=>G.getNote(i)).reverse()):typeof r.tuning=="string"?(this.tuningName=qa(r.tuning),this.tuningStrings=qn(this.tuningName)):(this.tuningName="Standard",this.tuningStrings=qn(this.tuningName)),this.mi=new on(this)}getMusicInterface(){return this.mi}getTuningName(){return this.tuningName}getTuningStrings(){return this.tuningStrings}getStringY(e){return this.top+(this.bottom-this.top)/6*(e+.5)}getTopStringY(){return this.getStringY(0)}getBottomStringY(){return this.getStringY(5)}getTop(){return this.top}getBottom(){return this.bottom}containsVoiceId(e){return!this.tabConfig.voiceIds||this.tabConfig.voiceIds.includes(e)}calcTop(){return this.top}calcBottom(){return this.bottom}addObject(e){this.objects.push(e)}removeObjects(){this.objects.length=0}pick(e,r){return[this]}layoutHeight(e){let{unitSize:r}=e,i=r*ct.TabHeight;this.top=-i/2,this.bottom=i/2,this.rect=new F(0,0,this.top,this.bottom)}layoutWidth(e){this.rect.left=this.row.getRect().left,this.rect.right=this.row.getRect().right}offset(e,r){this.top+=r,this.bottom+=r,this.objects.forEach(i=>{i.offsetInPlace?i.offsetInPlace(0,r):i.offset&&i.offset(0,r)}),this.rect.offsetInPlace(e,r)}draw(e){}};var Bs=class{constructor(t){this.measure=t;m(this,"accidentalByDiatonicId",[])}getAccidentalFromKeySignature(t){let r=this.measure.getKeySignature().getOrderedAccidentalNotes().find(i=>i.diatonicClass===G.getDiatonicClass(t));return r?r.accidental:void 0}setAccidental(t){this.accidentalByDiatonicId[t.diatonicId]=t.accidental}needAccidental(t){var r,i;let e=(i=(r=this.accidentalByDiatonicId[t.diatonicId])!=null?r:this.getAccidentalFromKeySignature(t.diatonicId))!=null?i:0;return t.accidental!==e}};var Vs=class extends et{constructor(e,r,i,n,s){super(e);this.image=r;this.anchorX=i;this.anchorY=n;this.imageScale=s;m(this,"mi");this.mi=new nn(this)}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{anchorX:r,anchorY:i,image:n,imageScale:s}=this,{unitSize:a}=e;try{let c=n.naturalWidth*s*a,u=n.naturalHeight*s*a;this.rect=F.createSections(c*r,c*(1-r),u*i,u*(1-i))}catch(c){this.rect=new F}}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;let i=this.rect;e.drawDebugRect(i);try{r.drawImage(this.image,i.centerX-i.leftw,i.centerY-i.toph,i.width,i.height)}catch(n){}}};var pi=class extends et{constructor(e,r,i,n="black"){super(e);this.diatonicId=r;this.accidental=i;this.color=n;m(this,"mi");this.mi=new sn(this)}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e;switch(this.accidental){case-2:this.rect=F.createSections(r*1.25,r*1.25,r*4,r*1.2);break;case-1:this.rect=F.createSections(r*.75,r*.75,r*4,r*1.2);break;case 0:this.rect=F.createSections(r*.75,r*.75,r*2.2,r*2.2);break;case 1:this.rect=F.createSections(r*.75,r*.75,r*2,r*2);break;case 2:this.rect=F.createSections(r*1,r*1,r*1,r*1);break;default:throw new E(6,"Invalid accidental value: "+this.accidental)}}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;e.drawDebugRect(this.rect);let{unitSize:i,lineWidth:n}=e,{accidental:s}=this,a=this.rect.centerX,c=this.rect.centerY;r.strokeStyle=r.fillStyle=this.color;function u(h,l){r&&(r.lineWidth=n,r.beginPath(),r.moveTo(h-i*.75,l-i*4),r.lineTo(h-i*.75,l+i*1.1),r.bezierCurveTo(h+i*.75,l-i*0,h+i*.75,l-i*2.2,h-i*.75,l-i*.5),r.stroke())}s===-2?(u(a-i*.5,c),u(a+i*.5,c)):s===-1&&u(a,c),s===0?(r.beginPath(),r.lineWidth=n,r.moveTo(a-i*.5,c-i*2.2),r.lineTo(a-i*.5,c+i*1),r.moveTo(a+i*.5,c+i*2.2),r.lineTo(a+i*.5,c-i*1),r.stroke(),r.beginPath(),r.lineWidth=n*2,r.moveTo(a-i*.5,c+i*1),r.lineTo(a+i*.5,c+i*.6),r.moveTo(a+i*.5,c-i*1),r.lineTo(a-i*.5,c-i*.6),r.stroke()):s===1?(r.lineWidth=n,r.beginPath(),r.moveTo(a-i*.3,c-i*1.6),r.lineTo(a-i*.3,c+i*2),r.moveTo(a+i*.3,c-i*2),r.lineTo(a+i*.3,c+i*1.6),r.stroke(),r.lineWidth=n*2,r.beginPath(),r.moveTo(a-i*.75,c-i*.5),r.lineTo(a+i*.75,c-i*.9),r.moveTo(a-i*.75,c+i*.9),r.lineTo(a+i*.75,c+i*.5),r.stroke()):s===2&&(r.lineWidth=n,r.beginPath(),r.moveTo(a-i*.75,c-i*.75),r.lineTo(a+i*.75,c+i*.75),r.moveTo(a-i*.75,c+i*.75),r.lineTo(a+i*.75,c-i*.75),r.stroke(),r.fillRect(a-i*1,c-i*1,i*.7,i*.7),r.fillRect(a+i*.3,c-i*1,i*.7,i*.7),r.fillRect(a-i*1,c+i*.3,i*.7,i*.7),r.fillRect(a+i*.3,c+i*.3,i*.7,i*.7))}};var ky=.5,ht=class extends et{constructor(e,r,i,n){var a,c,u,h,l,p;super(e);this.anchorX=i;this.anchorY=n;m(this,"text");m(this,"scale");m(this,"color");m(this,"bold");m(this,"italic");m(this,"boxed");m(this,"padding");m(this,"bgcolor");m(this,"font","");m(this,"textLines");m(this,"lineWidths",[]);m(this,"lineHeight",0);m(this,"mi");let s=typeof r=="string"?{text:r}:r;this.text=s.text,this.scale=(a=s.scale)!=null?a:1,this.color=(c=s.color)!=null?c:"black",this.bold=(u=s.bold)!=null?u:!1,this.italic=(h=s.italic)!=null?h:!1,this.boxed=(l=s.boxed)!=null?l:!1,this.padding=(p=s.padding)!=null?p:this.boxed?ky:0,this.bgcolor=s.bgcolor,(!isFinite(this.padding)||this.padding<0)&&(this.padding=0),this.textLines=this.text.split(`
|
|
210
|
+
`),this.textLines.length===0&&(this.textLines=[""]),this.rect=new F,this.mi=new an(this)}getMusicInterface(){return this.mi}getText(){return this.text}updateAnchorX(e){this.anchorX=e;let{width:r}=this.rect;this.rect.left=this.rect.centerX-r*e,this.rect.right=this.rect.centerX+r*(1-e)}updateAnchorY(e){this.anchorY=e;let{height:r}=this.rect;this.rect.top=this.rect.centerY-r*e,this.rect.bottom=this.rect.centerY+r*(1-e)}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{scale:r,anchorX:i,anchorY:n,bold:s,italic:a}=this,c=e.fontSize*r;this.font=(a?"italic ":"")+(s?"bold ":"")+c+"px Times New Roman",this.lineWidths=this.textLines.map(p=>e.getTextWidth(p,this.font)),this.lineHeight=c;let u=this.padding*e.unitSize,h=u+Math.max(...this.lineWidths)+u,l=u+this.lineHeight*this.textLines.length+u;(this.boxed==="square"||this.boxed==="circle")&&(l=h=Math.max(l,h)),this.rect=F.createSections(h*i,h*(1-i),l*n,l*(1-n))}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;e.drawDebugRect(this.rect),r.lineWidth=e.lineWidth,r.strokeStyle=r.fillStyle=this.color,r.font=this.font;let{rect:i,padding:n,lineHeight:s,lineWidths:a,anchorX:c,anchorY:u,italic:h}=this;this.bgcolor!==void 0&&(r.save(),r.fillStyle=this.bgcolor,r.beginPath(),r.fillRect(i.left,i.top,i.width,i.height),r.fill(),r.restore());let p=this.textLines.length*s,d=-s*(h?.25:.175),f=n*e.unitSize,g=(i.left+f)*(1-c)+(i.right-f)*c,x=(i.top+f)*(1-u)+(i.bottom-f)*u;switch(this.textLines.forEach((b,v)=>{let S=g-a[v]*c,T=x-p*u+s*(v+1)+d;r.fillText(b,S,T)}),this.boxed){case"square":case"rectangle":r.strokeRect(i.left,i.top,i.width,i.height);break;case"circle":case"ellipse":let b=(i.left+i.right)/2,v=(i.top+i.bottom)/2,S=(i.right-i.left)/2,T=(i.bottom-i.top)/2;r.beginPath(),r.ellipse(b,v,S,T,0,0,2*Math.PI),r.stroke();break}}};var Gs=class extends et{constructor(e,r){super(e);this.measure=e;this.staff=r;m(this,"clefImage");m(this,"eightBelowClef");m(this,"measureNumber");m(this,"ksNeutralizeAccidentals",[]);m(this,"ksNewAccidentals",[]);m(this,"beatCountText");m(this,"beatSizeText");m(this,"tempoText");m(this,"mi");this.mi=new cn(this)}getMusicInterface(){return this.mi}updateClefImage(e,r){if(r){let i=e.getImageAsset(this.staff.clefImageAsset);this.clefImage=i?new Vs(this,i,0,.5,.1):void 0,this.eightBelowClef=this.clefImage&&this.staff.isOctaveDown?new ht(this,"8",.5,0):void 0}else this.clefImage=void 0}updateMeasureNumber(e){if(e){let r=this.measure.getMeasureNumber().toString();this.measureNumber=new ht(this,r,0,1)}else this.measureNumber=void 0}updateKeySignature(e){if(e){let{measure:r}=this,i=r.getPrevMeasure(),n=i?i.getKeySignature():void 0,s=r.getKeySignature();this.ksNeutralizeAccidentals=[],this.ksNewAccidentals=[],n&&!Le.equals(s,n)&&n.getOrderedAccidentalNotes().forEach(a=>{this.ksNeutralizeAccidentals.push(new pi(this,this.getAccidentalDiatonicId(a),0))}),s.getOrderedAccidentalNotes().forEach(a=>{this.ksNewAccidentals.push(new pi(this,this.getAccidentalDiatonicId(a),a.accidental))})}else this.ksNeutralizeAccidentals=[],this.ksNewAccidentals=[]}updateTimeSignature(e){if(e){let r=this.measure.getTimeSignature(),i=r.beatCount.toString();this.beatCountText=new ht(this,{text:i,scale:1.4},0,.5);let n=r.beatSize.toString();this.beatSizeText=new ht(this,{text:n,scale:1.4},0,.5)}else this.beatCountText=this.beatSizeText=void 0}updateTempo(e){if(e){let r=za(this.measure.getTempo());this.tempoText=new ht(this,r,.5,1)}else this.tempoText=void 0}getAccidentalDiatonicId(e){let{clef:r}=this.staff.staffConfig,i;if(r==="G"?e.accidental>0?i=this.staff.bottomLineDiatonicId+3:e.accidental<0&&(i=this.staff.bottomLineDiatonicId+1):r==="F"&&(e.accidental>0?i=this.staff.bottomLineDiatonicId+1:e.accidental<0&&(i=this.staff.bottomLineDiatonicId-1)),i!==void 0)return G.findNextDiatonicIdAbove(e.diatonicId,i,!1);throw new E(6,"Cannot get accidental diatonicId because note has no accidental.")}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.eightBelowClef){let i=this.eightBelowClef.pick(e,r);if(i.length>0)return[this,...i]}if(this.clefImage){let i=this.clefImage.pick(e,r);if(i.length>0)return[this,...i]}for(let i=0;i<this.ksNeutralizeAccidentals.length;i++){let n=this.ksNeutralizeAccidentals[i].pick(e,r);if(n.length>0)return[this,...n]}for(let i=0;i<this.ksNewAccidentals.length;i++){let n=this.ksNewAccidentals[i].pick(e,r);if(n.length>0)return[this,...n]}if(this.beatCountText){let i=this.beatCountText.pick(e,r);if(i.length>0)return[this,...i]}if(this.beatSizeText){let i=this.beatSizeText.pick(e,r);if(i.length>0)return[this,...i]}if(this.tempoText){let i=this.tempoText.pick(e,r);if(i.length>0)return[this,...i]}if(this.measureNumber){let i=this.measureNumber.pick(e,r);if(i.length>0)return[this,...i]}return[this]}layout(e){let{unitSize:r}=e,{staff:i}=this,n=r,s=0;if(this.rect=new F,this.clefImage&&(s+=n,this.clefImage.layout(e),this.clefImage.offset(s,i.getDiatonicIdY(i.clefLineDiatonicId)),this.rect.expandInPlace(this.clefImage.getRect()),s=this.rect.right,this.eightBelowClef)){let c=this.clefImage.getRect();this.eightBelowClef.layout(e),this.eightBelowClef.offset(c.left+c.width/2,Math.max(c.centerY+c.height*.3,i.getBottomLineY())),this.rect.expandInPlace(this.eightBelowClef.getRect())}if(this.measureNumber){this.measureNumber.layout(e);let c=this.clefImage?this.clefImage.getRect().top:i.getTopLineY();this.measureNumber.offset(0,c),this.rect.expandInPlace(this.measureNumber.getRect()),s=Math.max(s,this.rect.right)}this.ksNeutralizeAccidentals.length>0&&(s+=n,this.ksNeutralizeAccidentals.forEach(c=>{c.layout(e),c.offset(s+c.getRect().leftw,i.getDiatonicIdY(c.diatonicId)),this.rect.expandInPlace(c.getRect()),s=this.rect.right})),this.ksNewAccidentals&&(s+=n,this.ksNewAccidentals.forEach(c=>{c.layout(e),c.offset(s+c.getRect().leftw,i.getDiatonicIdY(c.diatonicId)),this.rect.expandInPlace(c.getRect()),s=this.rect.right}));let a=s;this.beatCountText&&(this.beatCountText.layout(e),this.beatCountText.offset(s+n,i.getDiatonicIdY(i.middleLineDiatonicId+2)),this.rect.expandInPlace(this.beatCountText.getRect()),a=Math.max(a,this.rect.right)),this.beatSizeText&&(this.beatSizeText.layout(e),this.beatSizeText.offset(s+n,i.getDiatonicIdY(i.bottomLineDiatonicId+2)),this.rect.expandInPlace(this.beatSizeText.getRect()),a=Math.max(a,this.rect.right)),s=a,this.tempoText&&(this.tempoText.layout(e),this.tempoText.offset(s,Math.min(this.rect.top,i.getTopLineY())),this.rect.expandInPlace(this.tempoText.getRect())),this.rect.right+=n}offset(e,r){this.clefImage&&this.clefImage.offset(e,r),this.eightBelowClef&&this.eightBelowClef.offset(e,r),this.measureNumber&&this.measureNumber.offset(e,r),this.ksNeutralizeAccidentals.forEach(i=>i.offset(e,r)),this.ksNewAccidentals.forEach(i=>i.offset(e,r)),this.beatCountText&&this.beatCountText.offset(e,r),this.beatSizeText&&this.beatSizeText.offset(e,r),this.tempoText&&this.tempoText.offset(e,r),this.rect.offsetInPlace(e,r)}draw(e){this.clefImage&&this.clefImage.draw(e),this.eightBelowClef&&this.eightBelowClef.draw(e),this.measureNumber&&this.measureNumber.draw(e),this.ksNeutralizeAccidentals.forEach(r=>r.draw(e)),this.ksNewAccidentals.forEach(r=>r.draw(e)),this.beatCountText&&this.beatCountText.draw(e),this.beatSizeText&&this.beatSizeText.draw(e),this.tempoText&&this.tempoText.draw(e)}};var qs=class extends et{constructor(e,r,i){super(e);this.col=e;this.line=r;this.arpeggioDir=i;m(this,"topArrowHeight",0);m(this,"bottomArrowHeight",0);m(this,"cycleHeight",0);m(this,"numCycles",0);m(this,"color","black");m(this,"mi");this.mi=new un(this)}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e;this.topArrowHeight=this.arpeggioDir===0?r:0,this.bottomArrowHeight=this.arpeggioDir===1?r:0;let i=this.line instanceof Tt?this.line.getTopLineY():this.line.getTopStringY(),n=this.line instanceof Tt?this.line.getBottomLineY():this.line.getBottomStringY();this.cycleHeight=r*2,this.numCycles=Math.ceil((n-i)/this.cycleHeight)+2;let s=r*2,a=this.numCycles*this.cycleHeight;this.rect=new F(-s/2,s/2,-a/2-this.topArrowHeight,a/2+this.bottomArrowHeight)}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;let{lineWidth:i}=e,{rect:n,topArrowHeight:s,bottomArrowHeight:a}=this;e.drawDebugRect(this.rect),r.strokeStyle=r.fillStyle=this.color,r.lineWidth=i*2,r.beginPath();for(let c=0,u=n.top+s;c<this.numCycles;c++,u+=this.cycleHeight)r.moveTo(n.centerX,u),r.quadraticCurveTo(n.left,u+this.cycleHeight/4,n.centerX,u+this.cycleHeight/2),r.quadraticCurveTo(n.right,u+this.cycleHeight*3/4,n.centerX,u+this.cycleHeight);r.stroke(),s>0&&(r.beginPath(),r.moveTo(n.centerX,n.top),r.lineTo(n.right,n.top+s),r.lineTo(n.left,n.top+s),r.fill()),a>0&&(r.beginPath(),r.moveTo(n.centerX,n.bottom),r.lineTo(n.left,n.bottom-a),r.lineTo(n.right,n.bottom-a),r.fill())}};function Py(o){return typeof o=="number"?G.getChromaticNote(o).diatonicId:typeof o=="string"?G.getNote(o).diatonicId:o instanceof G?o.diatonicId:void 0}var Ws=class extends et{constructor(e,r){super(e);this.staff=e;this.rest=r;m(this,"restRect",new F);m(this,"dotRect");m(this,"mi");e.addObject(this),this.mi=new ln(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}offset(e,r){var i;this.restRect.offsetInPlace(e,r),(i=this.dotRect)==null||i.offsetInPlace(e,r),this.requestRectUpdate(),this.rest.requestRectUpdate()}updateRect(){this.rect=this.restRect.copy(),this.dotRect&&this.rect.expandInPlace(this.dotRect)}},di=class extends et{constructor(e,r,i,n){var c,u;super(e);this.col=e;this.voiceId=r;m(this,"ownStemDir");m(this,"ownDiatonicId");m(this,"color");m(this,"hide");m(this,"rhythmProps");m(this,"beamGroup");m(this,"staffObjects",[]);m(this,"mi");let s=Py(n==null?void 0:n.staffPos);if(s!==void 0){let h=this.row.hasStaff,l=this.row.getStaff(s);if(h&&!l)throw new E(6,"Rest staffPos is out of staff boundaries!")}this.ownDiatonicId=this.measure.updateOwnDiatonicId(r,s),this.ownStemDir=this.measure.updateOwnStemDir(this);let a=this.row.getStaff(this.ownDiatonicId);a&&a.isSpace(this.ownDiatonicId)&&(this.ownDiatonicId+=this.ownDiatonicId>=a.middleLineDiatonicId?1:-1),this.color=(c=n==null?void 0:n.color)!=null?c:"black",this.hide=(u=n==null?void 0:n.hide)!=null?u:!1,this.rhythmProps=new $t(i,n==null?void 0:n.dotted,n==null?void 0:n.triplet),this.mi=new hn(this)}getMusicInterface(){return this.mi}get doc(){return this.col.doc}get measure(){return this.col.measure}get row(){return this.col.row}get noteLength(){return this.rhythmProps.noteLength}get dotted(){return this.rhythmProps.dotted}get stemDir(){return this.beamGroup?this.beamGroup.stemDir:this.ownStemDir}get triplet(){return this.rhythmProps.triplet}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let i=0;i<this.staffObjects.length;i++){let n=this.staffObjects[i].pick(e,r);if(n.length>0)return[this,...n]}return[this]}getBeamGroup(){return this.beamGroup}setBeamGroup(e){this.beamGroup=e}resetBeamGroup(){this.beamGroup=void 0}getBeamCoords(){return this.staffObjects.map(e=>{let r=e.staff,i=e.getRect().centerX,n=this.stemDir===1?e.getRect().top:e.getRect().bottom,s=Math.abs(e.getRect().centerY-n);return{staff:r,x:i,y:n,stemHeight:s}})}isEmpty(){return this.staffObjects.length===0}visibleInStaff(e){return e.containsVoiceId(this.voiceId)&&this.staffObjects.some(r=>r instanceof Ws&&r.staff===e)}getRestDotVerticalDisplacement(e){switch(e){case 192:return 1;case 96:return-1;case 48:return-1;case 24:return-1;case 12:return-1;case 6:return-3;case 3:return-3;default:throw new E(6,"Cannot get rest dot vertical displacement because note length is invalid.")}}updateAccidentalState(e){}layout(e,r){if(this.requestRectUpdate(),this.staffObjects.length=0,this.hide)return;let{unitSize:i}=e,{ownDiatonicId:n}=this,{noteLength:s,dotted:a,flagCount:c}=this.rhythmProps,u=0,h=0,l=0,p=0;if(s===192)u=i,h=i,l=0,p=i;else if(s===96)u=i,h=i,l=i,p=0;else if(s===48)u=i*1,h=i*1,l=i*3.2,p=i*3;else{let d=1-c%2;u=i*(1+c*.25),h=i*(1+c*.125),l=i*(.5+c-d),p=i*(1+c+d)}this.row.getStaves().forEach(d=>{if(!d.containsDiatonicId(n)||!d.containsVoiceId(this.voiceId))return;let f=new Ws(d,this);if(f.restRect=new F(-u,0,h,-l,0,p),a){let g=ct.DotSize*i,x=h+(ct.RestDotSpace+ct.DotSize/2)*i,b=this.getRestDotVerticalDisplacement(s)*i;f.dotRect=F.createCentered(x,b,g,g)}f.offset(0,d.getDiatonicIdY(n)),this.staffObjects.push(f)})}updateRect(){if(this.staffObjects.length===0)this.rect=new F;else if(this.rect=this.staffObjects[0].getRect().copy(),this.staffObjects.length>1)for(let e=1;e<this.staffObjects.length;e++)this.rect.expandInPlace(this.staffObjects[e].getRect())}offset(e,r){this.staffObjects.forEach(i=>i.offset(e,0)),this.requestRectUpdate()}draw(e){let r=e.getCanvasContext();if(!r||this.staffObjects.length===0)return;e.drawDebugRect(this.getRect());let{unitSize:i,lineWidth:n}=e,{color:s}=this,{noteLength:a,flagCount:c}=this.rhythmProps;r.strokeStyle=r.fillStyle=s,r.lineWidth=n,this.staffObjects.forEach(u=>{let{dotRect:h,restRect:l}=u,p=l.centerX,d=l.centerY;if(a===192)r.fillRect(p-i,d,i*2,i);else if(a===96)r.fillRect(p-i,d-i,i*2,i);else if(a===48)r.beginPath(),r.moveTo(p-i*.6,d-i*3.2),r.lineTo(p+i*.7,d-i*1.5),r.quadraticCurveTo(p-i*.8,d-i*.5,p+i*1,d+i*1.5),r.lineTo(p-i*1,d-i*.75),r.quadraticCurveTo(p+i*.2,d-i*1.5,p-i*.6,d-i*3.2),r.moveTo(p+i*1,d+i*1.5),r.quadraticCurveTo(p-i*.8,d+i*1,p-i*.2,d+i*2.8),r.bezierCurveTo(p-i*1.8,d+i*1.5,p-i*.6,d-i*.2,p+i*.9,d+i*1.5),r.fill(),r.stroke();else if(c>0){let f=1-c%2,g=b=>p+(-b*.25+.5)*i,x=b=>d+(b+f)*i;r.beginPath(),r.moveTo(g(1+c),x(1+c)),r.lineTo(g(-.5-c),x(-.5-c)),r.stroke();for(let b=0;b<c;b++){let v=c-b*2;r.beginPath(),r.moveTo(g(v-2.5),x(v-2.5)),r.quadraticCurveTo(g(v-.5)+i*.25,x(v-1.5),g(v-1.5)-i*1.5,x(v-1.5)),r.stroke(),r.beginPath(),r.arc(g(v-2)-i*1.5,x(v-2),i*.5,0,Math.PI*2),r.fill()}}h&&e.fillCircle(h.centerX,h.centerY,h.width/2)})}};var jy=(o,t)=>{let e=ct.BeamAngleFactor;if(!Number.isFinite(e)||e===0)return t;{let r=o/t/e;return r=Math.sign(r)*Math.sqrt(Math.abs(r)),o/r*e}},pn=class{constructor(t,e,r,i,n){this.staff=t;this.beamGroup=e;this.symbol=r;this.x=i;this.y=n;m(this,"topBeamsHeight",0);m(this,"bottomBeamsHeight",0);t.addObject(this)}offset(t,e){this.x+=t,this.y+=e,this.beamGroup.requestRectUpdate()}getRect(){return new F(this.x,this.x,this.x,this.y-this.topBeamsHeight,this.y,this.y+this.bottomBeamsHeight)}},tu=class extends et{constructor(e,r){super(e);this.staff=e;this.beamGroup=r;m(this,"tripletNumber");m(this,"tripletNumberOffsetY",0);m(this,"points",[]);m(this,"mi");e.addObject(this),this.mi=new mn(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}offset(e,r){var i;this.points.forEach(n=>n.offset(e,0)),(i=this.tripletNumber)==null||i.offset(e,r),this.requestRectUpdate(),this.beamGroup.requestRectUpdate()}updateRect(){this.points.length>0?this.rect=this.points[0].getRect().copy():this.tripletNumber&&(this.rect=this.tripletNumber.getRect().copy()),this.points.forEach(e=>this.rect.expandInPlace(e.getRect())),this.tripletNumber&&this.rect.expandInPlace(this.tripletNumber.getRect())}},mi=class o extends et{constructor(e,r){super(e[0].measure);this.symbols=e;m(this,"mi");m(this,"type");m(this,"staffObjects",[]);if(this.mi=new dn(this),e.every(i=>i.measure===e[0].measure)){if(e.length<2)throw new E(6,"Beam group need minimum 2 symbols, but "+e.length+" given.")}else throw new E(6,"All beam group symbols are not in same measure.");if(r){if(!e.every(n=>n.triplet))throw new E(6,"Not every symbol's triplet property is true.");let i=e.length<3||e.some(n=>!(n instanceof St))||e.some(n=>n.rhythmProps.flagCount!==e[0].rhythmProps.flagCount);e.length===3&&e[0]instanceof St&&e[e.length-1]instanceof St&&e[0].rhythmProps.flagCount===e[e.length-1].rhythmProps.flagCount&&(i=!1),e.some(n=>n.rhythmProps.noteLength>=48)&&(i=!0),this.type=i?2:1,St.setTripletBeamCounts(this)}else this.type=0;if(e.every(i=>i.getBeamGroup()===void 0))e.forEach(i=>i.setBeamGroup(this)),e[0].measure.addBeamGroup(this);else throw new E(6,"Cannot add beam group because some symbol already has one.")}static createBeam(e){e.length>1&&new o(e,!1)}static createTriplet(e){if(!e.every(n=>n.triplet))return!1;let r=96,i=e.map(n=>n.rhythmProps.noteLength);if(e.length==2){if(i[0]<=r&&i[1]===i[0]/2&&i[0]/2>=Si||i[1]<=r&&i[0]===i[1]/2&&i[1]/2>=Si)return new o(e,!0),!0}else if(e.length===3&&i[0]<=r&&i.every(n=>n===i[0]))return new o(e,!0),!0;return!1}getMusicInterface(){return this.mi}detach(){this.getSymbols().forEach(e=>e.resetBeamGroup())}isEmpty(){return this.staffObjects.length===0}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let i=0;i<this.staffObjects.length;i++){let n=this.staffObjects[i].pick(e,r);if(n.length>0)return[this,...n]}return[this]}getType(){return this.type}isTriplet(){return this.type===1||this.type===2}getSymbols(){return this.symbols}getFirstSymbol(){return this.symbols[0]}getLastSymbol(){return this.symbols[this.symbols.length-1]}get stemDir(){return this.symbols[0].ownStemDir}layout(e){this.requestRectUpdate(),this.staffObjects.length=0;let r=this.getSymbols();if(r.length===0)return;let i=r[0].voiceId;if(r.some(c=>c.voiceId!==i))return;let{unitSize:n}=e,{stemDir:s}=this,a=r.map(c=>c.getBeamCoords());a[0].map(c=>c==null?void 0:c.staff).forEach((c,u)=>{var W,k;if(!c)return;let h=a.map(L=>{var P;return(P=L[u])==null?void 0:P.x}),l=a.map(L=>{var P;return(P=L[u])==null?void 0:P.y}),p=a.map(L=>{var P;return(P=L[u])==null?void 0:P.staff}),d=a.map(L=>{var P;return(P=L[u])==null?void 0:P.stemHeight}),f=r[0],g=h[0],x=l[0],b=p[0],v=r[r.length-1],S=h[h.length-1],T=l[l.length-1],_=p[l.length-1];if(g===void 0||x===void 0||b===void 0||S===void 0||T===void 0||_===void 0)return;let C=(W=d[0])!=null?W:0,A=(k=d[d.length-1])!=null?k:0;if(this.type!==2){let L=C<A?Math.sqrt(A-C):0,P=A<C?Math.sqrt(C-A):0;s===1&&(L*=-1,P*=-1),L!==0&&(x+=L,l[0]+=L),P!==0&&(T+=P,l[l.length-1]+=P)}let y=n*2*(s===1?-1:1),N=(T+x)/2,D=jy(S-g,T-x)/2;x=N-D,T=N+D;let M=0;l.forEach((L,P)=>{let q=h[P];if(q!==void 0&&L!==void 0){let H=I.Math.interpolateY(g,x,S,T,q),Q=L-H;s===1&&Q<0?M=Math.min(M,Q):s===2&&Q>0&&(M=Math.max(M,Q))}}),x+=M,T+=M,l=l.map(L=>L===void 0?void 0:L+M);let O=new tu(c,this);if(this.type===2){let L=n/(S-g),P=I.Math.interpolateCoord(g,x+y,S,T+y,-L),q=I.Math.interpolateCoord(g,x+y,S,T+y,1+L);O.points.push(new pn(b,this,f,P.x,P.y)),O.points.push(new pn(_,this,v,q.x,q.y)),O.tripletNumberOffsetY=0}else if(this.type===0||this.type===1){M*=.5;let{beamThickness:L}=e,P=q=>{let H=r[q];if(H instanceof St){let Q=H instanceof St?Math.max(H.getLeftBeamCount(),H.getRightBeamCount()):0;return ct.BeamSeparation*n*(this.stemDir===1?Q-1:0)}else return 0};r.forEach((q,H)=>{let Q=p[H],rt=h[H],at=l[H];if(Q&&rt!==void 0&&at!==void 0){let yt=new pn(Q,this,q,rt,at);yt.topBeamsHeight=L/2+(s===2?P(H):0),yt.bottomBeamsHeight=L/2+(s===1?P(H):0),O.points.push(yt)}}),O.tripletNumberOffsetY=y}this.isTriplet()&&(O.tripletNumber=new ht(this,"3",.5,.5),O.tripletNumber.layout(e),O.tripletNumber.offset((g+S)/2,(x+T)/2+O.tripletNumberOffsetY)),O.points.length>=2&&this.staffObjects.push(O)})}updateRect(){if(this.staffObjects.length===0)this.rect=new F;else{this.staffObjects.forEach(e=>e.updateRect()),this.rect=this.staffObjects[0].getRect().copy();for(let e=1;e<this.staffObjects.length;e++)this.rect.expandInPlace(this.staffObjects[e].getRect())}}updateStemTips(){this.staffObjects.forEach(e=>{let r=e.points[0],i=e.points[e.points.length-1];if(this.type!==2&&e.points.forEach(n=>{n.symbol instanceof St&&(n!==r&&n!==i&&(n.y=I.Math.interpolateY(r.x,r.y,i.x,i.y,n.x)),n.symbol.setStemTipY(n.staff,n.y))}),e.tripletNumber){let n=(r.y+i.y)/2+e.tripletNumberOffsetY;e.tripletNumber.offset(0,-e.tripletNumber.getRect().centerY+n)}})}offset(e,r){this.staffObjects.forEach(i=>i.offset(e,0)),this.requestRectUpdate()}draw(e){let{unitSize:r,beamThickness:i,lineWidth:n}=e,s="black";this.staffObjects.forEach(a=>{if(this.type===2){let c=a.points[0],u=a.points[a.points.length-1];if(c&&u){let h=a.tripletNumber?a.tripletNumber.getRect().width/(u.x-c.x)*1.2:0,l=I.Math.interpolateCoord(c.x,c.y,u.x,u.y,.5-h/2),p=I.Math.interpolateCoord(c.x,c.y,u.x,u.y,.5+h/2),d=this.stemDir===1?r:-r;e.drawLine(c.x,c.y,l.x,l.y,s,n),e.drawLine(p.x,p.y,u.x,u.y,s,n),e.drawLine(c.x,c.y,c.x,c.y+d,s,n),e.drawLine(u.x,u.y,u.x,u.y+d,s,n)}}else if(this.type===0||this.type===1){let c=ct.BeamSeparation*r*(this.stemDir===1?1:-1),u=a.points.filter(h=>h.symbol instanceof St);for(let h=0;h<u.length-1;h++){let l=u[h],p=u[h+1];if(!(l.symbol instanceof St&&p.symbol instanceof St))continue;let d=l.symbol.getRightBeamCount(),f=p.symbol.getLeftBeamCount(),g=l.x,x=l.y,b=p.x,v=p.y;for(let S=0;S<Math.max(d,f);S++)S<d&&S<f?e.drawLine(g,x,b,v,s,i):d>f?e.drawPartialLine(g,x,b,v,0,.25,s,i):f>d&&e.drawPartialLine(g,x,b,v,.75,1,s,i),x+=c,v+=c}}a.tripletNumber&&a.tripletNumber.draw(e)})}};function Ly(o,t){let e=I.Arr.isArray(t)?t:t!==void 0?[t]:[],r=o.map((i,n)=>({note:i,string:e[n]}));return r=I.Arr.removeDuplicatesCmp(r,(i,n)=>G.equals(i.note,n.note)).sort((i,n)=>G.compareFunc(i.note,n.note)),{notes:r.map(i=>i.note),strings:r.every(i=>i.string===void 0)?void 0:r.map(i=>i.string)}}function Fy(o){return o===!0||o===0?0:o===1?1:void 0}var Us=class extends et{constructor(e,r){super(e);this.staff=e;this.noteGroup=r;m(this,"noteHeadRects",[]);m(this,"dotRects",[]);m(this,"accidentals",[]);m(this,"stemTip");m(this,"stemBase");m(this,"flagRects",[]);m(this,"prevTopNoteY",0);m(this,"prevBottomNoteY",0);m(this,"mi");this.mi=new gn(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}updateRect(){this.rect=this.noteHeadRects[0].copy(),this.noteHeadRects.forEach(e=>this.rect.expandInPlace(e)),this.stemTip&&this.rect.expandInPlace(this.stemTip),this.stemBase&&this.rect.expandInPlace(this.stemBase),this.dotRects.forEach(e=>this.rect.expandInPlace(e)),this.flagRects.forEach(e=>this.rect.expandInPlace(e)),this.accidentals.forEach(e=>this.rect.expandInPlace(e.getRect()))}getRect(){let e=this.noteHeadRects[0],r=this.noteHeadRects[this.noteHeadRects.length-1];return(this.prevTopNoteY!==r.centerY||this.prevBottomNoteY!==e.centerY)&&(this.prevTopNoteY=r.centerY,this.prevBottomNoteY=e.centerY,this.requestRectUpdate()),super.getRect()}offset(e,r){var i,n;this.noteHeadRects.forEach(s=>s.offsetInPlace(e,r)),this.dotRects.forEach(s=>s.offsetInPlace(e,r)),this.accidentals.forEach(s=>s.offset(e,r)),(i=this.stemTip)==null||i.offsetInPlace(e,r),(n=this.stemBase)==null||n.offsetInPlace(e,r),this.flagRects.forEach(s=>s.offsetInPlace(e,r)),this.requestRectUpdate(),this.noteGroup.requestRectUpdate()}},eu=class extends et{constructor(e,r){super(e);this.tab=e;this.noteGroup=r;m(this,"fretNumbers",[]);m(this,"mi");e.addObject(this),this.mi=new xn(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}updateRect(){this.rect=this.fretNumbers[0].getRect().copy(),this.fretNumbers.forEach(e=>this.rect.expandInPlace(e.getRect()))}offset(e,r){this.fretNumbers.forEach(i=>i.offset(e,r)),this.requestRectUpdate(),this.noteGroup.requestRectUpdate()}},St=class o extends et{constructor(e,r,i,n,s){var c,u,h;super(e);this.col=e;this.voiceId=r;this.notes=i;m(this,"minDiatonicId");m(this,"maxDiatonicId");m(this,"ownDiatonicId");m(this,"ownStemDir");m(this,"ownString");m(this,"color");m(this,"staccato");m(this,"diamond");m(this,"arpeggio");m(this,"rhythmProps");m(this,"startConnnectives",[]);m(this,"runningConnectives",[]);m(this,"leftBeamCount",0);m(this,"rightBeamCount",0);m(this,"beamGroup");m(this,"staffObjects",[]);m(this,"tabObjects",[]);m(this,"mi");if(!I.Is.isIntegerGte(i.length,1))throw new E(6,"Cannot create note group object because notes array is empty.");let a=Ly(i,s==null?void 0:s.string);this.notes=a.notes,this.minDiatonicId=this.notes[0].diatonicId,this.maxDiatonicId=this.notes[this.notes.length-1].diatonicId,this.ownDiatonicId=this.measure.updateOwnDiatonicId(r,Math.round((this.minDiatonicId+this.maxDiatonicId)/2)),this.ownStemDir=this.measure.updateOwnStemDir(this,s==null?void 0:s.stem),this.ownString=this.measure.updateOwnString(this,a.strings),this.color=(c=s==null?void 0:s.color)!=null?c:"black",this.staccato=(u=s==null?void 0:s.staccato)!=null?u:!1,this.diamond=(h=s==null?void 0:s.diamond)!=null?h:!1,this.arpeggio=Fy(s==null?void 0:s.arpeggio),this.rhythmProps=new $t(n,s==null?void 0:s.dotted,s==null?void 0:s.triplet),this.mi=new fn(this)}getMusicInterface(){return this.mi}get doc(){return this.col.doc}get measure(){return this.col.measure}get row(){return this.col.row}get stemDir(){return this.beamGroup?this.beamGroup.stemDir:this.ownStemDir}get triplet(){return this.rhythmProps.triplet}enableConnective(e){return e.containsVoiceId(this.voiceId)&&(e instanceof zr||e.containsDiatonicId(this.ownDiatonicId))}startConnective(e){if(!this.row.hasStaff&&e.connective===0)throw new E(6,"Ties not implemented for guitar tabs alone, staff is required!");if(!this.row.hasStaff&&e.connective===1)throw new E(6,"Slurs not implemented for guitar tabs alone, staff is required!");this.startConnnectives.push(e),this.doc.addConnectiveProps(e)}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let i=0;i<this.staffObjects.length;i++){let n=this.staffObjects[i].pick(e,r);if(n.length>0)return[this,...n]}for(let i=0;i<this.tabObjects.length;i++){let n=this.tabObjects[i].pick(e,r);if(n.length>0)return[this,...n]}return[this]}getTopNote(){return this.notes[this.notes.length-1]}getBottomNote(){return this.notes[0]}getConnectiveAnchorPoint(e,r,i,n,s){if(r instanceof Tt){let a=r;if(i<0||i>=this.notes.length)throw new E(6,"Invalid noteIndex: "+i);let c=this.staffObjects.find(_=>_.staff===a);if(!c||i<0||i>=c.noteHeadRects.length){let _=this.getRect();return{x:_.centerX,y:_.bottom}}let u=c.noteHeadRects[i],h=c.stemTip,l=this.stemDir,p=h!==void 0,d=p?l===1?"right":"left":void 0,f=u.height/2,g=u.centerX,x=u.centerY,b=u.left-f,v=u.right+f,S=u.top-f,T=u.bottom+f;switch(n===0?n=3:n===4&&!p&&(n=l===1?1:3),n){case 2:return s==="left"?{x:v,y:x}:{x:b,y:x};case 1:return!p||l===2?{x:g,y:S}:{x:s==="left"&&d==="right"?v:s==="right"&&d==="left"?b:g,y:S};case 3:return!p||l===1?{x:g,y:T}:{x:s==="left"&&d==="right"?v:s==="right"&&d==="left"?b:g,y:T};case 4:return{x:g,y:h.centerY+(l===1?-f:f)};default:throw new E(6,"Invalid noteAnchor: "+n)}}else{let a=r,c=this.tabObjects.find(f=>f.tab===a),u=c==null?void 0:c.fretNumbers[i];if(!c||!u)return{x:0,y:0};let h=u.getRect(),l=s==="right"?h.left:h.right,p,d=.9;if(e.connective===2){let f=e.noteGroups[0].getFretNumber(c,0),g=e.noteGroups[1].getFretNumber(c,0),x=f===void 0||g===void 0||f<=g;s==="left"?p=x?h.centerY+h.bottomh*d:h.centerY-h.toph*d:p=x?h.centerY-h.toph*d:h.centerY+h.bottomh*d}else p=h.centerY+h.bottomh*d;return{x:l,y:p}}}getFretNumberString(e){return this.ownString[e]}getFretNumber(e,r){let i=e.fretNumbers[r];return i===void 0?void 0:+i.getText()}getNextNoteGroup(){let e=this.measure.getVoiceSymbols(this.voiceId).filter(n=>n instanceof o),r=e.indexOf(this);if(r<0)return;if(r<e.length-1)return e[r+1];let i=this.measure.getNextMeasure();for(;i;){let n=i.getVoiceSymbols(this.voiceId).filter(s=>s instanceof o);if(n.length>0)return n[0];i=i.getNextMeasure()}}collectConnectiveProps(){this.startConnnectives.forEach(e=>{this.runningConnectives.push(e);let r=this.getNextNoteGroup();for(;r&&e.addNoteGroup(r);)r.runningConnectives.push(e),r=r.getNextNoteGroup()})}removeConnectiveProps(){this.runningConnectives=[]}getPlaySlur(){let e=this.runningConnectives.filter(r=>r.connective===1).map(r=>r.startsWith(this)?"first":"slurred");return e.indexOf("first")>=0?"first":e.indexOf("slurred")>=0?"slurred":void 0}getBeamGroup(){return this.beamGroup}setBeamGroup(e){this.beamGroup=e}resetBeamGroup(){this.leftBeamCount=this.rightBeamCount=0,this.beamGroup=void 0}getBeamCoords(){return this.staffObjects.map(e=>{var a,c,u,h;let r=e.staff,i=(c=(a=e.stemTip)==null?void 0:a.centerX)!=null?c:e.noteHeadRects[0].centerX,n=(h=(u=e.stemTip)==null?void 0:u.centerY)!=null?h:this.stemDir===1?e.getRect().top:e.getRect().bottom,s=this.stemDir===1?Math.abs(e.noteHeadRects[0].centerY-n):Math.abs(e.noteHeadRects[e.noteHeadRects.length-1].centerY-n);return{staff:r,x:i,y:n,stemHeight:s}})}getStemHeight(e){let{unitSize:r}=e,{noteLength:i,flagCount:n}=this.rhythmProps;if(i>=192)return 0;{let s=this.hasBeamCount()?ct.BeamSeparation:ct.FlagSeparation;return(ct.StemHeight+Math.max(0,n-1)*s)*r}}hasBeamCount(){return this.leftBeamCount>0||this.rightBeamCount>0}getLeftBeamCount(){return this.leftBeamCount}getRightBeamCount(){return this.rightBeamCount}isEmpty(){return this.staffObjects.length===0&&this.tabObjects.length===0}visibleInStaff(e){return e.containsVoiceId(this.voiceId)&&this.staffObjects.some(r=>r instanceof Us&&r.staff===e)}getPlayTicks(e){let r=this.runningConnectives.filter(i=>i.connective===0).map(i=>{let n=i.noteGroups,s=n.indexOf(this);if(s<0)return 0;if(i.span===-1||i.span===-2)return Math.max(this.rhythmProps.ticks,this.measure.getMeasureTicks()-this.col.positionTicks);let a=n[s-1];return a&&a.notes.some(c=>G.equals(c,e))?0:(n=n.slice(s),s=n.findIndex(c=>c.notes.every(u=>!G.equals(u,e))),s>=0&&(n=n.slice(0,s)),I.Math.sum(n.map(c=>c.rhythmProps.ticks)))});return r.length===0?this.rhythmProps.ticks:Math.max(...r)}updateAccidentalState(e){this.notes.forEach(r=>{e.needAccidental(r)&&e.setAccidental(r)})}layout(e,r){this.requestRectUpdate();let{unitSize:i}=e,{row:n,stemDir:s}=this,{dotted:a,flagCount:c}=this.rhythmProps,u=ct.DotSize*i,h=(this.diamond?ct.DiamondNoteHeadSize:ct.NoteHeadWidth)*i,l=(this.diamond?ct.DiamondNoteHeadSize:ct.NoteHeadHeight)*i;this.staffObjects.length=0,n.getStaves().forEach(p=>{if(!p.containsDiatonicId(this.ownDiatonicId)||!p.containsVoiceId(this.voiceId))return;let d=new Us(p,this),f=p,g=p;this.notes.forEach((C,A)=>{var L;let y=A===0,N=A===this.notes.length-1,D=(L=p.getActualStaff(C.diatonicId))!=null?L:p,M=this.col.getNoteHeadDisplacement(this,C)*h,O=D.getDiatonicIdY(C.diatonicId),W=D.isLine(C.diatonicId);y&&s===1&&(f=D),N&&s===1&&(g=D),y&&s===2&&(g=D),N&&s===2&&(f=D);let k=d.noteHeadRects[A]=F.createCentered(M,O,h,l);if(D.addObject(k),r.needAccidental(C)){let P=d.accidentals[A]=new pi(this,C.diatonicId,C.accidental,this.color);P&&(P.layout(e),P.offset(-k.leftw-i*ct.NoteAccSpace-P.getRect().rightw,O)),D.addObject(P)}if(a){let P=k.right+ct.NoteDotSpace*i+u/2,q=O+this.getDotVerticalDisplacement(p,C.diatonicId,s)*i,H=F.createCentered(P,q,u,u);d.dotRects.push(H),D.addObject(H)}if(this.staccato){if(s===1&&y){let P=M,q=O+i*(W?3:2),H=F.createCentered(P,q,u,u);d.dotRects.push(H),f.addObject(H)}else if(s===2&&N){let P=M,q=O-i*(W?3:2),H=F.createCentered(P,q,u,u);d.dotRects.push(H),f.addObject(H)}}});let x=d.noteHeadRects[0].centerY,b=d.noteHeadRects[d.noteHeadRects.length-1].centerY,v=s===1?h/2:-h/2,S=this.getStemHeight(e),T=s===1?b-S:x+S,_=s===1?x:b;if(this.rhythmProps.hasStem()&&(d.stemTip=new F(v,v,T,T),d.stemBase=new F(v,v,_,_),g.addObject(d.stemTip),f.addObject(d.stemBase)),!this.hasBeamCount()){let C=c===0?0:ct.FlagWidth*i,A=c===0?0:ct.FlagHeight*i;for(let y=0;y<c;y++){let N=y*i*ct.FlagSeparation,D=d.flagRects[y]=s===1?new F(v,v+C,T+N,T+A+N):new F(v,v+C,T-A-N,T-N);g.addObject(D)}}this.staffObjects.push(d)}),this.tabObjects.length=0,n.getTabs().forEach(p=>{if(!p.containsVoiceId(this.voiceId))return;let d=new eu(p,this);this.notes.forEach((f,g)=>{var x,b;if(this.ownString[g]!==void 0){let v=this.ownString[g]-1,S=f.chromaticId-p.getTuningStrings()[v].chromaticId,T=S<0?"red":"black",_=new ht(this,{text:String(S),color:T,bgcolor:"white"},.5,.5);d.fretNumbers.push(_),_.layout(e);let C=this.col.getNoteHeadDisplacement(this,f)*h,A=(b=(x=this.staffObjects[0])==null?void 0:x.stemBase)==null?void 0:b.centerX,y=A!=null?A:C,N=p.getStringY(v);_.offset(y,N)}}),d.fretNumbers.length>0&&this.tabObjects.push(d)})}updateRect(){if(this.staffObjects.length>0)this.rect=this.staffObjects[0].noteHeadRects[0].copy();else if(this.tabObjects.length>0&&this.tabObjects[0].fretNumbers.length>0)this.rect=this.tabObjects[0].fretNumbers[0].getRect().copy();else{this.rect=new F;return}this.staffObjects.forEach(e=>this.rect.expandInPlace(e.getRect())),this.tabObjects.forEach(e=>this.rect.expandInPlace(e.getRect()))}setStemTipY(e,r){let i=this.staffObjects.find(n=>n.staff===e);!(i!=null&&i.stemTip)||r===i.stemTip.centerY||(i.stemTip.top=i.stemTip.centerY=i.stemTip.bottom=r,this.requestRectUpdate())}offset(e,r){this.staffObjects.forEach(i=>i.offset(e,0)),this.tabObjects.forEach(i=>i.offset(e,0)),this.requestRectUpdate()}draw(e){let r=e.getCanvasContext();if(!r)return;e.drawDebugRect(this.getRect());let{lineWidth:i}=e,{color:n,stemDir:s}=this,{noteLength:a}=this.rhythmProps;this.staffObjects.forEach(c=>{c.accidentals.forEach(u=>u.draw(e)),r.strokeStyle=r.fillStyle=n,r.lineWidth=i,c.noteHeadRects.forEach(u=>{let h=a>=96;this.diamond?h?(r.beginPath(),r.lineWidth=i*2.5,r.moveTo(u.centerX,u.top),r.lineTo(u.right,u.centerY),r.moveTo(u.left,u.centerY),r.lineTo(u.centerX,u.bottom),r.stroke(),r.beginPath(),r.lineWidth=i,r.moveTo(u.right,u.centerY),r.lineTo(u.centerX,u.bottom),r.moveTo(u.centerX,u.top),r.lineTo(u.left,u.centerY),r.stroke()):(r.beginPath(),r.moveTo(u.centerX,u.top),r.lineTo(u.right,u.centerY),r.lineTo(u.centerX,u.bottom),r.lineTo(u.left,u.centerY),r.lineTo(u.centerX,u.top),r.fill()):(r.beginPath(),r.ellipse(u.centerX,u.centerY,u.leftw,u.toph,-.3,0,Math.PI*2),h?r.stroke():r.fill())}),c.dotRects.forEach(u=>e.fillCircle(u.centerX,u.centerY,u.width/2)),c.stemTip&&c.stemBase&&(r.beginPath(),r.moveTo(c.stemBase.centerX,c.stemBase.centerY),r.lineTo(c.stemTip.centerX,c.stemTip.centerY),r.stroke()),c.flagRects.forEach(u=>{let h=u.left,p=u.right-h,d=s===1?u.top:u.bottom,f=s===1?u.bottom:u.top;r.beginPath(),r.moveTo(h,d),r.bezierCurveTo(h,d*.75+f*.25,h+p*1.5,d*.5+f*.5,h+p*.5,f),r.stroke()})}),this.tabObjects.forEach(c=>{c.fretNumbers.forEach(u=>u.draw(e))})}static setBeamCounts(e){let r=(n,s)=>n.rhythmProps.noteLength===s.rhythmProps.noteLength*2&&n.rhythmProps.dotted&&!s.rhythmProps.dotted&&n.rhythmProps.flagCount>0&&s.rhythmProps.flagCount>0;for(let n=0;n<e.length;n++){let s=e[n],a=e[n-1],c=e[n+1];s&&(s.leftBeamCount=0,s.rightBeamCount=0,a&&(a.rhythmProps.flagCount===s.rhythmProps.flagCount||r(a,s)||r(s,a)?s.leftBeamCount=s.rhythmProps.flagCount:s.leftBeamCount=Math.min(a.rhythmProps.flagCount,s.rhythmProps.flagCount)),c&&(c.rhythmProps.flagCount===s.rhythmProps.flagCount||r(c,s)||r(s,c)?s.rightBeamCount=s.rhythmProps.flagCount:s.rightBeamCount=Math.min(c.rhythmProps.flagCount,s.rhythmProps.flagCount)))}let i;do{i=!1;for(let n=0;n<e.length;n++){let s=e[n],a=e[n-1],c=e[n+1];s&&s.leftBeamCount!==s.rhythmProps.flagCount&&s.rightBeamCount!==s.rhythmProps.flagCount&&(s.leftBeamCount=s.rightBeamCount=0,a&&a.rightBeamCount>0&&(a.rightBeamCount=0,i=!0),c&&c.leftBeamCount>0&&(c.leftBeamCount=0,i=!0))}}while(i)}static setTripletBeamCounts(e){let r=e.getType(),i=e.getSymbols();if(r===1)i.forEach((n,s)=>{n instanceof o&&(n.leftBeamCount=s===0?0:n.rhythmProps.flagCount,n.rightBeamCount=s===i.length-1?0:n.rhythmProps.flagCount)});else if(r===2)i.forEach(n=>{n instanceof o&&(n.leftBeamCount=n.rightBeamCount=0)});else throw new E(6,"Cannot set triplet beam count because triplet beam group type is invalid.")}getDotVerticalDisplacement(e,r,i){return e.isLine(r)?i===1?-1:1:0}static hasSameNotes(e,r){if(e.notes.length!==r.notes.length)return!1;for(let i=0;i<e.notes.length;i++){let n=e.notes[i],s=r.notes[i];if(n.diatonicId!==s.diatonicId||n.accidental!==s.accidental)return!1}return!0}};var By=(o,t)=>{let e=G.compareFunc(o.note,t.note);return e===0&&(e=o.noteGroup.stemDir===t.noteGroup.stemDir?0:o.noteGroup.stemDir===1?1:-1),e},vr=class extends et{constructor(e,r){super(e);this.measure=e;this.positionTicks=r;m(this,"voiceSymbol",[]);m(this,"minDiatonicId");m(this,"maxDiatonicId");m(this,"staffMinDiatonicId",new Map);m(this,"staffMaxDiatonicId",new Map);m(this,"arpeggioDir");m(this,"arpeggios",[]);m(this,"noteHeadDisplacements",[]);m(this,"playerProps");m(this,"needLayout",!0);m(this,"shapeRects",[]);m(this,"mi");this.playerProps=new mo(this),this.mi=new yn(this)}getMusicInterface(){return this.mi}getPlayerProps(){return this.playerProps}getNextColumnInMeasure(){let e=this.measure.getColumns().indexOf(this);if(e>=0&&e<this.measure.getColumnCount())return this.measure.getColumn(e+1);throw new E(6,"Cannot get next column in measure because current column's id in mesure is invalid.")}getNextColumn(){var r;let e=this.getNextColumnInMeasure();return e||((r=this.measure.getNextMeasure())==null?void 0:r.getColumn(0))}getTicksToNextColumn(){let e=this.getNextColumnInMeasure(),r=this.positionTicks,i=e?e.positionTicks:this.measure.getConsumedTicks();return Math.max(0,i-r)}getShapeRects(){return this.getRect(),this.shapeRects}get doc(){return this.measure.doc}get row(){return this.measure.row}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let i=0;i<this.voiceSymbol.length;i++)if(this.voiceSymbol[i]){let n=this.voiceSymbol[i].pick(e,r);if(n.length>0)return[this,...n]}for(let i=0;i<this.arpeggios.length;i++){let n=this.arpeggios[i].pick(e,r);if(n.length>0)return[this,...n]}return[this]}hasArpeggio(){return this.arpeggioDir!==void 0}getArpeggioDir(){var e;return(e=this.arpeggioDir)!=null?e:0}setVoiceSymbol(e,r){ru(e),this.voiceSymbol[e]=r,r instanceof di?!r.hide&&r.noteLength>=96&&(this.minDiatonicId=this.minDiatonicId===void 0?r.ownDiatonicId:Math.min(this.minDiatonicId,r.ownDiatonicId),this.maxDiatonicId=this.maxDiatonicId===void 0?r.ownDiatonicId:Math.max(this.maxDiatonicId,r.ownDiatonicId)):r instanceof St&&(this.minDiatonicId=this.minDiatonicId===void 0?r.notes[0].diatonicId:Math.min(this.minDiatonicId,r.notes[0].diatonicId),this.maxDiatonicId=this.maxDiatonicId===void 0?r.notes[r.notes.length-1].diatonicId:Math.max(this.maxDiatonicId,r.notes[r.notes.length-1].diatonicId),r.arpeggio!==void 0&&(this.arpeggioDir=r.arpeggio),this.setupNoteHeadDisplacements()),this.requestLayout()}getVoiceSymbol(e){return this.voiceSymbol[e]}getMinWidth(){let e=Math.max(...this.voiceSymbol.map(i=>i.rhythmProps.noteLength)),r=ct.NoteHeadWidth;switch(e){case 192:return r*5;case 96:return r*3;case 48:return r*2;default:return r}}setupNoteHeadDisplacements(){if(this.noteHeadDisplacements=[],this.voiceSymbol.forEach(e=>{e instanceof St&&e.notes.forEach(r=>{this.noteHeadDisplacements.push({noteGroup:e,note:r})})}),this.noteHeadDisplacements.sort(By),!(this.noteHeadDisplacements.length<2)){for(let e=0;e<this.noteHeadDisplacements.length;e++){let r=this.noteHeadDisplacements[e],i=this.noteHeadDisplacements[e+1];i&&r.note.diatonicId===i.note.diatonicId&&(r.displacement=i.displacement=0)}for(let e=0;e<this.noteHeadDisplacements.length;e++){let r=this.noteHeadDisplacements[e-1],i=this.noteHeadDisplacements[e],n=this.noteHeadDisplacements[e+1];if(i.displacement!==void 0)continue;let s=i.noteGroup.stemDir===2?-1:1;r&&i.note.diatonicId-r.note.diatonicId<=1?i.displacement=r.displacement===0?s:0:n&&n.note.diatonicId-i.note.diatonicId<=1&&(i.displacement=n.displacement===0?s:0)}}}getNoteHeadDisplacement(e,r){let i=this.noteHeadDisplacements.find(n=>n.noteGroup===e&&G.equals(n.note,r));return(i==null?void 0:i.displacement)!==void 0?i.displacement:0}isEmpty(){for(let e=0;e<this.voiceSymbol.length;e++)if(this.voiceSymbol[e]!==void 0&&!this.voiceSymbol[e].isEmpty())return!1;return!0}getPlayerNotes(){let e=[];function r(i,n,s,a){if(n<=0)return;e.some(u=>i.diatonicId===u.note.diatonicId&&i.accidental===u.note.accidental?(u.ticks=Math.max(u.ticks,n),!0):!1)||e.push({note:i,ticks:n,staccato:s,slur:a})}return oe().forEach(i=>{let n=this.getVoiceSymbol(i);if(n instanceof St){let s=n.getPlaySlur();n.notes.forEach(a=>{let c=n.getPlayTicks(a),u=n.staccato;r(a,c,u,s)})}}),e.sort((i,n)=>G.compareFunc(i.note,n.note)),this.hasArpeggio()&&this.getArpeggioDir()===1&&e.reverse(),e}requestLayout(){this.needLayout||(this.needLayout=!0,this.measure.requestLayout())}layout(e,r){if(!this.needLayout)return;this.rect=new F;let{row:i}=this,{unitSize:n}=e,s=this.getMinWidth()*n/2,a=s,c=s;if(this.voiceSymbol.forEach(h=>{h.layout(e,r);let l=h.getRect();a=Math.max(a,l.leftw),c=Math.max(c,l.rightw)}),this.arpeggioDir!==void 0){let h=0;this.arpeggios=i.getNotationLines().map(l=>{let p=new qs(this,l,this.getArpeggioDir());return p.layout(e),p.offset(-a-p.getRect().right,l.getRect().centerY-p.getRect().centerY),h=Math.max(h,p.getRect().width),l.addObject(p),p}),a+=h}else this.arpeggios=[];let u=this.getAnchoredLayoutObjects().filter(h=>h.layoutGroup.widensColumn);u.length>0&&u.forEach(h=>{a=Math.max(a,h.musicObj.getRect().leftw),c=Math.max(c,h.musicObj.getRect().rightw)}),this.voiceSymbol.forEach(h=>h.updateAccidentalState(r)),this.rect.left=-a,this.rect.centerX=0,this.rect.right=c,this.requestRectUpdate(),this.row.getStaves().forEach(h=>{let l,p;this.voiceSymbol.forEach(d=>{d.visibleInStaff(h)&&(d instanceof St?(l=l===void 0?d.minDiatonicId:Math.min(l,d.minDiatonicId),p=p===void 0?d.maxDiatonicId:Math.max(p,d.maxDiatonicId)):d instanceof di&&(l=l===void 0?d.ownDiatonicId:Math.min(l,d.ownDiatonicId),p=p===void 0?d.ownDiatonicId:Math.max(p,d.ownDiatonicId)))}),l!==void 0?this.staffMinDiatonicId.set(h,l):this.staffMinDiatonicId.delete(h),p!==void 0?this.staffMaxDiatonicId.set(h,p):this.staffMaxDiatonicId.delete(h)})}layoutDone(){this.needLayout=!1}updateRect(){this.shapeRects=[...this.voiceSymbol.filter(e=>!!e).map(e=>e.getRect().copy()),...this.arpeggios.map(e=>e.getRect().copy())],this.rect.top=Math.min(...this.shapeRects.map(e=>e.top)),this.rect.bottom=Math.max(...this.shapeRects.map(e=>e.bottom)),this.rect.centerY=(this.rect.top+this.rect.bottom)/2}offset(e,r){this.voiceSymbol.forEach(i=>i==null?void 0:i.offset(e,0)),this.arpeggios.forEach(i=>i.offset(e,0)),this.shapeRects.forEach(i=>i.offsetInPlace(e,r)),this.rect.offsetInPlace(e,r)}draw(e){this.row.getStaves().forEach(r=>{let i=this.staffMinDiatonicId.get(r),n=this.staffMaxDiatonicId.get(r);i!==void 0&&e.drawLedgerLines(r,i,this.getRect().centerX),n!==void 0&&e.drawLedgerLines(r,n,this.getRect().centerX)}),this.voiceSymbol.forEach(r=>{r&&r.draw(e)}),this.arpeggios.forEach(r=>r.draw(e))}};var ur=class ur extends et{constructor(e,r){super(e);this.text=r;m(this,"components",[]);m(this,"mi");switch(this.text){case ur.Coda:this.components=[new ht(this,{text:"\u{1D10C}",scale:1.7},.5,.3),new ht(this," Coda",0,1)];break;case ur.toCoda:this.components=[new ht(this,"toCoda ",1,1),new ht(this,{text:"\u{1D10C}",scale:1.7},.5,.3)];break;case ur.Segno:this.components=[new ht(this,{text:"\u{1D10B}",scale:1.1},.5,1)];break;default:this.components=[];break}this.mi=new bn(this)}getMusicInterface(){return this.mi}getText(){return this.text}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){switch(this.text){case ur.Coda:{let r=this.components[0],i=this.components[1];r.layout(e),i.layout(e),r.offset(0,(i.getRect().top+i.getRect().bottom)/2),i.offset(r.getRect().right,0),this.rect=new F(r.getRect().left,r.getRect().centerX,i.getRect().right,i.getRect().top,i.getRect().centerY,i.getRect().bottom);break}case ur.toCoda:{let r=this.components[0],i=this.components[1];r.layout(e),i.layout(e),i.offset(0,(r.getRect().top+r.getRect().bottom)/2),r.offset(i.getRect().left,0),this.rect=new F(r.getRect().left,i.getRect().centerX,i.getRect().right,r.getRect().top,r.getRect().centerY,r.getRect().bottom);break}default:{let r=this.components[0];r.layout(e),this.rect=r.getRect().copy();break}}}offset(e,r){this.components.forEach(i=>i.offset(e,r)),this.rect.offsetInPlace(e,r)}draw(e){e.drawDebugRect(this.rect),this.components.forEach(r=>r.draw(e))}};m(ur,"toCoda","\u{1D10C} toCoda"),m(ur,"Coda","Coda \u{1D10C}"),m(ur,"Segno","\u{1D10B}");var Ze=ur;function An(o){switch(o){case 1:return"D.C. al Coda";case 0:return"D.C. al Fine";case 3:return"D.S. al Coda";case 2:return"D.S. al Fine";case 7:return"Fine";case 6:return Ze.Segno;case 4:return Ze.Coda;case 5:return Ze.toCoda;default:return Ie[o]}}function iu(o){return["ppp","pp","p","mp","m","mf","f","ff","fff","cresc.","decresc.","dim."].indexOf(o)>=0}function zs(o){return["ppp","pp","p","mp","m","mf","f","ff","fff"].indexOf(o)>=0}function ou(o){return["accel.","rit.","a tempo"].indexOf(o)>=0}function Vy(o){switch(o){case"bottom":return .8;case"middle":return .5}}function Gy(o){return iu(o)?2:ou(o)?1:0}var fi=class extends js{constructor(e,r,i,n,s,a){super(e);m(this,"length");m(this,"visible");m(this,"lineStyle");m(this,"linePos");m(this,"startColumn");m(this,"context");if(this.length=i,this.visible=n,this.lineStyle=s,this.linePos=a,this.startColumn=r,this.context=e instanceof ht?Gy(e.getText()):0,e instanceof ht)e.updateAnchorY(Vy(a));else throw new E(6,"Update anchor's y-coordinate is only implemented for text objects.")}isVisible(){return this.visible}getLineStyle(){return this.lineStyle}getLinePos(){return this.linePos}getSpanBreakText(e,r){if(e===e.measure.getColumn(0)){let i=e.measure.getPrevMeasure();if(i){if(i.hasEndSection()||i.hasEndSong())return"section-break";let n=[9,10];for(let s=0;s<n.length;s++)if(i.hasNavigation(n[s]))return"section-break"}}if(r===1){let i=e.getAnchoredLayoutObjects();for(let n=0;n<i.length;n++){let s=i[n].getTextContent();if(s&&ou(s))return s}}else if(r===2){let i=e.getAnchoredLayoutObjects();for(let n=0;n<i.length;n++){let s=i[n].getTextContent();if(s&&iu(s))return s}}}getExtensionRangeInfo(){let{startColumn:e,length:r,context:i}=this,n=[e];if(r<=0)return{startColumn:e,endColumn:e,columnRange:n,extensionBreakText:void 0};let s=r,a=e;for(;;){let c=a.getNextColumn();if(!c)return{startColumn:e,endColumn:a,columnRange:n,extensionBreakText:void 0};let u=this.getSpanBreakText(c,i);if(u!==void 0)return{startColumn:e,endColumn:a,columnRange:n,extensionBreakText:u};if(s-=a.getTicksToNextColumn(),s<=0)return{startColumn:e,endColumn:a,columnRange:n,extensionBreakText:void 0};a=c,n.push(a)}}};var qy=2,Wy=2,Uy=.5,zy=.5;function Yy(o,t){let e=new $t(t.options.beatLength,t.options.dotted).ticks,r=t.beatsPerMinute*e;return 60*o/r}function fo(o){switch(o){case"fff":return .9;case"ff":return .8;case"f":return .7;case"mf":return .6;default:case"m":return .5;case"mp":return .4;case"p":return .3;case"pp":return .2;case"ppp":return .1}}function nu(){return fo("m")}function Hy(o){return o*1.25}var Qy=.5,mo=class{constructor(t){this.col=t;m(this,"speed");m(this,"volume");this.speed=1,this.volume=nu()}get measure(){return this.col.measure}reset(){this.speed=1,this.volume=nu()}setSpeed(t){this.speed=t}getSpeed(){return this.speed}getTempo(){let t=I.Math.clamp(this.getSpeed(),.1,10);return Ya(this.measure.getTempo(),t)}setVolume(t){this.volume=t}getVolume(){return this.volume}hasFermata(){return this.measure.hasFermata(this.col)}getFermataHoldTicks(){if(!this.hasFermata())return 0;let{col:t}=this;if(t instanceof gi)return this.measure.getMeasureTicks()/2;{let r=oe().map(i=>t.getVoiceSymbol(i)).filter(i=>!!i).map(i=>i.rhythmProps.ticks);return r.length===0?0:I.Math.sum(r)/r.length}}},Ys=class o{constructor(){m(this,"playTimer");m(this,"playPos");m(this,"playState",2);m(this,"doc");m(this,"cursorPositionChangeListener");m(this,"playStateChnageListener");m(this,"playerColumnSequence",[])}setDocument(t){this.doc=t,this.doc.resetMeasures(),this.playerColumnSequence=this.collectPlayerColumnSequence(),this.updatePlayerProps()}setCursorPositionChangeListener(t){this.cursorPositionChangeListener=t}setPlayStateChnageListener(t){this.playStateChnageListener=t}notifyCursorPositionChanged(){this.cursorPositionChangeListener&&this.cursorPositionChangeListener(this.getCursorRect())}notifyPlayStateChanged(){let t=this.playPos!==void 0&&this.playTimer!==void 0?0:this.playPos!==void 0&&this.playTimer===void 0?1:2;this.playState!==t&&(this.playStateChnageListener&&this.playStateChnageListener(t),this.playState=t)}collectPlayerMeasureSequence(){var a;if(!this.doc)return[];let t=[],e=this.doc.getFirstMeasure(),r=e,i,n=!1,s=!1;for(;e;){if(e.incPassCount(),e.getEnding()){let u=e.getPassCount();e=o.getMeasureByEndingPassage(e,u)}if(e)if(t.push(e),e.hasNavigation(8)&&(r=e),e.hasNavigation(6)&&(i=e),s&&e.hasNavigation(5))for(;e&&!e.hasNavigation(4);)e=e.getNextMeasure();else if(n&&e.hasNavigation(7))e=void 0;else if(e.hasNavigation(1))s=!0,e=this.doc.getFirstMeasure();else if(e.hasNavigation(0))n=!0,e=this.doc.getFirstMeasure();else if(e.hasNavigation(3))s=!0,e=i;else if(e.hasNavigation(2))n=!0,e=i;else if(e.hasNavigation(9)){let u=e.getPassCount(),h=e.getEndRepeatPlayCount()-1,l=((a=e.getNextMeasure())==null?void 0:a.hasNavigation(10))===!0;u<=h||l?e=r:e=e.getNextMeasure()}else e.hasEndSong()?e=void 0:e=e.getNextMeasure()}return t}collectPlayerColumnSequence(){let t=this.collectPlayerMeasureSequence(),e=[];for(let r=0;r<t.length;r++){let i=t[r];e=e.concat(i.getColumns()),i.hasFermata(i.getBarLineRight())&&e.push(i.getBarLineRight())}return e}updatePlayerProps(){if(this.playerColumnSequence.forEach(a=>a.getPlayerProps().reset()),!this.doc)return;let t=1,e=nu(),r=new Map,i=new Map,n=(a,c)=>{var u;return r.set(a,[...(u=r.get(a))!=null?u:[],c])},s=(a,c)=>{var u;return i.set(a,[...(u=i.get(a))!=null?u:[],c])};this.playerColumnSequence.forEach(a=>{var h,l;if(!(a instanceof vr))return;a.getAnchoredLayoutObjects().forEach(p=>{var f;let d=(f=p.getTextContent())!=null?f:"";if(d==="a tempo")t=1;else if(zs(d))e=fo(d);else if(p.musicObj.getLink()instanceof fi){let g=p.musicObj.getLink(),{columnRange:x,extensionBreakText:b}=g.getExtensionRangeInfo(),v=I.Math.sum(x.map(S=>S.getTicksToNextColumn()));switch(d){case"accel.":{let S=t,T=S*qy,_=0;x.forEach(C=>{_+=C.getTicksToNextColumn(),n(C,S+(T-S)*_/v)});break}case"rit.":{let S=t,T=S/Wy,_=0;x.forEach(C=>{_+=C.getTicksToNextColumn(),n(C,S+(T-S)*_/v)});break}case"cresc.":{let S=e,T=S+Uy;b&&zs(b)&&fo(b)>S&&(T=fo(b));let _=0;x.forEach(C=>{_+=C.getTicksToNextColumn(),s(C,S+(T-S)*_/v)});break}case"decresc.":case"dim.":{let S=e,T=S-zy;b&&zs(b)&&fo(b)<S&&(T=fo(b));let _=0;x.forEach(C=>{_+=C.getTicksToNextColumn(),s(C,S+(T-S)*_/v)});break}}}});let c=(h=r.get(a))!=null?h:[];c.length>0&&(t=I.Math.sum(c)/c.length);let u=(l=i.get(a))!=null?l:[];u.length>0&&(e=I.Math.sum(u)/u.length),a.getPlayerProps().setSpeed(t),a.getPlayerProps().setVolume(e)})}static getMeasureByEndingPassage(t,e){for(let r=t;;r=r.getNextMeasure()){let i=r==null?void 0:r.getEnding();if(i&&i.hasPassage(e))return r;let n=r==null?void 0:r.getNextMeasure();if(!r||r.hasEndSong()||r.hasEndSection()||!n||n.hasNavigation(8))return}}playStep(){if(this.notifyCursorPositionChanged(),this.notifyPlayStateChanged(),this.playPos===void 0){this.stop();return}let t=this.playerColumnSequence[this.playPos],e=(s,a)=>{let c=Yy(s,a);return Math.max(0,c)},r=t.getPlayerProps().getTempo(),i=t.getPlayerProps().getFermataHoldTicks(),n;t instanceof gi?n=e(i,r):(t.getPlayerNotes().forEach((a,c)=>{let u=t.hasArpeggio()?6*c:0,h=e(a.ticks+i-u,r);if(h>0){a.staccato&&(h=Math.min(e(24,r)/2,h/2));let l=Hy(t.getPlayerProps().getVolume());if(a.slur==="slurred"&&(l*=Qy),u>0){let p=e(u,r);window.setTimeout(()=>ks(a.note,h,l),p*1e3)}else ks(a.note,h,l)}}),n=e(t.getTicksToNextColumn()+i,r)),this.playTimer=window.setTimeout(()=>this.playStep(),n*1e3),this.playPos=this.getNextPlayPosition(this.playPos),this.notifyPlayStateChanged()}play(){if(this.playState===0)this.stop();else if(this.playState===1){this.playStep();return}let{doc:t}=this;if(!t)return;t.getFirstMeasure()?(this.playPos=0,this.playStep()):this.playPos=void 0,this.notifyPlayStateChanged()}pause(){this.playTimer&&(window.clearTimeout(this.playTimer),this.playTimer=void 0),this.notifyCursorPositionChanged(),this.notifyPlayStateChanged()}stop(){this.playPos=void 0,this.playTimer&&(window.clearTimeout(this.playTimer),this.playTimer=void 0),this.notifyCursorPositionChanged(),this.notifyPlayStateChanged()}getNextPlayPosition(t){return this.playPos!==void 0&&++this.playPos>=this.playerColumnSequence.length&&(this.playPos=void 0),this.playPos}getCursorRect(){if(this.playPos===void 0)return;let t=this.playerColumnSequence[this.playPos],e=t.measure,r=t.getRect().centerX,i=e.row.getRect().top,n=e.row.getRect().bottom;return new F(r,r,i,n)}};var su=class extends et{constructor(e){super(e);this.line=e;m(this,"lineRects",[]);m(this,"dotRects",[]);m(this,"mi");e.addObject(this),this.mi=new vn(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}setRect(e){this.rect=e}offset(e,r){this.lineRects.forEach(i=>i.offsetInPlace(e,r)),this.dotRects.forEach(i=>i.offsetInPlace(e,r)),this.rect.offsetInPlace(e,r)}},Hs=class extends et{constructor(e){super(e);this.measure=e;m(this,"staffTabObjects",[]);m(this,"barLineType",0)}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let i=0;i<this.staffTabObjects.length;i++){let n=this.staffTabObjects[i].pick(e,r);if(n.length>0)return[this,...n]}return[this]}layout(e){this.requestRectUpdate(),this.staffTabObjects.length=0,this.barLineType=this.solveBarLineType();let{unitSize:r,lineWidth:i}=e,{measure:n,barLineType:s}=this,{row:a}=n,c=i,u=.7*r,h=.7*r,l=ct.DotSize*r,p=l/2;a.getNotationLines().forEach(d=>{let f=new su(d),g,x,b,v,S=(_,C)=>{f.lineRects.push(new F(_,_+C/2,_+C,b,0,v))},T=_=>{for(let C=-1;C<=1;C+=2){let A=g+C*x;f.dotRects.push(new F(_-p,_,_+p,A-p,A,A+p))}};switch(d instanceof Tt?(g=d.getMiddleLineY(),x=d.getDiatonicSpacing(),b=d.getTopLineY(),v=d.getBottomLineY()):(g=(d.getBottom()+d.getTop())/2,x=(d.getBottom()-d.getTop())/6,b=d.getTopStringY(),v=d.getBottomStringY()),s){case 0:f.setRect(new F(0,0,0,b,0,v));break;case 1:f.setRect(new F(-c,0,0,b,0,v)),S(-c,c);break;case 2:f.setRect(new F(-c-h-c,0,0,b,0,v)),S(-c-h-c,c),S(-c,c);break;case 3:f.setRect(new F(-u-h-c,0,0,b,0,v)),S(-c-h-u,c),S(-u,u);break;case 4:f.setRect(new F(0,0,u+h+c+h+l,b,0,v)),S(0,u),S(u+h,c),T(u+h+c+h+p);break;case 5:f.setRect(new F(-u-h-c-h-l,0,0,b,0,v)),S(-c-h-u,c),S(-u,u),T(-c-h-u-h-p);break;case 6:f.setRect(new F(-l-h-c-h-u/2,0,u/2+h+c+h+l,b,0,v)),S(-u/2,u),S(-u/2-h-c,c),S(u/2+h,c),T(-u/2-h-c-h-p),T(u/2+h+c+h+p);break}this.staffTabObjects.push(f)})}updateRect(){if(this.staffTabObjects.length>0){this.rect=this.staffTabObjects[0].getRect().copy();for(let e=1;e<this.staffTabObjects.length;e++)this.rect.expandInPlace(this.staffTabObjects[e].getRect())}else this.rect=new F}offset(e,r){this.staffTabObjects.forEach(i=>i.offset(e,0)),this.requestRectUpdate()}draw(e){let r=e.getCanvasContext();!r||this.barLineType===0||(e.drawDebugRect(this.getRect()),r.strokeStyle=r.fillStyle="black",this.staffTabObjects.forEach(i=>{i.lineRects.forEach(n=>r.fillRect(n.left,n.top,n.width,n.height)),i.dotRects.forEach(n=>e.fillCircle(n.centerX,n.centerY,n.width/2))}))}},go=class extends Hs{constructor(e){super(e);m(this,"mi");this.mi=new _n(this)}getMusicInterface(){return this.mi}solveBarLineType(){let e=this.measure,r=e.getPrevMeasure();return e.hasNavigation(8)?r&&r.row===e.row&&r.hasNavigation(9)?0:4:0}},gi=class extends Hs{constructor(e){super(e);m(this,"playerProps");m(this,"mi");this.playerProps=new mo(this),this.mi=new Cn(this)}getMusicInterface(){return this.mi}getPlayerProps(){return this.playerProps}solveBarLineType(){let e=this.measure,r=e.getNextMeasure();return e.hasNavigation(9)?r&&r.row===e.row&&r.hasNavigation(8)?6:5:!e.doc.hasSingleMeasure()&&(e.hasEndSong()||!e.getNextMeasure())?3:e.hasEndSection()||e===e.row.getLastMeasure()&&r&&r.row===e.row.getNextRow()&&r.hasNavigation(8)?2:r&&r.hasNavigation(8)?0:1}};var xi=class extends et{constructor(e,r){super(e);this.measure=e;this.passages=r;m(this,"endingText");m(this,"shapeRects",[]);m(this,"mi");if(this.mi=new In(this),I.Is.isIntegerGte(r.length,1)){if(!this.passages.every(n=>I.Is.isIntegerGte(n,1)))throw new E(6,"Invalid passages: "+this.passages)}else throw new E(6,"Passages is empty.");this.passages.sort((n,s)=>n-s);let i=this.passages.map(n=>n+".").join("");this.endingText=new ht(this,i,0,1)}getMusicInterface(){return this.mi}getShapeRects(){return this.shapeRects}isSingleMeasureEnding(){let{measure:e}=this,r=e.getNextMeasure();return(r==null?void 0:r.hasNavigation(10))===!0||e.hasNavigation(9)||e.isLastMeasure()}hasPassage(e){return this.passages.some(r=>r===e)}getHighestPassage(){return Math.max(0,...this.passages)}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){this.rect=new F,this.shapeRects=[this.rect.copy()]}layoutFitToMeasure(e){let{unitSize:r}=e,{measure:i}=this;this.endingText.layout(e);let n=this.endingText.getRect(),s=i.getColumnsContentRect(),a=n.height;this.rect=new F(s.left+r,s.right-r,-a,0),this.endingText.offset(this.rect.left+r/2,this.rect.bottom),this.shapeRects=[new F(this.rect.left,this.rect.left+1,this.rect.top,this.rect.bottom),new F(this.rect.left,this.rect.right,this.rect.top,this.rect.top+1),new F(this.rect.right-1,this.rect.right,this.rect.top,this.rect.bottom),this.endingText.getRect().copy()]}offset(e,r){this.endingText.offset(e,r),this.shapeRects.forEach(i=>i.offsetInPlace(e,r)),this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;let{lineWidth:i}=e,{rect:n}=this;e.drawDebugRect(this.rect),r.strokeStyle=r.fillStyle="black",r.lineWidth=i,r.beginPath(),r.moveTo(n.left,n.bottom),r.lineTo(n.left,n.top),r.lineTo(n.right,n.top),this.isSingleMeasureEnding()&&r.lineTo(n.right,n.bottom),r.stroke(),this.endingText.draw(e)}};var Yr=class extends et{constructor(e,r){super(e);this.pos=r;m(this,"color","black");m(this,"mi");this.mi=new Sn(this)}getMusicInterface(){return this.mi}static getFermataPositions(e){let{measure:r}=e,{row:i}=r;return i.getTopStaff()!==i.getBottomStaff()?[0,1]:[0]}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e,i=r*4,n=r*3;this.rect=new F(-i/2,i/2,-n,0)}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;let{lineWidth:i,unitSize:n}=e,s=this.pos===1,a=(s?n:-n)*.7,c=this.rect.left,u=this.rect.right,h=(s?this.rect.bottom:this.rect.top)+a,l=(s?this.rect.top:this.rect.bottom)+a,p=l-h;e.drawDebugRect(this.rect),r.strokeStyle=r.fillStyle=this.color,r.lineWidth=i,r.beginPath(),r.moveTo(c,l),r.bezierCurveTo(c,h,u,h,u,l),r.bezierCurveTo(u,h+p/5,c,h+p/5,c,l),r.stroke(),r.fill();let d=p/6;e.fillCircle((c+u)/2,l-d,Math.abs(d))}};var xo=class extends et{constructor(e,r,i,n){super(e);this.measure=e;this.extension=r;this.leftObj=i;this.rightObj=n;m(this,"mi");r.addTail(this),this.mi=new wn(this)}get row(){return this.measure.row}getMusicInterface(){return this.mi}getLineLeft(){return this.leftObj instanceof go?this.leftObj.getRect().centerX:this.leftObj.getRect().right}getLineRight(){if(this.rightObj instanceof vr){let e=this.rightObj,r=e.getNextColumn();return r&&r.measure===e.measure?(e.getRect().right+r.getRect().left)/2:(e.getRect().right+e.measure.getBarLineRight().getRect().left)/2}else return this.rightObj.getRect().centerX}layoutFitToMeasure(e){let{unitSize:r}=e,i=this.getLineLeft(),n=this.getLineRight(),s=r;this.rect=new F(i,n,-s/2,s/2)}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){this.rect=new F}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;let{rect:i}=this;this.extension.getLineStyle()==="dashed"&&r.setLineDash([7,3]),e.drawLine(i.left,i.centerY,i.right,i.centerY,"black",e.lineWidth),r.setLineDash([]);let n=this.extension.getTails();if(n.length>0&&this===n[n.length-1]){let s=i.centerY>this.measure.row.getRect().centerY?-e.unitSize:e.unitSize;e.drawLine(i.right,i.centerY,i.right,i.centerY+s,"black",e.lineWidth)}}};var yi=class extends et{constructor(e,r,i,n,s,...a){super(i);this.connectiveProps=e;this.line=r;this.measure=i;m(this,"lx",0);m(this,"ly",0);m(this,"rx",0);m(this,"ry",0);m(this,"cp1x",0);m(this,"cp1y",0);m(this,"cp2x",0);m(this,"cp2y",0);m(this,"arcHeight",0);m(this,"leftNoteGroup");m(this,"leftNoteId");m(this,"rightNoteGroup");m(this,"rightNoteId");m(this,"tieType");m(this,"mi");this.leftNoteGroup=n,this.leftNoteId=s,a[0]instanceof St&&typeof a[1]=="number"?(this.rightNoteGroup=a[0],this.rightNoteId=a[1],this.tieType=void 0):I.Is.isEnumValue(a[0],cr)&&(this.rightNoteGroup=void 0,this.rightNoteId=void 0,this.tieType=a[0]),this.measure.addConnectiveObject(this),this.mi=new Tn(this)}getMusicInterface(){return this.mi}isInsideMeasure(){return this.rightNoteGroup===void 0||this.leftNoteGroup.measure===this.rightNoteGroup.measure}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e,{measure:i,line:n,leftNoteGroup:s,leftNoteId:a,rightNoteGroup:c,rightNoteId:u,connectiveProps:h}=this,{noteAnchor:l,arcDir:p}=h,{row:d}=i,f=d.getPrevRow(),g=d.getNextRow(),x=d.getConnectivesContentRect(),b,v;b=s.getConnectiveAnchorPoint(h,n,a,l,"left"),c!==void 0&&u!==void 0?v=c.getConnectiveAnchorPoint(h,n,u,l,"right"):v=this.tieType===-2?{x:i.getColumnsContentRect().right,y:b.y}:{x:b.x+r*ct.StubTieLength,y:b.y};let S,T,_,C;if(c===void 0)S=b.x,T=b.y,_=v.x,C=v.y;else if(s.row===d&&c.row===d)S=b.x,T=b.y,_=v.x,C=v.y;else if(s.row===f&&c.row===d){let O=f.getConnectivesContentRect().right-b.x,W=v.x-x.left;S=x.left,T=b.y+(v.y-b.y)*O/(O+W),_=v.x,C=v.y}else if(s.row===d&&c.row===g){let M=g.getConnectivesContentRect(),O=x.right-b.x,W=v.x-M.left;S=b.x,T=b.y,_=x.right,C=b.y+(v.y-b.y)*O/(O+W)}else throw new E(6,"Cannot layout connective object because no valid left and right note groups.");let y=(p==="up"?-1:1)*r*Math.log2(_-S)/3;this.lx=S,this.ly=T,this.rx=_,this.ry=C,this.arcHeight=this.connectiveProps.connective===2?0:y;let{nx:N,ny:D}=I.Math.calcNormal(S,T,_,C);this.cp1x=S*.7+_*.3+N*this.arcHeight,this.cp1y=T*.7+C*.3+D*this.arcHeight,this.cp2x=S*.3+_*.7+N*this.arcHeight,this.cp2y=T*.3+C*.7+D*this.arcHeight,this.rect=new F(Math.min(this.lx,this.cp1x,this.cp2x,this.rx),Math.max(this.lx,this.cp1x,this.cp2x,this.rx),Math.min(this.ly,this.cp1y,this.cp2y,this.ry),Math.max(this.ly,this.cp1y,this.cp2y,this.ry)),this.line.addObject(this)}offset(e,r){this.lx+=e,this.ly+=r,this.rx+=e,this.ry+=r,this.cp1x+=e,this.cp1y+=r,this.cp2x+=e,this.cp2y+=r,this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;if(this.rightNoteGroup!==void 0){if(this.leftNoteGroup.measure!==this.rightNoteGroup.measure){if(this.leftNoteGroup.row.getNextRow()!==this.rightNoteGroup.row){if(this.measure!==this.rightNoteGroup.measure)return}}}let{rect:i}=this,{lineWidth:n}=e;e.drawDebugRect(i);let s=n*1.5,a=n*.25;r.strokeStyle=r.fillStyle="black",r.lineWidth=n,this.arcHeight===0?(r.beginPath(),r.moveTo(this.lx,this.ly),r.lineTo(this.rx,this.ry),r.stroke()):(r.beginPath(),r.moveTo(this.lx,this.ly-a),r.bezierCurveTo(this.cp1x,this.cp1y-s,this.cp2x,this.cp2y-s,this.rx,this.ry-a),r.lineTo(this.rx,this.ry+a),r.bezierCurveTo(this.cp2x,this.cp2y+s,this.cp1x,this.cp1y+s,this.lx,this.ly+a),r.fill())}};var yo=class{constructor(t,e,r,i){this.connective=t;this.span=e;this.noteAnchor=r;m(this,"noteGroups");m(this,"arcDir","down");this.noteGroups=[i]}getStartNoteGroup(){return this.noteGroups[0]}startsWith(t){return this.noteGroups[0]===t}addNoteGroup(t){return this.span===-1||this.span===-2?!1:this.span>this.noteGroups.length?(this.noteGroups.push(t),!0):!1}computeParams(){let t=this.noteGroups[0].stemDir,e=this.noteGroups[0].rhythmProps.hasStem;if(this.noteAnchor===4)this.arcDir=t===1?"up":"down";else if(this.noteAnchor===0)this.arcDir=t===1||!e?"down":"up",this.noteGroups[0].notes.length>1?this.noteAnchor=2:this.connective===2?this.noteAnchor=2:this.arcDir==="up"?this.noteAnchor=1:this.noteAnchor=3;else if(this.noteAnchor===2){let{row:r}=this.noteGroups[0].measure,i=this.noteGroups[0].ownDiatonicId,n=r.getStaff(i);this.arcDir=!n||i<n.middleLineDiatonicId?"down":"up"}else this.noteAnchor===1?this.arcDir="up":this.noteAnchor===3&&(this.arcDir="down")}removeConnectives(){this.noteGroups.forEach(t=>{t.measure.removeConnectiveObjects(),t.removeConnectiveProps()}),this.noteGroups.length=1}createConnectives(){this.getStartNoteGroup().collectConnectiveProps(),this.computeParams();let{connective:t,span:e}=this;if(t===0){if(e===-1||e===-2){let r=this.noteGroups[0];for(let i=0;i<r.notes.length;i++)this.createObjConnectiveWithTieType(r,i,e)}else if(this.noteGroups.length>=2)for(let r=0;r<this.noteGroups.length-1;r++){let i=this.noteGroups[r],n=this.noteGroups[r+1];i.notes.forEach((s,a)=>{let c=n.notes.findIndex(u=>G.equals(u,s));c>=0&&this.createObjConnective(i,a,n,c)})}}else if(t===1){if(typeof e=="number"&&e>=2&&this.noteGroups.length===e){let r=this.noteGroups[0],i=this.noteGroups[this.noteGroups.length-1];this.createObjConnective(r,0,i,0)}}else if(t===2&&this.noteGroups.length>=2)for(let r=0;r<this.noteGroups.length-1;r++){let i=this.noteGroups[r],n=this.noteGroups[r+1];this.createObjConnective(i,0,n,0)}}createObjConnectiveWithTieType(t,e,r){t.row.getNotationLines().filter(i=>t.enableConnective(i)).forEach(i=>{i instanceof Tt?new yi(this,i,t.measure,t,e,r):t.getFretNumberString(e)!==void 0&&new yi(this,i,t.measure,t,e,r)})}createObjConnective(t,e,r,i){let n=(s,a,c,u,h)=>{s.row.getNotationLines().filter(l=>a.enableConnective(l)&&u.enableConnective(l)).forEach(l=>{if(l instanceof Tt)new yi(this,l,s,a,c,u,h);else{let p=a.getFretNumberString(c),d=u.getFretNumberString(h);p!==void 0&&d!==void 0&&(p===d||this.connective===1)&&new yi(this,l,s,a,c,u,h)}})};if(t.measure===r.measure)n(t.measure,t,e,r,i);else if(t.measure.getNextMeasure()===r.measure)n(t.measure,t,e,r,i),n(r.measure,t,e,r,i);else throw new E(6,"Cannot create connective because it is jumping measures.")}};function ru(o){if(oe().indexOf(o)<0)throw new E(6,"Invalid voiceId: "+o);return o}var Nn=class Nn extends et{constructor(e){super(e);this.row=e;m(this,"prevMeasure");m(this,"nextMeasure");m(this,"keySignature",Vn());m(this,"timeSignature",Wn());m(this,"tempo",Un());m(this,"alterKeySignature");m(this,"alterTimeSignature");m(this,"alterTempo");m(this,"signatures",[]);m(this,"tabStringNotes",[]);m(this,"barLineLeft");m(this,"columns",[]);m(this,"barLineRight");m(this,"connectives",[]);m(this,"beamGroups",[]);m(this,"tabStringNotesWidth",0);m(this,"measureId");m(this,"needLayout",!0);m(this,"leftSolidAreaWidth",0);m(this,"minColumnsAreaWidth",0);m(this,"rightSolidAreaWidth",0);m(this,"useDiatonicId",[]);m(this,"useStemDir",[]);m(this,"useString",[]);m(this,"voiceSymbols",[]);m(this,"lastAddedRhythmColumn");m(this,"lastAddedRhythmSymbol");m(this,"addExtensionToMusicObject");m(this,"layoutObjects",[]);m(this,"postMeasureBreakWidth",0);m(this,"passCount",0);m(this,"needBeamsUpdate",!0);m(this,"navigationSet",new Set);m(this,"isEndSong",!1);m(this,"isEndSection",!1);m(this,"endRepeatPlayCount",2);m(this,"endRepeatPlayCountText");m(this,"mi");this.mi=new On(this),this.prevMeasure=e.doc.getLastMeasure(),this.prevMeasure&&(this.prevMeasure.nextMeasure=this),this.barLineLeft=new go(this),this.barLineRight=new gi(this),this.measureId=this.prevMeasure?this.prevMeasure.measureId+1:0,this.updateKeySignature(),this.updateTimeSignature(),this.updateTempo()}getMusicInterface(){return this.mi}get doc(){return this.row.doc}isPartialMeasure(){return this.getConsumedTicks()<this.getMeasureTicks()}isUpBeat(){return this===this.doc.getFirstMeasure()}resetPassCount(){this.passCount=0}incPassCount(){this.passCount++}getPassCount(){return this.passCount}updateOwnDiatonicId(e,r){if(typeof r=="number")this.useDiatonicId[e]=r;else if(this.useDiatonicId[e]===void 0){let n=this.getPrevMeasure();n&&n.useDiatonicId[e]!==void 0&&(this.useDiatonicId[e]=n.useDiatonicId[e])}let i=this.useDiatonicId[e];return i===void 0&&(this.row.hasStaff?i=this.row.getTopStaff().middleLineDiatonicId:i=G.getNote("C4").diatonicId),this.useDiatonicId[e]=G.validateDiatonicId(i)}updateOwnStemDir(e,r){var s,a;let{voiceId:i}=e;r!==void 0?this.useStemDir[i]=r:this.useStemDir[i]===void 0&&(this.useStemDir[i]=(a=(s=this.getPrevMeasure())==null?void 0:s.useStemDir[i])!=null?a:0);let n=this.useStemDir[i];if(n===0||n===void 0){let c=this.row.getStaff(e.ownDiatonicId);return c?e.ownDiatonicId>c.middleLineDiatonicId?2:1:1}else return n}updateOwnString(e,r){var n,s;let{voiceId:i}=e;return r!==void 0?this.useString[i]=r:this.useString[i]===void 0&&(this.useString[i]=(s=(n=this.getPrevMeasure())==null?void 0:n.useString[i])!=null?s:[]),this.useString[i]}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let i=0;i<this.signatures.length;i++){let n=this.signatures[i].pick(e,r);if(n.length>0)return[this,...n]}for(let i=0;i<this.tabStringNotes.length;i++){let n=this.tabStringNotes[i].pick(e,r);if(n.length>0)return[this,...n]}for(let i=0;i<this.columns.length;i++){let n=this.columns[i].pick(e,r);if(n.length>0)return[this,...n]}if(this.barLineLeft){let i=this.barLineLeft.pick(e,r);if(i.length>0)return[this,...i]}if(this.barLineRight){let i=this.barLineRight.pick(e,r);if(i.length>0)return[this,...i]}if(this.endRepeatPlayCountText){let i=this.endRepeatPlayCountText.pick(e,r);if(i.length>0)return[this,...i]}for(let i=0;i<this.connectives.length;i++){let n=this.connectives[i].pick(e,r);if(n.length>0)return[this,...n]}for(let i=0;i<this.beamGroups.length;i++){let n=this.beamGroups[i].pick(e,r);if(n.length>0)return[this,...n]}for(let i=0;i<this.layoutObjects.length;i++){let n=this.layoutObjects[i].musicObj.pick(e,r);if(n.length>0)return[this,...n]}return[this]}getMeasureNumber(){let e=this.doc.getFirstMeasure();return e&&e.isPartialMeasure()?this.measureId:this.measureId+1}getColumns(){return this.columns}getColumnCount(){return this.columns.length}getColumn(e){return this.getColumns()[e]}isFirstMeasure(){return this.prevMeasure===void 0}isLastMeasure(){return this.nextMeasure===void 0}getNextMeasure(){return this.nextMeasure}getPrevMeasure(){return this.prevMeasure}getKeySignature(){return this.keySignature}setKeySignature(...e){var r;if((r=this.getPrevMeasure())==null||r.endSection(),e[0]instanceof Le)this.alterKeySignature=e[0];else if(e[0]instanceof Er)this.alterKeySignature=e[0];else try{let i=""+e[0],n=Fa(""+e[1]);this.alterKeySignature=Rr(i,n)}catch(i){throw new E(6,"Cannot set key signature because invalid args: "+e)}this.updateKeySignature()}updateKeySignature(){this.keySignature=this.prevMeasure?this.prevMeasure.keySignature:Vn(),this.alterKeySignature&&(this.keySignature=this.alterKeySignature),this.nextMeasure&&this.nextMeasure.updateKeySignature(),this.requestLayout()}getTimeSignature(){return this.timeSignature}setTimeSignature(e){var r;(r=this.getPrevMeasure())==null||r.endSection(),this.alterTimeSignature=e instanceof pr?e:new pr(e),this.updateTimeSignature()}updateTimeSignature(){this.timeSignature=this.prevMeasure?this.prevMeasure.timeSignature:Wn(),this.alterTimeSignature&&(this.timeSignature=this.alterTimeSignature),this.nextMeasure&&this.nextMeasure.updateTimeSignature(),this.requestLayout()}getTempo(){return this.tempo}setTempo(e,r,i){var s;(s=this.getPrevMeasure())==null||s.endSection();let n=r!==void 0?{beatLength:r,dotted:i}:void 0;this.alterTempo={beatsPerMinute:e,options:n},this.updateTempo()}updateTempo(){var e;if(this.tempo=this.prevMeasure?this.prevMeasure.tempo:Un(),this.alterTempo){let r=this.alterTempo.beatsPerMinute,i,n;this.alterTempo.options?(i=this.alterTempo.options.beatLength,n=(e=this.alterTempo.options.dotted)!=null?e:!1):this.alterTimeSignature?(i=this.alterTimeSignature.beatLength,n=!1):(i=this.tempo.options.beatLength,n=this.tempo.options.dotted),this.tempo={beatsPerMinute:r,options:{beatLength:i,dotted:n}}}this.nextMeasure&&this.nextMeasure.updateTempo(),this.requestLayout()}hasPostMeasureBreak(){return this.isEndSong&&this!==this.row.getLastMeasure()}getPostMeasureBreakWidth(){return this.postMeasureBreakWidth}addLayoutObject(e,r,i){let n=new Qs(e,r,i);this.layoutObjects.push(n),this.requestLayout()}addFermata(e){let r=e===1?this.barLineRight:this.lastAddedRhythmColumn;if(!r)throw new E(6,"Cannot add Fermata because anchor is undefined.");let i=r.getAnchoredLayoutObjects().map(a=>a.musicObj).filter(a=>a instanceof Yr),n=i.some(a=>a.pos===0),s=i.some(a=>a.pos===1);Yr.getFermataPositions(r).forEach(a=>{a===0&&!n?this.addLayoutObject(new Yr(r,a),0,a):a===1&&!s&&this.addLayoutObject(new Yr(r,a),0,a)}),this.disableExtension(),this.requestLayout()}hasFermata(e){return this.layoutObjects.some(r=>r.musicObj instanceof Yr&&r.anchor===e)}addNavigation(e,...r){switch(e){case 10:if(this.navigationSet.has(e))throw new E(6,"Cannot add ending beasure measure already has one.");let i=this,n=r;this.addLayoutObject(new xi(i,n),3,0);break;case 1:case 0:case 3:case 2:{let s=this.barLineRight,a=An(e);this.addLayoutObject(new ht(s,a,1,1),2,0),this.addNavigation(9),this.endSong();break}case 7:{let s=this.barLineRight,a=An(e);this.addLayoutObject(new ht(s,a,1,1),2,0);break}case 6:case 4:{let s=this.barLineLeft,a=An(e);this.addLayoutObject(new Ze(s,a),2,0);break}case 5:{let s=this.barLineRight,a=An(e);this.addLayoutObject(new Ze(s,a),2,0);break}case 9:if(r.length===0)this.endRepeatPlayCount=2;else if(I.Is.isIntegerGte(r[0],2))this.endRepeatPlayCount=r[0];else throw new E(6,"Invalid end repeat play count (should be 2 or greater integer): "+r[0]);if(this.endRepeatPlayCount!==2){let s={text:""+this.endRepeatPlayCount+"x",scale:.8};this.endRepeatPlayCountText=new ht(this,s,.5,1)}break}this.navigationSet.add(e),this.disableExtension()}hasNavigation(e){return this.navigationSet.has(e)}getEnding(){return this.layoutObjects.map(e=>e.musicObj).find(e=>e instanceof xi)}getEndRepeatPlayCount(){return this.endRepeatPlayCount}addConnective(e,...r){let i=this.lastAddedRhythmSymbol;if(!(i instanceof St))throw new E(6,"Connective can be added to note group only.");if(e===0){let n=I.Is.isInteger(r[0])||I.Is.isEnumValue(r[0],cr)?r[0]:2,s=I.Is.isEnumValue(r[1],ve)?r[1]:0;i.startConnective(new yo(0,n,s,i))}else if(e===1){let n=I.Is.isInteger(r[0])?r[0]:2,s=I.Is.isEnumValue(r[1],ve)?r[1]:0;i.startConnective(new yo(1,n,s,i))}else if(e===2){let n=I.Is.isEnumValue(r[0],ve)?r[0]:0;i.startConnective(new yo(2,2,n,i))}}addLabel(e,r){let i=this.lastAddedRhythmColumn;if(i){if(r.length===0)throw new E(6,"Cannot add label because label text is empty.")}else throw new E(6,"Cannot add label because anchor is undefined.");let n={text:r},s,a;switch(e){case 0:s=1,a=1;break;case 1:s=6,a=0;break}let c=new ht(i,n,.5,1);this.addLayoutObject(c,s,a),this.enableExtension(c)}addAnnotation(e,r){let i=this.lastAddedRhythmColumn;if(i){if(r.length===0)throw new E(6,"Cannot add annotation because annotation text is empty.")}else throw new E(6,"Cannot add annotation because anchor is undefined.");let n={text:r},s,a;switch(e){case 0:s=5,a=0,n.italic=!0;break;case 1:s=4,a=0,n.italic=!0;break}let c=new ht(i,n,.5,1);this.addLayoutObject(c,s,a),this.enableExtension(c)}endSong(){this.isEndSong=!0,this.requestLayout(),this.disableExtension()}hasEndSong(){return this.isEndSong}endSection(){this.isEndSection=!0,this.requestLayout(),this.disableExtension()}hasEndSection(){return this.isEndSection}endRow(){this.doc.requestNewRow(),this.disableExtension()}enableExtension(e){this.addExtensionToMusicObject=e}disableExtension(){this.addExtensionToMusicObject=void 0}addExtension(e,r){let i=this.addExtensionToMusicObject,n=i==null?void 0:i.getParent();if(i instanceof ht&&n instanceof vr){let s="dashed",a="bottom",c=new fi(i,n,e,r,s,a);i.setLink(c),this.disableExtension(),this.requestLayout()}else throw i===void 0?new E(6,"Cannot add extension because music object to attach it to is undefined."):new E(6,"Cannot add extension becaue no compatible music object to attach it to.")}addRhythmSymbol(e,r){let{col:i}=r;i.setVoiceSymbol(e,r),this.getVoiceSymbols(e),this.voiceSymbols[e].push(r),this.requestBeamsUpdate(),this.lastAddedRhythmColumn=i,this.lastAddedRhythmSymbol=r}addNoteGroup(e,r,i,n){let s=r.map(c=>typeof c=="string"?G.getNote(c):c),a=this.getRhythmColumn(e);this.addRhythmSymbol(e,new St(a,e,s,i,n))}addRest(e,r,i){let n=this.getRhythmColumn(e);this.addRhythmSymbol(e,new di(n,e,r,i))}getRhythmColumn(e){let r=0;for(let i=this.columns.length-1;i>=0&&r===0;i--){let n=this.columns[i],s=n.getVoiceSymbol(e);s&&(r=n.positionTicks+s.rhythmProps.ticks)}for(let i=0;i<=this.columns.length;i++){let n=this.columns[i];if(n&&n.positionTicks===r)return n;if(!n||n.positionTicks>r){let s=new vr(this,r);return this.columns.splice(i,0,s),s}}throw new E(6,"Error in rhythm column. Should never get here.")}getMeasureTicks(){return this.getTimeSignature().measureTicks}getConsumedTicks(e){let r=0;return this.columns.forEach(i=>{oe().forEach(n=>{let s=i.getVoiceSymbol(n);s&&(e===void 0||e===n)&&(r=Math.max(r,i.positionTicks+s.rhythmProps.ticks))})}),r}getColumnsContentRect(){return new F(this.barLineLeft.getRect().centerX,this.barLineRight.getRect().centerX,this.getRect().top,this.getRect().bottom)}getLeftSolidAreaWidth(){return this.leftSolidAreaWidth}getMinColumnsAreaWidth(){return this.minColumnsAreaWidth}getRightSolidAreaWidth(){return this.rightSolidAreaWidth}getSolidAreaWidth(){return this.leftSolidAreaWidth+this.rightSolidAreaWidth}getMinWidth(){return this.leftSolidAreaWidth+this.minColumnsAreaWidth+this.rightSolidAreaWidth}getStaffLineLeft(){let e=this.getPrevMeasure();return e&&e.row===this.row&&!e.hasPostMeasureBreak()?e.getStaffLineRight():this.getRect().left+this.tabStringNotesWidth}getStaffLineRight(){return this.barLineRight.getRect().centerX}getStaticObjects(){return[...this.getColumns(),...this.layoutObjects.filter(e=>e.isPositionResolved()).map(e=>e.musicObj)]}removeLayoutObjects(e){this.layoutObjects=this.layoutObjects.filter(r=>{if(r.musicObj===e){let i=r.musicObj.getLink();return i&&i.detachTail(r.musicObj),r.layoutGroup.remove(r),!1}else return!0})}addConnectiveObject(e){this.connectives.push(e),this.requestLayout()}removeConnectiveObjects(){this.connectives.length>0&&(this.connectives=[],this.requestLayout())}createExtensions(){this.layoutObjects.forEach(e=>{if(e.musicObj.getLink()instanceof fi){let r=e.musicObj.getLink();if(r.getHead()===e.musicObj){r.getTails().forEach(s=>e.measure.removeLayoutObjects(s));let{startColumn:i,endColumn:n}=r.getExtensionRangeInfo();if(r.isVisible()&&i!==n)for(let s=i.measure;s!==void 0;s=s===n.measure?void 0:s.getNextMeasure()){let a=s===i.measure?r.getHead():s.getBarLineLeft(),c=s===n.measure?n:s.getBarLineRight();s.addLayoutObject(new xo(s,r,a,c),e.layoutGroupId,e.verticalPos)}}}})}addBeamGroup(e){this.beamGroups.push(e)}requestBeamsUpdate(){this.needBeamsUpdate=!0}createBeams(){!this.needBeamsUpdate||!this.row.hasStaff||(this.beamGroups.forEach(e=>e.detach()),this.beamGroups.length=0,oe().forEach(e=>{let r=this.getVoiceSymbols(e);if(!(r.length<=2)){for(let i=0;i<r.length;){let n=r.slice(i,i+2),s=r.slice(i,i+3);n.length===2&&mi.createTriplet(n)?i+=2:s.length===3&&mi.createTriplet(s)?i+=3:i++}if(!Ls.DisableBeams){let i=[],n=0,s=0;this.isUpBeat()&&(n=s=Math.max(0,this.getMeasureTicks()-this.getConsumedTicks()));let a=this.getTimeSignature();r.forEach(c=>{for(i.push(c),s+=c.rhythmProps.ticks,n===0&&s===a.beamGroupLength&&Nn.setupBeamGroup(i);s>=a.beamGroupLength;)i=[],n=s=s-a.beamGroupLength})}}}),this.needBeamsUpdate=!1,this.requestLayout())}static setupBeamGroup(e){let r=e.map(n=>{var s;return n instanceof St&&((s=n.getBeamGroup())==null?void 0:s.isTriplet())!==!0?n:void 0});St.setBeamCounts(r);let i=[];r.forEach(n=>{n&&n.hasBeamCount()?i.push(n):(mi.createBeam(i),i=[])}),mi.createBeam(i)}getBarLineLeft(){return this.barLineLeft}getBarLineRight(){return this.barLineRight}getVoiceSymbols(e){return ru(e),this.voiceSymbols[e]===void 0&&(this.voiceSymbols[e]=[]),this.voiceSymbols[e]}completeRests(e){if(e===void 0){this.getConsumedTicks()===0?this.completeRests(0):oe().forEach(c=>{this.getConsumedTicks(c)>0&&this.completeRests(c)});return}let r=this.getMeasureTicks(),i=this.getConsumedTicks(e),n=r-i,s=[],a=I.Enum.getEnumValues(Vt);for(;n>0;)a.forEach(c=>{let u=new $t(c,!1);if(u.canDot()){let h=new $t(c,!0);for(;h.ticks<=n;)s.push(h),n-=h.ticks}for(;u.ticks<=n;)s.push(u),n-=u.ticks});s.reverse().forEach(c=>this.addRest(e,c.noteLength,{dotted:c.dotted}))}requestLayout(){this.needLayout||(this.needLayout=!0,this.row.requestLayout())}layout(e){var d;if(!this.needLayout)return;this.requestRectUpdate();let{unitSize:r}=e;this.postMeasureBreakWidth=this.hasPostMeasureBreak()?ct.PostMeasureBreakWidth*r:0;let i=this===this.row.getFirstMeasure(),n=((d=this.getPrevMeasure())==null?void 0:d.hasPostMeasureBreak())===!0;this.tabStringNotesWidth=i&&this.row.hasTab?r*4:0;let s=i||n,a=i&&!this.row.isFirstRow(),c=i||n||!!this.alterKeySignature,u=!!this.alterTimeSignature,h=!!this.alterTempo;s||a||c||u||h?this.signatures=this.row.getStaves().map((f,g)=>{let x=this.signatures.find(v=>v.staff===f),b=x!=null?x:new Gs(this,f);return b.staff.addObject(b),b.updateClefImage(e,s),b.updateMeasureNumber(a&&g===0),b.updateKeySignature(c),b.updateTimeSignature(u),b.updateTempo(h&&g===0),b}):this.signatures=[],this.signatures.forEach(f=>f.layout(e)),this.tabStringNotes.length=0,this===this.row.getFirstMeasure()&&this.row.getTabs().forEach(f=>{for(let g=0;g<6;g++){let x=f.getTuningStrings()[g].format(1,1),b=new ht(this,{text:x,scale:.8},1,.5);b.layout(e),b.offset(this.tabStringNotesWidth*.8,f.getStringY(g)),this.tabStringNotes.push(b),f.addObject(b)}}),this.barLineLeft.layout(e);let l=new Bs(this);this.columns.forEach(f=>f.layout(e,l)),this.barLineRight.layout(e),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.layout(e);let p=e.unitSize;this.leftSolidAreaWidth=this.tabStringNotesWidth+Math.max(0,...this.signatures.map(f=>f.getRect().width))+this.barLineLeft.getRect().width+p,this.rightSolidAreaWidth=p+this.barLineRight.getRect().width,this.minColumnsAreaWidth=0,this.columns.forEach(f=>this.minColumnsAreaWidth+=f.getRect().width),this.minColumnsAreaWidth=Math.max(this.minColumnsAreaWidth,Nn.MinFlexContentWidth*r)}layoutWidth(e,r){if(!this.needLayout)return;r=Math.max(r,this.getMinWidth()),this.rect=new F,this.rect.centerX=this.rect.left+r/2,this.rect.right=this.rect.left+r;let i;this.signatures.forEach(p=>{i=p.getRect(),p.offset(this.rect.left+this.tabStringNotesWidth-i.left,-i.centerY)});let n=Math.max(0,...this.signatures.map(p=>p.getRect().width));i=this.barLineLeft.getRect(),this.barLineLeft.offset(this.rect.left+this.tabStringNotesWidth+n-i.left,-i.centerY),i=this.barLineRight.getRect(),this.barLineRight.offset(this.rect.right-i.right,-i.centerY),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.offset(this.barLineRight.getRect().left,this.barLineRight.getRect().top);let s=this.rect.left+this.leftSolidAreaWidth,c=this.rect.right-this.rightSolidAreaWidth-s,u=I.Math.sum(this.columns.map(p=>p.getRect().width)),h=c/u,l=s;this.columns.forEach(p=>{i=p.getRect();let d=l+i.leftw*h;p.offset(d-i.centerX,-i.centerY),l+=i.width*h})}layoutConnectives(e){this.needLayout&&this.connectives.forEach(r=>{r.layout(e),this.rect.top=Math.min(this.rect.top,r.getRect().top),this.rect.bottom=Math.max(this.rect.bottom,r.getRect().bottom)})}layoutBeams(e){this.needLayout&&this.beamGroups.forEach(r=>{r.layout(e),this.rect.top=Math.min(this.rect.top,r.getRect().top),this.rect.bottom=Math.max(this.rect.bottom,r.getRect().bottom)})}alignStemsToBeams(){this.beamGroups.forEach(e=>e.updateStemTips())}layoutDone(){this.columns.forEach(e=>e.layoutDone()),this.needLayout=!1}updateRect(){this.rect.top=Math.min(...this.signatures.map(e=>e.getRect().top),...this.tabStringNotes.map(e=>e.getRect().top),this.barLineLeft.getRect().top,...this.columns.filter(e=>!e.isEmpty()).map(e=>e.getRect().top),this.barLineRight.getRect().top,...this.connectives.map(e=>e.getRect().top),...this.beamGroups.filter(e=>!e.isEmpty()).map(e=>e.getRect().top)),this.rect.bottom=Math.max(...this.signatures.map(e=>e.getRect().bottom),...this.tabStringNotes.map(e=>e.getRect().bottom),this.barLineLeft.getRect().bottom,...this.columns.filter(e=>!e.isEmpty()).map(e=>e.getRect().bottom),this.barLineRight.getRect().bottom,...this.connectives.map(e=>e.getRect().bottom),...this.beamGroups.filter(e=>!e.isEmpty()).map(e=>e.getRect().bottom)),this.row.getNotationLines().forEach(e=>{this.rect.top=Math.min(this.rect.top,e.calcTop()),this.rect.bottom=Math.max(this.rect.bottom,e.calcBottom())})}offset(e,r){this.signatures.forEach(i=>i.offset(e,0)),this.tabStringNotes.forEach(i=>i.offset(e,0)),this.barLineLeft.offset(e,r),this.columns.forEach(i=>i.offset(e,r)),this.barLineRight.offset(e,r),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.offset(e,r),this.connectives.forEach(i=>i.offset(e,0)),this.beamGroups.forEach(i=>i.offset(e,r)),this.layoutObjects.forEach(i=>i.musicObj.offset(e,r)),this.rect.offsetInPlace(e,r),this.requestRectUpdate()}draw(e){e.drawDebugRect(this.getRect());let r=this.getStaffLineLeft(),i=this.getStaffLineRight(),n=a=>e.drawLine(r,a,i,a),{row:s}=this;s.getNotationLines().forEach(a=>{if(a instanceof Tt)for(let c=a.bottomLineDiatonicId;c<=a.topLineDiatonicId;c+=2)n(a.getDiatonicIdY(c));else for(let c=0;c<6;c++)n(a.getStringY(c))}),this.signatures.forEach(a=>a.draw(e)),this.tabStringNotes.forEach(a=>a.draw(e)),this.barLineLeft.draw(e),this.columns.forEach(a=>a.draw(e)),this.barLineRight.draw(e),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.draw(e),this.connectives.forEach(a=>a.draw(e)),this.layoutObjects.forEach(a=>a.musicObj.draw(e)),this.beamGroups.forEach(a=>a.draw(e))}};m(Nn,"MinFlexContentWidth",10);var bo=Nn;var Zy=[1,6],Xy=[2,3,4,5,6];function Jy(o){for(;o;){if(o instanceof bo)return o;o=o.getParent()}throw new E(6,"Parent measure is required but not found!")}var Qs=class{constructor(t,e,r){this.musicObj=t;this.layoutGroupId=e;this.verticalPos=r;m(this,"anchor");m(this,"measure");m(this,"row");m(this,"layoutGroup");m(this,"positionResolved",!0);this.measure=Jy(t),this.row=this.measure.row;let i=this.musicObj.getParent();if(!i)throw new E(6,"Parent music object is required as an anchor.");this.anchor=i,this.anchor.addAnchoredLayoutObject(this),this.layoutGroup=this.measure.doc.getLayoutGroup(e),this.layoutGroup.add(this)}clearPositionResolved(){this.positionResolved=!1}setPositionResolved(){this.positionResolved=!0}isPositionResolved(){return this.positionResolved}resolveClosestToStaffY(t){let{musicObj:e,measure:r,verticalPos:i}=this,{row:n}=r,s=n.hasStaff?n.getTopStaff().getTopLineY():n.getRect().centerY,a=n.hasStaff?n.getBottomStaff().getBottomLineY():n.getRect().centerY,c=t.unitSize*2,u=i===1?a+c+e.getRect().toph:s-c-e.getRect().bottomh,h=r.getStaticObjects(),l=e.getShapeRects();return h.forEach(p=>{let d=p.getShapeRects();l.forEach(f=>{d.forEach(g=>{F.overlapX(f,g)&&(u=i===1?Math.max(u,g.bottom+f.toph+f.centerY):Math.min(u,g.top-f.bottomh-f.centerY))})})}),u}getTextContent(){if(this.musicObj instanceof ht||this.musicObj instanceof Ze)return this.musicObj.getText()}},Zs=class{constructor(t){this.layoutGroupId=t;m(this,"layoutObjectTable",[]);m(this,"rowAlign");m(this,"widensColumn");this.layoutObjectTable[0]=[],this.layoutObjectTable[1]=[],this.rowAlign=Xy.indexOf(t)>=0,this.widensColumn=Zy.indexOf(t)>=0}getLayoutObjects(t){return this.layoutObjectTable[t]}add(t){this.layoutObjectTable[t.verticalPos].push(t)}remove(t){this.layoutObjectTable.forEach(e=>{let r=e.indexOf(t);r>=0&&e.splice(r,1)})}clearPositionAndLayout(t){this.layoutObjectTable.forEach(e=>{e.forEach(r=>{r.clearPositionResolved(),r.musicObj.layout(t)})})}};var Xs=class extends et{constructor(e,r,i){super(e);this.doc=e;this.prevRow=r;this.scoreConfig=i;m(this,"nextRow");m(this,"minWidth",0);m(this,"notationLines");m(this,"staves");m(this,"tabs");m(this,"measures",[]);m(this,"needLayout",!0);m(this,"mi");this.notationLines=this.createNotationLines(),this.staves=this.notationLines.filter(n=>n instanceof Tt),this.tabs=this.notationLines.filter(n=>n instanceof zr),this.prevRow&&(this.prevRow.nextRow=this),this.mi=new Rn(this)}getMusicInterface(){return this.mi}createNotationLines(){let e=this.scoreConfig.map(r=>r.type==="staff"?new Tt(this,r):new zr(this,r));for(let r=0;r<e.length-1;r++){let i=e[r],n=e[r+1];i instanceof Tt&&i.isGrand()&&i.staffConfig.clef==="G"&&n instanceof Tt&&n.isGrand()&&n.staffConfig.clef==="F"&&(i.joinGrandStaff(n),n.joinGrandStaff(i))}return e}getNotationLines(){return this.notationLines}getStaves(){return this.staves}getTabs(){return this.tabs}get hasStaff(){return this.staves.length>0}get hasTab(){return this.tabs.length>0}getTopStaff(){let e=this.staves[0];if(e)return e;throw new E(6,"Top staff is required!")}getBottomStaff(){let e=this.staves[this.staves.length-1];if(e)return e;throw new E(6,"Bottom staff is required!")}getStaff(e){G.validateDiatonicId(e);for(let r=0;r<this.notationLines.length;r++){let i=this.notationLines[r];if(i instanceof Tt&&i.containsDiatonicId(e))return i}}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let i=0;i<this.measures.length;i++){let n=this.measures[i].pick(e,r);if(n.length>0)return[this,...n]}for(let i=0;i<this.notationLines.length;i++){let n=this.notationLines[i].pick(e,r);if(n.length>0)return[this,...n]}return[this]}getConnectivesContentRect(){let e=this.getRect(),r=this.getFirstMeasure(),i=r?r.getColumnsContentRect().left:e.left;return new F(i,(i+e.right)/2,e.right,e.top,e.centerY,e.bottom)}getDiatonicIdAt(e){for(let r=0;r<this.notationLines.length;r++){let i=this.notationLines[r],n=i instanceof Tt?i.getDiatonicIdAt(e):void 0;if(n!==void 0)return n}}addMeasure(e){this.measures.push(e)}getMeasures(){return this.measures}isFirstRow(){return this===this.doc.getFirstRow()}isLastRow(){return this===this.doc.getLastRow()}getPrevRow(){return this.prevRow}getNextRow(){return this.nextRow}getFirstMeasure(){return this.measures.length>0?this.measures[0]:void 0}getLastMeasure(){return this.measures.length>0?this.measures[this.measures.length-1]:void 0}getMinWidth(){return this.minWidth}requestLayout(){this.needLayout||(this.needLayout=!0,this.doc.requestLayout())}layout(e){this.needLayout&&(this.requestRectUpdate(),this.notationLines.forEach(r=>{r.removeObjects(),r.layoutHeight(e)}),this.rect=new F(0,0,0,0),this.minWidth=0,this.measures.forEach(r=>{r.layout(e),this.rect.expandInPlace(new F(0,0,r.getRect().top,r.getRect().bottom)),this.minWidth+=r.getMinWidth(),this.minWidth+=r.getPostMeasureBreakWidth()}))}layoutWidth(e,r){if(!this.needLayout)return;let i=Math.max(r,this.minWidth);this.rect.centerX=this.rect.left+i/2,this.rect.right=this.rect.left+i,this.notationLines.forEach(u=>u.layoutWidth(e));let n=i,s=0;this.measures.forEach(u=>{n-=u.getSolidAreaWidth()+u.getPostMeasureBreakWidth(),s+=u.getMinColumnsAreaWidth()});let a=n/s,c=0;this.measures.forEach(u=>{let h=u.getSolidAreaWidth()+u.getMinColumnsAreaWidth()*a;u.layoutWidth(e,h);let l=u.getRect();u.offset(c-l.left,-l.centerY),c+=l.width,c+=u.getPostMeasureBreakWidth()}),this.measures.forEach(u=>{u.layoutConnectives(e),u.layoutBeams(e)})}alignStemsToBeams(){this.measures.forEach(e=>e.alignStemsToBeams())}layoutPositionLines(e){let{unitSize:r}=e;for(let n=1;n<this.notationLines.length;n++){let s=this.notationLines[n-1],a=this.notationLines[n];if(s instanceof Tt&&s.isGrand()&&s.staffConfig.clef==="G"&&a instanceof Tt&&a.isGrand()&&a.staffConfig.clef==="F"){let c=r*6;a.offset(0,s.getBottomLineY()-a.getTopLineY()+c)}else{let c=r*3;a.offset(0,s.calcBottom()-a.calcTop()+c)}}this.requestRectUpdate(),this.measures.forEach(n=>{n.requestRectUpdate(),n.getBarLineLeft().requestRectUpdate(),n.getBarLineRight().requestRectUpdate(),n.getColumns().forEach(s=>{s.requestRectUpdate(),oe().forEach(a=>{var c;return(c=s.getVoiceSymbol(a))==null?void 0:c.requestRectUpdate()})})});let i=this.getNotationLines();this.rect.top=i[0].calcTop(),this.rect.bottom=i[i.length-1].calcBottom(),this.alignStemsToBeams()}updateRect(){}setObjectY(e,r){if(r===void 0)return;let{measure:i,musicObj:n}=e;n.offset(0,r-n.getRect().centerY),e.setPositionResolved(),i.getRect().expandInPlace(n.getRect()),this.rect.expandInPlace(i.getRect())}alignObjectsY(e,r){r=r.filter(n=>!n.isPositionResolved());let i;r.forEach(n=>{let s=n.resolveClosestToStaffY(e);i=n.verticalPos===1?Math.max(s,i!=null?i:s):Math.min(s,i!=null?i:s)}),r.forEach(n=>this.setObjectY(n,i))}layoutLayoutGroup(e,r,i){let n=r.getLayoutObjects(i).filter(s=>s.row===this&&!s.isPositionResolved());n.forEach(s=>{let{musicObj:a,anchor:c}=s;a instanceof xi||a instanceof xo?a.layoutFitToMeasure(e):a.offset(c.getRect().centerX-a.getRect().centerX,0)}),r.rowAlign?this.alignObjectsY(e,n):n.forEach(s=>{let a=s.musicObj.getLink();if(a&&a.getHead()===s.musicObj){let c=[a.getHead(),...a.getTails()],u=n.filter(h=>c.some(l=>l===h.musicObj));this.alignObjectsY(e,u)}else this.alignObjectsY(e,[s])})}layoutPadding(e){let r=e.unitSize/2;this.rect.left-=r,this.rect.right+=r,this.rect.top-=r,this.rect.bottom+=r}layoutDone(){this.measures.forEach(e=>e.layoutDone()),this.needLayout=!1}offset(e,r){this.measures.forEach(i=>i.offset(e,r)),this.rect.offsetInPlace(e,r),this.notationLines.forEach(i=>i.offset(e,r))}draw(e){let r=e.getCanvasContext();if(r){if(e.drawDebugRect(this.getRect()),r.save(),r.rect(this.getRect().left,this.getRect().top,this.getRect().width,this.getRect().height),r.clip(),this.getFirstMeasure()&&this.notationLines.length>1||this.notationLines.length===1&&this.notationLines[0]instanceof zr){let i=this.getFirstMeasure().getStaffLineLeft(),n=[],s=[];this.notationLines.forEach(u=>{u instanceof Tt?(n.push(u.getTopLineY()),s.push(u.getBottomLineY())):(n.push(u.getTopStringY()),s.push(u.getBottomStringY()))});let a=Math.min(...n),c=Math.max(...s);e.drawLine(i,a,i,c)}this.measures.forEach(i=>i.draw(e)),this.notationLines.forEach(i=>i.draw(e)),r.restore()}}};var Js=class extends et{constructor(e,r,i,n){super(e);this.title=r;this.composer=i;this.arranger=n;m(this,"titleText");m(this,"composerText");m(this,"arrangerText");m(this,"mi");this.mi=new En(this),this.titleText=this.title?new ht(this,{text:this.title,scale:2},.5,0):void 0,this.composerText=this.composer?new ht(this,this.composer,1,0):void 0,this.arrangerText=this.arranger?new ht(this,"Arr.: "+this.arranger,1,0):void 0}getMusicInterface(){return this.mi}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.titleText){let i=this.titleText.pick(e,r);if(i)return[this,...i]}if(this.composerText){let i=this.composerText.pick(e,r);if(i)return[this,...i]}if(this.arrangerText){let i=this.arrangerText.pick(e,r);if(i)return[this,...i]}return[this]}layoutWidth(e,r){let i=0;this.rect=new F(0,r,0,0),this.titleText&&(this.titleText.layout(e),this.titleText.offset(r/2,i),i+=this.titleText.getRect().height,this.rect.expandInPlace(this.titleText.getRect())),this.composerText&&(this.composerText.layout(e),this.composerText.offset(r,i),i+=this.composerText.getRect().height,this.rect.expandInPlace(this.composerText.getRect())),this.arrangerText&&(this.arrangerText.layout(e),this.arrangerText.offset(r,i),i+=this.arrangerText.getRect().height,this.rect.expandInPlace(this.arrangerText.getRect()))}offset(e,r){this.titleText&&this.titleText.offset(e,r),this.composerText&&this.composerText.offset(e,r),this.arrangerText&&this.arrangerText.offset(e,r),this.rect.offsetInPlace(e,r)}draw(e){this.titleText&&this.titleText.draw(e),this.composerText&&this.composerText.draw(e),this.arrangerText&&this.arrangerText.draw(e)}};var Ks=class extends et{constructor(){super(void 0);m(this,"needLayout",!0);m(this,"renderer");m(this,"rows",[]);m(this,"measures",[]);m(this,"measuresPerRow",1/0);m(this,"curScoreConfig",[{type:"staff",clef:"G"}]);m(this,"header");m(this,"layoutGroups",[]);m(this,"newRowRequested",!1);m(this,"allConnectiveProps",[]);m(this,"mi");this.mi=new Hr(this)}getMusicInterface(){return this.mi}setScoreConfiguration(e){if(I.Is.isEnumValue(e,Cr))switch(e){default:case 1:this.curScoreConfig=[{type:"staff",clef:"G"}];break;case 2:this.curScoreConfig=[{type:"staff",clef:"F"}];break;case 3:this.curScoreConfig=[{type:"staff",clef:"G",isGrand:!0},{type:"staff",clef:"F",isGrand:!0}];break;case 4:this.curScoreConfig=[{type:"staff",clef:"G",isOctaveDown:!0}];break;case 8:this.curScoreConfig=[{type:"tab",tuning:"Standard"}];break;case 12:this.curScoreConfig=[{type:"staff",clef:"G",isOctaveDown:!0},{type:"tab",tuning:"Standard"}];break}else I.Is.isArray(e)?this.curScoreConfig=e:this.curScoreConfig=[e];for(let r=0;r<this.curScoreConfig.length-1;r++){let i=this.curScoreConfig[r],n=this.curScoreConfig[r+1];i.type==="staff"&&n.type==="staff"?i.clef==="G"&&i.isGrand&&n.clef==="F"&&n.isGrand?(i.minNote="C4",n.maxNote="B3",i.isOctaveDown=n.isOctaveDown=!1):i.isGrand=n.isGrand=!1:i.type==="staff"?i.isGrand=!1:n.type==="staff"&&(n.isGrand=!1)}this.requestNewRow()}setMeasuresPerRow(e){this.measuresPerRow=e}addConnectiveProps(e){this.allConnectiveProps.push(e)}getLayoutGroup(e){let r=this.layoutGroups[e];return r||(r=this.layoutGroups[e]=new Zs(e)),r}setRenderer(e){if(this.renderer===e)return;let r=this.renderer;this.renderer=e,r&&r.setDocument(void 0),e&&e.setDocument(this.mi),this.requestFullLayout()}setHeader(e,r,i){this.header=new Js(this,e,r,i),this.requestLayout()}getTitle(){var e;return(e=this.header)==null?void 0:e.title}getComposer(){var e;return(e=this.header)==null?void 0:e.composer}getArranger(){var e;return(e=this.header)==null?void 0:e.arranger}hasSingleMeasure(){return this.measures.length===1}getFirstMeasure(){return this.measures.length>0?this.measures[0]:void 0}getLastMeasure(){return this.measures.length>0?this.measures[this.measures.length-1]:void 0}addNewRow(e){let r=new Xs(this,e,this.curScoreConfig);return this.rows.push(r),r}getFirstRow(){return this.rows.length===0?this.addNewRow(void 0):this.rows[0]}getLastRow(){return this.rows.length===0?this.addNewRow(void 0):this.rows[this.rows.length-1]}requestNewRow(){this.newRowRequested=!0}addMeasure(){let e=this.rows[this.rows.length-1];(!e||this.newRowRequested&&e.getMeasures().length>0||e.getMeasures().length>=this.measuresPerRow)&&(e=this.addNewRow(e),this.newRowRequested=!1);let r=new bo(e);return this.measures.push(r),e.addMeasure(r),this.requestLayout(),r}getVoiceSymbols(e){let r=[];return this.forEachMeasure(i=>r=r.concat(i.getVoiceSymbols(e))),r}removeLayoutObjects(e){this.forEachMeasure(r=>r.removeLayoutObjects(e))}forEachMeasure(e){let r=this.getFirstMeasure();for(;r;)e(r),r=r.getNextMeasure()}resetMeasures(){this.measures.forEach(e=>e.resetPassCount())}updateCursorRect(e){this.renderer&&this.renderer.updateCursorRect(e)}requestLayout(){this.needLayout=!0}requestFullLayout(){this.rows.forEach(e=>e.requestLayout()),this.forEachMeasure(e=>{e.getColumns().forEach(r=>r.requestLayout()),e.requestLayout()}),this.requestLayout()}layout(){if(!this.needLayout)return;let{renderer:e}=this;if(!e)return;let{unitSize:r}=e;this.forEachMeasure(s=>s.createBeams()),this.forEachMeasure(s=>s.createExtensions()),this.allConnectiveProps.forEach(s=>s.removeConnectives()),this.allConnectiveProps.forEach(s=>s.createConnectives());let i=this.layoutGroups.filter(s=>!!s);i.forEach(s=>s.clearPositionAndLayout(e)),this.rows.forEach(s=>s.layout(e));let n=Math.max(ct.DocumentMinWidth*r,...this.rows.map(s=>1.4*s.getMinWidth()));this.rows.forEach(s=>s.layoutWidth(e,n)),this.rows.forEach(s=>s.layoutPositionLines(e)),i.forEach(s=>{this.rows.forEach(a=>{a.layoutLayoutGroup(e,s,0),a.layoutLayoutGroup(e,s,1)})}),this.rows.forEach(s=>s.layoutPadding(e)),this.rect=new F,this.header&&(this.header.layoutWidth(e,n),this.rect.expandInPlace(this.header.getRect())),this.rows.forEach(s=>{s.offset(-this.rect.left,this.rect.bottom+r*2-s.getRect().top),this.rect.expandInPlace(s.getRect())}),this.rows.forEach(s=>s.layoutDone()),this.needLayout=!1}drawContent(){let{renderer:e}=this;e&&(this.rows.forEach(r=>r.draw(e)),this.header&&this.header.draw(e))}pickStaffPosAt(e,r){if(this.rect.contains(e,r))for(let i=0;i<this.rows.length;i++){let n=this.rows[i];if(!n.hasStaff||!n.getRect().contains(e,r))continue;let s=n.getDiatonicIdAt(r);if(s!==void 0)return{scoreRow:n,diatonicId:s}}}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.header){let i=this.header.pick(e,r);if(i.length>0)return[this,...i]}for(let i=0;i<this.rows.length;i++){let n=this.rows[i].pick(e,r);if(n.length>0)return[this,...n]}return[this]}};function z(o,t,e){if(!o)throw new E(6,`Invalid arg: ${t} = ${e}`)}function cu(o){if(typeof o!="string")return!1;{let t=G.parseNote(o);return t!==void 0&&t.octave!==void 0}}function $s(o){return I.Is.isNumber(o)&&oe().indexOf(o)>=0}function lm(o){return I.Is.isNumber(o)&&Kc().indexOf(o)>=0}function pm(o){z(I.Is.isObject(o),"staffConfig",o),z(o.type==="staff","staffConfig.type",o.type),z(I.Is.isEnumValue(o.clef,Wr),"staffConfig.clef",o.clef),z(I.Is.isBooleanOrUndefined(o.isOctaveDown),"staffConfig.isOctaveDown",o.isOctaveDown),z(I.Is.isUndefined(o.minNote)||cu(o.minNote),"staffConfig.minNote",o.minNote),z(I.Is.isUndefined(o.maxNote)||cu(o.maxNote),"staffConfig.maxNote",o.maxNote),z(I.Is.isUndefined(o.voiceIds)||I.Is.isArray(o.voiceIds)&&o.voiceIds.every(t=>I.Is.isNumber(t)),"staffConfig.voiceIds",o.voiceIds),z(I.Is.isBooleanOrUndefined(o.isGrand),"staffConfig.isGrand",o.isGrand)}function dm(o){z(I.Is.isObject(o),"tabConfig",o),z(o.type==="tab","tabConfig.type",o.type),typeof o.tuning=="string"?z(Oo.includes(o.tuning),"tabConfig.tuning",o.tuning):I.Is.isArray(o.tuning)&&z(o.tuning.length===6&&o.tuning.every(t=>cu(t)),"tabConfig.tuning",o.tuning),z(I.Is.isUndefined(o.voiceIds)||I.Is.isArray(o.voiceIds)&&o.voiceIds.every(t=>I.Is.isNumber(t)),"tabConfig.voiceIds",o.voiceIds)}function mm(o){z(I.Is.isObject(o),"noteOptions",o),z(I.Is.isBooleanOrUndefined(o.dotted),"noteOptions.dotted",o.dotted),z(I.Is.isEnumValueOrUndefined(o.stem,je),"noteOptions.stem",o.stem),z(I.Is.isStringOrUndefined(o.color),"noteOptions.color",o.color),z(I.Is.isBooleanOrUndefined(o.arpeggio)||I.Is.isEnumValue(o.arpeggio,Ur),"noteOptions.arpeggio",o.arpeggio),z(I.Is.isBooleanOrUndefined(o.staccato),"noteOptions.staccato",o.staccato),z(I.Is.isBooleanOrUndefined(o.diamond),"noteOptions.diamond",o.diamond),z(I.Is.isBooleanOrUndefined(o.triplet),"noteOptions.triplet",o.triplet),z(I.Is.isUndefined(o.string)||lm(o.string)||I.Is.isArray(o.string)&&o.string.length>0&&o.string.every(t=>lm(t)),"noteOptions.string",o.string)}function Ky(o){z(I.Is.isObject(o),"restOptions",o),z(I.Is.isBooleanOrUndefined(o.dotted),"restOptions.dotted",o.dotted),z(I.Is.isStringOrUndefined(o.staffPos)||I.Is.isInteger(o.staffPos)||o.staffPos instanceof G,"restOptions.staffPos",o.staffPos),z(I.Is.isStringOrUndefined(o.color),"restOptions.color",o.color),z(I.Is.isBooleanOrUndefined(o.hide),"restOptions.hide",o.hide),z(I.Is.isBooleanOrUndefined(o.triplet),"restOptions.triplet",o.triplet)}var Ir=class{constructor(){m(this,"doc");this.doc=new Ks}setScoreConfiguration(t){return I.Is.isEnumValue(t,Cr)||(I.Is.isObject(t)&&t.type==="staff"?pm(t):I.Is.isObject(t)&&t.type==="tab"?dm(t):I.Is.isArray(t)?(z(t.length>0,"config",t),t.forEach(e=>{I.Is.isObject(e)&&e.type==="staff"?pm(e):I.Is.isObject(e)&&e.type==="tab"?dm(e):z(!1,"config",t)})):z(!1,"config",t)),this.doc.setScoreConfiguration(t),this}getMeasure(){var t;return(t=this.doc.getLastMeasure())!=null?t:this.doc.addMeasure()}getDocument(){return this.doc.getMusicInterface()}setHeader(t,e,r){return z(I.Is.isStringOrUndefined(t),"title",t),z(I.Is.isStringOrUndefined(e),"composer",e),z(I.Is.isStringOrUndefined(r),"arranger",r),this.doc.setHeader(t,e,r),this}setMeasuresPerRow(t){return z(I.Is.isIntegerGte(t,1)||t===1/0,"measuresPerRow",t),this.doc.setMeasuresPerRow(t),this}addMeasure(){return this.doc.addMeasure(),this}setKeySignature(...t){return z(t[0]instanceof Er||t[0]instanceof Le||I.Is.isString(t[0])&&I.Is.isEnumValue(t[1],Je),"keySignature",t),this.getMeasure().setKeySignature(...t),this}setTimeSignature(t){return z(t instanceof pr||I.Is.isString(t),"timeSignature",t),this.getMeasure().setTimeSignature(t),this}setTempo(t,e,r){return z(I.Is.isIntegerGte(t,1),"beatsPerMinute",t),e===void 0?z(I.Is.isUndefined(r),"dotted",r):(z(I.Is.isEnumValue(e,Vt),"beatLength",e),z(I.Is.isBooleanOrUndefined(r),"dotted",r)),this.getMeasure().setTempo(t,e,r),this}addNote(t,e,r,i){return z($s(t),"voiceId",t),z(e instanceof G||I.Is.isString(e),"note",e),z(I.Is.isEnumValue(r,Vt),"noteLength",r),i!==void 0&&mm(i),this.getMeasure().addNoteGroup(t,[e],r,i),this}addChord(t,e,r,i){return z($s(t),"voiceId",t),z(I.Is.isArray(e)&&e.length>=1&&e.every(n=>n instanceof G||I.Is.isString(n)),"notes",e),z(I.Is.isEnumValue(r,Vt),"noteLength",r),i!==void 0&&mm(i),this.getMeasure().addNoteGroup(t,e,r,i),this}addRest(t,e,r){return z($s(t),"voiceId",t),z(I.Is.isEnumValue(e,Vt),"restLength",e),r!==void 0&&Ky(r),this.getMeasure().addRest(t,e,r),this}addFermata(t){return z(I.Is.isEnumValueOrUndefined(t,en),"fermata",t),this.getMeasure().addFermata(t!=null?t:0),this}addNavigation(t,...e){return z(I.Is.isEnumValue(t,Ie),"navigation",t),t===9&&e.length>0?z(I.Is.isIntegerGte(e[0],1),"playCount",e[0]):t===10&&e.length>0&&z(e.every(r=>I.Is.isIntegerGte(r,1)),"passages",e),this.getMeasure().addNavigation(t,...e),this}addConnective(t,...e){if(z(I.Is.isEnumValue(t,_r),"connective",t),t===0){z(I.Is.isUndefined(e[0])||I.Is.isInteger(e[0])||I.Is.isEnumValue(e[0],cr),"tieSpan",e[0]),z(I.Is.isEnumValueOrUndefined(e[1],ve),"noteAnchor",e[1]);let r=e[0],i=e[1];this.getMeasure().addConnective(t,r,i)}else if(t===1){z(I.Is.isUndefined(e[0])||I.Is.isInteger(e[0]),"slurSpan",e[0]),z(I.Is.isEnumValueOrUndefined(e[1],ve),"noteAnchor",e[1]);let r=e[0],i=e[1];this.getMeasure().addConnective(t,r,i)}else if(t===2){z(I.Is.isEnumValueOrUndefined(e[0],ve),"noteAnchor",e[0]);let r=e[0];this.getMeasure().addConnective(t,r)}return this}addLabel(t,e){return z(I.Is.isEnumValue(t,po),"label",t),z(I.Is.isString(e),"text",e),this.getMeasure().addLabel(t,e),this}addAnnotation(t,e){return z(I.Is.isEnumValue(t,ui),"annotation",t),z(I.Is.isString(e),"text",e),this.getMeasure().addAnnotation(t,e),this}addExtension(t,e){return z(I.Is.isIntegerGte(t,0)||t===1/0||I.Is.isEnumValue(t,Vt),"extendionLength",t),z(I.Is.isBooleanOrUndefined(e),"extensionVisible",e),this.getMeasure().addExtension(t,e!=null?e:!0),this}endSong(){return this.getMeasure().endSong(),this}endSection(){return this.getMeasure().endSection(),this}endRow(){var t;return(t=this.doc.getLastMeasure())==null||t.endRow(),this}completeRests(t){return z(I.Is.isUndefined(t)||$s(t),"voiceId",t),this.getMeasure().completeRests(t),this}addScaleArpeggio(t,e,r){z(I.Is.isString(e),"bottomNote",e),z(I.Is.isIntegerGte(r,1),"numOctaves",r);let i=this.getMeasure().getTimeSignature(),n=t.getScaleNotes(e,r);for(let s=0;s<n.length;s++){s%i.beatCount===0&&s>0&&this.addMeasure();let a=n[s];this.addNote(0,a,i.beatLength),this.addLabel(0,a.formatOmitOctave(1))}return this}};var Mn=class{constructor(t){this.type=t}},hi=class extends Mn{constructor(e,r,i,n){super(e);this.renderer=r;this.scoreRow=i;this.diatonicId=n}},li=class extends Mn{constructor(e,r,i){super(e);this.renderer=r;this.objects=i;if(arguments.length===0)throw new E(6,"Empty array in score object event!")}get topObject(){return this.objects[this.objects.length-1]}findObject(e){return this.objects.find(r=>e(r))}};function ge(o,t,e){if(!o)throw new E(6,`Invalid arg: ${t} = ${e}`)}function Dn(o,t){if(o==null)throw new TypeError(t);return o}function $y(o){return I.Is.isNumber(o)&&oe().indexOf(o)>=0}var bt=class{constructor(t){this.name=t}getParent(){var t;return(t=this.getMusicObject().getParent())==null?void 0:t.getMusicInterface()}},ta=class ta extends bt{constructor(e){super(ta.Name);this.obj=e}getMusicObject(){return this.obj}getAccidental(){return this.obj.accidental}};m(ta,"Name","Accidental");var sn=ta,ea=class ea extends bt{constructor(e){super(ea.Name);this.obj=e}getMusicObject(){return this.obj}};m(ea,"Name","Connective");var Tn=ea,ra=class ra extends bt{constructor(e){super(ra.Name);this.obj=e}getMusicObject(){return this.obj}};m(ra,"Name","Arpeggio");var un=ra,ia=class ia extends bt{constructor(e){super(ia.Name);this.obj=e}getMusicObject(){return this.obj}};m(ia,"Name","BeamGroup");var dn=ia,oa=class oa extends bt{constructor(e){super(oa.Name);this.obj=e}getMusicObject(){return this.obj}};m(oa,"Name","StaffBeamGroup");var mn=oa,na=class na extends bt{constructor(e){super(na.Name);this.obj=e}getMusicObject(){return this.obj}getTitle(){return this.obj.getTitle()}getComposer(){return this.obj.getComposer()}getArranger(){return this.obj.getArranger()}play(e){return ge(I.Is.isFunctionOrUndefined(e),"playStateChangeListener",e),new Pn(this,e).play()}};m(na,"Name","Document");var Hr=na,sa=class sa extends bt{constructor(e){super(sa.Name);this.obj=e}getMusicObject(){return this.obj}getPassages(){return this.obj.passages}hasPassage(e){return ge(I.Is.isIntegerGte(e,1),"passage",e),this.obj.hasPassage(e)}};m(sa,"Name","Ending");var In=sa,aa=class aa extends bt{constructor(e){super(aa.Name);this.obj=e}getMusicObject(){return this.obj}};m(aa,"Name","Fermata");var Sn=aa,ca=class ca extends bt{constructor(e){super(ca.Name);this.obj=e}getMusicObject(){return this.obj}getTitle(){return this.obj.title}getComposer(){return this.obj.composer}getArranger(){return this.obj.arranger}};m(ca,"Name","Header");var En=ca,ua=class ua extends bt{constructor(e){super(ua.Name);this.obj=e}getMusicObject(){return this.obj}};m(ua,"Name","Image");var nn=ua,ha=class ha extends bt{constructor(e){super(ha.Name);this.obj=e}getMusicObject(){return this.obj}getMeasureNumber(){return this.obj.getMeasureNumber()}getRhythmColumns(){return this.obj.getColumns().map(e=>e.getMusicInterface())}};m(ha,"Name","Measure");var On=ha,la=class la extends bt{constructor(e){super(la.Name);this.obj=e}getMusicObject(){return this.obj}};m(la,"Name","BarLineRight");var Cn=la,pa=class pa extends bt{constructor(e){super(pa.Name);this.obj=e}getMusicObject(){return this.obj}};m(pa,"Name","BarLineLeft");var _n=pa,da=class da extends bt{constructor(e){super(da.Name);this.obj=e}getMusicObject(){return this.obj}};m(da,"Name","StaffTabBarLine");var vn=da,ma=class ma extends bt{constructor(e){super(ma.Name);this.obj=e}getMusicObject(){return this.obj}getNotes(){return this.obj.notes}getRhythmProps(){return this.obj.rhythmProps}};m(ma,"Name","NoteGroup");var fn=ma,fa=class fa extends bt{constructor(e){super(fa.Name);this.obj=e}getMusicObject(){return this.obj}getNoteGroup(){return this.obj.noteGroup.getMusicInterface()}};m(fa,"Name","StaffNoteGroup");var gn=fa,ga=class ga extends bt{constructor(e){super(ga.Name);this.obj=e}getMusicObject(){return this.obj}getNoteGroup(){return this.obj.noteGroup.getMusicInterface()}};m(ga,"Name","TabNoteGroup");var xn=ga,xa=class xa extends bt{constructor(e){super(xa.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmProps(){return this.obj.rhythmProps}};m(xa,"Name","Rest");var hn=xa,ya=class ya extends bt{constructor(e){super(ya.Name);this.obj=e}getMusicObject(){return this.obj}getRest(){return this.obj.rest.getMusicInterface()}};m(ya,"Name","StaffRest");var ln=ya,ba=class ba extends bt{constructor(e){super(ba.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmSymbol(e){var r;return ge($y(e),"voiceId",e),(r=this.obj.getVoiceSymbol(e))==null?void 0:r.getMusicInterface()}};m(ba,"Name","RhythmColumn");var yn=ba,Aa=class Aa extends bt{constructor(e){super(Aa.Name);this.obj=e}getMusicObject(){return this.obj}getMeasures(){return this.obj.getMeasures().map(e=>e.getMusicInterface())}};m(Aa,"Name","ScoreRow");var Rn=Aa,Ca=class Ca extends bt{constructor(e){super(Ca.Name);this.obj=e}getMusicObject(){return this.obj}};m(Ca,"Name","Staff");var rn=Ca,_a=class _a extends bt{constructor(e){super(_a.Name);this.obj=e}getMusicObject(){return this.obj}};m(_a,"Name","Tab");var on=_a,va=class va extends bt{constructor(e){super(va.Name);this.obj=e}getMusicObject(){return this.obj}};m(va,"Name","Signature");var cn=va,Ia=class Ia extends bt{constructor(e){super(Ia.Name);this.obj=e}getMusicObject(){return this.obj}};m(Ia,"Name","SpecialText");var bn=Ia,Sa=class Sa extends bt{constructor(e){super(Sa.Name);this.obj=e}getMusicObject(){return this.obj}getText(){return this.obj.getText()}};m(Sa,"Name","Text");var an=Sa,wa=class wa extends bt{constructor(e){super(wa.Name);this.obj=e}getMusicObject(){return this.obj}};m(wa,"Name","ExtensionLine");var wn=wa,kn=class kn{constructor(t,e){m(this,"player");ge(t instanceof Hr,"doc",t),ge(I.Is.isFunctionOrUndefined(e),"playStateChangeListener",e),this.player=new Ys,this.player.setDocument(t.getMusicObject()),this.player.setCursorPositionChangeListener(r=>t.getMusicObject().updateCursorRect(r)),e&&this.player.setPlayStateChnageListener(e)}static stopAll(){this.currentlyPlaying.forEach(t=>t.stop()),Jc()}play(){return kn.currentlyPlaying.add(this),this.player.play(),this}pause(){return this.player.pause(),this}stop(){return this.player.stop(),kn.currentlyPlaying.delete(this),this}};m(kn,"currentlyPlaying",new Set);var Pn=kn,uu=class{constructor(){m(this,"renderer");this.renderer=new Fs(this)}setDocument(t){return ge(I.Is.isUndefined(t)||t instanceof Hr,"doc",t),this.renderer.setDocument(t),this}setCanvas(t){return t=Dn(I.Dom.getCanvas(t),typeof t=="string"?"Cannot set renderer canvas because invalid canvas id: "+t:"Cannot set renderer canvas because given canvas is undefined."),this.renderer.setCanvas(t),this}setScoreEventListener(t){ge(I.Is.isFunctionOrUndefined(t),"scoreEventListener",t),this.renderer.setScoreEventListener(t)}hilightObject(t){this.renderer.hilightObject(t==null?void 0:t.getMusicObject())}hilightStaffPos(t){this.renderer.hilightStaffPos(t?{scoreRow:t.scoreRow.getMusicObject(),diatonicId:t.diatonicId}:void 0)}draw(){try{this.renderer.draw()}catch(t){console.log("Draw failed in music renderer."),console.log(t)}}},he=class he{constructor(){m(this,"playButton");m(this,"stopButton");m(this,"playStopButton");m(this,"pauseButton");m(this,"onPlay");m(this,"onStop");m(this,"onPlayStop");m(this,"onPause");m(this,"playLabel","Play");m(this,"stopLabel","Stop");m(this,"pauseLabel","Pause");m(this,"playState",2);m(this,"player");this.onPlay=()=>{var t;return(t=this.player)==null?void 0:t.play()},this.onStop=()=>{var t;return(t=this.player)==null?void 0:t.stop()},this.onPlayStop=()=>{var t,e;this.playState===0?(t=this.player)==null||t.stop():(e=this.player)==null||e.play()},this.onPause=()=>{var t;return(t=this.player)==null?void 0:t.pause()},this.updateButtons()}setDocument(t){return ge(I.Is.isUndefined(t)||t instanceof Hr,"doc",t),this.onStop(),t?this.player=new Pn(t,e=>{this.playState=e,this.updateButtons()}):this.player=void 0,this.updateButtons(),this}detachDocument(){this.setDocument(void 0)}updateButtons(){this.playButton&&(this.playButton.disabled=this.player?this.playState===0:!0,this.playButton.innerText=this.playLabel),this.stopButton&&(this.stopButton.disabled=this.player?this.playState===2:!0,this.stopButton.innerText=this.stopLabel),this.playStopButton&&(this.playStopButton.disabled=!this.player,this.playStopButton.innerText=this.playState===0?this.stopLabel:this.playLabel),this.pauseButton&&(this.pauseButton.disabled=this.player?this.playState!==0:!0,this.pauseButton.innerText=this.pauseLabel)}setPlayButton(t,e){return ge(I.Is.isStringOrUndefined(e),"btnLabel",e),he.removeOnClickListeners(this.playButton,this.onPlay),this.playButton=Dn(I.Dom.getButton(t),"Play button required!"),this.playLabel=e!=null?e:"Play",he.removeOnClickListeners(this.playButton,"all"),he.addOnClickListener(this.playButton,this.onPlay),this.updateButtons(),this}setStopButton(t,e){return ge(I.Is.isStringOrUndefined(e),"btnLabel",e),he.removeOnClickListeners(this.stopButton,this.onStop),this.stopButton=Dn(I.Dom.getButton(t),"Stop button required!"),this.stopLabel=e!=null?e:"Stop",he.removeOnClickListeners(this.stopButton,"all"),he.addOnClickListener(this.stopButton,this.onStop),this.updateButtons(),this}setPlayStopButton(t,e,r){return ge(I.Is.isStringOrUndefined(e),"playLabel",e),ge(I.Is.isStringOrUndefined(r),"stopLabel",r),he.removeOnClickListeners(this.playStopButton,this.onPlayStop),this.playStopButton=Dn(I.Dom.getButton(t),"Play/stop button required!"),this.playLabel=e!=null?e:"Play",this.stopLabel=r!=null?r:"Stop",he.removeOnClickListeners(this.playStopButton,"all"),he.addOnClickListener(this.playStopButton,this.onPlayStop),this.updateButtons(),this}setPauseButton(t,e){return ge(I.Is.isStringOrUndefined(e),"btnLabel",e),he.removeOnClickListeners(this.pauseButton,this.onPause),this.pauseButton=Dn(I.Dom.getButton(t),"Pause button required!"),this.pauseLabel=e!=null?e:"Pause",he.removeOnClickListeners(this.pauseButton,"all"),he.addOnClickListener(this.pauseButton,this.onPause),this.updateButtons(),this}static removeOnClickListeners(t,e){if(t){let r=this.savedOnClickListeners.get(t)||[],i=[];r.forEach(n=>{e===n||e==="all"?t.removeEventListener("click",n):i.push(n)}),this.savedOnClickListeners.set(t,i)}}static addOnClickListener(t,e){ge(I.Is.isFunction(e),"onClick",e),t.addEventListener("click",e);let r=this.savedOnClickListeners.get(t)||[];this.savedOnClickListeners.set(t,[...r,e])}};m(he,"savedOnClickListeners",new Map);var hu=he;Qr();var pu={};_i(pu,{createAndanteByDiabelli:()=>rb,createFrereJacques:()=>tb,createGreensleeves:()=>eb});function tb(){return new Ir().setScoreConfiguration(4).setHeader("Frere Jacques").addMeasure().setKeySignature("G","Major").setTimeSignature("4/4").addNote(0,"G3",48).addNote(0,"A3",48).addNote(0,"B3",48).addNote(0,"G3",48).addMeasure().addNote(0,"G3",48).addNote(0,"A3",48).addNote(0,"B3",48).addNote(0,"G3",48).addMeasure().addNote(0,"B3",48).addNote(0,"C4",48).addNote(0,"D4",96).endRow().addMeasure().addNote(0,"B3",48).addNote(0,"C4",48).addNote(0,"D4",96).addMeasure().addNote(0,"D4",24).addNote(0,"E4",24).addNote(0,"D4",24).addNote(0,"C4",24).addNote(0,"B3",48).addNote(0,"G3",48).endRow().addMeasure().addNote(0,"D4",24).addNote(0,"E4",24).addNote(0,"D4",24).addNote(0,"C4",24).addNote(0,"B3",48).addNote(0,"G3",48).addMeasure().addNote(0,"G3",48).addNote(0,"D3",48).addNote(0,"G3",96).addMeasure().addNote(0,"G3",48).addNote(0,"D3",48).addNote(0,"G3",96).getDocument()}function eb(){return new Ir().setScoreConfiguration(4).setHeader("Greensleeves").addMeasure().setKeySignature("C","Major").setTimeSignature("6/8").setTempo(140).addNote(0,"A3",24).addMeasure().addNavigation(8).addNote(0,"C4",48,{stem:1}).addLabel(1,"Am").addNote(0,"D4",24).addNote(0,"E4",24,{dotted:!0}).addNote(0,"F4",12).addNote(0,"E4",24).addNote(1,"A2",24,{stem:2}).addNote(1,"E3",48).addNote(1,"A2",24).addNote(1,"E3",48).addMeasure().addNote(0,"D4",48,{stem:1}).addLabel(1,"G").addNote(0,"B3",24).addNote(0,"G3",24,{dotted:!0}).addLabel(1,"Em").addNote(0,"A3",12).addNote(0,"B3",24).addNote(1,"G2",24,{stem:2}).addNote(1,"D3",48).addNote(1,"E2",24).addNote(1,"B2",48).addMeasure().addNote(0,"C4",48,{stem:1}).addLabel(1,"Am").addNote(0,"A3",24).addNote(0,"A3",24,{dotted:!0}).addLabel(1,"F").addNote(0,"G#3",12).addNote(0,"A3",24).addNote(1,"A2",24,{stem:2}).addNote(1,"E3",48).addNote(1,"F2",24).addNote(1,"A2",48).addMeasure().addNote(0,"B3",48,{stem:1}).addLabel(1,"E").addNote(0,"G#3",24).addNote(0,"E3",48).addNote(0,"A3",24).addNote(1,"E2",24,{stem:2}).addNote(1,"B2",48).addNote(1,"E2",24).addNote(1,"B2",48).endRow().addMeasure().addNote(0,"C4",48,{stem:1}).addLabel(1,"Am").addNote(0,"D4",24).addNote(0,"E4",24,{dotted:!0}).addNote(0,"F4",12).addNote(0,"E4",24).addNote(1,"A2",24,{stem:2}).addNote(1,"E3",48).addNote(1,"A2",24).addNote(1,"E3",48).addMeasure().addNote(0,"D4",48,{stem:1}).addLabel(1,"G").addNote(0,"B3",24).addNote(0,"G3",24,{dotted:!0}).addLabel(1,"Em").addNote(0,"A3",12).addNote(0,"B3",24).addNote(1,"G2",24,{stem:2}).addNote(1,"D3",48).addNote(1,"E2",24).addNote(1,"B2",48).addMeasure().addNote(0,"C4",24,{dotted:!0,stem:1}).addLabel(1,"Am").addNote(0,"B3",12).addNote(0,"A3",24).addNote(0,"G#3",24,{dotted:!0}).addLabel(1,"E").addNote(0,"F#3",12).addNote(0,"G#3",24).addNote(1,"A2",24,{stem:2}).addNote(1,"E3",48).addNote(1,"E2",24).addNote(1,"B2",48).addMeasure().addNote(0,"A3",48,{dotted:!0,stem:1}).addLabel(1,"Am").addNote(0,"A3",48,{dotted:!0}).addNote(1,"A2",24,{stem:2}).addNote(1,"E3",24).addNote(1,"C4",24).addNote(1,"A2",48,{dotted:!0}).endRow().addMeasure().addChord(0,["C3","E3","G3","C4","G4"],48,{dotted:!0,arpeggio:0,stem:1}).addLabel(1,"C").addNote(0,"G4",24,{dotted:!0}).addNote(0,"F#4",12).addNote(0,"E4",24).addRest(1,48,{dotted:!0,hide:!0}).addNote(1,"C3",24,{stem:2}).addNote(1,"G3",48).addMeasure().addNote(0,"D4",48,{stem:1}).addLabel(1,"G").addNote(0,"B3",24).addNote(0,"G3",24,{dotted:!0}).addLabel(1,"Em").addNote(0,"A3",12).addNote(0,"B3",24).addNote(1,"G2",24,{stem:2}).addNote(1,"D3",48).addNote(1,"E2",24).addNote(1,"B2",48).addMeasure().addNote(0,"C4",48,{stem:1}).addLabel(1,"Am").addNote(0,"A3",24).addNote(0,"A3",24,{dotted:!0}).addLabel(1,"F").addNote(0,"G#3",12).addNote(0,"A3",24).addNote(1,"A2",24,{stem:2}).addNote(1,"E3",48).addNote(1,"F2",24).addNote(1,"A2",48).addMeasure().addNote(0,"B3",48,{stem:1}).addLabel(1,"E").addNote(0,"G#3",24).addNote(0,"E3",48,{dotted:!0}).addNote(1,"E2",24,{stem:2}).addNote(1,"B2",48).addNote(1,"E2",24).addNote(1,"B2",24).addNote(1,"E3",24).endRow().addMeasure().addNote(0,"G4",48,{dotted:!0,stem:1}).addLabel(1,"C").addNote(0,"G4",24,{dotted:!0}).addNote(0,"F#4",12).addNote(0,"E4",24).addNote(1,"C3",24,{stem:2}).addNote(1,"G3",24).addNote(1,"C4",24).addNote(1,"C3",24).addNote(1,"G3",48).addMeasure().addNote(0,"D4",48,{stem:1}).addLabel(1,"G").addNote(0,"B3",24).addNote(0,"G3",24,{dotted:!0}).addLabel(1,"Em").addNote(0,"A3",12).addNote(0,"B3",24).addNote(1,"G2",24,{stem:2}).addNote(1,"D3",48).addNote(1,"E2",24).addNote(1,"B2",48).addMeasure().addNote(0,"C4",24,{dotted:!0,stem:1}).addLabel(1,"Am").addNote(0,"B3",12).addNote(0,"A3",24).addNote(0,"G#3",24,{dotted:!0}).addLabel(1,"E").addNote(0,"F#3",12).addNote(0,"G#3",24).addNote(1,"A2",24,{stem:2}).addNote(1,"E3",48).addNote(1,"E2",24).addNote(1,"B2",48).addMeasure().addNavigation(10,1).addNavigation(9).addNote(0,"A3",48,{dotted:!0,stem:1}).addLabel(1,"Am").addNote(0,"A3",48).addNote(0,"A3",24).addNote(1,"A2",24,{stem:2}).addNote(1,"E3",24).addNote(1,"C4",24).addNote(1,"A2",48,{dotted:!0}).addMeasure().addNavigation(10,2).addNote(0,"A3",48,{dotted:!0,stem:1}).addLabel(1,"Am").addNote(0,"A3",48,{dotted:!0}).addFermata().addNote(1,"A2",24,{stem:2}).addNote(1,"E3",24).addNote(1,"C4",24).addNote(1,"A2",48,{dotted:!0}).getDocument()}function rb(){return new Ir().setScoreConfiguration(4).setHeader("Andante","A. Diabelli").addMeasure().setKeySignature("D","Major").setTimeSignature("3/4").setTempo(80).addRest(0,24,{staffPos:"G4"}).addAnnotation(0,"p").addNote(0,"F#4",24,{stem:1}).addNote(0,"G4",24).addConnective(1,2,3).addNote(0,"F#4",24).addNote(0,"E4",24).addNote(0,"D4",24).addNote(1,"D3",96,{dotted:!0,stem:2}).addMeasure().addNote(0,"C#4",24).addConnective(1,2,3).addNote(0,"D4",24).addNote(0,"E4",24).addNote(0,"F#4",24).addNote(0,"G4",48).addNote(1,"A2",96,{dotted:!0}).addMeasure().addRest(0,24,{staffPos:"B3"}).addAnnotation(0,"f").addNote(0,"A3",24).addNote(0,"G#3",24).addConnective(1,2,3).addNote(0,"A3",24).addNote(0,"B3",24).addNote(0,"C#4",24).addNote(1,"A2",96,{dotted:!0}).endRow().addMeasure().addNote(0,"D4",24,{string:3}).addNote(0,"E4",24).addNote(0,"F#4",24).addNote(0,"G4",24).addNote(0,"A4",48).addNote(1,"D3",96,{dotted:!0}).addMeasure().addRest(0,24,{staffPos:"G4"}).addAnnotation(0,"p").addNote(0,"F#4",24).addNote(0,"G4",24).addConnective(1,2,3).addNote(0,"F#4",24).addNote(0,"E4",24).addNote(0,"D4",24).addNote(1,"D3",96,{dotted:!0}).addMeasure().addNote(0,"C#4",24).addConnective(1,2,3).addNote(0,"D4",24).addNote(0,"E4",24).addNote(0,"F#4",24).addNote(0,"G4",48).addNote(1,"A2",96,{dotted:!0}).endRow().addMeasure().addRest(0,24,{staffPos:"B3"}).addAnnotation(0,"f").addNote(0,"A3",24).addNote(0,"G#3",24).addConnective(1,2,3).addNote(0,"A3",24).addNote(0,"B3",24).addNote(0,"C#4",24).addNote(1,"A2",96,{dotted:!0}).addMeasure().addNote(0,"D4",48).addRest(1,48,{staffPos:"D3"}).addNote(0,"D3",48).addNote(1,"D3",48).addRest(1,48,{staffPos:"B3"}).addNavigation(9).addMeasure().addRest(0,24,{staffPos:"D4"}).addAnnotation(0,"f").addNote(0,"D4",24).addNote(0,"E4",24).addConnective(1,2,3).addNote(0,"D4",24).addNote(0,"C#4",24).addNote(0,"B3",24).addNote(1,"E2",96,{dotted:!0}).endRow().addMeasure().addNote(0,"C#4",24).addConnective(1,2,3).addNote(0,"D4",24).addNote(0,"E4",24).addNote(0,"F#4",24).addNote(0,"E4",48).addNote(1,"A2",96,{dotted:!0}).addMeasure().addRest(0,24,{staffPos:"B3"}).addAnnotation(0,"p").addNote(0,"E3",24).addNote(0,"D#3",24).addConnective(1,2,3).addNote(0,"E3",24).addNote(0,"F#3",24).addNote(0,"G#3",24).addNote(1,"E2",96,{dotted:!0}).addMeasure().addNote(0,"A3",24).addConnective(1,2,3).addNote(0,"G#3",24).addNote(0,"A3",24).addNote(0,"B3",24).addNote(0,"C#4",48).addNote(1,"A2",96,{dotted:!0}).endRow().addMeasure().addRest(0,24,{staffPos:"G4"}).addAnnotation(0,"f").addNote(0,"G4",24).addNote(0,"A4",24).addConnective(1,2,3).addNote(0,"G4",24).addNote(0,"F#4",24).addNote(0,"E4",24).addNote(1,"A2",96,{dotted:!0}).addMeasure().addNote(0,"D4",24).addNote(0,"C#4",24).addNote(0,"D4",24).addNote(0,"E4",24).addNote(0,"F#4",48).addNote(1,"D3",96,{dotted:!0}).addMeasure().addRest(0,24,{staffPos:"B3"}).addAnnotation(0,"ff").addNote(0,"A3",24).addNote(0,"G#3",24).addConnective(1,2,3).addNote(0,"A3",24).addNote(0,"B3",24).addNote(0,"C#4",24).addNote(1,"A2",96,{dotted:!0}).addMeasure().addNote(0,"D4",48).addRest(1,48,{staffPos:"D3"}).addNote(0,"D3",48).addNote(1,"D3",48).addRest(1,48,{staffPos:"B3"}).endSong().getDocument()}return _m(ib);})();
|
|
211
211
|
/*! Bundled license information:
|
|
212
212
|
|
|
213
213
|
tone/build/esm/core/Tone.js:
|