@tspro/web-music-score 2.0.0 → 3.0.0

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.
Files changed (38) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +144 -63
  3. package/dist/audio/index.d.mts +1 -1
  4. package/dist/audio/index.js +1 -1
  5. package/dist/audio/index.mjs +2 -2
  6. package/dist/audio-cg/index.js +1 -1
  7. package/dist/audio-cg/index.mjs +2 -2
  8. package/dist/{chunk-2EPWQZKJ.mjs → chunk-ZWFAOHYM.mjs} +2 -2
  9. package/dist/core/index.js +2 -2
  10. package/dist/core/index.mjs +3 -3
  11. package/dist/{guitar-kbJYu3Am.d.mts → guitar-zASF7B1g.d.mts} +1 -1
  12. package/dist/iife/index.global.js +11 -12
  13. package/dist/interface-CLb7xa7_.d.mts +1768 -0
  14. package/dist/interface-DXyXwLBB.d.ts +1768 -0
  15. package/dist/{note-CraqEy8x.d.mts → note-B5ZtlHc8.d.mts} +1 -1
  16. package/dist/pieces/index.d.mts +3 -3
  17. package/dist/pieces/index.d.ts +2 -2
  18. package/dist/pieces/index.js +4 -52
  19. package/dist/pieces/index.mjs +8 -56
  20. package/dist/react-ui/index.d.mts +5 -4
  21. package/dist/react-ui/index.d.ts +3 -2
  22. package/dist/react-ui/index.js +1 -1
  23. package/dist/react-ui/index.mjs +2 -2
  24. package/dist/scale-B_2MZaT9.d.ts +87 -0
  25. package/dist/scale-C-YS5iVG.d.mts +87 -0
  26. package/dist/score/index.d.mts +42 -1557
  27. package/dist/score/index.d.ts +42 -1557
  28. package/dist/score/index.js +2845 -2029
  29. package/dist/score/index.mjs +2813 -2007
  30. package/dist/tempo-DoJd-UYT.d.ts +120 -0
  31. package/dist/tempo-TjQKn46X.d.mts +120 -0
  32. package/dist/theory/index.d.mts +6 -5
  33. package/dist/theory/index.d.ts +3 -2
  34. package/dist/theory/index.js +1 -1
  35. package/dist/theory/index.mjs +2 -2
  36. package/package.json +1 -1
  37. package/dist/tempo--588tdcv.d.ts +0 -203
  38. package/dist/tempo-BEJBHZ5I.d.mts +0 -203
@@ -1,7 +1,7 @@
1
- /* WebMusicScore v2.0.0 | (c) 2023 PahkaSoft | MIT License | Includes: Tone.js (MIT License) */
2
- "use strict";var WebMusicScore=(()=>{var Ns=Object.defineProperty,Jd=Object.defineProperties,Kd=Object.getOwnPropertyDescriptor,$d=Object.getOwnPropertyDescriptors,tm=Object.getOwnPropertyNames,Ts=Object.getOwnPropertySymbols;var ca=Object.prototype.hasOwnProperty,Qc=Object.prototype.propertyIsEnumerable;var Zc=Math.pow,aa=(o,t,e)=>t in o?Ns(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,O=(o,t)=>{for(var e in t||(t={}))ca.call(t,e)&&aa(o,e,t[e]);if(Ts)for(var e of Ts(t))Qc.call(t,e)&&aa(o,e,t[e]);return o},Y=(o,t)=>Jd(o,$d(t));var vr=(o,t)=>{var e={};for(var r in o)ca.call(o,r)&&t.indexOf(r)<0&&(e[r]=o[r]);if(o!=null&&Ts)for(var r of Ts(o))t.indexOf(r)<0&&Qc.call(o,r)&&(e[r]=o[r]);return e};var xi=(o,t)=>{for(var e in t)Ns(o,e,{get:t[e],enumerable:!0})},em=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of tm(t))!ca.call(o,i)&&i!==e&&Ns(o,i,{get:()=>t[i],enumerable:!(r=Kd(t,i))||r.enumerable});return o};var rm=o=>em(Ns({},"__esModule",{value:!0}),o);var d=(o,t,e)=>aa(o,typeof t!="symbol"?t+"":t,e);var Q=(o,t,e)=>new Promise((r,i)=>{var s=c=>{try{a(e.next(c))}catch(u){i(u)}},n=c=>{try{a(e.throw(c))}catch(u){i(u)}},a=c=>c.done?r(c.value):Promise.resolve(c.value).then(s,n);a((e=e.apply(o,t)).next())});var Vy={};xi(Vy,{Audio:()=>Qo,Core:()=>ma,Pieces:()=>Hc,Score:()=>Yc,Theory:()=>Oa});var Qo={};xi(Qo,{getCurrentInstrument:()=>ny,getInstrumentList:()=>sy,playNote:()=>wn,registerInstrument:()=>ay,setInstrument:()=>Wd,stop:()=>Dc});var Oa={};xi(Oa,{AccidentalType:()=>ga,Chord:()=>ya,DefaultGuitarNoteLabel:()=>yf,DefaultHandedness:()=>Uf,DefaultPitchNotation:()=>gf,DefaultTuningName:()=>Ca,GuitarNoteLabel:()=>Es,GuitarNoteLabelList:()=>Af,Handedness:()=>ba,Interval:()=>vo,KeySignature:()=>Le,MaxNoteLength:()=>Iu,MinNoteLength:()=>bi,Mode:()=>fa,Note:()=>F,NoteLength:()=>Bt,PitchNotation:()=>Ur,PitchNotationList:()=>ff,RhythmProps:()=>$t,Scale:()=>lr,ScaleFactory:()=>Ht,ScaleType:()=>Xe,SymbolSet:()=>Ir,TimeSignature:()=>pr,TuningNameList:()=>_a,alterTempoSpeed:()=>Na,getDefaultKeySignature:()=>Ms,getDefaultScale:()=>Lf,getDefaultTempo:()=>ks,getDefaultTimeSignature:()=>Ds,getPitchNotationName:()=>xf,getScale:()=>Sr,getScaleFactory:()=>_u,getScaleFactoryList:()=>kf,getTempoString:()=>Ta,getTuningStrings:()=>Ia,validateGuitarNoteLabel:()=>bf,validateHandedness:()=>zf,validateIntervalQuality:()=>Of,validateNoteLength:()=>wu,validatePitchNotation:()=>pu,validateScaleType:()=>xa,validateTuningName:()=>va});var Jc=Object.defineProperty,im=(o,t,e)=>t in o?Jc(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,ur=(o,t)=>{for(var e in t)Jc(o,e,{get:t[e],enumerable:!0})},Ze=(o,t,e)=>im(o,typeof t!="symbol"?t+"":t,e),T={};ur(T,{Arr:()=>Kc,Dom:()=>ru,Enum:()=>iu,Is:()=>ou,Map:()=>nu,Math:()=>$c,Obj:()=>au,Str:()=>cu});var Kc={};ur(Kc,{arrayContains:()=>bm,chunckArray:()=>_m,duplicate:()=>mm,fillArray:()=>xm,getRangeArray:()=>Am,getSequenceArray:()=>ym,isArray:()=>la,mapRangeArray:()=>eu,mapSequenceArray:()=>tu,removeDuplicates:()=>fm,removeDuplicatesCmp:()=>gm,toArray:()=>dm});var $c={};ur($c,{calcNormal:()=>hm,clamp:()=>lm,interpolateCoord:()=>cm,interpolateY:()=>um,isInteger:()=>ve,linearToDecibels:()=>om,mod:()=>sm,romanize:()=>nm,sum:()=>pm,toOrdinalNumber:()=>am});function ve(o){return typeof o=="number"&&isFinite(o)&&o===Math.trunc(o)}function om(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 nm(o){if(!ve(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 am(o){if(!ve(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 cm(o,t,e,r,i){return{x:o+(e-o)*i,y:t+(r-t)*i}}function um(o,t,e,r,i){let s=(i-o)/(e-o);return t+(r-t)*s}function lm(o,t,e){return Math.min(Math.max(o,t),e)}function hm(o,t,e,r){let i=e-o,n=-(r-t),a=i,c=Math.sqrt(n*n+a*a);return c>0?(n/=c,a/=c):(n=0,a=1),{nx:n,ny:a}}function pm(o){return o.reduce((t,e)=>e+t,0)}function la(o){return!!o&&Object.prototype.toString.call(o)==="[object Array]"}function dm(o){return la(o)?o:[o]}function mm(o){return o===void 0?o:o.slice()}function fm(o){return o.filter((t,e,r)=>r.indexOf(t)===e)}function gm(o,t){return o.filter((e,r,i)=>r===i.findIndex(s=>t(e,s)))}function xm(o,t){if(!ve(t)||t<0)throw new Error("fillArray: Invalid fillCount = "+t);return new Array(t).fill(o)}function tu(o,t){if(!ve(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 ym(o){return tu(o,t=>t)}function eu(o,t,e){if(!ve(o))throw new Error("mapRangeArray: Invalid start = "+t);if(!ve(t))throw new Error("mapRangeArray: Invalid end = "+t);let r=Math.abs(t-o)+1,i=new Array(r);for(let s=0,n=o,a=Math.sign(t-o);s<r;n+=a,s++)i[s]=e(n);return i}function Am(o,t){return eu(o,t,e=>e)}function bm(o,t){return o.indexOf(t)>=0}function _m(o,t){if(!ve(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 ru={};ur(ru,{addClass:()=>Cm,appendTo:()=>Em,getButton:()=>km,getCanvas:()=>Pm,getCanvasTextWidth:()=>Bm,getDimension:()=>jm,getHeight:()=>Nm,getOffset:()=>wm,getPadding:()=>Lm,getWidth:()=>Sm,hasClass:()=>ha,removeClass:()=>vm,removeFromParent:()=>Mm,setHeight:()=>Om,setOffset:()=>Im,setRect:()=>Dm,setVisibility:()=>Rm,setWidth:()=>Tm,styleLayoutChanged:()=>Fm});var iu={};ur(iu,{getEnumValues:()=>Os});function Os(o){return Object.keys(o).filter(t=>Number.isNaN(Number(t))).map(t=>o[t])}var ua;(o=>{let t=Error;function e(A){t=A!=null?A:Error}o.setErrorClass=e;function r(A,S){throw new t("Assertion Error: "+A+(S?" "+S:""))}function i(A){return typeof A=="number"&&isFinite(A)&&A===Math.trunc(A)}function s(A){return typeof A=="number"}function n(A,S){A||r(S!=null?S:"Assertion failed!")}o.assert=n;function a(A,S,P="value"){if(!Os(S).some(M=>M===A))throw new TypeError(`Invalid ${P} enum value: ${A}`)}o.assertEnum=a;function c(A){r(A!=null?A:"Interrupted!")}o.interrupt=c;function u(A,S){return i(A)||r(`Expected ${A} to be integer.`,S),A}o.int=u;function l(A,S,P){return A!==S&&r(`Expected ${A} to equal ${S}.`,P),A}o.eq=l;function h(A,S,P){return i(A)&&s(S)&&A===S||r(`Expected ${A} to be integer equal to ${S}.`,P),A}o.int_eq=h;function p(A,S,P){return i(A)&&s(S)&&A<S||r(`Expected ${A} to be integer less than ${S}.`,P),A}o.int_lt=p;function m(A,S,P){return i(A)&&s(S)&&A<=S||r(`Expected ${A} to be integer less than or equal to ${S}.`,P),A}o.int_lte=m;function x(A,S,P){return i(A)&&s(S)&&A>S||r(`Expected ${A} to be integer greater than ${S}.`,P),A}o.int_gt=x;function f(A,S,P){return i(A)&&s(S)&&A>=S||r(`Expected ${A} to be integer greater than or equal to ${S}.`,P),A}o.int_gte=f;function g(A,S,P,M){return i(A)&&s(S)&&s(P)&&A>=S&&A<=P||r(`Expected ${A} to be integer between ${S} and ${P}.`,M),A}o.int_between=g;function y(A,S){return i(A)&&A%2===1||r(`Expected ${A} to be odd number.`,S),A}o.odd=y;function I(A,S){return i(A)&&A%2===0||r(`Expected ${A} to be even number.`,S),A}o.even=I;function v(A,S,P){if(!S.some(M=>M===A)){let M=S.map(R=>String(R)).join(", ");r(`Expected ${A} to be in group [${M}].`,P)}return A}o.in_group=v;function N(A,S){return s(A)&&isFinite(A)||r(`Expected ${A} to be finite number.`,S),A}o.finite=N;function C(A,S,P){return i(S)&&S>=0&&S<A.length||r(`Expected ${S} to be array index in bounds [0..${A.length-1}].`,P),S}o.array_id=C;function _(A,S,P){return A[C(A,S,P)]}o.array_elem=_;function b(A,S){if(A===void 0)r("Required value is undefined.",S);else return A}o.require=b})(ua||(ua={}));var _o;(o=>{function t(){let p=document.createElement("div");p.style.width="1in",document.body.appendChild(p);let m=p.offsetWidth;return p.remove(),m||96}function e(){try{let p=document.createElement("div");p.style.visibility="hidden",p.style.width="100px",document.body.appendChild(p);let m=p.offsetWidth;p.style.overflow="scroll";let x=document.createElement("div");x.style.width="100%",p.appendChild(x);let f=x.offsetWidth;return p.parentNode&&p.parentNode.removeChild(p),m-f}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 m=p.offsetHeight;return document.body.removeChild(p),m}function i(){if("ontouchstart"in window||"DocumentTouch"in window||"createTouch"in document&&"createTouchList"in document)return!0;var p=" -webkit- -moz- -o- -ms- ".split(" "),m=function(f){return window.matchMedia(f).matches},x=["(",p.join("touch-enabled),("),"heartz",")"].join("");return m(x)}function s(){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 n(){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=s(),o.HostAddress=n();function u(p){return p/o.PxPerMm}o.pxToMm=u;function l(p){return p*o.PxPerMm}o.mmToPx=l;function h(p){if(typeof p=="number")return p;let m=NaN,x,f=p.toString().match(c);if(f&&f[1]){m=parseFloat(f[1]);let g=f[2]?f[2].toLowerCase():"undefined";x=a.test(g)?g:void 0,x||console.log("Unknown unit '"+g+"' => using 'px'.")}else m=parseFloat(p);switch(ua.finite(m,"value in function toPx"),x){case"mm":return l(m);case"cm":return l(m)*10;case"in":case"inch":return l(m)*25.4;case"em":return o.FontSize*m;default:case"px":return m}}o.toPx=h})(_o||(_o={}));function Ct(o){return o===void 0?void 0:_o.toPx(o)}function ha(o,t){return t.length===0?!1:o.classList?o.classList.contains(t):!!o.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))}function Cm(o,t){t.length!==0&&(o.classList?o.classList.add(t):ha(o,t)||(o.className+=" "+t))}function vm(o,t){if(t.length!==0){if(o.classList)o.classList.remove(t);else if(ha(o,t)){var e=new RegExp("(\\s|^)"+t+"(\\s|$)");o.className=o.className.replace(e," ")}}}function Im(o,t,e,r="px"){o.style.left=t+r,o.style.top=e+r}function wm(o){let t=o.getBoundingClientRect(),e=document.documentElement;return{top:t.top+window.pageYOffset-e.clientTop,left:t.left+window.pageXOffset-e.clientLeft}}function Sm(o){if(o instanceof Window)return o.innerWidth;{let t=parseFloat(getComputedStyle(o,null).width.replace("px",""));return isNaN(t)?0:t}}function Tm(o,t){o.style.width=t+"px"}function Nm(o){if(o instanceof Window)return o.innerHeight;{let t=parseFloat(getComputedStyle(o,null).height.replace("px",""));return isNaN(t)?0:t}}function Om(o,t){o.style.height=t+"px"}function Em(o,t){t.appendChild(o)}function Mm(o){o.remove()}function Rm(o,t){o.style.display=t?"block":"none"}function Dm(o,t,e,r,i,s="px"){o.style.left=t+s,o.style.top=e+s,o.style.width=r+s,o.style.height=i+s}function km(o){let t=typeof o=="string"?document.getElementById(o):o;return t instanceof HTMLButtonElement?t:void 0}function Pm(o){let t=typeof o=="string"?document.getElementById(o):o;return t instanceof HTMLCanvasElement?t:void 0}function Lm(o){var n;if(!o)return{top:0,right:0,bottom:0,left:0};let t=Ct(o.paddingTop),e=Ct(o.paddingRight),r=Ct(o.paddingBottom),i=Ct(o.paddingLeft),s=((n=o.padding)!=null?n:"").toString().split(" ").filter(a=>a.length>0);switch(s.length){case 0:break;case 1:t!=null||(t=Ct(s[0])),e!=null||(e=Ct(s[0])),r!=null||(r=Ct(s[0])),i!=null||(i=Ct(s[0]));break;case 2:t!=null||(t=Ct(s[0])),e!=null||(e=Ct(s[1])),r!=null||(r=Ct(s[0])),i!=null||(i=Ct(s[1]));break;case 3:t!=null||(t=Ct(s[0])),e!=null||(e=Ct(s[1])),r!=null||(r=Ct(s[2])),i!=null||(i=Ct(s[1]));break;case 4:default:t!=null||(t=Ct(s[0])),e!=null||(e=Ct(s[1])),r!=null||(r=Ct(s[2])),i!=null||(i=Ct(s[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 jm(o){let t=Ct(o==null?void 0:o.left),e=Ct(o==null?void 0:o.right),r=Ct(o==null?void 0:o.top),i=Ct(o==null?void 0:o.bottom),s=Ct(o==null?void 0:o.width),n=Ct(o==null?void 0:o.height);return s===void 0&&t!==void 0&&e!==void 0&&(s=e-t),n===void 0&&r!==void 0&&i!==void 0&&(n=i-r),{left:t,top:r,width:s,height:n}}function Fm(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 Ao;function Bm(o,t){Ao!=null||(Ao=document.createElement("canvas"));let e=Ao.getContext("2d");return e?(e.font=t,e.measureText(o).width):0}var ou={};ur(ou,{isArray:()=>pa,isArrayOrUndefined:()=>Wm,isBoolean:()=>Ym,isBooleanOrUndefined:()=>Hm,isEnumValue:()=>Km,isEnumValueOrUndefined:()=>$m,isFunction:()=>Qm,isFunctionOrUndefined:()=>Zm,isInteger:()=>yi,isIntegerEq:()=>tf,isIntegerGt:()=>ef,isIntegerGte:()=>rf,isIntegerLt:()=>of,isIntegerLte:()=>sf,isNull:()=>Gm,isNumber:()=>Xm,isNumberOrUndefined:()=>Jm,isObject:()=>su,isObjectOrUndefined:()=>qm,isString:()=>Um,isStringOrUndefined:()=>zm,isUndefined:()=>Vm});function Vm(o){return o===void 0}function Gm(o){return o===null}function su(o){return typeof o=="object"&&o!==null&&!pa(o)}function qm(o){return o===void 0||su(o)}function pa(o){return!!o&&Object.prototype.toString.call(o)==="[object Array]"}function Wm(o){return o===void 0||pa(o)}function Um(o){return typeof o=="string"}function zm(o){return o===void 0||typeof o=="string"}function Ym(o){return typeof o=="boolean"}function Hm(o){return o===void 0||typeof o=="boolean"}function Qm(o){return typeof o=="function"}function Zm(o){return o===void 0||typeof o=="function"}function Xm(o){return typeof o=="number"}function Jm(o){return o===void 0||typeof o=="number"}function Km(o,t,e="value"){return Os(t).some(r=>r===o)}function $m(o,t,e="value"){return o===void 0||Os(t).some(r=>r===o)}function yi(o){return typeof o=="number"&&isFinite(o)&&o===Math.trunc(o)}function tf(o,t){return yi(o)&&o===t}function ef(o,t){return yi(o)&&o>t}function rf(o,t){return yi(o)&&o>=t}function of(o,t){return yi(o)&&o<t}function sf(o,t){return yi(o)&&o<=t}var nu={};ur(nu,{getMapKeys:()=>nf});function nf(o){let t=[];return o.forEach((e,r)=>t.push(r)),t}var au={};ur(au,{isObject:()=>af});function af(o){return typeof o=="object"&&o!==null&&!la(o)}var cu={};ur(cu,{chunkString:()=>lf,insertAt:()=>hf,makeSentenceFromPascal:()=>df,removeAt:()=>pf,repeatString:()=>uf,replaceAt:()=>da,toCharArray:()=>cf});function cf(o){return o.split("")}function uf(o,t){if(!ve(t)||t<0)throw new Error("repeatStr: Invalid repeatCount = "+t);return new Array(t+1).join(o)}function lf(o,t){if(!ve(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 da(o,t,e,r){if(!ve(e)||e<0)throw new Error("replaceAt: Invalid removeCount = "+e);if(!ve(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 hf(o,t,e){return da(o,t,0,e)}function pf(o,t,e){return da(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=s=>s.toUpperCase()!==s.toLowerCase()&&s===s.toUpperCase();for(let s=1;s<o.length;s++){let n=o.charAt(s);i(n)&&r(),t+=n.toLowerCase()}return r(),e}var Xc;(o=>{let t="ConsentCookie",e;(N=>{N.Accept="accept",N.Decline="decline"})(e||(e={}));let r,i,s=p(t);r=s==="accept"||s==="decline"?s:void 0;function n(N){i=new Date,i.setDate(i.getDate()+N)}o.setExpireDays=n;function a(){return r===void 0}o.isConsentPending=a;function c(){r="accept",h(t,r)}o.accept=c;function u(){r="decline",h(t,r)}o.decline=u;function l(){return document.cookie.split(";").map(C=>C.trim())}function h(N,C){let _=N+"="+C.toString()+";sameSite=Lax;";return i&&(_+="expires="+i.toUTCString()+";"),document.cookie=_,C}function p(N,C){let _=l().find(b=>b.startsWith(N+"="));return _===void 0?C:_.substring(N.length+1)}function m(N){document.cookie=N+"=;expires=Thu, 01 Jan 1970 00:00:00 UTC;"}function x(N,C){return r==="accept"&&h(N,C),C}o.save=x;function f(N,C){return r==="accept"&&p(N,C)||C}o.read=f;function g(N,C){if(r==="accept"){let _=p(N);return _===void 0?C:parseInt(_)}else return C}o.readInt=g;function y(N,C){if(r==="accept"){let _=p(N);return _===void 0?C:/true|1/i.test(_)}else return C}o.readBool=y;function I(N){(r==="accept"||N===t)&&m(N)}o.erase=I;function v(){document.cookie.split(";").forEach(N=>I(N.trim().split("=")[0]))}o.eraseAll=v})(Xc||(Xc={}));var uu=class bo{constructor(t,e){Ze(this,"x"),Ze(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 bo(this.x+t.x,this.y+t.y)}sub(t){return new bo(this.x-t.x,this.y-t.y)}mul(t){return new bo(this.x*t,this.y*t)}div(t){return new bo(this.x/t,this.y/t)}},lu=class{constructor(o,t=1/0){Ze(this,"cache"),Ze(this,"next"),Ze(this,"prev"),Ze(this,"head"),Ze(this,"tail"),Ze(this,"capacity"),Ze(this,"size"),Ze(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 ma={};xi(ma,{MusicError:()=>E,MusicErrorType:()=>gt,init:()=>Wr});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 mf(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(mf(r)+i);d(this,"type");Object.setPrototypeOf(this,new.target.prototype),this.name="MusicError",this.type=r}};var hu=!1;function Wr(){hu||(hu=!0,console.log("%cWebMusicScore v2.0.0 (iife) initialized.","background: black; color: white; padding: 2px;"))}var Ir=(e=>(e[e.Ascii=0]="Ascii",e[e.Unicode=1]="Unicode",e))(Ir||{}),Ur=(e=>(e[e.Scientific=0]="Scientific",e[e.Helmholtz=1]="Helmholtz",e))(Ur||{}),ff=T.Enum.getEnumValues(Ur),gf=0;function pu(o){if(T.Is.isEnumValue(o,Ur))return o;throw new E(1,`Invalid pitchNotation: ${o}`)}function xf(o){return Ur[pu(o)]}var Es=(r=>(r.Default="Default",r.OmitOctave="Omit Octave",r.Interval="Interval",r))(Es||{}),yf="Default",Af=T.Enum.getEnumValues(Es);function bf(o){if(T.Is.isEnumValue(o,Es))return o;throw new E(5,`Invalid guitarNoteLabel: ${o}`)}function du(o,t){return(o%t+t)%t}var mu=12,fu=7,_f=new Map([[-2,"bb"],[-1,"b"],[0,""],[1,"#"],[2,"x"]]),Cf=new Map([[-2,"\u{1D12B}"],[-1,"\u266D"],[0,""],[1,"\u266F"],[2,"\u{1D12A}"]]),gu=new Map([["",0],["bb",-2],["b",-1],["#",1],["x",2],["\u{1D12B}",-2],["\u266D",-1],["\u266F",1],["\u{1D12A}",2]]),Co=["C","D","E","F","G","A","B"],xu=[0,2,4,5,7,9,11],yu=/^([A-G])((?:bb|𝄫|♭|b|#|♯|x|𝄪)?)?(-?\d+)?$/,ot=class ot{constructor(t,e,r){d(this,"diatonicClass");d(this,"accidental");d(this,"octave");if(typeof t=="number"&&typeof e=="number"&&r===void 0)ot.validateDiatonicId(t),this.diatonicClass=ot.getDiatonicClass(t),this.accidental=ot.validateAccidental(e),this.octave=ot.getOctaveFromDiatonicId(t);else if(typeof t=="number"&&typeof e=="number"&&typeof r=="number")this.diatonicClass=ot.validateDiatonicClass(t),this.accidental=ot.validateAccidental(e),this.octave=ot.validateOctave(r);else if(typeof t=="string"&&typeof e=="number"&&typeof r=="number")this.diatonicClass=ot.getDiatonicClass(t),this.accidental=ot.validateAccidental(e),this.octave=ot.validateOctave(r);else throw new E(2,`Invalid args: ${t}, ${e}, ${r}`)}get diatonicId(){return ot.getDiatonicIdInOctave(this.diatonicClass,this.octave)}get chromaticId(){return ot.getChromaticIdInOctave(xu[this.diatonicClass]+this.accidental,this.octave)}get midiNumber(){return this.chromaticId}get chromaticClass(){return ot.getChromaticClass(xu[this.diatonicClass]+this.accidental)}get noteLetter(){return Co[this.diatonicClass]}format(t,e){let{noteLetter:r,octave:i}=this,s=ot.getAccidentalSymbol(this.accidental,e);return t===1?i>=3?r.toLowerCase()+s+"\u2032".repeat(i-3):r.toUpperCase()+s+"\u0375".repeat(2-i):r+s+i}formatOmitOctave(t){let e=Co[this.diatonicClass],r=ot.getAccidentalSymbol(this.accidental,t);return e+r}static getNote(t){let e=this.noteByNameCache.get(t);if(e===void 0){let r=ot.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 ot(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"][ot.getChromaticClass(t)].split("/")[0]+ot.getOctaveFromChromaticId(t),s=ot.parseNote(i);if(!s)throw new E(2,`Invalid noteName: ${i}`);if(s.octave===void 0)throw new E(2,"Octave is required for note.");e=new ot(s.noteLetter,s.accidental,s.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 Co.indexOf(ot.validateNoteLetter(t[0]));throw new E(2,`Invalid arg: ${t}`)}static getOctaveFromDiatonicId(t){return Math.floor((t-fu)/7)}static getDiatonicIdInOctave(t,e){return ot.getDiatonicClass(t)+e*7+fu}static getChromaticClass(t){return du(t,12)}static getOctaveFromChromaticId(t){return Math.floor((t-mu)/12)}static getChromaticIdInOctave(t,e){return ot.getChromaticClass(t)+e*12+mu}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 yu.test(t)}static parseNote(t){var c;let e=yu.exec(t);if(!e)return;let r=ot.validateNoteLetter(e[1]),i=e[2],s=ot.validateAccidental((c=gu.get(i))!=null?c:0),n=e[3],a=n?ot.validateOctave(+n):void 0;return{noteLetter:r,accidental:s,octave:a}}static getScientificNoteName(t,e){let r=ot.parseNote(t);if(!r)throw new E(2,`Invalid noteName: ${t}`);let{noteLetter:i,accidental:s,octave:n}=r;return i+ot.getAccidentalSymbol(s,e)+(n!=null?n:"")}static getAccidentalSymbol(t,e){return e===1?Cf.get(t):_f.get(t)}static getAccidental(t){let e=gu.get(t);if(e===void 0)throw new E(2,`Invalid accidental: ${t}`);return e}static getNoteLetter(t){return Co[ot.getDiatonicClass(t)]}static findNextDiatonicIdAbove(t,e,r){let i=ot.getDiatonicClass(t),s=ot.getDiatonicClass(e),n=r?i<=s?1:0:i<s?1:0;return ot.getDiatonicIdInOctave(i,ot.getOctaveFromDiatonicId(e)+n)}static validateDiatonicId(t){if(T.Is.isInteger(t))return t;throw new E(2,`Invalid diatonicId: ${t}`)}static validateDiatonicClass(t){if(T.Is.isInteger(t)&&t>=0&&t<7)return t;throw new E(2,`Invalid diatonicClass: ${t}`)}static validateChromaticId(t){if(T.Is.isInteger(t))return t;throw new E(2,`Invalid chromaticId: ${t}`)}static validatechromaticClass(t){if(T.Is.isInteger(t)&&t>=0&&t<12)return t;throw new E(2,`Invalid chromaticClass: ${t}`)}static validateNoteLetter(t){if(Co.some(e=>e===t))return t;throw new E(2,`Invalid note: ${t}`)}static validateOctave(t){if(T.Is.isInteger(t))return t;throw new E(2,`Invalid octave: ${t}`)}static validateAccidental(t){if(T.Is.isInteger(t)&&t>=-2&&t<=2)return t;throw new E(2,`Invalid accidental: ${t}`)}static sort(t){return t.slice().sort(ot.compareFunc)}static removeDuplicates(t){let e=[];return t.forEach(r=>{e.find(i=>ot.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}};d(ot,"noteByNameCache",new Map),d(ot,"chromaticNoteCache",new Map);var F=ot;function vf(o,t){let e=F.getChromaticClass(o)-new F(t,0).chromaticClass;for(;e>2;)e-=12;for(;e<-2;)e+=12;return F.validateAccidental(e)}var If=/^(bb?|b?|#?|x?)([0-9]*)$/;function wf(o){var i,s;let t=If.exec(""+o);if(!t)throw new E(4,`Invalid degree: ${o}`);let e=(s=F.getAccidental((i=t[1])!=null?i:""))!=null?s:0,r=+t[2];if(!T.Is.isInteger(e)||e<-2||e>2||!T.Is.isInteger(r)||r<1)throw new E(4,`Invalid degree: ${o}`);return{deg:r,acc:e}}var fa=(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))(fa||{}),ga=(r=>(r[r.Natural=0]="Natural",r[r.Flats=1]="Flats",r[r.Sharps=2]="Sharps",r))(ga||{});function Ms(){return Sr("C","Major")}var wr=class wr{constructor(t,e){this.tonic=t;this.mode=e;d(this,"naturalScaleNotes");d(this,"accidentalByDiatonicClass");d(this,"orderedAccidentedNotes");if(!T.Is.isEnumValue(e,fa))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=F.getDiatonicClass(t[0]),s=F.getNote(t+"0").chromaticId;for(let c=0;c<7;i++,s+=r[c],c++){let u=new F(F.getDiatonicClass(i),vf(s,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 n=this.naturalScaleNotes.filter(c=>c.accidental>0).sort((c,u)=>{let l=wr.OrderOfSharps.indexOf(c.noteLetter),h=wr.OrderOfSharps.indexOf(u.noteLetter);if(l===-1||h===-1)throw new E(4,"Unexpected note in key signature.");return l-h}),a=this.naturalScaleNotes.filter(c=>c.accidental<0).sort((c,u)=>{let l=wr.OrderOfFlats.indexOf(c.noteLetter),h=wr.OrderOfFlats.indexOf(u.noteLetter);if(l===-1||h===-1)throw new E(4,"Unexpected note in key signature.");return l-h});if(n.length!==0&&a.length!==0)throw new E(4,"Key Signature has both sharps and flats.");this.orderedAccidentedNotes=a.length>0?a:n}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[F.getDiatonicClass(t)])!=null?e:0}getNumAccidentals(){return this.orderedAccidentedNotes.length}getOrderedAccidentalNotes(){return this.orderedAccidentedNotes}getNoteByDegree(t){let{deg:e,acc:r}=wf(t);if(r===0)return this.naturalScaleNotes[(e-1)%7];{let i=this.naturalScaleNotes[(e-1)%7];return new F(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}};d(wr,"OrderOfSharps","FCGDAEB"),d(wr,"OrderOfFlats","BEADGCF");var Le=wr;var Sf=new Map([["Major","M"],["minor","m"],["Perfect","P"],["diminished","d"],["Augmented","A"],["doubly diminished","dd"],["Doubly Augmented","AA"]]),Tf={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 Nf(o,t){for(;o<1;)o+=7,t+=12;for(;o>8;)o-=7,t-=12;let e=Tf[o];if(e)return e[t]}function Of(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 Ef(o){if(T.Is.isIntegerGte(o,1))return T.Math.toOrdinalNumber(o);throw new E(1,`Invalid interval quantity: ${o}`)}var Rs=class extends Error{constructor(e){super(e);this.msg=e;this.name="InvalidInterval"}},vo=class o{constructor(t,e){this.note1=t;this.note2=e;d(this,"direction");d(this,"semitones");d(this,"quantity");d(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=Nf(this.quantity,this.semitones);if(r)this.quality=r;else throw new Rs("Unknown interval quality")}static get(t,e){try{return new o(t,e)}catch(r){if(r instanceof Rs)return;throw r}}toString(){let t=this.direction==="Unison"?"":this.direction+" ",e=this.quality+" ",r=this.direction==="Unison"?"Unison":Ef(this.quantity);return t+e+r}toAbbrString(){var i;let t=this.direction==="Descending"?"\u2193":"",e=(i=Sf.get(this.quality))!=null?i:"?",r=this.quantity;return t+e+r}};function Mf(o){let t=F.getDiatonicClass("CCDDEFFGGAAB"[F.getChromaticClass(o)]),e=F.getOctaveFromChromaticId(o);return F.getDiatonicIdInOctave(t,e)}var Rf=["Cb","C","C#","Db","D","D#","Eb","E","E#","Fb","F","F#","Gb","G","G#","Ab","A","A#","Bb","B","B#"],Xe=(f=>(f.Major="Major",f.NaturalMinor="Natural Minor",f.HarmonicMinor="Harmonic Minor",f.Ionian="Ionian",f.Dorian="Dorian",f.Phrygian="Phrygian",f.Lydian="Lydian",f.Mixolydian="Mixolydian",f.Aeolian="Aeolian",f.Locrian="Locrian",f.MajorPentatonic="Major Pentatonic",f.MinorPentatonic="Minor Pentatonic",f.MajorHexatonicBlues="Major Hexatonic Blues",f.MinorHexatonicBlues="Minor Hexatonic Blues",f.HeptatonicBlues="Heptatonic Blues",f))(Xe||{});function Df(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 lr=class extends Le{constructor(e,r){super(e,Df(r));this.tonic=e;this.scaleType=r;d(this,"scaleDegrees");d(this,"scaleNotes");d(this,"chromaticClassDegree");d(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 s=this.scaleNotes.findIndex(n=>n.chromaticClass===i);return s>=0?this.scaleDegrees[s]: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 F.getScientificNoteName(this.tonic,e)+" "+this.scaleType;default:return this.tonic+" "+this.scaleType}}getScaleNotes(e,r){if(!T.Is.isIntegerGte(r,1))throw new E(3,`Invalid numOctaves: ${r}`);let i=[];for(let n=1;n<=r;n++)i=[...i,...this.scaleNotes];i.push(this.scaleNotes[0]);let s=F.getNote(e).diatonicId;return i.map(n=>(s=F.findNextDiatonicIdAbove(n.diatonicId,s,!1),new F(s,n.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(T.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 F(e.diatonicClass,e.accidental,e.octave-1);if(e.chromaticId<r.chromaticId)throw new E(3,"Note is below rootNote.");let i=vo.get(r,e);if(i===void 0)throw new E(3,"Interval is undefined.");return i}getPreferredChromaticNote(e){F.validateChromaticId(e);let r=this.preferredChromaticNoteCache.get(e);if(r)return r;let i=F.getOctaveFromChromaticId(e);if(r=this.scaleNotes.map(h=>h.noteLetter==="C"&&h.accidental<0?new F(h.diatonicClass,h.accidental,i+1):h.noteLetter==="B"&&h.accidental>0?new F(h.diatonicClass,h.accidental,i-1):new F(h.diatonicClass,h.accidental,i)).find(h=>F.getChromaticClass(e)===h.chromaticClass),r)return this.preferredChromaticNoteCache.set(e,r),r;let n=Mf(e),a=n-2,c=n+2,l=this.getAccidentalType()===1?[0,-1,1,-2,2]:[0,1,-1,2,-2];for(let h=0;h<l.length;h++){let p=l[h];for(let m=Math.max(0,a);m<=c;m++)if(r=new F(m,p),e===r.chromaticId)return this.preferredChromaticNoteCache.set(e,r),r}return r=F.getChromaticNote(e),this.preferredChromaticNoteCache.set(e,r),r}},Ht=class{constructor(t){this.type=t;d(this,"tonicList",[]);d(this,"scaleMap",new Map);let e=[],r=[],i=[];if(Rf.forEach(n=>{try{let a=new lr(n,this.type);switch(a.getAccidentalType()){case 0:e.push(a);break;case 2:if(n.endsWith("b"))return;r.push(a);break;case 1:if(n.endsWith("#"))return;i.push(a);break}this.scaleMap.set(n,a)}catch(a){}}),e.length===0)throw new E(3,"Expected natural scale.");let s=(n,a)=>n.getNumAccidentals()-a.getNumAccidentals();this.tonicList=[...e.sort(s).map(n=>n.tonic),"- Sharps -",...r.sort(s).map(n=>n.tonic),"- Flats -",...i.sort(s).map(n=>n.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}},Au=[new Ht("Major"),new Ht("Natural Minor"),new Ht("Harmonic Minor"),"- Modes -",new Ht("Ionian"),new Ht("Dorian"),new Ht("Phrygian"),new Ht("Lydian"),new Ht("Mixolydian"),new Ht("Aeolian"),new Ht("Locrian"),"- Pentatonic -",new Ht("Major Pentatonic"),new Ht("Minor Pentatonic"),"- Blues -",new Ht("Major Hexatonic Blues"),new Ht("Minor Hexatonic Blues"),new Ht("Heptatonic Blues")];function kf(){return Au}var bu=new Map;Au.forEach(o=>{o instanceof Ht&&bu.set(o.getType(),o)});function _u(o){let t=bu.get(o);if(t)return t;throw new E(3,`Invalid scaleType: ${o}`)}function xa(o){if(T.Is.isEnumValue(o,Xe))return o;throw new E(3,`Invalid scaleType: ${o}`)}function Sr(o,t){return _u(t).getScale(o)}var Pf=Sr("C","Major");function Lf(){return Pf}var hr=(o,t)=>o.chromaticClass===t.chromaticClass,jf=["C","C#","Db","D","Eb","E","F","F#","Gb","G","Ab","A","Bb","B","Cb"].map(o=>F.getNote(o+"0")),Cu=new Map;function Ff(o){let t=o.chromaticClass,e=Cu.get(t);if(!e){if(e=jf.find(r=>hr(r,o)),!e)throw new E(1,`Invalid chord root note: ${o.formatOmitOctave(1)}`);Cu.set(t,e)}return e}function Bf(o,t){let e=o.formatOmitOctave(0);return Sr(e,"Major").getNoteByDegree(t)}function Vf(o){return T.Arr.removeDuplicatesCmp(o,hr)}var Gf=[{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 qf(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 Ai=class extends Error{constructor(e){super(e);this.msg=e;this.name="InvalidChordException"}},ya=class o{constructor(t,e,r,i){this.chordInfo=t;this.rootNote=r;d(this,"name");d(this,"notes");d(this,"omitNotes");d(this,"slashBassNote");this.name=t.name;let s=e.slice();!s.some(a=>hr(a,i))&&s.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]=Bf(this.rootNote,c),l=s.findIndex(h=>hr(h,u));if(l>=0)this.omitNotes[a]=!1,s.splice(l,1);else if(qf(t,c))this.omitNotes[a]=!0;else throw new Ai("Missing chord note!");hr(i,u)&&(i=u)}if(s.length>0)if(s.every(a=>hr(a,i)))this.slashBassNote=i;else throw new Ai("Got some extra notes that are not bass note!");else this.slashBassNote=hr(i,this.rootNote)?void 0:i;if(t.name==="5"&&this.slashBassNote)throw new Ai("Power chord no bass note allowed!")}static getChords(t){let e=[],r=F.sort(t),i=r[0],s=Vf(r);for(let n=0;n<s.length;n++){let a=Ff(s[n]);Gf.forEach(c=>{try{let u=new o(c,s,a,i),l=e.findIndex(h=>h.replaceWith(u));l>=0?e[l]=u:e.push(u)}catch(u){if(!(u instanceof Ai))throw u}})}return e}replaceWith(t){if(t.notes.length<this.notes.length)return!1;if(t.slashBassNote&&this.slashBassNote&&!hr(t.slashBassNote,this.slashBassNote)||t.slashBassNote&&!this.slashBassNote||!t.slashBassNote&&this.slashBassNote)return!1;for(let e=0;e<this.notes.length;e++)if(!hr(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,s)=>this.getDegreeStr(s)+"("+(i?"-":this.getNoteStr(s))+")").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 F.replaceAccidentalSymbols(""+this.chordInfo.degrees[t],1)}getNoteStr(t){return this.notes[t].formatOmitOctave(1)}};var Aa={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 ba=(e=>(e[e.RightHanded=0]="RightHanded",e[e.LeftHanded=1]="LeftHanded",e))(ba||{}),Uf=0;function zf(o){if(T.Is.isEnumValue(o,ba))return o;throw new E(1,`Invalid handedness: ${o}`)}var _a=Aa.list.map(o=>o.name),Ca=_a[0];function va(o){if(_a.indexOf(o)<0)throw new E(1,`Invalid tuning name: ${o}`);return o}var vu=new lu(100);function Ia(o){let t=vu.get(o);if(!t){let e=Aa.list.find(r=>r.name===o);if(!e)throw new E(1,`Invalid tuningName: ${o}`);if(t=e.strings.slice().reverse().map(r=>F.getNote(r)),!T.Is.isIntegerEq(t.length,6))throw new E(0,`Tuning has ${t.length} strings.`);vu.set(o,t)}return t}var Bt=(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))(Bt||{}),Iu=192,bi=3,Yf=new Map([[192,0],[96,0],[48,0],[24,1],[12,2],[6,3],[3,4]]),Hf=new Map([[192,"\u{1D15D}"],[96,"\u{1D15E}"],[48,"\u{1D15F}"],[24,"\u{1D160}"],[12,"\u{1D161}"],[6,"\u{1D162}"],[3,"\u{1D163}"]]);function wu(o){if(T.Is.isEnumValue(o,Bt))return o;throw new E(1,`Invalid noteLength: ${o}`)}var $t=class o{constructor(t,e,r){d(this,"noteLength");d(this,"dotted");d(this,"triplet");d(this,"ticks");d(this,"flagCount");var i;if(this.noteLength=wu(t),this.dotted=e===!0,this.triplet=r===!0,this.ticks=this.noteLength,this.flagCount=(i=Yf.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===bi)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(Iu/t)}canDot(){return!this.dotted&&this.noteLength!==bi}hasStem(){return this.noteLength<192}toString(){return Hf.get(this.noteLength)+(this.dotted?".":"")}};var pr=class{constructor(...t){d(this,"beatCount");d(this,"beatSize");d(this,"beatLength");d(this,"measureTicks");d(this,"beamGroupCount");d(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(T.Is.isIntegerGte(this.beatCount,1)){if(!T.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,!T.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 Ds(){return wa||(wa=new pr(4,4)),wa}var Sa;function ks(){return Sa||(Sa={beatsPerMinute:120,options:{beatLength:48,dotted:!1}}),Sa}function Ta(o){return new $t(o.options.beatLength,o.options.dotted).toString()+"="+o.beatsPerMinute}function Na(o,t){return{beatsPerMinute:o.beatsPerMinute*t,options:{beatLength:o.options.beatLength,dotted:o.options.dotted}}}Wr();var Io="15.1.22";var Ea=(o,t,e)=>({endTime:t,insertTime:e,type:"exponentialRampToValue",value:o});var Ma=(o,t,e)=>({endTime:t,insertTime:e,type:"linearRampToValue",value:o});var _i=(o,t)=>({startTime:t,type:"setValue",value:o});var wo=(o,t,e)=>({duration:e,startTime:t,type:"setValueCurve",values:o});var Ps=(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 je=o=>dr(o)||zr(o);var Ci=o=>o.type==="setValue";var Ie=o=>o.type==="setValueCurve";var vi=(o,t,e,r)=>{let i=o[t];return i===void 0?r:je(i)||Ci(i)?i.value:Ie(i)?i.values[i.values.length-1]:Ps(e,vi(o,t-1,i.startTime,r),i)};var Ra=(o,t,e,r,i)=>e===void 0?[r.insertTime,i]:je(e)?[e.endTime,e.value]:Ci(e)?[e.startTime,e.value]:Ie(e)?[e.startTime+e.duration,e.values[e.values.length-1]]:[e.startTime,vi(o,t-1,e.startTime,i)];var So=o=>o.type==="cancelAndHold";var To=o=>o.type==="cancelScheduledValues";var mr=o=>So(o)||To(o)?o.cancelTime:dr(o)||zr(o)?o.endTime:o.startTime;var Da=(o,t,e,{endTime:r,value:i})=>e===i?i:0<e&&0<i||e<0&&i<0?e*Zc(i/e,(o-t)/(r-t)):0;var ka=(o,t,e,{endTime:r,value:i})=>e+(o-t)/(r-t)*(i-e);var Su=(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 Tu=(o,{duration:t,startTime:e,values:r})=>{let i=(o-e)/t*(r.length-1);return Su(r,i)};var No=o=>o.type==="setTarget";var Oo=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(So(t)||To(t)){let r=this._automationEvents.findIndex(s=>To(t)&&Ie(s)?s.startTime+s.duration>=e:mr(s)>=e),i=this._automationEvents[r];if(r!==-1&&(this._automationEvents=this._automationEvents.slice(0,r)),So(t)){let s=this._automationEvents[this._automationEvents.length-1];if(i!==void 0&&je(i)){if(s!==void 0&&No(s))throw new Error("The internal list is malformed.");let n=s===void 0?i.insertTime:Ie(s)?s.startTime+s.duration:mr(s),a=s===void 0?this._defaultValue:Ie(s)?s.values[s.values.length-1]:s.value,c=dr(i)?Da(e,n,a,i):ka(e,n,a,i),u=dr(i)?Ea(c,e,this._currenTime):Ma(c,e,this._currenTime);this._automationEvents.push(u)}if(s!==void 0&&No(s)&&this._automationEvents.push(_i(this.getValue(e),e)),s!==void 0&&Ie(s)&&s.startTime+s.duration>e){let n=e-s.startTime,a=(s.values.length-1)/s.duration,c=Math.max(2,1+Math.ceil(n*a)),u=n/(c-1)*a,l=s.values.slice(0,c);if(u<1)for(let h=1;h<c;h+=1){let p=u*h%1;l[h]=s.values[h-1]*(1-p)+s.values[h]*p}this._automationEvents[this._automationEvents.length-1]=wo(l,s.startTime,n)}}}else{let r=this._automationEvents.findIndex(n=>mr(n)>e),i=r===-1?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[r-1];if(i!==void 0&&Ie(i)&&mr(i)+i.duration>e)return!1;let s=dr(t)?Ea(t.value,t.endTime,this._currenTime):zr(t)?Ma(t.value,e,this._currenTime):t;if(r===-1)this._automationEvents.push(s);else{if(Ie(t)&&e+t.duration>mr(this._automationEvents[r]))return!1;this._automationEvents.splice(r,0,s)}}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];No(i)&&r.unshift(_i(vi(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(n=>mr(n)>t),r=this._automationEvents[e],i=(e===-1?this._automationEvents.length:e)-1,s=this._automationEvents[i];if(s!==void 0&&No(s)&&(r===void 0||!je(r)||r.insertTime>t))return Ps(t,vi(this._automationEvents,i-1,s.startTime,this._defaultValue),s);if(s!==void 0&&Ci(s)&&(r===void 0||!je(r)))return s.value;if(s!==void 0&&Ie(s)&&(r===void 0||!je(r)||s.startTime+s.duration>t))return t<s.startTime+s.duration?Tu(t,s):s.values[s.values.length-1];if(s!==void 0&&je(s)&&(r===void 0||!je(r)))return s.value;if(r!==void 0&&dr(r)){let[n,a]=Ra(this._automationEvents,i,s,r,this._defaultValue);return Da(t,n,a,r)}if(r!==void 0&&zr(r)){let[n,a]=Ra(this._automationEvents,i,s,r,this._defaultValue);return ka(t,n,a,r)}return this._defaultValue}};var Pa=o=>({cancelTime:o,type:"cancelAndHold"});var La=o=>({cancelTime:o,type:"cancelScheduledValues"});var ja=(o,t)=>({endTime:t,type:"exponentialRampToValue",value:o});var Fa=(o,t)=>({endTime:t,type:"linearRampToValue",value:o});var Ba=(o,t,e)=>({startTime:t,target:o,timeConstant:e,type:"setTarget"});var Nu=()=>new DOMException("","AbortError");var Ou=o=>(t,e,[r,i,s],n)=>{o(t[i],[e,r,s],a=>a[0]===e&&a[1]===r,n)};var Eu=o=>(t,e,r)=>{let i=[];for(let s=0;s<r.numberOfInputs;s+=1)i.push(new Set);o.set(t,{activeInputs:i,outputs:new Set,passiveInputs:new WeakMap,renderer:e})};var Mu=o=>(t,e)=>{o.set(t,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:e})};var Je=new WeakSet,Ls=new WeakMap,Ii=new WeakMap,js=new WeakMap,Eo=new WeakMap,wi=new WeakMap,Fs=new WeakMap,Mo=new WeakMap,Ro=new WeakMap,Do=new WeakMap;var Ru={construct(){return Ru}},Du=o=>{try{let t=new Proxy(o,Ru);new t}catch(t){return!1}return!0};var ku=/^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]*);?/,Va=(o,t)=>{let e=[],r=o.replace(/^[\s]+/,""),i=r.match(ku);for(;i!==null;){let s=i[1].slice(1,-1),n=i[0].replace(/([\s]+)?;?$/,"").replace(s,new URL(s,t).toString());e.push(n),r=r.slice(i[0].length).replace(/^[\s]+/,""),i=r.match(ku)}return[e.join(";"),r]};var Pu=o=>{if(o!==void 0&&!Array.isArray(o))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},Lu=o=>{if(!Du(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.")},ju=(o,t,e,r,i,s,n,a,c,u,l,h,p)=>{let m=0;return(x,f,g={credentials:"omit"})=>{let y=l.get(x);if(y!==void 0&&y.has(f))return Promise.resolve();let I=u.get(x);if(I!==void 0){let C=I.get(f);if(C!==void 0)return C}let v=s(x),N=v.audioWorklet===void 0?i(f).then(([C,_])=>{let[b,A]=Va(C,_),S=`${b};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${A}
3
- })})(window,'_AWGS')`;return e(S)}).then(()=>{let C=p._AWGS.pop();if(C===void 0)throw new SyntaxError;r(v.currentTime,v.sampleRate,()=>C(class{},void 0,(_,b)=>{if(_.trim()==="")throw t();let A=Ro.get(v);if(A!==void 0){if(A.has(_))throw t();Lu(b),Pu(b.parameterDescriptors),A.set(_,b)}else Lu(b),Pu(b.parameterDescriptors),Ro.set(v,new Map([[_,b]]))},v.sampleRate,void 0,void 0))}):Promise.all([i(f),Promise.resolve(o(h,h))]).then(([[C,_],b])=>{let A=m+1;m=A;let[S,P]=Va(C,_),D=`${S};((AudioWorkletProcessor,registerProcessor)=>{${P}
4
- })(${b?"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{${b?"":"__c = (a) => a.forEach(e=>this.__b.add(e.buffer));"}process(i,o,p){${b?"":"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${A}',class extends AudioWorkletProcessor{process(){return !1}})`,W=new Blob([D],{type:"application/javascript; charset=utf-8"}),q=URL.createObjectURL(W);return v.audioWorklet.addModule(q,g).then(()=>{if(a(v))return v;let H=n(v);return H.audioWorklet.addModule(q,g).then(()=>H)}).then(H=>{if(c===null)throw new SyntaxError;try{new c(H,`__sac${A}`)}catch(nt){throw new SyntaxError}}).finally(()=>URL.revokeObjectURL(q))});return I===void 0?u.set(x,new Map([[f,N]])):I.set(f,N),N.then(()=>{let C=l.get(x);C===void 0?l.set(x,new Set([f])):C.add(f)}).finally(()=>{let C=u.get(x);C!==void 0&&C.delete(f)}),N}};var Vt=(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 Tr=(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 Bs=(o,t,e,r)=>{let i=Vt(o,t),s=Tr(i,n=>n[0]===e&&n[1]===r);return i.size===0&&o.delete(t),s};var Ke=o=>Vt(Fs,o);var Fe=o=>{if(Je.has(o))throw new Error("The AudioNode is already stored.");Je.add(o),Ke(o).forEach(t=>t(!0))};var Vs=o=>"port"in o;var $e=o=>{if(!Je.has(o))throw new Error("The AudioNode is not stored.");Je.delete(o),Ke(o).forEach(t=>t(!1))};var ko=(o,t)=>{!Vs(o)&&t.every(e=>e.size===0)&&$e(o)};var Fu=(o,t,e,r,i,s,n,a,c,u,l,h,p)=>{let m=new WeakMap;return(x,f,g,y,I)=>{let{activeInputs:v,passiveInputs:N}=s(f),{outputs:C}=s(x),_=a(x),b=A=>{let S=c(f),P=c(x);if(A){let M=Bs(N,x,g,y);o(v,x,M,!1),!I&&!h(x)&&e(P,S,g,y),p(f)&&Fe(f)}else{let M=r(v,x,g,y);t(N,y,M,!1),!I&&!h(x)&&i(P,S,g,y);let R=n(f);if(R===0)l(f)&&ko(f,v);else{let z=m.get(f);z!==void 0&&clearTimeout(z),m.set(f,setTimeout(()=>{l(f)&&ko(f,v)},R*1e3))}}};return u(C,[f,g,y],A=>A[0]===f&&A[1]===g&&A[2]===y,!0)?(_.add(b),l(x)?o(v,x,[g,y,b],!0):t(N,y,[x,g,b],!0),!0):!1}};var Bu=o=>(t,e,[r,i,s],n)=>{let a=t.get(r);a===void 0?t.set(r,new Set([[i,e,s]])):o(a,[i,e,s],c=>c[0]===i&&c[1]===e,n)};var Vu=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 Gu=o=>(t,e)=>{o(t).add(e)};var Qf={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},qu=(o,t,e,r,i,s)=>class extends o{constructor(a,c){let u=i(a),l=O(O({},Qf),c),h=r(u,l),p=s(u)?t():null;super(a,!1,h,p),this._nativeAnalyserNode=h}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 Wu=(o,t,e)=>()=>{let r=new WeakMap,i=(s,n)=>Q(null,null,function*(){let a=t(s);if(!pt(a,n)){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(n,u)}return r.set(n,a),yield e(s,n,a),a});return{render(s,n){let a=r.get(n);return a!==void 0?Promise.resolve(a):i(s,n)}}};var Si=o=>{try{o.copyToChannel(new Float32Array(1),0,-1)}catch(t){return!1}return!0};var we=()=>new DOMException("","IndexSizeError");var Ti=o=>{o.getChannelData=(t=>e=>{try{return t.call(o,e)}catch(r){throw r.code===12?we():r}})(o.getChannelData)};var Zf={numberOfChannels:1},Uu=(o,t,e,r,i,s,n,a)=>{let c=null;return class zu{constructor(l){if(i===null)throw new Error("Missing the native OfflineAudioContext constructor.");let{length:h,numberOfChannels:p,sampleRate:m}=O(O({},Zf),l);c===null&&(c=new i(1,1,44100));let x=r!==null&&t(s,s)?new r({length:h,numberOfChannels:p,sampleRate:m}):c.createBuffer(p,h,m);if(x.numberOfChannels===0)throw e();return typeof x.copyFromChannel!="function"?(n(x),Ti(x)):t(Si,()=>Si(x))||a(x),o.add(x),x}static[Symbol.hasInstance](l){return l!==null&&typeof l=="object"&&Object.getPrototypeOf(l)===zu.prototype||o.has(l)}}};var Pt=-34028234663852886e22,Mt=-Pt;var oe=o=>Je.has(o);var Xf={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},Yu=(o,t,e,r,i,s,n,a)=>class extends o{constructor(u,l){let h=s(u),p=O(O({},Xf),l),m=i(h,p),x=n(h),f=x?t():null;super(u,!1,m,f),this._audioBufferSourceNodeRenderer=f,this._isBufferNullified=!1,this._isBufferSet=p.buffer!==null,this._nativeAudioBufferSourceNode=m,this._onended=null,this._playbackRate=e(this,x,m.playbackRate,Mt,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 l=typeof u=="function"?a(this,u):null;this._nativeAudioBufferSourceNode.onended=l;let h=this._nativeAudioBufferSourceNode.onended;this._onended=h!==null&&h===l?u:h}get playbackRate(){return this._playbackRate}start(u=0,l=0,h){if(this._nativeAudioBufferSourceNode.start(u,l,h),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.start=h===void 0?[u,l]:[u,l,h]),this.context.state!=="closed"){Fe(this);let p=()=>{this._nativeAudioBufferSourceNode.removeEventListener("ended",p),oe(this)&&$e(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",p)}}stop(u=0){this._nativeAudioBufferSourceNode.stop(u),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.stop=u)}};var Hu=(o,t,e,r,i)=>()=>{let s=new WeakMap,n=null,a=null,c=(u,l)=>Q(null,null,function*(){let h=e(u),p=pt(h,l);if(!p){let m={buffer:h.buffer,channelCount:h.channelCount,channelCountMode:h.channelCountMode,channelInterpretation:h.channelInterpretation,loop:h.loop,loopEnd:h.loopEnd,loopStart:h.loopStart,playbackRate:h.playbackRate.value};h=t(l,m),n!==null&&h.start(...n),a!==null&&h.stop(a)}return s.set(l,h),p?yield o(l,u.playbackRate,h.playbackRate):yield r(l,u.playbackRate,h.playbackRate),yield i(u,l,h),h});return{set start(u){n=u},set stop(u){a=u},render(u,l){let h=s.get(l);return h!==void 0?Promise.resolve(h):c(u,l)}}};var Qu=o=>"playbackRate"in o;var Zu=o=>"frequency"in o&&"gain"in o;var Xu=o=>"offset"in o;var Ju=o=>!("frequency"in o)&&"gain"in o;var Ku=o=>"detune"in o&&"frequency"in o&&!("gain"in o);var $u=o=>"pan"in o;var Qt=o=>Vt(Ls,o);var Nr=o=>Vt(js,o);var Gs=(o,t)=>{let{activeInputs:e}=Qt(o);e.forEach(i=>i.forEach(([s])=>{t.includes(o)||Gs(s,[...t,o])}));let r=Qu(o)?[o.playbackRate]:Vs(o)?Array.from(o.parameters.values()):Zu(o)?[o.Q,o.detune,o.frequency,o.gain]:Xu(o)?[o.offset]:Ju(o)?[o.gain]:Ku(o)?[o.detune,o.frequency]:$u(o)?[o.pan]:[];for(let i of r){let s=Nr(i);s!==void 0&&s.activeInputs.forEach(([n])=>Gs(n,t))}oe(o)&&$e(o)};var Or=o=>{Gs(o.destination,[])};var qs=o=>o===void 0||typeof o=="number"||typeof o=="string"&&(o==="balanced"||o==="interactive"||o==="playback");var tl=(o,t,e,r,i,s,n,a,c)=>class extends o{constructor(l={}){if(c===null)throw new Error("Missing the native AudioContext constructor.");let h;try{h=new c(l)}catch(x){throw x.code===12&&x.message==="sampleRate is not in range"?e():x}if(h===null)throw r();if(!qs(l.latencyHint))throw new TypeError(`The provided value '${l.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(l.sampleRate!==void 0&&h.sampleRate!==l.sampleRate)throw e();super(h,2);let{latencyHint:p}=l,{sampleRate:m}=h;if(this._baseLatency=typeof h.baseLatency=="number"?h.baseLatency:p==="balanced"?512/m:p==="interactive"||p===void 0?256/m:p==="playback"?1024/m:Math.max(2,Math.min(128,Math.round(p*m/128)))*128/m,this._nativeAudioContext=h,c.name==="webkitAudioContext"?(this._nativeGainNode=h.createGain(),this._nativeOscillatorNode=h.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(h.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,h.state==="running"){this._state="suspended";let x=()=>{this._state==="suspended"&&(this._state=null),h.removeEventListener("statechange",x)};h.addEventListener("statechange",x)}}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()),Or(this)}))}createMediaElementSource(l){return new i(this,{mediaElement:l})}createMediaStreamDestination(){return new s(this)}createMediaStreamSource(l){return new n(this,{mediaStream:l})}createMediaStreamTrackSource(l){return new a(this,{mediaStreamTrack:l})}resume(){return this._state==="suspended"?new Promise((l,h)=>{let p=()=>{this._nativeAudioContext.removeEventListener("statechange",p),this._nativeAudioContext.state==="running"?l():this.resume().then(l,h)};this._nativeAudioContext.addEventListener("statechange",p)}):this._nativeAudioContext.resume().catch(l=>{throw l===void 0||l.code===15?t():l})}suspend(){return this._nativeAudioContext.suspend().catch(l=>{throw l===void 0?t():l})}};var el=(o,t,e,r,i,s,n,a)=>class extends o{constructor(u,l){let h=s(u),p=n(h),m=i(h,l,p),x=p?t(a):null;super(u,!1,m,x),this._isNodeOfNativeOfflineAudioContext=p,this._nativeAudioDestinationNode=m}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 rl=o=>{let t=new WeakMap,e=(r,i)=>Q(null,null,function*(){let s=i.destination;return t.set(i,s),yield o(r,i,s),s});return{render(r,i){let s=t.get(i);return s!==void 0?Promise.resolve(s):e(r,i)}}};var il=(o,t,e,r,i,s,n,a)=>(c,u)=>{let l=u.listener,h=()=>{let C=new Float32Array(1),_=t(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:9}),b=n(u),A=!1,S=[0,0,-1,0,1,0],P=[0,0,0],M=()=>{if(A)return;A=!0;let W=r(u,256,9,0);W.onaudioprocess=({inputBuffer:q})=>{let H=[s(q,C,0),s(q,C,1),s(q,C,2),s(q,C,3),s(q,C,4),s(q,C,5)];H.some((K,et)=>K!==S[et])&&(l.setOrientation(...H),S=H);let nt=[s(q,C,6),s(q,C,7),s(q,C,8)];nt.some((K,et)=>K!==P[et])&&(l.setPosition(...nt),P=nt)},_.connect(W)},R=W=>q=>{q!==S[W]&&(S[W]=q,l.setOrientation(...S))},z=W=>q=>{q!==P[W]&&(P[W]=q,l.setPosition(...P))},D=(W,q,H)=>{let nt=e(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:q});nt.connect(_,0,W),nt.start(),Object.defineProperty(nt.offset,"defaultValue",{get(){return q}});let K=o({context:c},b,nt.offset,Mt,Pt);return a(K,"value",et=>()=>et.call(K),et=>ht=>{try{et.call(K,ht)}catch(_t){if(_t.code!==9)throw _t}M(),b&&H(ht)}),K.cancelAndHoldAtTime=(et=>b?()=>{throw i()}:(...ht)=>{let _t=et.apply(K,ht);return M(),_t})(K.cancelAndHoldAtTime),K.cancelScheduledValues=(et=>b?()=>{throw i()}:(...ht)=>{let _t=et.apply(K,ht);return M(),_t})(K.cancelScheduledValues),K.exponentialRampToValueAtTime=(et=>b?()=>{throw i()}:(...ht)=>{let _t=et.apply(K,ht);return M(),_t})(K.exponentialRampToValueAtTime),K.linearRampToValueAtTime=(et=>b?()=>{throw i()}:(...ht)=>{let _t=et.apply(K,ht);return M(),_t})(K.linearRampToValueAtTime),K.setTargetAtTime=(et=>b?()=>{throw i()}:(...ht)=>{let _t=et.apply(K,ht);return M(),_t})(K.setTargetAtTime),K.setValueAtTime=(et=>b?()=>{throw i()}:(...ht)=>{let _t=et.apply(K,ht);return M(),_t})(K.setValueAtTime),K.setValueCurveAtTime=(et=>b?()=>{throw i()}:(...ht)=>{let _t=et.apply(K,ht);return M(),_t})(K.setValueCurveAtTime),K};return{forwardX:D(0,0,R(0)),forwardY:D(1,0,R(1)),forwardZ:D(2,-1,R(2)),positionX:D(6,0,z(0)),positionY:D(7,0,z(1)),positionZ:D(8,0,z(2)),upX:D(3,0,R(3)),upY:D(4,1,R(4)),upZ:D(5,0,R(5))}},{forwardX:p,forwardY:m,forwardZ:x,positionX:f,positionY:g,positionZ:y,upX:I,upY:v,upZ:N}=l.forwardX===void 0?h():l;return{get forwardX(){return p},get forwardY(){return m},get forwardZ(){return x},get positionX(){return f},get positionY(){return g},get positionZ(){return y},get upX(){return I},get upY(){return v},get upZ(){return N}}};var Yr=o=>"context"in o;var Er=o=>Yr(o[0]);var Be=(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 Ga=(o,t,[e,r],i)=>{Be(o,[t,e,r],s=>s[0]===t&&s[1]===e,i)};var qa=(o,[t,e,r],i)=>{let s=o.get(t);s===void 0?o.set(t,new Set([[e,r]])):Be(s,[e,r],n=>n[0]===e,i)};var Se=o=>"inputs"in o;var Ni=(o,t,e,r)=>{if(Se(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 Wa=(o,t,e)=>{for(let r of o)if(r[0]===t&&r[1]===e)return o.delete(r),r;return null};var ol=(o,t,e)=>Tr(o,r=>r[0]===t&&r[1]===e);var Ua=(o,t)=>{if(!Ke(o).delete(t))throw new Error("Missing the expected event listener.")};var za=(o,t,e)=>{let r=Vt(o,t),i=Tr(r,s=>s[0]===e);return r.size===0&&o.delete(t),i};var Oi=(o,t,e,r)=>{Se(t)?o.disconnect(t.inputs[r],e,0):o.disconnect(t,e,r)};var At=o=>Vt(Ii,o);var Hr=o=>Vt(Eo,o);var fr=o=>Mo.has(o);var Ei=o=>!Je.has(o);var Ya=(o,t)=>new Promise(e=>{if(t!==null)e(!0);else{let r=o.createScriptProcessor(256,1,1),i=o.createGain(),s=o.createBuffer(1,2,44100),n=s.getChannelData(0);n[0]=1,n[1]=1;let a=o.createBufferSource();a.buffer=s,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,l=>l===1)?e(!0):e(!1),a.stop(),r.onaudioprocess=null,a.disconnect(r),r.disconnect(o.destination)},a.start()}});var Ws=(o,t)=>{let e=new Map;for(let r of o)for(let i of r){let s=e.get(i);e.set(i,s===void 0?1:s+1)}e.forEach((r,i)=>t(i,r))};var Qr=o=>"context"in o;var sl=o=>{let t=new Map;o.connect=(e=>(r,i=0,s=0)=>{let n=Qr(r)?e(r,i,s):e(r,i),a=t.get(r);return a===void 0?t.set(r,[{input:s,output:i}]):a.every(c=>c.input!==s||c.output!==i)&&a.push({input:s,output:i}),n})(o.connect.bind(o)),o.disconnect=(e=>(r,i,s)=>{if(e.apply(o),r===void 0)t.clear();else if(typeof r=="number")for(let[n,a]of t){let c=a.filter(u=>u.output!==r);c.length===0?t.delete(n):t.set(n,c)}else if(t.has(r))if(i===void 0)t.delete(r);else{let n=t.get(r);if(n!==void 0){let a=n.filter(c=>c.output!==i&&(c.input!==s||s===void 0));a.length===0?t.delete(r):t.set(r,a)}}for(let[n,a]of t)a.forEach(c=>{Qr(n)?o.connect(n,c.output,c.input):o.connect(n,c.output)})})(o.disconnect)};var Jf=(o,t,e,r)=>{let{activeInputs:i,passiveInputs:s}=Nr(t),{outputs:n}=Qt(o),a=Ke(o),c=u=>{let l=At(o),h=Hr(t);if(u){let p=za(s,o,e);Ga(i,o,p,!1),!r&&!fr(o)&&l.connect(h,e)}else{let p=ol(i,o,e);qa(s,p,!1),!r&&!fr(o)&&l.disconnect(h,e)}};return Be(n,[t,e],u=>u[0]===t&&u[1]===e,!0)?(a.add(c),oe(o)?Ga(i,o,[e,c],!0):qa(s,[o,e,c],!0),!0):!1},Kf=(o,t,e,r)=>{let{activeInputs:i,passiveInputs:s}=Qt(t),n=Wa(i[r],o,e);return n===null?[Bs(s,o,e,r)[2],!1]:[n[2],!0]},$f=(o,t,e)=>{let{activeInputs:r,passiveInputs:i}=Nr(t),s=Wa(r,o,e);return s===null?[za(i,o,e)[1],!1]:[s[2],!0]},Ha=(o,t,e,r,i)=>{let[s,n]=Kf(o,e,r,i);if(s!==null&&(Ua(o,s),n&&!t&&!fr(o)&&Oi(At(o),At(e),r,i)),oe(e)){let{activeInputs:a}=Qt(e);ko(e,a)}},Qa=(o,t,e,r)=>{let[i,s]=$f(o,e,r);i!==null&&(Ua(o,i),s&&!t&&!fr(o)&&At(o).disconnect(Hr(e),r))},tg=(o,t)=>{let e=Qt(o),r=[];for(let i of e.outputs)Er(i)?Ha(o,t,...i):Qa(o,t,...i),r.push(i[0]);return e.outputs.clear(),r},eg=(o,t,e)=>{let r=Qt(o),i=[];for(let s of r.outputs)s[1]===e&&(Er(s)?Ha(o,t,...s):Qa(o,t,...s),i.push(s[0]),r.outputs.delete(s));return i},rg=(o,t,e,r,i)=>{let s=Qt(o);return Array.from(s.outputs).filter(n=>n[0]===e&&(r===void 0||n[1]===r)&&(i===void 0||n[2]===i)).map(n=>(Er(n)?Ha(o,t,...n):Qa(o,t,...n),s.outputs.delete(n),n[0]))},nl=(o,t,e,r,i,s,n,a,c,u,l,h,p,m,x,f)=>class extends u{constructor(y,I,v,N){super(v),this._context=y,this._nativeAudioNode=v;let C=l(y);h(C)&&e(Ya,()=>Ya(C,f))!==!0&&sl(v),Ii.set(this,v),Fs.set(this,new Set),y.state!=="closed"&&I&&Fe(this),o(this,N,v)}get channelCount(){return this._nativeAudioNode.channelCount}set channelCount(y){this._nativeAudioNode.channelCount=y}get channelCountMode(){return this._nativeAudioNode.channelCountMode}set channelCountMode(y){this._nativeAudioNode.channelCountMode=y}get channelInterpretation(){return this._nativeAudioNode.channelInterpretation}set channelInterpretation(y){this._nativeAudioNode.channelInterpretation=y}get context(){return this._context}get numberOfInputs(){return this._nativeAudioNode.numberOfInputs}get numberOfOutputs(){return this._nativeAudioNode.numberOfOutputs}connect(y,I=0,v=0){if(I<0||I>=this._nativeAudioNode.numberOfOutputs)throw i();let N=l(this._context),C=x(N);if(p(y)||m(y))throw s();if(Yr(y)){let A=At(y);try{let P=Ni(this._nativeAudioNode,A,I,v),M=Ei(this);(C||M)&&this._nativeAudioNode.disconnect(...P),this.context.state!=="closed"&&!M&&Ei(y)&&Fe(y)}catch(P){throw P.code===12?s():P}if(t(this,y,I,v,C)){let P=c([this],y);Ws(P,r(C))}return y}let _=Hr(y);if(_.name==="playbackRate"&&_.maxValue===1024)throw n();try{this._nativeAudioNode.connect(_,I),(C||Ei(this))&&this._nativeAudioNode.disconnect(_,I)}catch(A){throw A.code===12?s():A}if(Jf(this,y,I,C)){let A=c([this],y);Ws(A,r(C))}}disconnect(y,I,v){let N,C=l(this._context),_=x(C);if(y===void 0)N=tg(this,_);else if(typeof y=="number"){if(y<0||y>=this.numberOfOutputs)throw i();N=eg(this,_,y)}else{if(I!==void 0&&(I<0||I>=this.numberOfOutputs)||Yr(y)&&v!==void 0&&(v<0||v>=y.numberOfInputs))throw i();if(N=rg(this,_,y,I,v),N.length===0)throw s()}for(let b of N){let A=c([this],b);Ws(A,a)}}};var al=(o,t,e,r,i,s,n,a,c,u,l,h,p)=>(m,x,f,g=null,y=null)=>{let I=f.value,v=new Oo(I),N=x?r(v):null,C={get defaultValue(){return I},get maxValue(){return g===null?f.maxValue:g},get minValue(){return y===null?f.minValue:y},get value(){return f.value},set value(_){f.value=_,C.setValueAtTime(_,m.context.currentTime)},cancelAndHoldAtTime(_){if(typeof f.cancelAndHoldAtTime=="function")N===null&&v.flush(m.context.currentTime),v.add(i(_)),f.cancelAndHoldAtTime(_);else{let b=Array.from(v).pop();N===null&&v.flush(m.context.currentTime),v.add(i(_));let A=Array.from(v).pop();f.cancelScheduledValues(_),b!==A&&A!==void 0&&(A.type==="exponentialRampToValue"?f.exponentialRampToValueAtTime(A.value,A.endTime):A.type==="linearRampToValue"?f.linearRampToValueAtTime(A.value,A.endTime):A.type==="setValue"?f.setValueAtTime(A.value,A.startTime):A.type==="setValueCurve"&&f.setValueCurveAtTime(A.values,A.startTime,A.duration))}return C},cancelScheduledValues(_){return N===null&&v.flush(m.context.currentTime),v.add(s(_)),f.cancelScheduledValues(_),C},exponentialRampToValueAtTime(_,b){if(_===0)throw new RangeError;if(!Number.isFinite(b)||b<0)throw new RangeError;let A=m.context.currentTime;return N===null&&v.flush(A),Array.from(v).length===0&&(v.add(u(I,A)),f.setValueAtTime(I,A)),v.add(n(_,b)),f.exponentialRampToValueAtTime(_,b),C},linearRampToValueAtTime(_,b){let A=m.context.currentTime;return N===null&&v.flush(A),Array.from(v).length===0&&(v.add(u(I,A)),f.setValueAtTime(I,A)),v.add(a(_,b)),f.linearRampToValueAtTime(_,b),C},setTargetAtTime(_,b,A){return N===null&&v.flush(m.context.currentTime),v.add(c(_,b,A)),f.setTargetAtTime(_,b,A),C},setValueAtTime(_,b){return N===null&&v.flush(m.context.currentTime),v.add(u(_,b)),f.setValueAtTime(_,b),C},setValueCurveAtTime(_,b,A){let S=_ instanceof Float32Array?_:new Float32Array(_);if(h!==null&&h.name==="webkitAudioContext"){let P=b+A,M=m.context.sampleRate,R=Math.ceil(b*M),z=Math.floor(P*M),D=z-R,W=new Float32Array(D);for(let H=0;H<D;H+=1){let nt=(S.length-1)/A*((R+H)/M-b),K=Math.floor(nt),et=Math.ceil(nt);W[H]=K===et?S[K]:(1-(nt-K))*S[K]+(1-(et-nt))*S[et]}N===null&&v.flush(m.context.currentTime),v.add(l(W,b,A)),f.setValueCurveAtTime(W,b,A);let q=z/M;q<P&&p(C,W[W.length-1],q),p(C,S[S.length-1],P)}else N===null&&v.flush(m.context.currentTime),v.add(l(S,b,A)),f.setValueCurveAtTime(S,b,A);return C}};return e.set(C,f),t.set(C,m),o(C,N),C};var cl=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:s}=e;t.setTargetAtTime(i,r,s)}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:s}=e;t.setValueCurveAtTime(s,i,r)}else throw new Error("Can't apply an unknown automation.")}});var Mi=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:{}},ul=(o,t,e,r,i,s,n,a,c,u,l,h,p,m)=>class extends t{constructor(f,g,y){var I;let v=a(f),N=c(v),C=l(O(O({},ig),y));p(C);let _=Ro.get(v),b=_==null?void 0:_.get(g),A=N||v.state!=="closed"?v:(I=n(v))!==null&&I!==void 0?I:v,S=i(A,N?null:f.baseLatency,u,g,b,C),P=N?r(g,C,b):null;super(f,!0,S,P);let M=[];S.parameters.forEach((z,D)=>{let W=e(this,N,z);M.push([D,W])}),this._nativeAudioWorkletNode=S,this._onprocessorerror=null,this._parameters=new Mi(M),N&&o(v,this);let{activeInputs:R}=s(this);h(S,R)}get onprocessorerror(){return this._onprocessorerror}set onprocessorerror(f){let g=typeof f=="function"?m(this,f):null;this._nativeAudioWorkletNode.onprocessorerror=g;let y=this._nativeAudioWorkletNode.onprocessorerror;this._onprocessorerror=y!==null&&y===g?f:y}get parameters(){return this._parameters===null?this._nativeAudioWorkletNode.parameters:this._parameters}get port(){return this._nativeAudioWorkletNode.port}};function Ri(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 s=o.getChannelData(r);if(t[e].byteLength===0)t[e]=s.slice(i,i+128);else{let n=new Float32Array(s.buffer,i*Float32Array.BYTES_PER_ELEMENT,128);t[e].set(n)}}}var Us=(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 Di=(o,t)=>{let e=[];for(let r=0;r<o;r+=1){let i=[],s=typeof t=="number"?t:t[r];for(let n=0;n<s;n+=1)i.push(new Float32Array(128));e.push(i)}return e};var ll=(o,t)=>{let e=Vt(Do,o),r=At(t);return Vt(e,r)};var og=(o,t,e,r,i,s,n)=>Q(null,null,function*(){let a=t===null?Math.ceil(o.context.length/128)*128:t.length,c=r.channelCount*r.numberOfInputs,u=i.reduce((g,y)=>g+y,0),l=u===0?null:e.createBuffer(u,a,e.sampleRate);if(s===void 0)throw new Error("Missing the processor constructor.");let h=Qt(o),p=yield ll(e,o),m=Di(r.numberOfInputs,r.channelCount),x=Di(r.numberOfOutputs,i),f=Array.from(o.parameters.keys()).reduce((g,y)=>Y(O({},g),{[y]:new Float32Array(128)}),{});for(let g=0;g<a;g+=128){if(r.numberOfInputs>0&&t!==null)for(let y=0;y<r.numberOfInputs;y+=1)for(let I=0;I<r.channelCount;I+=1)Ri(t,m[y],I,I,g);s.parameterDescriptors!==void 0&&t!==null&&s.parameterDescriptors.forEach(({name:y},I)=>{Ri(t,f,y,c+I,g)});for(let y=0;y<r.numberOfInputs;y+=1)for(let I=0;I<i[y];I+=1)x[y][I].byteLength===0&&(x[y][I]=new Float32Array(128));try{let y=m.map((v,N)=>h.activeInputs[N].size===0?[]:v),I=n(g/e.sampleRate,e.sampleRate,()=>p.process(y,x,f));if(l!==null)for(let v=0,N=0;v<r.numberOfOutputs;v+=1){for(let C=0;C<i[v];C+=1)Us(l,x[v],C,N+C,g);N+=i[v]}if(!I)break}catch(y){o.dispatchEvent(new ErrorEvent("processorerror",{colno:y.colno,filename:y.filename,lineno:y.lineno,message:y.message}));break}}return l}),hl=(o,t,e,r,i,s,n,a,c,u,l,h,p,m,x,f)=>(g,y,I)=>{let v=new WeakMap,N=null,C=(_,b)=>Q(null,null,function*(){let A=l(_),S=null,P=pt(A,b),M=Array.isArray(y.outputChannelCount)?y.outputChannelCount:Array.from(y.outputChannelCount);if(h===null){let R=M.reduce((q,H)=>q+H,0),z=i(b,{channelCount:Math.max(1,R),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,R)}),D=[];for(let q=0;q<_.numberOfOutputs;q+=1)D.push(r(b,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:M[q]}));let W=n(b,{channelCount:y.channelCount,channelCountMode:y.channelCountMode,channelInterpretation:y.channelInterpretation,gain:1});W.connect=t.bind(null,D),W.disconnect=c.bind(null,D),S=[z,D,W]}else P||(A=new h(b,g));if(v.set(b,S===null?A:S[2]),S!==null){if(N===null){if(I===void 0)throw new Error("Missing the processor constructor.");if(p===null)throw new Error("Missing the native OfflineAudioContext constructor.");let H=_.channelCount*_.numberOfInputs,nt=I.parameterDescriptors===void 0?0:I.parameterDescriptors.length,K=H+nt;N=og(_,K===0?null:yield Q(null,null,function*(){let ht=new p(K,Math.ceil(_.context.length/128)*128,b.sampleRate),_t=[],kt=[];for(let yt=0;yt<y.numberOfInputs;yt+=1)_t.push(n(ht,{channelCount:y.channelCount,channelCountMode:y.channelCountMode,channelInterpretation:y.channelInterpretation,gain:1})),kt.push(i(ht,{channelCount:y.channelCount,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:y.channelCount}));let fe=yield Promise.all(Array.from(_.parameters.values()).map(yt=>Q(null,null,function*(){let rt=s(ht,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:yt.value});return yield m(ht,yt,rt.offset),rt}))),ge=r(ht,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,H+nt)});for(let yt=0;yt<y.numberOfInputs;yt+=1){_t[yt].connect(kt[yt]);for(let rt=0;rt<y.channelCount;rt+=1)kt[yt].connect(ge,rt,yt*y.channelCount+rt)}for(let[yt,rt]of fe.entries())rt.connect(ge,0,H+yt),rt.start(0);return ge.connect(ht.destination),yield Promise.all(_t.map(yt=>x(_,ht,yt))),f(ht)}),b,y,M,I,u)}let R=yield N,z=e(b,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[D,W,q]=S;R!==null&&(z.buffer=R,z.start(0)),z.connect(D);for(let H=0,nt=0;H<_.numberOfOutputs;H+=1){let K=W[H];for(let et=0;et<M[H];et+=1)D.connect(K,nt+et,et);nt+=M[H]}return q}if(P)for(let[R,z]of _.parameters.entries())yield o(b,z,A.parameters.get(R));else for(let[R,z]of _.parameters.entries())yield m(b,z,A.parameters.get(R));return yield x(_,b,A),A});return{render(_,b){a(b,_);let A=v.get(b);return A!==void 0?Promise.resolve(A):C(_,b)}}};var pl=(o,t,e,r,i,s,n,a,c,u,l,h,p,m,x,f,g,y,I,v)=>class extends x{constructor(C,_){super(C,_),this._nativeContext=C,this._audioWorklet=o===void 0?void 0:{addModule:(b,A)=>o(this,b,A)}}get audioWorklet(){return this._audioWorklet}createAnalyser(){return new t(this)}createBiquadFilter(){return new i(this)}createBuffer(C,_,b){return new e({length:_,numberOfChannels:C,sampleRate:b})}createBufferSource(){return new r(this)}createChannelMerger(C=6){return new s(this,{numberOfInputs:C})}createChannelSplitter(C=6){return new n(this,{numberOfOutputs:C})}createConstantSource(){return new a(this)}createConvolver(){return new c(this)}createDelay(C=1){return new l(this,{maxDelayTime:C})}createDynamicsCompressor(){return new h(this)}createGain(){return new p(this)}createIIRFilter(C,_){return new m(this,{feedback:_,feedforward:C})}createOscillator(){return new f(this)}createPanner(){return new g(this)}createPeriodicWave(C,_,b={disableNormalization:!1}){return new y(this,Y(O({},b),{imag:_,real:C}))}createStereoPanner(){return new I(this)}createWaveShaper(){return new v(this)}decodeAudioData(C,_,b){return u(this._nativeContext,C).then(A=>(typeof _=="function"&&_(A),A),A=>{throw typeof b=="function"&&b(A),A})}};var sg={Q:1,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:350,gain:0,type:"lowpass"},dl=(o,t,e,r,i,s,n,a)=>class extends o{constructor(u,l){let h=s(u),p=O(O({},sg),l),m=i(h,p),x=n(h),f=x?e():null;super(u,!1,m,f),this._Q=t(this,x,m.Q,Mt,Pt),this._detune=t(this,x,m.detune,1200*Math.log2(Mt),-1200*Math.log2(Mt)),this._frequency=t(this,x,m.frequency,u.sampleRate/2,0),this._gain=t(this,x,m.gain,40*Math.log10(Mt),Pt),this._nativeBiquadFilterNode=m,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,l,h){try{this._nativeBiquadFilterNode.getFrequencyResponse(u,l,h)}catch(p){throw p.code===11?r():p}if(u.length!==l.length||l.length!==h.length)throw r()}};var ml=(o,t,e,r,i)=>()=>{let s=new WeakMap,n=(a,c)=>Q(null,null,function*(){let u=e(a),l=pt(u,c);if(!l){let h={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,h)}return s.set(c,u),l?(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=s.get(c);return u!==void 0?Promise.resolve(u):n(a,c)}}};var fl=(o,t)=>(e,r)=>{let i=t.get(e);if(i!==void 0)return i;let s=o.get(e);if(s!==void 0)return s;try{let n=r();return n instanceof Promise?(o.set(e,n),n.catch(()=>!1).then(a=>(o.delete(e),t.set(e,a),a))):(t.set(e,n),n)}catch(n){return t.set(e,!1),!1}};var ng={channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6},gl=(o,t,e,r,i)=>class extends o{constructor(n,a){let c=r(n),u=O(O({},ng),a),l=e(c,u),h=i(c)?t():null;super(n,!1,l,h)}};var xl=(o,t,e)=>()=>{let r=new WeakMap,i=(s,n)=>Q(null,null,function*(){let a=t(s);if(!pt(a,n)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfInputs:a.numberOfInputs};a=o(n,u)}return r.set(n,a),yield e(s,n,a),a});return{render(s,n){let a=r.get(n);return a!==void 0?Promise.resolve(a):i(s,n)}}};var ag={channelCount:6,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:6},yl=(o,t,e,r,i,s)=>class extends o{constructor(a,c){let u=r(a),l=s(O(O({},ag),c)),h=e(u,l),p=i(u)?t():null;super(a,!1,h,p)}};var Al=(o,t,e)=>()=>{let r=new WeakMap,i=(s,n)=>Q(null,null,function*(){let a=t(s);if(!pt(a,n)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfOutputs:a.numberOfOutputs};a=o(n,u)}return r.set(n,a),yield e(s,n,a),a});return{render(s,n){let a=r.get(n);return a!==void 0?Promise.resolve(a):i(s,n)}}};var bl=o=>(t,e,r)=>o(e,t,r);var _l=o=>(t,e,r=0,i=0)=>{let s=t[r];if(s===void 0)throw o();return Qr(e)?s.connect(e,0,i):s.connect(e,0)};var Cl=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 cg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",offset:1},vl=(o,t,e,r,i,s,n)=>class extends o{constructor(c,u){let l=i(c),h=O(O({},cg),u),p=r(l,h),m=s(l),x=m?e():null;super(c,!1,p,x),this._constantSourceNodeRenderer=x,this._nativeConstantSourceNode=p,this._offset=t(this,m,p.offset,Mt,Pt),this._onended=null}get offset(){return this._offset}get onended(){return this._onended}set onended(c){let u=typeof c=="function"?n(this,c):null;this._nativeConstantSourceNode.onended=u;let l=this._nativeConstantSourceNode.onended;this._onended=l!==null&&l===u?c:l}start(c=0){if(this._nativeConstantSourceNode.start(c),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.start=c),this.context.state!=="closed"){Fe(this);let u=()=>{this._nativeConstantSourceNode.removeEventListener("ended",u),oe(this)&&$e(this)};this._nativeConstantSourceNode.addEventListener("ended",u)}}stop(c=0){this._nativeConstantSourceNode.stop(c),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.stop=c)}};var Il=(o,t,e,r,i)=>()=>{let s=new WeakMap,n=null,a=null,c=(u,l)=>Q(null,null,function*(){let h=e(u),p=pt(h,l);if(!p){let m={channelCount:h.channelCount,channelCountMode:h.channelCountMode,channelInterpretation:h.channelInterpretation,offset:h.offset.value};h=t(l,m),n!==null&&h.start(n),a!==null&&h.stop(a)}return s.set(l,h),p?yield o(l,u.offset,h.offset):yield r(l,u.offset,h.offset),yield i(u,l,h),h});return{set start(u){n=u},set stop(u){a=u},render(u,l){let h=s.get(l);return h!==void 0?Promise.resolve(h):c(u,l)}}};var wl=o=>t=>(o[0]=t,o[0]);var ug={buffer:null,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",disableNormalization:!1},Sl=(o,t,e,r,i,s)=>class extends o{constructor(a,c){let u=r(a),l=O(O({},ug),c),h=e(u,l),m=i(u)?t():null;super(a,!1,h,m),this._isBufferNullified=!1,this._nativeConvolverNode=h,l.buffer!==null&&s(this,l.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,s(this,0)}else this._isBufferNullified=!1,s(this,this._nativeConvolverNode.buffer===null?0:this._nativeConvolverNode.buffer.duration)}get normalize(){return this._nativeConvolverNode.normalize}set normalize(a){this._nativeConvolverNode.normalize=a}};var Tl=(o,t,e)=>()=>{let r=new WeakMap,i=(s,n)=>Q(null,null,function*(){let a=t(s);if(!pt(a,n)){let u={buffer:a.buffer,channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,disableNormalization:!a.normalize};a=o(n,u)}return r.set(n,a),Se(a)?yield e(s,n,a.inputs[0]):yield e(s,n,a),a});return{render(s,n){let a=r.get(n);return a!==void 0?Promise.resolve(a):i(s,n)}}};var Nl=(o,t)=>(e,r,i)=>{if(t===null)throw new Error("Missing the native OfflineAudioContext constructor.");try{return new t(e,r,i)}catch(s){throw s.name==="SyntaxError"?o():s}};var Ol=()=>new DOMException("","DataCloneError");var Za=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(s){}finally{i()}})};var El=(o,t,e,r,i,s,n,a,c,u,l)=>(h,p)=>{let m=n(h)?h:s(h);if(i.has(p)){let x=e();return Promise.reject(x)}try{i.add(p)}catch(x){}return t(c,()=>c(m))?m.decodeAudioData(p).then(x=>(Za(p).catch(()=>{}),t(a,()=>a(x))||l(x),o.add(x),x)):new Promise((x,f)=>{let g=()=>Q(null,null,function*(){try{yield Za(p)}catch(I){}}),y=I=>{f(I),g()};try{m.decodeAudioData(p,I=>{typeof I.copyFromChannel!="function"&&(u(I),Ti(I)),o.add(I),g().then(()=>x(I))},I=>{y(I===null?r():I)})}catch(I){y(I)}})};var Ml=(o,t,e,r,i,s,n,a)=>(c,u)=>{let l=t.get(c);if(l===void 0)throw new Error("Missing the expected cycle count.");let h=s(c.context),p=a(h);if(l===u){if(t.delete(c),!p&&n(c)){let m=r(c),{outputs:x}=e(c);for(let f of x)if(Er(f)){let g=r(f[0]);o(m,g,f[1],f[2])}else{let g=i(f[0]);m.connect(g,f[1])}}}else t.set(c,l-u)};var lg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},Rl=(o,t,e,r,i,s,n)=>class extends o{constructor(c,u){let l=i(c),h=O(O({},lg),u),p=r(l,h),m=s(l),x=m?e(h.maxDelayTime):null;super(c,!1,p,x),this._delayTime=t(this,m,p.delayTime),n(this,h.maxDelayTime)}get delayTime(){return this._delayTime}};var Dl=(o,t,e,r,i)=>s=>{let n=new WeakMap,a=(c,u)=>Q(null,null,function*(){let l=e(c),h=pt(l,u);if(!h){let p={channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,delayTime:l.delayTime.value,maxDelayTime:s};l=t(u,p)}return n.set(u,l),h?yield o(u,c.delayTime,l.delayTime):yield r(u,c.delayTime,l.delayTime),yield i(c,u,l),l});return{render(c,u){let l=n.get(u);return l!==void 0?Promise.resolve(l):a(c,u)}}};var kl=o=>(t,e,r,i)=>o(t[i],s=>s[0]===e&&s[1]===r);var Pl=o=>(t,e)=>{o(t).delete(e)};var Ll=o=>"delayTime"in o;var jl=(o,t,e)=>function r(i,s){let n=Yr(s)?s:e(o,s);if(Ll(n))return[];if(i[0]===n)return[i];if(i.includes(n))return[];let{outputs:a}=t(n);return Array.from(a).map(c=>r([...i,n],c[0])).reduce((c,u)=>c.concat(u),[])};var zs=(o,t,e)=>{let r=t[e];if(r===void 0)throw o();return r},Fl=o=>(t,e=void 0,r=void 0,i=0)=>e===void 0?t.forEach(s=>s.disconnect()):typeof e=="number"?zs(o,t,e).disconnect():Qr(e)?r===void 0?t.forEach(s=>s.disconnect(e)):i===void 0?zs(o,t,r).disconnect(e,0):zs(o,t,r).disconnect(e,0,i):r===void 0?t.forEach(s=>s.disconnect(e)):zs(o,t,r).disconnect(e,0);var hg={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},Bl=(o,t,e,r,i,s,n,a)=>class extends o{constructor(u,l){let h=s(u),p=O(O({},hg),l),m=r(h,p),x=n(h),f=x?e():null;super(u,!1,m,f),this._attack=t(this,x,m.attack),this._knee=t(this,x,m.knee),this._nativeDynamicsCompressorNode=m,this._ratio=t(this,x,m.ratio),this._release=t(this,x,m.release),this._threshold=t(this,x,m.threshold),a(this,.006)}get attack(){return this._attack}get channelCount(){return this._nativeDynamicsCompressorNode.channelCount}set channelCount(u){let l=this._nativeDynamicsCompressorNode.channelCount;if(this._nativeDynamicsCompressorNode.channelCount=u,u>2)throw this._nativeDynamicsCompressorNode.channelCount=l,i()}get channelCountMode(){return this._nativeDynamicsCompressorNode.channelCountMode}set channelCountMode(u){let l=this._nativeDynamicsCompressorNode.channelCountMode;if(this._nativeDynamicsCompressorNode.channelCountMode=u,u==="max")throw this._nativeDynamicsCompressorNode.channelCountMode=l,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 Vl=(o,t,e,r,i)=>()=>{let s=new WeakMap,n=(a,c)=>Q(null,null,function*(){let u=e(a),l=pt(u,c);if(!l){let h={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,h)}return s.set(c,u),l?(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=s.get(c);return u!==void 0?Promise.resolve(u):n(a,c)}}};var Gl=()=>new DOMException("","EncodingError");var ql=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 s=o.document.createElement("script"),n=new Blob([t],{type:"application/javascript"}),a=URL.createObjectURL(n),c=o.onerror,u=()=>{o.onerror=c,URL.revokeObjectURL(a)};o.onerror=(l,h,p,m,x)=>{if(h===a||h===o.location.href&&p===1&&m===1)return u(),r(x),!1;if(c!==null)return c(l,h,p,m,x)},s.onerror=()=>{u(),r(new SyntaxError)},s.onload=()=>{u(),e()},s.src=a,s.type="module",i.appendChild(s)}});var Wl=o=>class{constructor(e){this._nativeEventTarget=e,this._listeners=new WeakMap}addEventListener(e,r,i){if(r!==null){let s=this._listeners.get(r);s===void 0&&(s=o(this,r),typeof r=="function"&&this._listeners.set(r,s)),this._nativeEventTarget.addEventListener(e,s,i)}}dispatchEvent(e){return this._nativeEventTarget.dispatchEvent(e)}removeEventListener(e,r,i){let s=r===null?void 0:this._listeners.get(r);this._nativeEventTarget.removeEventListener(e,s===void 0?null:s,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 zl=o=>t=>Q(null,null,function*(){try{let e=yield fetch(t);if(e.ok)return[yield e.text(),e.url]}catch(e){}throw o()});var pg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},Yl=(o,t,e,r,i,s)=>class extends o{constructor(a,c){let u=i(a),l=O(O({},pg),c),h=r(u,l),p=s(u),m=p?e():null;super(a,!1,h,m),this._gain=t(this,p,h.gain,Mt,Pt)}get gain(){return this._gain}};var Hl=(o,t,e,r,i)=>()=>{let s=new WeakMap,n=(a,c)=>Q(null,null,function*(){let u=e(a),l=pt(u,c);if(!l){let h={channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,gain:u.gain.value};u=t(c,h)}return s.set(c,u),l?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=s.get(c);return u!==void 0?Promise.resolve(u):n(a,c)}}};var Ql=(o,t)=>e=>t(o,e);var Zl=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 Xl=o=>t=>{var e;return(e=o.get(t))!==null&&e!==void 0?e:0};var Jl=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 Kl=o=>t=>o.get(t);var It=()=>new DOMException("","InvalidStateError");var $l=o=>t=>{let e=o.get(t);if(e===void 0)throw It();return e};var th=(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 eh=o=>t=>{let e=o.get(t);if(e===void 0)throw new Error("The context has no set of AudioWorkletNodes.");return e};var ki=()=>new DOMException("","InvalidAccessError");var rh=o=>{o.getFrequencyResponse=(t=>(e,r,i)=>{if(e.length!==r.length||r.length!==i.length)throw ki();return t.call(o,e,r,i)})(o.getFrequencyResponse)};var dg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},ih=(o,t,e,r,i,s)=>class extends o{constructor(a,c){let u=r(a),l=i(u),h=O(O({},dg),c),p=t(u,l?null:a.baseLatency,h),m=l?e(h.feedback,h.feedforward):null;super(a,!1,p,m),rh(p),this._nativeIIRFilterNode=p,s(this,1)}getFrequencyResponse(a,c,u){return this._nativeIIRFilterNode.getFrequencyResponse(a,c,u)}};var Ys=(o,t,e,r,i,s,n,a,c,u,l)=>{let h=u.length,p=a;for(let m=0;m<h;m+=1){let x=e[0]*u[m];for(let f=1;f<i;f+=1){let g=p-f&c-1;x+=e[f]*s[g],x-=o[f]*n[g]}for(let f=i;f<r;f+=1)x+=e[f]*s[p-f&c-1];for(let f=i;f<t;f+=1)x-=o[f]*n[p-f&c-1];s[p]=u[m],n[p]=x,p=p+1&c-1,l[m]=x}return p};var mg=(o,t,e,r)=>{let i=e instanceof Float64Array?e:new Float64Array(e),s=r instanceof Float64Array?r:new Float64Array(r),n=i.length,a=s.length,c=Math.min(n,a);if(i[0]!==1){for(let x=0;x<n;x+=1)s[x]/=i[0];for(let x=1;x<a;x+=1)i[x]/=i[0]}let u=32,l=new Float32Array(u),h=new Float32Array(u),p=t.createBuffer(o.numberOfChannels,o.length,o.sampleRate),m=o.numberOfChannels;for(let x=0;x<m;x+=1){let f=o.getChannelData(x),g=p.getChannelData(x);l.fill(0),h.fill(0),Ys(i,n,s,a,c,l,h,0,u,f,g)}return p},oh=(o,t,e,r,i)=>(s,n)=>{let a=new WeakMap,c=null,u=(l,h)=>Q(null,null,function*(){let p=null,m=t(l),x=pt(m,h);if(h.createIIRFilter===void 0?p=o(h,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}):x||(m=h.createIIRFilter(n,s)),a.set(h,p===null?m:p),p!==null){if(c===null){if(e===null)throw new Error("Missing the native OfflineAudioContext constructor.");let g=new e(l.context.destination.channelCount,l.context.length,h.sampleRate);c=Q(null,null,function*(){yield r(l,g,g.destination);let y=yield i(g);return mg(y,h,s,n)})}let f=yield c;return p.buffer=f,p.start(0),p}return yield r(l,h,m),m});return{render(l,h){let p=a.get(h);return p!==void 0?Promise.resolve(p):u(l,h)}}};var sh=(o,t,e,r,i,s)=>n=>(a,c)=>{let u=o.get(a);if(u===void 0){if(!n&&s(a)){let l=r(a),{outputs:h}=e(a);for(let p of h)if(Er(p)){let m=r(p[0]);t(l,m,p[1],p[2])}else{let m=i(p[0]);l.disconnect(m,p[1])}}o.set(a,c)}else o.set(a,u+c)};var nh=(o,t)=>e=>{let r=o.get(e);return t(r)||t(e)};var ah=(o,t)=>e=>o.has(e)||t(e);var ch=(o,t)=>e=>o.has(e)||t(e);var uh=(o,t)=>e=>{let r=o.get(e);return t(r)||t(e)};var lh=o=>t=>o!==null&&t instanceof o;var hh=o=>t=>o!==null&&typeof o.AudioNode=="function"&&t instanceof o.AudioNode;var ph=o=>t=>o!==null&&typeof o.AudioParam=="function"&&t instanceof o.AudioParam;var dh=(o,t)=>e=>o(e)||t(e);var mh=o=>t=>o!==null&&t instanceof o;var fh=o=>o!==null&&o.isSecureContext;var gh=(o,t,e,r)=>class extends o{constructor(s,n){let a=e(s),c=t(a,n);if(r(a))throw TypeError();super(s,!0,c,null),this._nativeMediaElementAudioSourceNode=c}get mediaElement(){return this._nativeMediaElementAudioSourceNode.mediaElement}};var fg={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers"},xh=(o,t,e,r)=>class extends o{constructor(s,n){let a=e(s);if(r(a))throw new TypeError;let c=O(O({},fg),n),u=t(a,c);super(s,!1,u,null),this._nativeMediaStreamAudioDestinationNode=u}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}};var yh=(o,t,e,r)=>class extends o{constructor(s,n){let a=e(s),c=t(a,n);if(r(a))throw new TypeError;super(s,!0,c,null),this._nativeMediaStreamAudioSourceNode=c}get mediaStream(){return this._nativeMediaStreamAudioSourceNode.mediaStream}};var Ah=(o,t,e)=>class extends o{constructor(i,s){let n=e(i),a=t(n,s);super(i,!0,a,null)}};var bh=(o,t,e,r,i)=>class extends r{constructor(n={}){if(i===null)throw new Error("Missing the native AudioContext constructor.");let a;try{a=new i(n)}catch(l){throw l.code===12&&l.message==="sampleRate is not in range"?t():l}if(a===null)throw e();if(!qs(n.latencyHint))throw new TypeError(`The provided value '${n.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(n.sampleRate!==void 0&&a.sampleRate!==n.sampleRate)throw t();super(a,2);let{latencyHint:c}=n,{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 l=()=>{this._state==="suspended"&&(this._state=null),a.removeEventListener("statechange",l)};a.addEventListener("statechange",l)}}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()),Or(this)}))}resume(){return this._state==="suspended"?new Promise((n,a)=>{let c=()=>{this._nativeAudioContext.removeEventListener("statechange",c),this._nativeAudioContext.state==="running"?n():this.resume().then(n,a)};this._nativeAudioContext.addEventListener("statechange",c)}):this._nativeAudioContext.resume().catch(n=>{throw n===void 0||n.code===15?o():n})}suspend(){return this._nativeAudioContext.suspend().catch(n=>{throw n===void 0?o():n})}};var _h=(o,t,e,r,i,s)=>class extends e{constructor(a,c){super(a),this._nativeContext=a,wi.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"?s(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 Ve=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 gg={numberOfChannels:1},Ch=(o,t,e,r,i)=>class extends r{constructor(n){let{length:a,numberOfChannels:c,sampleRate:u}=O(O({},gg),n),l=e(c,a,u);o(Ve,()=>Ve(l))||l.addEventListener("statechange",(()=>{let h=0,p=m=>{this._state==="running"&&(h>0?(l.removeEventListener("statechange",p),m.stopImmediatePropagation(),this._waitForThePromiseToSettle(m)):h+=1)};return p})()),super(l,c),this._length=a,this._nativeOfflineAudioContext=l,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,Or(this)}))}_waitForThePromiseToSettle(n){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(n):setTimeout(()=>this._waitForThePromiseToSettle(n))}};var vh=(o,t)=>(e,r,i)=>{let s=new Set;return e.connect=(n=>(a,c=0,u=0)=>{let l=s.size===0;if(t(a))return n.call(e,a,c,u),o(s,[a,c,u],h=>h[0]===a&&h[1]===c&&h[2]===u,!0),l&&r(),a;n.call(e,a,c),o(s,[a,c],h=>h[0]===a&&h[1]===c,!0),l&&r()})(e.connect),e.disconnect=(n=>(a,c,u)=>{let l=s.size>0;if(a===void 0)n.apply(e),s.clear();else if(typeof a=="number"){n.call(e,a);for(let p of s)p[1]===a&&s.delete(p)}else{t(a)?n.call(e,a,c,u):n.call(e,a,c);for(let p of s)p[0]===a&&(c===void 0||p[1]===c)&&(u===void 0||p[2]===u)&&s.delete(p)}let h=s.size===0;l&&h&&i()})(e.disconnect),e};var dt=(o,t,e)=>{let r=t[e];r!==void 0&&r!==o[e]&&(o[e]=r)};var ct=(o,t)=>{dt(o,t,"channelCount"),dt(o,t,"channelCountMode"),dt(o,t,"channelInterpretation")};var Xa=o=>typeof o.getFloatTimeDomainData=="function";var Ih=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 wh=(o,t)=>(e,r)=>{let i=e.createAnalyser();if(ct(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(Xa,()=>Xa(i))||Ih(i),i};var Sh=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 Th=o=>{o.start=(t=>{let e=!1;return(r=0,i=0,s)=>{if(e)throw It();t.call(o,r,i,s),e=!0}})(o.start)};var Pi=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 Li=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 Nh=(o,t,e,r,i,s,n,a,c,u,l)=>(h,p)=>{let m=h.createBufferSource();return ct(m,p),xt(m,p,"playbackRate"),dt(m,p,"buffer"),dt(m,p,"loop"),dt(m,p,"loopEnd"),dt(m,p,"loopStart"),t(e,()=>e(h))||Th(m),t(r,()=>r(h))||c(m),t(i,()=>i(h))||u(m,h),t(s,()=>s(h))||Pi(m),t(n,()=>n(h))||l(m,h),t(a,()=>a(h))||Li(m),o(h,m),m};var Oh=o=>o===null?null:o.hasOwnProperty("AudioContext")?o.AudioContext:o.hasOwnProperty("webkitAudioContext")?o.webkitAudioContext:null;var Eh=(o,t)=>(e,r,i)=>{let s=e.destination;if(s.channelCount!==r)try{s.channelCount=r}catch(a){}i&&s.channelCountMode!=="explicit"&&(s.channelCountMode="explicit"),s.maxChannelCount===0&&Object.defineProperty(s,"maxChannelCount",{value:r});let n=o(e,{channelCount:r,channelCountMode:s.channelCountMode,channelInterpretation:s.channelInterpretation,gain:1});return t(n,"channelCount",a=>()=>a.call(n),a=>c=>{a.call(n,c);try{s.channelCount=c}catch(u){if(c>s.maxChannelCount)throw u}}),t(n,"channelCountMode",a=>()=>a.call(n),a=>c=>{a.call(n,c),s.channelCountMode=c}),t(n,"channelInterpretation",a=>()=>a.call(n),a=>c=>{a.call(n,c),s.channelInterpretation=c}),Object.defineProperty(n,"maxChannelCount",{get:()=>s.maxChannelCount}),n.connect(s),n};var Mh=o=>o===null?null:o.hasOwnProperty("AudioWorkletNode")?o.AudioWorkletNode:null;var Rh=o=>{let{port1:t}=new MessageChannel;try{t.postMessage(o)}finally{t.close()}};var Dh=(o,t,e,r,i)=>(s,n,a,c,u,l)=>{if(a!==null)try{let h=new a(s,c,l),p=new Map,m=null;if(Object.defineProperties(h,{channelCount:{get:()=>l.channelCount,set:()=>{throw o()}},channelCountMode:{get:()=>"explicit",set:()=>{throw o()}},onprocessorerror:{get:()=>m,set:x=>{typeof m=="function"&&h.removeEventListener("processorerror",m),m=typeof x=="function"?x:null,typeof m=="function"&&h.addEventListener("processorerror",m)}}}),h.addEventListener=(x=>(...f)=>{if(f[0]==="processorerror"){let g=typeof f[1]=="function"?f[1]:typeof f[1]=="object"&&f[1]!==null&&typeof f[1].handleEvent=="function"?f[1].handleEvent:null;if(g!==null){let y=p.get(f[1]);y!==void 0?f[1]=y:(f[1]=I=>{I.type==="error"?(Object.defineProperties(I,{type:{value:"processorerror"}}),g(I)):g(new ErrorEvent(f[0],O({},I)))},p.set(g,f[1]))}}return x.call(h,"error",f[1],f[2]),x.call(h,...f)})(h.addEventListener),h.removeEventListener=(x=>(...f)=>{if(f[0]==="processorerror"){let g=p.get(f[1]);g!==void 0&&(p.delete(f[1]),f[1]=g)}return x.call(h,"error",f[1],f[2]),x.call(h,f[0],f[1],f[2])})(h.removeEventListener),l.numberOfOutputs!==0){let x=e(s,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return h.connect(x).connect(s.destination),i(h,()=>x.disconnect(),()=>x.connect(s.destination))}return h}catch(h){throw h.code===11?r():h}if(u===void 0)throw r();return Rh(l),t(s,n,u,l)};var Hs=(o,t)=>o===null?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(o*t)))));var kh=o=>new Promise((t,e)=>{let{port1:r,port2:i}=new MessageChannel;r.onmessage=({data:s})=>{r.close(),i.close(),t(s)},r.onmessageerror=({data:s})=>{r.close(),i.close(),e(s)},i.postMessage(o)});var Ph=(o,t)=>Q(null,null,function*(){let e=yield kh(t);return new o(e)});var Lh=(o,t,e,r)=>{let i=Do.get(o);i===void 0&&(i=new WeakMap,Do.set(o,i));let s=Ph(e,r);return i.set(t,s),s};var jh=(o,t,e,r,i,s,n,a,c,u,l,h,p)=>(m,x,f,g)=>{if(g.numberOfInputs===0&&g.numberOfOutputs===0)throw c();let y=Array.isArray(g.outputChannelCount)?g.outputChannelCount:Array.from(g.outputChannelCount);if(y.some(G=>G<1))throw c();if(y.length!==g.numberOfOutputs)throw t();if(g.channelCountMode!=="explicit")throw c();let I=g.channelCount*g.numberOfInputs,v=y.reduce((G,tt)=>G+tt,0),N=f.parameterDescriptors===void 0?0:f.parameterDescriptors.length;if(I+N>6||v>6)throw c();let C=new MessageChannel,_=[],b=[];for(let G=0;G<g.numberOfInputs;G+=1)_.push(n(m,{channelCount:g.channelCount,channelCountMode:g.channelCountMode,channelInterpretation:g.channelInterpretation,gain:1})),b.push(i(m,{channelCount:g.channelCount,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:g.channelCount}));let A=[];if(f.parameterDescriptors!==void 0)for(let{defaultValue:G,maxValue:tt,minValue:Yt,name:wt}of f.parameterDescriptors){let ft=s(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:g.parameterData[wt]!==void 0?g.parameterData[wt]:G===void 0?0:G});Object.defineProperties(ft.offset,{defaultValue:{get:()=>G===void 0?0:G},maxValue:{get:()=>tt===void 0?Mt:tt},minValue:{get:()=>Yt===void 0?Pt:Yt}}),A.push(ft)}let S=r(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,I+N)}),P=Hs(x,m.sampleRate),M=a(m,P,I+N,Math.max(1,v)),R=i(m,{channelCount:Math.max(1,v),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,v)}),z=[];for(let G=0;G<g.numberOfOutputs;G+=1)z.push(r(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:y[G]}));for(let G=0;G<g.numberOfInputs;G+=1){_[G].connect(b[G]);for(let tt=0;tt<g.channelCount;tt+=1)b[G].connect(S,tt,G*g.channelCount+tt)}let D=new Mi(f.parameterDescriptors===void 0?[]:f.parameterDescriptors.map(({name:G},tt)=>{let Yt=A[tt];return Yt.connect(S,0,I+tt),Yt.start(0),[G,Yt.offset]}));S.connect(M);let W=g.channelInterpretation,q=null,H=g.numberOfOutputs===0?[M]:z,nt={get bufferSize(){return P},get channelCount(){return g.channelCount},set channelCount(G){throw e()},get channelCountMode(){return g.channelCountMode},set channelCountMode(G){throw e()},get channelInterpretation(){return W},set channelInterpretation(G){for(let tt of _)tt.channelInterpretation=G;W=G},get context(){return M.context},get inputs(){return _},get numberOfInputs(){return g.numberOfInputs},get numberOfOutputs(){return g.numberOfOutputs},get onprocessorerror(){return q},set onprocessorerror(G){typeof q=="function"&&nt.removeEventListener("processorerror",q),q=typeof G=="function"?G:null,typeof q=="function"&&nt.addEventListener("processorerror",q)},get parameters(){return D},get port(){return C.port2},addEventListener(...G){return M.addEventListener(G[0],G[1],G[2])},connect:o.bind(null,H),disconnect:u.bind(null,H),dispatchEvent(...G){return M.dispatchEvent(G[0])},removeEventListener(...G){return M.removeEventListener(G[0],G[1],G[2])}},K=new Map;C.port1.addEventListener=(G=>(...tt)=>{if(tt[0]==="message"){let Yt=typeof tt[1]=="function"?tt[1]:typeof tt[1]=="object"&&tt[1]!==null&&typeof tt[1].handleEvent=="function"?tt[1].handleEvent:null;if(Yt!==null){let wt=K.get(tt[1]);wt!==void 0?tt[1]=wt:(tt[1]=ft=>{l(m.currentTime,m.sampleRate,()=>Yt(ft))},K.set(Yt,tt[1]))}}return G.call(C.port1,tt[0],tt[1],tt[2])})(C.port1.addEventListener),C.port1.removeEventListener=(G=>(...tt)=>{if(tt[0]==="message"){let Yt=K.get(tt[1]);Yt!==void 0&&(K.delete(tt[1]),tt[1]=Yt)}return G.call(C.port1,tt[0],tt[1],tt[2])})(C.port1.removeEventListener);let et=null;Object.defineProperty(C.port1,"onmessage",{get:()=>et,set:G=>{typeof et=="function"&&C.port1.removeEventListener("message",et),et=typeof G=="function"?G:null,typeof et=="function"&&(C.port1.addEventListener("message",et),C.port1.start())}}),f.prototype.port=C.port1;let ht=null;Lh(m,nt,f,g).then(G=>ht=G);let kt=Di(g.numberOfInputs,g.channelCount),fe=Di(g.numberOfOutputs,y),ge=f.parameterDescriptors===void 0?[]:f.parameterDescriptors.reduce((G,{name:tt})=>Y(O({},G),{[tt]:new Float32Array(128)}),{}),yt=!0,rt=()=>{g.numberOfOutputs>0&&M.disconnect(R);for(let G=0,tt=0;G<g.numberOfOutputs;G+=1){let Yt=z[G];for(let wt=0;wt<y[G];wt+=1)R.disconnect(Yt,tt+wt,wt);tt+=y[G]}},mi=new Map;M.onaudioprocess=({inputBuffer:G,outputBuffer:tt})=>{if(ht!==null){let Yt=h(nt);for(let wt=0;wt<P;wt+=128){for(let ft=0;ft<g.numberOfInputs;ft+=1)for(let Et=0;Et<g.channelCount;Et+=1)Ri(G,kt[ft],Et,Et,wt);f.parameterDescriptors!==void 0&&f.parameterDescriptors.forEach(({name:ft},Et)=>{Ri(G,ge,ft,I+Et,wt)});for(let ft=0;ft<g.numberOfInputs;ft+=1)for(let Et=0;Et<y[ft];Et+=1)fe[ft][Et].byteLength===0&&(fe[ft][Et]=new Float32Array(128));try{let ft=kt.map((Ce,Cr)=>{if(Yt[Cr].size>0)return mi.set(Cr,P/128),Ce;let na=mi.get(Cr);return na===void 0?[]:(Ce.every(Zd=>Zd.every(Xd=>Xd===0))&&(na===1?mi.delete(Cr):mi.set(Cr,na-1)),Ce)});yt=l(m.currentTime+wt/m.sampleRate,m.sampleRate,()=>ht.process(ft,fe,ge));for(let Ce=0,Cr=0;Ce<g.numberOfOutputs;Ce+=1){for(let yo=0;yo<y[Ce];yo+=1)Us(tt,fe[Ce],yo,Cr+yo,wt);Cr+=y[Ce]}}catch(ft){yt=!1,nt.dispatchEvent(new ErrorEvent("processorerror",{colno:ft.colno,filename:ft.filename,lineno:ft.lineno,message:ft.message}))}if(!yt){for(let ft=0;ft<g.numberOfInputs;ft+=1){_[ft].disconnect(b[ft]);for(let Et=0;Et<g.channelCount;Et+=1)b[wt].disconnect(S,Et,ft*g.channelCount+Et)}if(f.parameterDescriptors!==void 0){let ft=f.parameterDescriptors.length;for(let Et=0;Et<ft;Et+=1){let Ce=A[Et];Ce.disconnect(S,0,I+Et),Ce.stop()}}S.disconnect(M),M.onaudioprocess=null,fo?rt():gi();break}}}};let fo=!1,Z=n(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0}),fi=()=>M.connect(Z).connect(m.destination),gi=()=>{M.disconnect(Z),Z.disconnect()},go=()=>{if(yt){gi(),g.numberOfOutputs>0&&M.connect(R);for(let G=0,tt=0;G<g.numberOfOutputs;G+=1){let Yt=z[G];for(let wt=0;wt<y[G];wt+=1)R.connect(Yt,tt+wt,wt);tt+=y[G]}}fo=!0},xo=()=>{yt&&(fi(),rt()),fo=!1};return fi(),p(nt,go,xo)};var Ja=(o,t)=>{let e=o.createBiquadFilter();return ct(e,t),xt(e,t,"Q"),xt(e,t,"detune"),xt(e,t,"frequency"),xt(e,t,"gain"),dt(e,t,"type"),e};var Fh=(o,t)=>(e,r)=>{let i=e.createChannelMerger(r.numberOfInputs);return o!==null&&o.name==="webkitAudioContext"&&t(e,i),ct(i,r),i};var Bh=o=>{let t=o.numberOfOutputs;Object.defineProperty(o,"channelCount",{get:()=>t,set:e=>{if(e!==t)throw It()}}),Object.defineProperty(o,"channelCountMode",{get:()=>"explicit",set:e=>{if(e!=="explicit")throw It()}}),Object.defineProperty(o,"channelInterpretation",{get:()=>"discrete",set:e=>{if(e!=="discrete")throw It()}})};var ji=(o,t)=>{let e=o.createChannelSplitter(t.numberOfOutputs);return ct(e,t),Bh(e),e};var Vh=(o,t,e,r,i)=>(s,n)=>{if(s.createConstantSource===void 0)return e(s,n);let a=s.createConstantSource();return ct(a,n),xt(a,n,"offset"),t(r,()=>r(s))||Pi(a),t(i,()=>i(s))||Li(a),o(s,a),a};var Te=(o,t)=>(o.connect=t.connect.bind(t),o.disconnect=t.disconnect.bind(t),o);var Gh=(o,t,e,r)=>(i,a)=>{var c=a,{offset:s}=c,n=vr(c,["offset"]);let u=i.createBuffer(1,2,44100),l=t(i,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),h=e(i,Y(O({},n),{gain:s})),p=u.getChannelData(0);p[0]=1,p[1]=1,l.buffer=u,l.loop=!0;let m={get bufferSize(){},get channelCount(){return h.channelCount},set channelCount(g){h.channelCount=g},get channelCountMode(){return h.channelCountMode},set channelCountMode(g){h.channelCountMode=g},get channelInterpretation(){return h.channelInterpretation},set channelInterpretation(g){h.channelInterpretation=g},get context(){return h.context},get inputs(){return[]},get numberOfInputs(){return l.numberOfInputs},get numberOfOutputs(){return h.numberOfOutputs},get offset(){return h.gain},get onended(){return l.onended},set onended(g){l.onended=g},addEventListener(...g){return l.addEventListener(g[0],g[1],g[2])},dispatchEvent(...g){return l.dispatchEvent(g[0])},removeEventListener(...g){return l.removeEventListener(g[0],g[1],g[2])},start(g=0){l.start.call(l,g)},stop(g=0){l.stop.call(l,g)}},x=()=>l.connect(h),f=()=>l.disconnect(h);return o(i,l),r(Te(m,h),x,f)};var qh=(o,t)=>(e,r)=>{let i=e.createConvolver();if(ct(i,r),r.disableNormalization===i.normalize&&(i.normalize=!r.disableNormalization),dt(i,r,"buffer"),r.channelCount>2||(t(i,"channelCount",s=>()=>s.call(i),s=>n=>{if(n>2)throw o();return s.call(i,n)}),r.channelCountMode==="max"))throw o();return t(i,"channelCountMode",s=>()=>s.call(i),s=>n=>{if(n==="max")throw o();return s.call(i,n)}),i};var Ka=(o,t)=>{let e=o.createDelay(t.maxDelayTime);return ct(e,t),xt(e,t,"delayTime"),e};var Wh=o=>(t,e)=>{let r=t.createDynamicsCompressor();if(ct(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 ct(e,t),xt(e,t,"gain"),e};var Uh=o=>(t,e,r)=>{if(t.createIIRFilter===void 0)return o(t,e,r);let i=t.createIIRFilter(r.feedforward,r.feedback);return ct(i,r),i};function xg(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 yg(o,t){return[o[0]*t[0]-o[1]*t[1],o[0]*t[1]+o[1]*t[0]]}function zh(o,t){let e=[0,0];for(let r=o.length-1;r>=0;r-=1)e=yg(e,t),e[0]+=o[r];return e}var Yh=(o,t,e,r)=>(i,s,{channelCount:n,channelCountMode:a,channelInterpretation:c,feedback:u,feedforward:l})=>{let h=Hs(s,i.sampleRate),p=u instanceof Float64Array?u:new Float64Array(u),m=l instanceof Float64Array?l:new Float64Array(l),x=p.length,f=m.length,g=Math.min(x,f);if(x===0||x>20)throw r();if(p[0]===0)throw t();if(f===0||f>20)throw r();if(m[0]===0)throw t();if(p[0]!==1){for(let A=0;A<f;A+=1)m[A]/=p[0];for(let A=1;A<x;A+=1)p[A]/=p[0]}let y=e(i,h,n,n);y.channelCount=n,y.channelCountMode=a,y.channelInterpretation=c;let I=32,v=[],N=[],C=[];for(let A=0;A<n;A+=1){v.push(0);let S=new Float32Array(I),P=new Float32Array(I);S.fill(0),P.fill(0),N.push(S),C.push(P)}y.onaudioprocess=A=>{let S=A.inputBuffer,P=A.outputBuffer,M=S.numberOfChannels;for(let R=0;R<M;R+=1){let z=S.getChannelData(R),D=P.getChannelData(R);v[R]=Ys(p,x,m,f,g,N[R],C[R],v[R],I,z,D)}};let _=i.sampleRate/2;return Te({get bufferSize(){return h},get channelCount(){return y.channelCount},set channelCount(A){y.channelCount=A},get channelCountMode(){return y.channelCountMode},set channelCountMode(A){y.channelCountMode=A},get channelInterpretation(){return y.channelInterpretation},set channelInterpretation(A){y.channelInterpretation=A},get context(){return y.context},get inputs(){return[y]},get numberOfInputs(){return y.numberOfInputs},get numberOfOutputs(){return y.numberOfOutputs},addEventListener(...A){return y.addEventListener(A[0],A[1],A[2])},dispatchEvent(...A){return y.dispatchEvent(A[0])},getFrequencyResponse(A,S,P){if(A.length!==S.length||S.length!==P.length)throw o();let M=A.length;for(let R=0;R<M;R+=1){let z=-Math.PI*(A[R]/_),D=[Math.cos(z),Math.sin(z)],W=zh(m,D),q=zh(p,D),H=xg(W,q);S[R]=Math.sqrt(H[0]*H[0]+H[1]*H[1]),P[R]=Math.atan2(H[1],H[0])}},removeEventListener(...A){return y.removeEventListener(A[0],A[1],A[2])}},y)};var Hh=(o,t)=>o.createMediaElementSource(t.mediaElement);var Qh=(o,t)=>{let e=o.createMediaStreamDestination();return ct(e,t),e.numberOfOutputs===1&&Object.defineProperty(e,"numberOfOutputs",{get:()=>0}),e};var Zh=(o,{mediaStream:t})=>{let e=t.getAudioTracks();e.sort((s,n)=>s.id<n.id?-1:s.id>n.id?1:0);let r=e.slice(0,1),i=o.createMediaStreamSource(new MediaStream(r));return Object.defineProperty(i,"mediaStream",{value:t}),i};var Xh=(o,t)=>(e,{mediaStreamTrack:r})=>{if(typeof e.createMediaStreamTrackSource=="function")return e.createMediaStreamTrackSource(r);let i=new MediaStream([r]),s=e.createMediaStreamSource(i);if(r.kind!=="audio")throw o();if(t(e))throw new TypeError;return s};var Jh=o=>o===null?null:o.hasOwnProperty("OfflineAudioContext")?o.OfflineAudioContext:o.hasOwnProperty("webkitOfflineAudioContext")?o.webkitOfflineAudioContext:null;var Kh=(o,t,e,r,i,s)=>(n,a)=>{let c=n.createOscillator();return ct(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(n))||Pi(c),t(r,()=>r(n))||s(c,n),t(i,()=>i(n))||Li(c),o(n,c),c};var $h=o=>(t,e)=>{let r=t.createPanner();return r.orientationX===void 0?o(t,e):(ct(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 tp=(o,t,e,r,i,s,n,a,c,u)=>(l,P)=>{var M=P,{coneInnerAngle:h,coneOuterAngle:p,coneOuterGain:m,distanceModel:x,maxDistance:f,orientationX:g,orientationY:y,orientationZ:I,panningModel:v,positionX:N,positionY:C,positionZ:_,refDistance:b,rolloffFactor:A}=M,S=vr(M,["coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","orientationX","orientationY","orientationZ","panningModel","positionX","positionY","positionZ","refDistance","rolloffFactor"]);let R=l.createPanner();if(S.channelCount>2||S.channelCountMode==="max")throw n();ct(R,S);let z={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},D=e(l,Y(O({},z),{channelInterpretation:"speakers",numberOfInputs:6})),W=r(l,Y(O({},S),{gain:1})),q=r(l,Y(O({},z),{gain:1})),H=r(l,Y(O({},z),{gain:0})),nt=r(l,Y(O({},z),{gain:0})),K=r(l,Y(O({},z),{gain:0})),et=r(l,Y(O({},z),{gain:0})),ht=r(l,Y(O({},z),{gain:0})),_t=i(l,256,6,1),kt=s(l,Y(O({},z),{curve:new Float32Array([1,1]),oversample:"none"})),fe=[g,y,I],ge=[N,C,_],yt=new Float32Array(1);_t.onaudioprocess=({inputBuffer:Z})=>{let fi=[c(Z,yt,0),c(Z,yt,1),c(Z,yt,2)];fi.some((go,xo)=>go!==fe[xo])&&(R.setOrientation(...fi),fe=fi);let gi=[c(Z,yt,3),c(Z,yt,4),c(Z,yt,5)];gi.some((go,xo)=>go!==ge[xo])&&(R.setPosition(...gi),ge=gi)},Object.defineProperty(H.gain,"defaultValue",{get:()=>0}),Object.defineProperty(nt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(K.gain,"defaultValue",{get:()=>0}),Object.defineProperty(et.gain,"defaultValue",{get:()=>0}),Object.defineProperty(ht.gain,"defaultValue",{get:()=>0});let rt={get bufferSize(){},get channelCount(){return R.channelCount},set channelCount(Z){if(Z>2)throw n();W.channelCount=Z,R.channelCount=Z},get channelCountMode(){return R.channelCountMode},set channelCountMode(Z){if(Z==="max")throw n();W.channelCountMode=Z,R.channelCountMode=Z},get channelInterpretation(){return R.channelInterpretation},set channelInterpretation(Z){W.channelInterpretation=Z,R.channelInterpretation=Z},get coneInnerAngle(){return R.coneInnerAngle},set coneInnerAngle(Z){R.coneInnerAngle=Z},get coneOuterAngle(){return R.coneOuterAngle},set coneOuterAngle(Z){R.coneOuterAngle=Z},get coneOuterGain(){return R.coneOuterGain},set coneOuterGain(Z){if(Z<0||Z>1)throw t();R.coneOuterGain=Z},get context(){return R.context},get distanceModel(){return R.distanceModel},set distanceModel(Z){R.distanceModel=Z},get inputs(){return[W]},get maxDistance(){return R.maxDistance},set maxDistance(Z){if(Z<0)throw new RangeError;R.maxDistance=Z},get numberOfInputs(){return R.numberOfInputs},get numberOfOutputs(){return R.numberOfOutputs},get orientationX(){return q.gain},get orientationY(){return H.gain},get orientationZ(){return nt.gain},get panningModel(){return R.panningModel},set panningModel(Z){R.panningModel=Z},get positionX(){return K.gain},get positionY(){return et.gain},get positionZ(){return ht.gain},get refDistance(){return R.refDistance},set refDistance(Z){if(Z<0)throw new RangeError;R.refDistance=Z},get rolloffFactor(){return R.rolloffFactor},set rolloffFactor(Z){if(Z<0)throw new RangeError;R.rolloffFactor=Z},addEventListener(...Z){return W.addEventListener(Z[0],Z[1],Z[2])},dispatchEvent(...Z){return W.dispatchEvent(Z[0])},removeEventListener(...Z){return W.removeEventListener(Z[0],Z[1],Z[2])}};h!==rt.coneInnerAngle&&(rt.coneInnerAngle=h),p!==rt.coneOuterAngle&&(rt.coneOuterAngle=p),m!==rt.coneOuterGain&&(rt.coneOuterGain=m),x!==rt.distanceModel&&(rt.distanceModel=x),f!==rt.maxDistance&&(rt.maxDistance=f),g!==rt.orientationX.value&&(rt.orientationX.value=g),y!==rt.orientationY.value&&(rt.orientationY.value=y),I!==rt.orientationZ.value&&(rt.orientationZ.value=I),v!==rt.panningModel&&(rt.panningModel=v),N!==rt.positionX.value&&(rt.positionX.value=N),C!==rt.positionY.value&&(rt.positionY.value=C),_!==rt.positionZ.value&&(rt.positionZ.value=_),b!==rt.refDistance&&(rt.refDistance=b),A!==rt.rolloffFactor&&(rt.rolloffFactor=A),(fe[0]!==1||fe[1]!==0||fe[2]!==0)&&R.setOrientation(...fe),(ge[0]!==0||ge[1]!==0||ge[2]!==0)&&R.setPosition(...ge);let mi=()=>{W.connect(R),o(W,kt,0,0),kt.connect(q).connect(D,0,0),kt.connect(H).connect(D,0,1),kt.connect(nt).connect(D,0,2),kt.connect(K).connect(D,0,3),kt.connect(et).connect(D,0,4),kt.connect(ht).connect(D,0,5),D.connect(_t).connect(l.destination)},fo=()=>{W.disconnect(R),a(W,kt,0,0),kt.disconnect(q),q.disconnect(D),kt.disconnect(H),H.disconnect(D),kt.disconnect(nt),nt.disconnect(D),kt.disconnect(K),K.disconnect(D),kt.disconnect(et),et.disconnect(D),kt.disconnect(ht),ht.disconnect(D),D.disconnect(_t),_t.disconnect(l.destination)};return u(Te(rt,R),mi,fo)};var ep=o=>(t,{disableNormalization:e,imag:r,real:i})=>{let s=r instanceof Float32Array?r:new Float32Array(r),n=i instanceof Float32Array?i:new Float32Array(i),a=t.createPeriodicWave(n,s,{disableNormalization:e});if(Array.from(r).length<2)throw o();return a};var Fi=(o,t,e,r)=>o.createScriptProcessor(t,e,r);var rp=(o,t)=>(e,r)=>{let i=r.channelCountMode;if(i==="clamped-max")throw t();if(e.createStereoPanner===void 0)return o(e,r);let s=e.createStereoPanner();return ct(s,r),xt(s,r,"pan"),Object.defineProperty(s,"channelCountMode",{get:()=>i,set:n=>{if(n!==i)throw t()}}),s};var ip=(o,t,e,r,i,s)=>{let a=new Float32Array([1,1]),c=Math.PI/2,u={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},l=Y(O({},u),{oversample:"none"}),h=(x,f,g,y)=>{let I=new Float32Array(16385),v=new Float32Array(16385);for(let S=0;S<16385;S+=1){let P=S/16384*c;I[S]=Math.cos(P),v[S]=Math.sin(P)}let N=e(x,Y(O({},u),{gain:0})),C=r(x,Y(O({},l),{curve:I})),_=r(x,Y(O({},l),{curve:a})),b=e(x,Y(O({},u),{gain:0})),A=r(x,Y(O({},l),{curve:v}));return{connectGraph(){f.connect(N),f.connect(_.inputs===void 0?_:_.inputs[0]),f.connect(b),_.connect(g),g.connect(C.inputs===void 0?C:C.inputs[0]),g.connect(A.inputs===void 0?A:A.inputs[0]),C.connect(N.gain),A.connect(b.gain),N.connect(y,0,0),b.connect(y,0,1)},disconnectGraph(){f.disconnect(N),f.disconnect(_.inputs===void 0?_:_.inputs[0]),f.disconnect(b),_.disconnect(g),g.disconnect(C.inputs===void 0?C:C.inputs[0]),g.disconnect(A.inputs===void 0?A:A.inputs[0]),C.disconnect(N.gain),A.disconnect(b.gain),N.disconnect(y,0,0),b.disconnect(y,0,1)}}},p=(x,f,g,y)=>{let I=new Float32Array(16385),v=new Float32Array(16385),N=new Float32Array(16385),C=new Float32Array(16385),_=Math.floor(16385/2);for(let H=0;H<16385;H+=1)if(H>_){let nt=(H-_)/(16384-_)*c;I[H]=Math.cos(nt),v[H]=Math.sin(nt),N[H]=0,C[H]=1}else{let nt=H/(16384-_)*c;I[H]=1,v[H]=0,N[H]=Math.cos(nt),C[H]=Math.sin(nt)}let b=t(x,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),A=e(x,Y(O({},u),{gain:0})),S=r(x,Y(O({},l),{curve:I})),P=e(x,Y(O({},u),{gain:0})),M=r(x,Y(O({},l),{curve:v})),R=r(x,Y(O({},l),{curve:a})),z=e(x,Y(O({},u),{gain:0})),D=r(x,Y(O({},l),{curve:N})),W=e(x,Y(O({},u),{gain:0})),q=r(x,Y(O({},l),{curve:C}));return{connectGraph(){f.connect(b),f.connect(R.inputs===void 0?R:R.inputs[0]),b.connect(A,0),b.connect(P,0),b.connect(z,1),b.connect(W,1),R.connect(g),g.connect(S.inputs===void 0?S:S.inputs[0]),g.connect(M.inputs===void 0?M:M.inputs[0]),g.connect(D.inputs===void 0?D:D.inputs[0]),g.connect(q.inputs===void 0?q:q.inputs[0]),S.connect(A.gain),M.connect(P.gain),D.connect(z.gain),q.connect(W.gain),A.connect(y,0,0),z.connect(y,0,0),P.connect(y,0,1),W.connect(y,0,1)},disconnectGraph(){f.disconnect(b),f.disconnect(R.inputs===void 0?R:R.inputs[0]),b.disconnect(A,0),b.disconnect(P,0),b.disconnect(z,1),b.disconnect(W,1),R.disconnect(g),g.disconnect(S.inputs===void 0?S:S.inputs[0]),g.disconnect(M.inputs===void 0?M:M.inputs[0]),g.disconnect(D.inputs===void 0?D:D.inputs[0]),g.disconnect(q.inputs===void 0?q:q.inputs[0]),S.disconnect(A.gain),M.disconnect(P.gain),D.disconnect(z.gain),q.disconnect(W.gain),A.disconnect(y,0,0),z.disconnect(y,0,0),P.disconnect(y,0,1),W.disconnect(y,0,1)}}},m=(x,f,g,y,I)=>{if(f===1)return h(x,g,y,I);if(f===2)return p(x,g,y,I);throw i()};return(x,v)=>{var N=v,{channelCount:f,channelCountMode:g,pan:y}=N,I=vr(N,["channelCount","channelCountMode","pan"]);if(g==="max")throw i();let C=o(x,Y(O({},I),{channelCount:1,channelCountMode:g,numberOfInputs:2})),_=e(x,Y(O({},I),{channelCount:f,channelCountMode:g,gain:1})),b=e(x,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:y}),{connectGraph:A,disconnectGraph:S}=m(x,f,_,b,C);Object.defineProperty(b.gain,"defaultValue",{get:()=>0}),Object.defineProperty(b.gain,"maxValue",{get:()=>1}),Object.defineProperty(b.gain,"minValue",{get:()=>-1});let P={get bufferSize(){},get channelCount(){return _.channelCount},set channelCount(D){_.channelCount!==D&&(M&&S(),{connectGraph:A,disconnectGraph:S}=m(x,D,_,b,C),M&&A()),_.channelCount=D},get channelCountMode(){return _.channelCountMode},set channelCountMode(D){if(D==="clamped-max"||D==="max")throw i();_.channelCountMode=D},get channelInterpretation(){return _.channelInterpretation},set channelInterpretation(D){_.channelInterpretation=D},get context(){return _.context},get inputs(){return[_]},get numberOfInputs(){return _.numberOfInputs},get numberOfOutputs(){return _.numberOfOutputs},get pan(){return b.gain},addEventListener(...D){return _.addEventListener(D[0],D[1],D[2])},dispatchEvent(...D){return _.dispatchEvent(D[0])},removeEventListener(...D){return _.removeEventListener(D[0],D[1],D[2])}},M=!1,R=()=>{A(),M=!0},z=()=>{S(),M=!1};return s(Te(P,C),R,z)}};var op=(o,t,e,r,i,s,n)=>(a,c)=>{let u=a.createWaveShaper();if(s!==null&&s.name==="webkitAudioContext"&&a.createGain().gain.automationRate===void 0)return e(a,c);ct(u,c);let l=c.curve===null||c.curve instanceof Float32Array?c.curve:new Float32Array(c.curve);if(l!==null&&l.length<2)throw t();dt(u,{curve:l},"curve"),dt(u,c,"oversample");let h=null,p=!1;return n(u,"curve",f=>()=>f.call(u),f=>g=>(f.call(u,g),p&&(r(g)&&h===null?h=o(a,u):!r(g)&&h!==null&&(h(),h=null)),g)),i(u,()=>{p=!0,r(u.curve)&&(h=o(a,u))},()=>{p=!1,h!==null&&(h(),h=null)})};var sp=(o,t,e,r,i)=>(s,u)=>{var l=u,{curve:n,oversample:a}=l,c=vr(l,["curve","oversample"]);let h=s.createWaveShaper(),p=s.createWaveShaper();ct(h,c),ct(p,c);let m=e(s,Y(O({},c),{gain:1})),x=e(s,Y(O({},c),{gain:-1})),f=e(s,Y(O({},c),{gain:1})),g=e(s,Y(O({},c),{gain:-1})),y=null,I=!1,v=null,N={get bufferSize(){},get channelCount(){return h.channelCount},set channelCount(b){m.channelCount=b,x.channelCount=b,h.channelCount=b,f.channelCount=b,p.channelCount=b,g.channelCount=b},get channelCountMode(){return h.channelCountMode},set channelCountMode(b){m.channelCountMode=b,x.channelCountMode=b,h.channelCountMode=b,f.channelCountMode=b,p.channelCountMode=b,g.channelCountMode=b},get channelInterpretation(){return h.channelInterpretation},set channelInterpretation(b){m.channelInterpretation=b,x.channelInterpretation=b,h.channelInterpretation=b,f.channelInterpretation=b,p.channelInterpretation=b,g.channelInterpretation=b},get context(){return h.context},get curve(){return v},set curve(b){if(b!==null&&b.length<2)throw t();if(b===null)h.curve=b,p.curve=b;else{let A=b.length,S=new Float32Array(A+2-A%2),P=new Float32Array(A+2-A%2);S[0]=b[0],P[0]=-b[A-1];let M=Math.ceil((A+1)/2),R=(A+1)/2-1;for(let z=1;z<M;z+=1){let D=z/M*R,W=Math.floor(D),q=Math.ceil(D);S[z]=W===q?b[W]:(1-(D-W))*b[W]+(1-(q-D))*b[q],P[z]=W===q?-b[A-1-W]:-((1-(D-W))*b[A-1-W])-(1-(q-D))*b[A-1-q]}S[M]=A%2===1?b[M-1]:(b[M-2]+b[M-1])/2,h.curve=S,p.curve=P}v=b,I&&(r(v)&&y===null?y=o(s,m):y!==null&&(y(),y=null))},get inputs(){return[m]},get numberOfInputs(){return h.numberOfInputs},get numberOfOutputs(){return h.numberOfOutputs},get oversample(){return h.oversample},set oversample(b){h.oversample=b,p.oversample=b},addEventListener(...b){return m.addEventListener(b[0],b[1],b[2])},dispatchEvent(...b){return m.dispatchEvent(b[0])},removeEventListener(...b){return m.removeEventListener(b[0],b[1],b[2])}};n!==null&&(N.curve=n instanceof Float32Array?n:new Float32Array(n)),a!==N.oversample&&(N.oversample=a);let C=()=>{m.connect(h).connect(f),m.connect(x).connect(p).connect(g).connect(f),I=!0,r(v)&&(y=o(s,m))},_=()=>{m.disconnect(h),h.disconnect(f),m.disconnect(x),x.disconnect(p),p.disconnect(g),g.disconnect(f),I=!1,y!==null&&(y(),y=null)};return i(Te(N,f),C,_)};var Xt=()=>new DOMException("","NotSupportedError");var Ag={numberOfChannels:1},np=(o,t,e,r,i)=>class extends o{constructor(n,a,c){let u;if(typeof n=="number"&&a!==void 0&&c!==void 0)u={length:a,numberOfChannels:n,sampleRate:c};else if(typeof n=="object")u=n;else throw new Error("The given parameters are not valid.");let{length:l,numberOfChannels:h,sampleRate:p}=O(O({},Ag),u),m=r(h,l,p);t(Ve,()=>Ve(m))||m.addEventListener("statechange",(()=>{let x=0,f=g=>{this._state==="running"&&(x>0?(m.removeEventListener("statechange",f),g.stopImmediatePropagation(),this._waitForThePromiseToSettle(g)):x+=1)};return f})()),super(m,h),this._length=l,this._nativeOfflineAudioContext=m,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,Or(this)}))}_waitForThePromiseToSettle(n){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(n):setTimeout(()=>this._waitForThePromiseToSettle(n))}};var bg={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},ap=(o,t,e,r,i,s,n)=>class extends o{constructor(c,u){let l=i(c),h=O(O({},bg),u),p=e(l,h),m=s(l),x=m?r():null,f=c.sampleRate/2;super(c,!1,p,x),this._detune=t(this,m,p.detune,153600,-153600),this._frequency=t(this,m,p.frequency,f,-f),this._nativeOscillatorNode=p,this._onended=null,this._oscillatorNodeRenderer=x,this._oscillatorNodeRenderer!==null&&h.periodicWave!==void 0&&(this._oscillatorNodeRenderer.periodicWave=h.periodicWave)}get detune(){return this._detune}get frequency(){return this._frequency}get onended(){return this._onended}set onended(c){let u=typeof c=="function"?n(this,c):null;this._nativeOscillatorNode.onended=u;let l=this._nativeOscillatorNode.onended;this._onended=l!==null&&l===u?c:l}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"){Fe(this);let u=()=>{this._nativeOscillatorNode.removeEventListener("ended",u),oe(this)&&$e(this)};this._nativeOscillatorNode.addEventListener("ended",u)}}stop(c=0){this._nativeOscillatorNode.stop(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.stop=c)}};var cp=(o,t,e,r,i)=>()=>{let s=new WeakMap,n=null,a=null,c=null,u=(l,h)=>Q(null,null,function*(){let p=e(l),m=pt(p,h);if(!m){let x={channelCount:p.channelCount,channelCountMode:p.channelCountMode,channelInterpretation:p.channelInterpretation,detune:p.detune.value,frequency:p.frequency.value,periodicWave:n===null?void 0:n,type:p.type};p=t(h,x),a!==null&&p.start(a),c!==null&&p.stop(c)}return s.set(h,p),m?(yield o(h,l.detune,p.detune),yield o(h,l.frequency,p.frequency)):(yield r(h,l.detune,p.detune),yield r(h,l.frequency,p.frequency)),yield i(l,h,p),p});return{set periodicWave(l){n=l},set start(l){a=l},set stop(l){c=l},render(l,h){let p=s.get(h);return p!==void 0?Promise.resolve(p):u(l,h)}}};var _g={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},up=(o,t,e,r,i,s,n)=>class extends o{constructor(c,u){let l=i(c),h=O(O({},_g),u),p=e(l,h),m=s(l),x=m?r():null;super(c,!1,p,x),this._nativePannerNode=p,this._orientationX=t(this,m,p.orientationX,Mt,Pt),this._orientationY=t(this,m,p.orientationY,Mt,Pt),this._orientationZ=t(this,m,p.orientationZ,Mt,Pt),this._positionX=t(this,m,p.positionX,Mt,Pt),this._positionY=t(this,m,p.positionY,Mt,Pt),this._positionZ=t(this,m,p.positionZ,Mt,Pt),n(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 lp=(o,t,e,r,i,s,n,a,c,u)=>()=>{let l=new WeakMap,h=null,p=(m,x)=>Q(null,null,function*(){let f=null,g=s(m),y={channelCount:g.channelCount,channelCountMode:g.channelCountMode,channelInterpretation:g.channelInterpretation},I=Y(O({},y),{coneInnerAngle:g.coneInnerAngle,coneOuterAngle:g.coneOuterAngle,coneOuterGain:g.coneOuterGain,distanceModel:g.distanceModel,maxDistance:g.maxDistance,panningModel:g.panningModel,refDistance:g.refDistance,rolloffFactor:g.rolloffFactor}),v=pt(g,x);if("bufferSize"in g)f=r(x,Y(O({},y),{gain:1}));else if(!v){let N=Y(O({},I),{orientationX:g.orientationX.value,orientationY:g.orientationY.value,orientationZ:g.orientationZ.value,positionX:g.positionX.value,positionY:g.positionY.value,positionZ:g.positionZ.value});g=i(x,N)}if(l.set(x,f===null?g:f),f!==null){if(h===null){if(n===null)throw new Error("Missing the native OfflineAudioContext constructor.");let M=new n(6,m.context.length,x.sampleRate),R=t(M,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6});R.connect(M.destination),h=Q(null,null,function*(){let z=yield Promise.all([m.orientationX,m.orientationY,m.orientationZ,m.positionX,m.positionY,m.positionZ].map((D,W)=>Q(null,null,function*(){let q=e(M,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:W===0?1:0});return yield a(M,D,q.offset),q})));for(let D=0;D<6;D+=1)z[D].connect(R,0,D),z[D].start(0);return u(M)})}let N=yield h,C=r(x,Y(O({},y),{gain:1}));yield c(m,x,C);let _=[];for(let M=0;M<N.numberOfChannels;M+=1)_.push(N.getChannelData(M));let b=[_[0][0],_[1][0],_[2][0]],A=[_[3][0],_[4][0],_[5][0]],S=r(x,Y(O({},y),{gain:1})),P=i(x,Y(O({},I),{orientationX:b[0],orientationY:b[1],orientationZ:b[2],positionX:A[0],positionY:A[1],positionZ:A[2]}));C.connect(S).connect(P.inputs[0]),P.connect(f);for(let M=128;M<N.length;M+=128){let R=[_[0][M],_[1][M],_[2][M]],z=[_[3][M],_[4][M],_[5][M]];if(R.some((D,W)=>D!==b[W])||z.some((D,W)=>D!==A[W])){b=R,A=z;let D=M/x.sampleRate;S.gain.setValueAtTime(0,D),S=r(x,Y(O({},y),{gain:0})),P=i(x,Y(O({},I),{orientationX:b[0],orientationY:b[1],orientationZ:b[2],positionX:A[0],positionY:A[1],positionZ:A[2]})),S.gain.setValueAtTime(1,D),C.connect(S).connect(P.inputs[0]),P.connect(f)}}return f}return v?(yield o(x,m.orientationX,g.orientationX),yield o(x,m.orientationY,g.orientationY),yield o(x,m.orientationZ,g.orientationZ),yield o(x,m.positionX,g.positionX),yield o(x,m.positionY,g.positionY),yield o(x,m.positionZ,g.positionZ)):(yield a(x,m.orientationX,g.orientationX),yield a(x,m.orientationY,g.orientationY),yield a(x,m.orientationZ,g.orientationZ),yield a(x,m.positionX,g.positionX),yield a(x,m.positionY,g.positionY),yield a(x,m.positionZ,g.positionZ)),Se(g)?yield c(m,x,g.inputs[0]):yield c(m,x,g),g});return{render(m,x){let f=l.get(x);return f!==void 0?Promise.resolve(f):p(m,x)}}};var Cg={disableNormalization:!1},hp=(o,t,e,r)=>class pp{constructor(s,n){let a=t(s),c=r(O(O({},Cg),n)),u=o(a,c);return e.add(u),u}static[Symbol.hasInstance](s){return s!==null&&typeof s=="object"&&Object.getPrototypeOf(s)===pp.prototype||e.has(s)}};var dp=(o,t)=>(e,r,i)=>(o(r).replay(i),t(r,e,i));var mp=(o,t,e)=>(r,i,s)=>Q(null,null,function*(){let n=o(r);yield Promise.all(n.activeInputs.map((a,c)=>Array.from(a).map(h=>Q(null,[h],function*([u,l]){let m=yield t(u).render(u,i),x=r.context.destination;!e(u)&&(r!==x||!e(r))&&m.connect(s,l,c)}))).reduce((a,c)=>[...a,...c],[]))});var fp=(o,t,e)=>(r,i,s)=>Q(null,null,function*(){let n=t(r);yield Promise.all(Array.from(n.activeInputs).map(u=>Q(null,[u],function*([a,c]){let h=yield o(a).render(a,i);e(a)||h.connect(s,c)})))});var gp=(o,t,e,r)=>i=>o(Ve,()=>Ve(i))?Promise.resolve(o(r,r)).then(s=>{if(!s){let n=e(i,512,0,1);i.oncomplete=()=>{n.onaudioprocess=null,n.disconnect()},n.onaudioprocess=()=>i.currentTime,n.connect(i.destination)}return i.startRendering()}):new Promise(s=>{let n=t(i,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});i.oncomplete=a=>{n.disconnect(),s(a.renderedBuffer)},n.connect(i.destination),i.startRendering()});var xp=o=>(t,e)=>{o.set(t,e)};var yp=o=>(t,e)=>o.set(t,e);var Ap=(o,t,e,r,i,s,n,a)=>(c,u)=>e(c).render(c,u).then(()=>Promise.all(Array.from(r(u)).map(l=>e(l).render(l,u)))).then(()=>i(u)).then(l=>(typeof l.copyFromChannel!="function"?(n(l),Ti(l)):t(s,()=>s(l))||a(l),o.add(l),l));var vg={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},bp=(o,t,e,r,i,s)=>class extends o{constructor(a,c){let u=i(a),l=O(O({},vg),c),h=e(u,l),p=s(u),m=p?r():null;super(a,!1,h,m),this._pan=t(this,p,h.pan)}get pan(){return this._pan}};var _p=(o,t,e,r,i)=>()=>{let s=new WeakMap,n=(a,c)=>Q(null,null,function*(){let u=e(a),l=pt(u,c);if(!l){let h={channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,pan:u.pan.value};u=t(c,h)}return s.set(c,u),l?yield o(c,a.pan,u.pan):yield r(c,a.pan,u.pan),Se(u)?yield i(a,c,u.inputs[0]):yield i(a,c,u),u});return{render(a,c){let u=s.get(c);return u!==void 0?Promise.resolve(u):n(a,c)}}};var Cp=o=>()=>{if(o===null)return!1;try{new o({length:1,sampleRate:44100})}catch(t){return!1}return!0};var vp=(o,t)=>()=>Q(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),s=!1,n=!1;try{yield r.audioWorklet.addModule(i);let a=new o(r,"a",{numberOfOutputs:0}),c=r.createOscillator();a.port.onmessage=()=>s=!0,a.onprocessorerror=()=>n=!0,c.connect(a),c.start(0),yield r.startRendering(),yield new Promise(u=>setTimeout(u))}catch(a){}finally{URL.revokeObjectURL(i)}return s&&!n});var Ip=(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 $a=()=>new DOMException("","UnknownError");var Ig={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},wp=(o,t,e,r,i,s,n)=>class extends o{constructor(c,u){let l=i(c),h=O(O({},Ig),u),p=e(l,h),x=s(l)?r():null;super(c,!0,p,x),this._isCurveNullified=!1,this._nativeWaveShaperNode=p,n(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 Sp=(o,t,e)=>()=>{let r=new WeakMap,i=(s,n)=>Q(null,null,function*(){let a=t(s);if(!pt(a,n)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,curve:a.curve,oversample:a.oversample};a=o(n,u)}return r.set(n,a),Se(a)?yield e(s,n,a.inputs[0]):yield e(s,n,a),a});return{render(s,n){let a=r.get(n);return a!==void 0?Promise.resolve(a):i(s,n)}}};var Tp=()=>typeof window=="undefined"?null:window;var Np=(o,t)=>e=>{e.copyFromChannel=(r,i,s=0)=>{let n=o(s),a=o(i);if(a>=e.numberOfChannels)throw t();let c=e.length,u=e.getChannelData(a),l=r.length;for(let h=n<0?-n:0;h+n<c&&h<l;h+=1)r[h]=u[h+n]},e.copyToChannel=(r,i,s=0)=>{let n=o(s),a=o(i);if(a>=e.numberOfChannels)throw t();let c=e.length,u=e.getChannelData(a),l=r.length;for(let h=n<0?-n:0;h+n<c&&h<l;h+=1)u[h+n]=r[h]}};var Op=o=>t=>{t.copyFromChannel=(e=>(r,i,s=0)=>{let n=o(s),a=o(i);if(n<t.length)return e.call(t,r,a,n)})(t.copyFromChannel),t.copyToChannel=(e=>(r,i,s=0)=>{let n=o(s),a=o(i);if(n<t.length)return e.call(t,r,a,n)})(t.copyToChannel)};var Ep=o=>(t,e)=>{let r=e.createBuffer(1,1,44100);t.buffer===null&&(t.buffer=r),o(t,"buffer",i=>()=>{let s=i.call(t);return s===r?null:s},i=>s=>i.call(t,s===null?r:s))};var Mp=(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 tc=(o,t,e)=>o.copyFromChannel===void 0?o.getChannelData(e)[0]:(o.copyFromChannel(t,e),t[0]);var ec=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 Bi=(o,t,e,r)=>{let i=o;for(;!i.hasOwnProperty(t);)i=Object.getPrototypeOf(i);let{get:s,set:n}=Object.getOwnPropertyDescriptor(i,t);Object.defineProperty(o,t,{get:e(s),set:r(n)})};var Rp=o=>Y(O({},o),{outputChannelCount:o.outputChannelCount!==void 0?o.outputChannelCount:o.numberOfInputs===1&&o.numberOfOutputs===1?[o.channelCount]:Array.from({length:o.numberOfOutputs},()=>1)});var Dp=o=>Y(O({},o),{channelCount:o.numberOfOutputs});var kp=o=>{let{imag:t,real:e}=o;return t===void 0?e===void 0?Y(O({},o),{imag:[0,0],real:[0,0]}):Y(O({},o),{imag:Array.from(e,()=>0),real:e}):e===void 0?Y(O({},o),{imag:t,real:Array.from(t,()=>0)}):Y(O({},o),{imag:t,real:e})};var rc=(o,t,e)=>{try{o.setValueAtTime(t,e)}catch(r){if(r.code!==9)throw r;rc(o,t,e+1e-7)}};var Pp=o=>{let t=o.createBufferSource();t.start();try{t.start()}catch(e){return!0}return!1};var Lp=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 jp=o=>{let t=o.createBufferSource();t.start();try{t.stop()}catch(e){return!1}return!0};var Qs=o=>{let t=o.createOscillator();try{t.start(-1)}catch(e){return e instanceof RangeError}return!1};var ic=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 Zs=o=>{let t=o.createOscillator();try{t.stop(-1)}catch(e){return e instanceof RangeError}return!1};var Fp=o=>{let{port1:t,port2:e}=new MessageChannel;try{t.postMessage(o)}finally{t.close(),e.close()}};var Bp=o=>{o.start=(t=>(e=0,r=0,i)=>{let s=o.buffer,n=s===null?r:Math.min(s.duration,r);s!==null&&n>s.duration-.5/o.context.sampleRate?t.call(o,e,0,0):t.call(o,e,n,i)})(o.start)};var oc=(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),Te(o,e),o.stop=(i=>{let s=!1;return(n=0)=>{if(s)try{i.call(o,n)}catch(a){e.gain.setValueAtTime(0,n)}else i.call(o,n),s=!0}})(o.stop)};var Zr=(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 wg=Ou(Be),Sg=Bu(Be),Tg=kl(Tr),Gp=new WeakMap,Ng=Xl(Gp),Ne=fl(new Map,new WeakMap),tr=Tp(),qp=wh(Ne,we),sc=Zl(Qt),Jt=mp(Qt,sc,fr),Og=Wu(qp,At,Jt),vt=$l(wi),gr=Jh(tr),bt=mh(gr),Wp=new WeakMap,Up=Wl(Zr),Vi=Oh(tr),nc=lh(Vi),ac=hh(tr),zp=ph(tr),Po=Mh(tr),Lt=nl(Eu(Ls),Fu(wg,Sg,Ni,Tg,Oi,Qt,Ng,Ke,At,Be,oe,fr,Ei),Ne,sh(Mo,Oi,Qt,At,Hr,oe),we,ki,Xt,Ml(Ni,Mo,Qt,At,Hr,vt,oe,bt),jl(Wp,Qt,Vt),Up,vt,nc,ac,zp,bt,Po),Eg=qu(Lt,Og,we,qp,vt,bt);var cc=new WeakSet,Vp=Sh(tr),Yp=wl(new Uint32Array(1)),uc=Np(Yp,we),lc=Op(Yp),hc=Uu(cc,Ne,Xt,Vp,gr,Cp(Vp),uc,lc);var Xs=Vu(se),Hp=fp(sc,Nr,fr),er=bl(Hp),Gi=Nh(Xs,Ne,Pp,Lp,jp,Qs,ic,Zs,Bp,Ep(Bi),oc),rr=dp(Jl(Nr),Hp),Mg=Hu(er,Gi,At,rr,Jt),Ge=al(Mu(js),Wp,Eo,cl,Pa,La,ja,Fa,Ba,_i,wo,Vi,rc),Rg=Yu(Lt,Mg,Ge,It,Gi,vt,bt,Zr);var Dg=el(Lt,rl,we,It,Eh(se,Bi),vt,bt,Jt),kg=ml(er,Ja,At,rr,Jt),Xr=yp(Gp),Pg=dl(Lt,Ge,kg,ki,Ja,vt,bt,Xr),Mr=vh(Be,ac),Lg=Mp(It,Mr),Rr=Fh(Vi,Lg),jg=xl(Rr,At,Jt),Fg=gl(Lt,jg,Rr,vt,bt),Bg=Al(ji,At,Jt),Vg=yl(Lt,Bg,ji,vt,bt,Dp),Gg=Gh(Xs,Gi,se,Mr),qi=Vh(Xs,Ne,Gg,Qs,Zs),qg=Il(er,qi,At,rr,Jt),Wg=vl(Lt,Ge,qg,qi,vt,bt,Zr),Qp=qh(Xt,Bi),Ug=Tl(Qp,At,Jt),zg=Sl(Lt,Ug,Qp,vt,bt,Xr),Yg=Dl(er,Ka,At,rr,Jt),Hg=Rl(Lt,Ge,Yg,Ka,vt,bt,Xr),Zp=Wh(Xt),Qg=Vl(er,Zp,At,rr,Jt),Zg=Bl(Lt,Ge,Qg,Zp,Xt,vt,bt,Xr),Xg=Hl(er,se,At,rr,Jt),Jg=Yl(Lt,Ge,Xg,se,vt,bt),Kg=Yh(ki,It,Fi,Xt),Js=gp(Ne,se,Fi,Ip(se,gr)),$g=oh(Gi,At,gr,Jt,Js),tx=Uh(Kg),ex=ih(Lt,tx,$g,vt,bt,Xr),rx=il(Ge,Rr,qi,Fi,Xt,tc,bt,Bi),Xp=new WeakMap,pc=_h(Dg,rx,Up,bt,Xp,Zr),Jp=Kh(Xs,Ne,Qs,ic,Zs,oc),ix=cp(er,Jp,At,rr,Jt),ox=ap(Lt,Ge,Jp,ix,vt,bt,Zr),Kp=Cl(Gi),sx=sp(Kp,It,se,ec,Mr),Ks=op(Kp,It,sx,ec,Mr,Vi,Bi),nx=tp(Ni,It,Rr,se,Fi,Ks,Xt,Oi,tc,Mr),$p=$h(nx),ax=lp(er,Rr,qi,se,$p,At,gr,rr,Jt,Js),cx=up(Lt,Ge,$p,ax,vt,bt,Xr),ux=ep(we),lx=hp(ux,vt,new WeakSet,kp),hx=ip(Rr,ji,se,Ks,Xt,Mr),td=rp(hx,Xt),px=_p(er,td,At,rr,Jt),dx=bp(Lt,Ge,td,px,vt,bt),mx=Sp(Ks,At,Jt),fx=wp(Lt,It,Ks,mx,vt,bt,Xr),ed=fh(tr),dc=Ul(tr),rd=new WeakMap,gx=th(rd,gr),xx=ed?ju(Ne,Xt,ql(tr),dc,zl(Nu),vt,gx,bt,Po,new WeakMap,new WeakMap,vp(Po,gr),tr):void 0,yx=dh(nc,bt),Ax=El(cc,Ne,Ol,Gl,new WeakSet,vt,yx,Si,Ve,uc,lc),id=pl(xx,Eg,hc,Rg,Pg,Fg,Vg,Wg,zg,Ax,Hg,Zg,Jg,ex,pc,ox,cx,lx,dx,fx),bx=gh(Lt,Hh,vt,bt),_x=xh(Lt,Qh,vt,bt),Cx=yh(Lt,Zh,vt,bt),vx=Xh(It,bt),Ix=Ah(Lt,vx,vt),od=tl(id,It,Xt,$a,bx,_x,Cx,Ix,Vi);var mc=eh(Xp),wx=Gu(mc),sd=_l(we),Sx=Pl(mc),nd=Fl(we),ad=new WeakMap,Tx=Ql(ad,Vt),Nx=jh(sd,we,It,Rr,ji,qi,se,Fi,Xt,nd,dc,Tx,Mr),Ox=Dh(It,Nx,se,Xt,Mr),Ex=hl(er,sd,Gi,Rr,ji,qi,se,Sx,nd,dc,At,Po,gr,rr,Jt,Js),Mx=Kl(rd),Rx=xp(ad),fc=ed?ul(wx,Lt,Ge,Ex,Ox,Qt,Mx,vt,bt,Po,Rp,Rx,Fp,Zr):void 0;var VG=bh(It,Xt,$a,pc,Vi);var cd=Nl(Xt,gr),ud=Ap(cc,Ne,sc,mc,Js,Si,uc,lc),GG=Ch(Ne,It,cd,pc,ud);var ld=np(id,Ne,It,cd,ud);var hd=nh(wi,nc),pd=ah(Ii,ac),dd=ch(Eo,zp),md=uh(wi,bt);function jt(o){return o===void 0}function J(o){return o!==void 0}function fd(o){return typeof o=="function"}function Gt(o){return typeof o=="number"}function qe(o){return Object.prototype.toString.call(o)==="[object Object]"&&o.constructor===Object}function gc(o){return typeof o=="boolean"}function St(o){return Array.isArray(o)}function te(o){return typeof o=="string"}function Lo(o){return te(o)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(o)}function B(o,t){if(!o)throw new Error(t)}function Rt(o,t,e=1/0){if(!(t<=o&&o<=e))throw new RangeError(`Value must be within [${t}, ${e}], got: ${o}`)}function $s(o){!o.isOffline&&o.state!=="running"&&Jr('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}var xd=!1,gd=!1;function xc(o){xd=o}function yd(o){jt(o)&&xd&&!gd&&(gd=!0,Jr("Events scheduled inside of scheduled callbacks should use the passed in scheduling time. See https://github.com/Tonejs/Tone.js/wiki/Accurate-Timing"))}var Ad=console;function bd(...o){Ad.log(...o)}function Jr(...o){Ad.warn(...o)}function _d(o){return new od(o)}function Cd(o,t,e){return new ld(o,t,e)}var ee=typeof self=="object"?self:null,vd=ee&&(ee.hasOwnProperty("AudioContext")||ee.hasOwnProperty("webkitAudioContext"));function Id(o,t,e){return B(J(fc),"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:fc)(o,t,e)}function re(o,t,e,r){var i=arguments.length,s=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(i<3?n(s):i>3?n(t,e,s):n(t,e))||s);return i>3&&s&&Object.defineProperty(t,e,s),s}function lt(o,t,e,r){function i(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function a(l){try{u(r.next(l))}catch(h){n(h)}}function c(l){try{u(r.throw(l))}catch(h){n(h)}}function u(l){l.done?s(l.value):i(l.value).then(a,c)}u((r=r.apply(o,t||[])).next())})}var tn=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.0 | (c) 2023 PahkaSoft | MIT License | Includes: Tone.js (MIT License) */
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();rh(A),eh(A.parameterDescriptors),y.set(C,A)}else rh(A),eh(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]=nc(_,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 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([`
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 We(o){return dd(o)}function ir(o){return pd(o)}function Wi(o){return md(o)}function Dr(o){return hd(o)}function wd(o){return o instanceof hc}function Px(o,t){return o==="value"||We(t)||ir(t)||wd(t)}function Oe(o,...t){if(!t.length)return o;let e=t.shift();if(qe(o)&&qe(e))for(let r in e)Px(r,e[r])?o[r]=e[r]:qe(e[r])?(o[r]||Object.assign(o,{[r]:{}}),Oe(o[r],e[r])):Object.assign(o,{[r]:e[r]});return Oe(o,...t)}function Sd(o,t){return o.length===t.length&&o.every((e,r)=>t[r]===e)}function w(o,t,e=[],r){let i={},s=Array.from(t);if(qe(s[0])&&r&&!Reflect.has(s[0],r)&&(Object.keys(s[0]).some(a=>Reflect.has(o,a))||(Oe(i,{[r]:s[0]}),e.splice(e.indexOf(r),1),s.shift())),s.length===1&&qe(s[0]))Oe(i,s[0]);else for(let n=0;n<e.length;n++)J(s[n])&&(i[e[n]]=s[n]);return Oe(o,i)}function Td(o){return o.constructor.getDefaults()}function xe(o,t){return jt(o)?t:o}function Ue(o,t){return t.forEach(e=>{Reflect.has(o,e)&&delete o[e]}),o}var Zt=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}};Zt.version=Io;function xr(o,t){return o>t+1e-6}function jo(o,t){return xr(o,t)||ne(o,t)}function Kr(o,t){return o+1e-6<t}function ne(o,t){return Math.abs(o-t)<1e-6}function yc(o,t,e){return Math.max(Math.min(o,e),t)}var qt=class o extends Zt{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(B(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];B(jo(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(ne(this._timeline[e].time,t)){for(let r=e;r>=0&&ne(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&&jo(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,s=i;if(i>0&&this._timeline[i-1][e]<=t)return i-1;for(;r<s;){let n=Math.floor(r+(s-r)/2),a=this._timeline[n],c=this._timeline[n+1];if(ne(a[e],t)){for(let u=n;u<this._timeline.length;u++){let l=this._timeline[u];if(ne(l[e],t))n=u;else break}return n}else{if(Kr(a[e],t)&&xr(c[e],t))return n;xr(a[e],t)?s=n:r=n+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),s=this._search(e);return i!==-1&&s!==-1?(this._timeline[i].time!==t&&(i+=1),this._timeline[s].time===e&&(s-=1),this._iterate(r,i,s)):i===-1&&this._iterate(r,0,s),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&&ne(this._timeline[r].time,t)){let i=r;for(let s=r;s>=0&&ne(this._timeline[s].time,t);s--)i=s;this._iterate(s=>{e(s)},i,r)}return this}dispose(){return super.dispose(),this._timeline=[],this}};var Nd=[];function kr(o){Nd.push(o)}function Od(o){Nd.forEach(t=>t(o))}var Ed=[];function Pr(o){Ed.push(o)}function Md(o){Ed.forEach(t=>t(o))}var Lr=class o extends Zt{constructor(){super(...arguments),this.name="Emitter"}on(t,e){return t.split(/\W+/).forEach(i=>{jt(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(jt(this._events)&&(this._events={}),this._events.hasOwnProperty(i))if(jt(e))this._events[i]=[];else{let s=this._events[i];for(let n=s.length-1;n>=0;n--)s[n]===e&&s.splice(n,1)}}),this}emit(t,...e){if(this._events&&this._events.hasOwnProperty(t)){let r=this._events[t].slice(0);for(let i=0,s=r.length;i<s;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 Ui=class extends Lr{constructor(){super(...arguments),this.isOffline=!1}toJSON(){return{}}};var $r=class o extends Ui{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=_d({latencyHint:r.latencyHint}),this._latencyHint=r.latencyHint),this._ticker=new tn(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||(Od(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 B(Dr(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamSource(t)}createMediaElementSource(t){return B(Dr(this._context),"Not available if OfflineAudioContext"),this._context.createMediaElementSource(t)}createMediaStreamDestination(){return B(Dr(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){B(!this._initialized,"The listener cannot be set after initialization."),this._listener=t}get transport(){return this.initialize(),this._transport}set transport(t){B(!this._initialized,"The transport cannot be set after initialization."),this._transport=t}get draw(){return this.initialize(),this._draw}set draw(t){B(!this._initialized,"Draw cannot be set after initialization."),this._draw=t}get destination(){return this.initialize(),this._destination}set destination(t){B(!this._initialized,"The destination cannot be set after initialization."),this._destination=t}createAudioWorkletNode(t,e){return Id(this.rawContext,t,e)}addAudioWorkletModule(t){return lt(this,void 0,void 0,function*(){B(J(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 Dr(this._context)?this._context.resume():Promise.resolve()}close(){return lt(this,void 0,void 0,function*(){Dr(this._context)&&this.state!=="closed"&&!this._closeStarted&&(this._closeStarted=!0,yield this._context.close()),this._initialized&&Md(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 s=0;s<r.length;s++)r[s]=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 s=this.now();this._timeouts.add({callback:()=>{t(),i()},id:r,time:s+e})};return i(),r}};var en=class extends Ui{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 j(o,t){St(t)?t.forEach(e=>j(o,e)):Object.defineProperty(o,t,{enumerable:!0,writable:!1})}function ti(o,t){St(t)?t.forEach(e=>ti(o,e)):Object.defineProperty(o,t,{writable:!0})}var $=()=>{};var Dt=class o extends Zt{constructor(){super(),this.name="ToneAudioBuffer",this.onload=$;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:$,onload:$,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=St(t)&&t[0].length>0,r=e?t.length:1,i=e?t[0].length:t.length,s=Ft(),n=s.createBuffer(r,i,s.sampleRate),a=!e&&r===1?[t]:t;for(let c=0;c<r;c++)n.copyToChannel(a[c],c);return this._buffer=n,this}toMono(t){if(Gt(t))this.fromArray(this.toArray(t));else{let e=new Float32Array(this.length),r=this.numberOfChannels;for(let i=0;i<r;i++){let s=this.toArray(i);for(let n=0;n<s.length;n++)e[n]+=s[n]}e=e.map(i=>i/r),this.fromArray(e)}return this}toArray(t){if(Gt(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){B(this.loaded,"Buffer is not loaded");let r=Math.floor(t*this.sampleRate),i=Math.floor(e*this.sampleRate);B(r<i,"The start time must be less than the end time");let s=i-r,n=Ft().createBuffer(this.numberOfChannels,s,this.sampleRate);for(let a=0;a<this.numberOfChannels;a++)n.copyToChannel(this.getChannelData(a).subarray(r,i),a);return new o(n)}_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 ze=class extends $r{constructor(){super({clockSource:"offline",context:Wi(arguments[0])?arguments[0]:Cd(arguments[0],arguments[1]*arguments[2],arguments[2]),lookAhead:0,updateInterval:Wi(arguments[0])?128/arguments[0].sampleRate:128/arguments[2]}),this.name="OfflineContext",this._currentTime=0,this.isOffline=!0,this._duration=Wi(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 Rd=new en,zi=Rd;function Ft(){return zi===Rd&&vd&&Ac(new $r),zi}function Ac(o,t=!1){t&&zi.dispose(),Dr(o)?zi=new $r(o):Wi(o)?zi=new ze(o):zi=o}if(ee&&!ee.TONE_SILENCE_LOGGING){let o="v";Io==="dev"&&(o="");let t=` * Tone.js ${o}${Io} * `;console.log(`%c${t}`,"background: #000; color: #fff")}function Yi(o){return Math.pow(10,o/20)}function Hi(o){return 20*(Math.log(o)/Math.LN10)}function ei(o){return Math.pow(2,o/12)}var rn=440;function Dd(){return rn}function kd(o){rn=o}function Ye(o){return Math.round(bc(o))}function bc(o){return 69+12*Math.log2(o/rn)}function Fo(o){return rn*Math.pow(2,(o-69)/12)}var on=class o extends Zt{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),jt(this._val))return this._noArg();if(te(this._val)&&jt(this._units)){for(let t in this._expressions)if(this._expressions[t].regexp.test(this._val.trim())){this._units=t;break}}else if(qe(this._val)){let t=0;for(let e in this._val)if(J(this._val[e])){let r=this._val[e],i=new this.constructor(this.context,e).valueOf()*r;t+=i}return t}if(J(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 ye=class o extends on{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 s=1;s<9;s++){let n=Math.pow(2,s);e.push(n+"n."),e.push(n+"n"),e.push(n+"t")}e.push("0");let r=e[0],i=new o(this.context,e[0]).toSeconds();return e.forEach(s=>{let n=new o(this.context,s).toSeconds();Math.abs(n-t)<Math.abs(i-t)&&(r=s,i=n)}),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 s=i.toString();return s.length>3&&(i=parseFloat(parseFloat(s).toFixed(3))),[r,e,i].join(":")}toTicks(){let t=this._beatsToUnits(1);return this.valueOf()/t*this._getPPQ()}toSeconds(){return this.valueOf()}toMidi(){return Ye(this.toFrequency())}_now(){return this.context.now()}};var ae=class o extends ye{constructor(){super(...arguments),this.name="Frequency",this.defaultUnits="hz"}static get A4(){return Dd()}static set A4(t){kd(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=Lx[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()*ei(t))}harmonize(t){return t.map(e=>this.transpose(e))}toMidi(){return Ye(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),jx[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 Fo(t)}static ftom(t){return Ye(t)}},Lx={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},jx=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"];var Ee=class extends ye{constructor(){super(...arguments),this.name="TransportTime"}_now(){return this.context.transport.seconds}};var Wt=class o extends Zt{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 yd(t),new ye(this.context,t).toSeconds()}toFrequency(t){return new ae(this.context,t).toFrequency()}toTicks(t){return new Ee(this.context,t).toTicks()}_getPartialProperties(t){let e=this.get();return Object.keys(e).forEach(r=>{jt(t[r])&&delete e[r]}),e}get(){let t=Td(this);return Object.keys(t).forEach(e=>{if(Reflect.has(this,e)){let r=this[e];J(r)&&J(r.value)&&J(r.setValueAtTime)?t[e]=r.value:r instanceof o?t[e]=r._getPartialProperties(t[e]):St(r)||Gt(r)||te(r)||gc(r)?t[e]=r:delete t[e]}}),t}set(t){return Object.keys(t).forEach(e=>{Reflect.has(this,e)&&J(this[e])&&(this[e]&&J(this[e].value)&&J(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 or=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 Rt(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 s=this._timeline[i];if(s.state===t)return s}}getNextState(t,e){let r=this._search(e);if(r!==-1)for(let i=r;i<this._timeline.length;i++){let s=this._timeline[i];if(s.state===t)return s}}};var it=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,B(J(t.param)&&(We(t.param)||t.param instanceof o),"param must be an AudioParam");!We(t.param);)t.param=t.param._param;this._swappable=J(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,J(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 J(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 J(this._maxValue)?this._maxValue:this.units==="normalRange"||this.units==="audioRange"?1:this._param.maxValue}_is(t,e){return this.units===e}_assertRange(t){return J(this.maxValue)&&J(this.minValue)&&Rt(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")?Yi(t):this._is(t,"frequency")?this.toFrequency(t):t:this.overridden?0:t}_toType(t){return this.convert&&this.units==="decibels"?Hi(t):t}setValueAtTime(t,e){let r=this.toSeconds(e),i=this._fromType(t);return B(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),s=this._initialValue;if(i===null)s=this._initialValue;else if(i.type==="setTargetAtTime"&&(r===null||r.type==="setValueAtTime")){let n=this._events.getBefore(i.time),a;n===null?a=this._initialValue:a=n.value,i.type==="setTargetAtTime"&&(s=this._exponentialApproach(i.time,a,i.value,i.constant,e))}else if(r===null)s=i.value;else if(r.type==="linearRampToValueAtTime"||r.type==="exponentialRampToValueAtTime"){let n=i.value;if(i.type==="setTargetAtTime"){let a=this._events.getBefore(i.time);a===null?n=this._initialValue:n=a.value}r.type==="linearRampToValueAtTime"?s=this._linearInterpolate(i.time,n,r.time,r.value,e):s=this._exponentialInterpolate(i.time,n,r.time,r.value,e)}else s=i.value;return this._toType(s)}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 B(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=ne(r,0)?this._minOutput:r,this._assertRange(r);let i=this.toSeconds(e);return B(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);B(isFinite(r)&&r>0,"timeConstant must be a number greater than 0");let s=this.toSeconds(e);return this._assertRange(i),B(isFinite(i)&&isFinite(s),`Invalid argument(s) to setTargetAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._events.add({constant:r,time:s,type:"setTargetAtTime",value:i}),this.log(this.units,"setTargetAtTime",t,s,r),this._param.setTargetAtTime(i,s,r),this}setValueCurveAtTime(t,e,r,i=1){r=this.toSeconds(r),e=this.toSeconds(e);let s=this._fromType(t[0])*i;this.setValueAtTime(this._toType(s),e);let n=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*n)}return this}cancelScheduledValues(t){let e=this.toSeconds(t);return B(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));B(isFinite(e),`Invalid argument to cancelAndHoldAtTime: ${JSON.stringify(t)}`),this.log(this.units,"cancelAndHoldAtTime",e,"value="+r);let i=this._events.get(e),s=this._events.getAfter(e);return i&&ne(i.time,e)?s?(this._param.cancelScheduledValues(s.time),this._events.cancel(s.time)):(this._param.cancelAndHoldAtTime(e),this._events.cancel(e+this.sampleTime)):s&&(this._param.cancelScheduledValues(s.time),this._events.cancel(s.time),s.type==="linearRampToValueAtTime"?this.linearRampToValueAtTime(this._toType(r),e):s.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),s=i?i.time:e+2,n=(s-e)/10;for(let a=e;a<s;a+=n)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){B(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,s){return r+(e-r)*Math.exp(-(s-t)/i)}_linearInterpolate(t,e,r,i,s){return e+(i-e)*((s-t)/(r-t))}_exponentialInterpolate(t,e,r,i,s){return e*Math.pow(i/e,(s-t)/(r-t))}};var k=class o extends Wt{constructor(){super(...arguments),this._internalChannels=[]}get numberOfInputs(){return J(this.input)?We(this.input)||this.input instanceof it?1:this.input.numberOfInputs:0}get numberOfOutputs(){return J(this.output)?this.output.numberOfOutputs:0}_isAudioNode(t){return J(t)&&(t instanceof o||ir(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();B(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 Jr("toMaster() has been renamed toDestination()"),this.toDestination()}disconnect(t,e=0,r=0){return Pd(this,t,e,r),this}chain(...t){return Me(this,...t),this}fan(...t){return t.forEach(e=>this.connect(e)),this}dispose(){return super.dispose(),J(this.input)&&(this.input instanceof o?this.input.dispose():ir(this.input)&&this.input.disconnect()),J(this.output)&&(this.output instanceof o?this.output.dispose():ir(this.output)&&this.output.disconnect()),this._internalChannels=[],this}};function Me(...o){let t=o.shift();o.reduce((e,r)=>(e instanceof k?e.connect(r):ir(e)&&Kt(e,r),r),t)}function Kt(o,t,e=0,r=0){for(B(J(o),"Cannot connect from undefined node"),B(J(t),"Cannot connect to undefined node"),(t instanceof k||ir(t))&&B(t.numberOfInputs>0,"Cannot connect to node with no inputs"),B(o.numberOfOutputs>0,"Cannot connect from node with no outputs");t instanceof k||t instanceof it;)J(t.input)&&(t=t.input);for(;o instanceof k;)J(o.output)&&(o=o.output);We(t)?o.connect(t,e):o.connect(t,e,r)}function Pd(o,t,e=0,r=0){if(J(t))for(;t instanceof k;)t=t.input;for(;!ir(o);)J(o.output)&&(o=o.output);We(t)?o.disconnect(t,e):ir(t)?o.disconnect(t,e,r):o.disconnect()}var U=class o extends k{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 it({context:this.context,convert:t.convert,param:this._gainNode.gain,units:t.units,value:t.gain,minValue:t.minValue,maxValue:t.maxValue}),j(this,"gain")}static getDefaults(){return Object.assign(k.getDefaults(),{convert:!0,gain:1,units:"gain"})}dispose(){return super.dispose(),this._gainNode.disconnect(),this.gain.dispose(),this}};var He=class extends k{constructor(t){super(t),this.onended=$,this._startTime=-1,this._stopTime=-1,this._timeout=-1,this.output=new U({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(k.getDefaults(),{curve:"linear",fadeIn:0,fadeOut:0,onended:$})}_startGain(t,e=1){B(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){B(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!==$&&(this.onended(this),this.onended=$,!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"),B(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=$,this}};var Bo=class o extends He{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 it({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(He.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 X=class o extends k{constructor(){let t=w(o.getDefaults(),arguments,["value","units"]);super(t),this.name="Signal",this.override=!0,this.output=this._constantSource=new Bo({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(k.getDefaults(),{convert:!0,units:"number",value:0})}connect(t,e=0,r=0){return Qi(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 Qi(o,t,e,r){(t instanceof it||We(t)||t instanceof X&&t.override)&&(t.cancelScheduledValues(0),t.setValueAtTime(0,0),t instanceof X&&(t.overridden=!0)),Kt(o,t,e,r)}var sn=class o extends it{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(it.getDefaults(),{multiplier:1,units:"hertz",value:1})}setTargetAtTime(t,e,r){e=this.toSeconds(e),this.setRampPoint(e);let i=this._fromType(t),s=this._events.get(e),n=Math.round(Math.max(1/r,1));for(let a=0;a<=n;a++){let c=r*a+e,u=this._exponentialApproach(s.time,s.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),s=this._events.previousEvent(i),n=this._getTicksUntilEvent(s,r);return i.ticks=Math.max(n,0),this}linearRampToValueAtTime(t,e){let r=this.toSeconds(e);super.linearRampToValueAtTime(t,e);let i=this._events.get(r),s=this._events.previousEvent(i),n=this._getTicksUntilEvent(s,r);return i.ticks=Math.max(n,0),this}exponentialRampToValueAtTime(t,e){e=this.toSeconds(e);let r=this._fromType(t),i=this._events.get(e),s=Math.round(Math.max((e-i.time)*10,1)),n=(e-i.time)/s;for(let a=0;a<=s;a++){let c=n*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(jt(t.ticks)){let n=this._events.previousEvent(t);t.ticks=this._getTicksUntilEvent(n,t.time)}let r=this._fromType(this.getValueAtTime(t.time)),i=this._fromType(this.getValueAtTime(e)),s=this._events.get(e);return s&&s.time===e&&s.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)),n=(this._fromType(this.getValueAtTime(r.time))-i)/(r.time-e.time),a=Math.sqrt(Math.pow(i,2)-2*n*(e.ticks-t)),c=(-i+a)/n,u=(-i-a)/n;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),s=this.getTicksAtTime(r);return this.getTicksAtTime(r+i)-s}_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 nn=class o extends X{constructor(){let t=w(o.getDefaults(),arguments,["value"]);super(t),this.name="TickSignal",this.input=this._param=new sn({context:this.context,convert:t.convert,multiplier:t.multiplier,param:this._constantSource.offset,units:t.units,value:t.value})}static getDefaults(){return Object.assign(X.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 an=class o extends Wt{constructor(){let t=w(o.getDefaults(),arguments,["frequency"]);super(t),this.name="TickSource",this._state=new or,this._tickOffset=new qt,this._ticksAtTime=new qt,this._secondsAtTime=new qt,this.frequency=new nn({context:this.context,units:t.units,value:t.frequency}),j(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),J(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),s={state:"paused",time:e};this._state.add(s);let n=i||r,a=i?i.ticks:0,c=null;return this._state.forEachBetween(n.time,e+this.sampleTime,u=>{let l=n.time,h=this._tickOffset.get(u.time);h&&h.time>=n.time&&(a=h.ticks,l=h.time),n.state==="started"&&u.state!=="started"&&(a+=this.frequency.getTicksAtTime(u.time)-this.frequency.getTicksAtTime(l),u.time!==s.time&&(c={state:u.state,time:u.time,ticks:a})),n=u}),this._state.remove(s),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),s=i||e,n=i?i.seconds:0,a=null;return this._state.forEachBetween(s.time,t+this.sampleTime,c=>{let u=s.time,l=this._tickOffset.get(c.time);l&&l.time>=s.time&&(n=l.seconds,u=l.time),s.state==="started"&&c.state!=="started"&&(n+=c.time-u,c.time!==r.time&&(a={state:c.state,time:c.time,seconds:n})),s=c}),this._state.remove(r),a&&this._secondsAtTime.add(a),n}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),s=Math.max(r.time,i.time),n=this.frequency.getTicksAtTime(s)+t-r.ticks;return this.frequency.getTimeOfTick(n)}forEachTickBetween(t,e,r){let i=this._state.get(t);this._state.forEachBetween(t,e,n=>{i&&i.state==="started"&&n.state!=="started"&&this.forEachTickBetween(Math.max(i.time,t),n.time-this.sampleTime,r),i=n});let s=null;if(i&&i.state==="started"){let n=Math.max(i.time,t),a=this.frequency.getTicksAtTime(n),c=this.frequency.getTicksAtTime(i.time),u=a-c,l=Math.ceil(u)-u;l=ne(l,1)?0:l;let h=this.frequency.getTimeOfTick(a+l);for(;h<e;){try{r(h,Math.round(this.getTicksAtTime(h)))}catch(p){s=p;break}h+=this.frequency.getDurationOfTicks(1,h)}}if(s)throw s;return this}dispose(){return super.dispose(),this._state.dispose(),this._tickOffset.dispose(),this._ticksAtTime.dispose(),this._secondsAtTime.dispose(),this.frequency.dispose(),this}};var Zi=class o extends Wt{constructor(){let t=w(o.getDefaults(),arguments,["callback","frequency"]);super(t),this.name="Clock",this.callback=$,this._lastUpdate=0,this._state=new or("stopped"),this._boundLoop=this._loop.bind(this),this.callback=t.callback,this._tickSource=new an({context:this.context,frequency:t.frequency,units:t.units}),this._lastUpdate=0,this.frequency=this._tickSource.frequency,j(this,"frequency"),this._state.setStateAtTime("stopped",0),this.context.on("tick",this._boundLoop)}static getDefaults(){return Object.assign(Wt.getDefaults(),{callback:$,frequency:1,units:"hertz"})}get state(){return this._state.getValueAtTime(this.now())}start(t,e){$s(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}};Lr.mixin(Zi);var Re=class o extends k{constructor(){let t=w(o.getDefaults(),arguments,["volume"]);super(t),this.name="Volume",this.input=this.output=new U({context:this.context,gain:t.volume,units:"decibels"}),this.volume=this.output.gain,j(this,"volume"),this._unmutedVolume=t.volume,this.mute=t.mute}static getDefaults(){return Object.assign(k.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 _c=class o extends k{constructor(){let t=w(o.getDefaults(),arguments);super(t),this.name="Destination",this.input=new Re({context:this.context}),this.output=new U({context:this.context}),this.volume=this.input.volume,Me(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(k.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),Me(...t),this}get maxChannelCount(){return this.context.rawContext.destination.maxChannelCount}dispose(){return super.dispose(),this.volume.dispose(),this}};kr(o=>{o.destination=new _c({context:o})});Pr(o=>{o.destination.dispose()});var Cc=class extends k{constructor(){super(...arguments),this.name="Listener",this.positionX=new it({context:this.context,param:this.context.rawContext.listener.positionX}),this.positionY=new it({context:this.context,param:this.context.rawContext.listener.positionY}),this.positionZ=new it({context:this.context,param:this.context.rawContext.listener.positionZ}),this.forwardX=new it({context:this.context,param:this.context.rawContext.listener.forwardX}),this.forwardY=new it({context:this.context,param:this.context.rawContext.listener.forwardY}),this.forwardZ=new it({context:this.context,param:this.context.rawContext.listener.forwardZ}),this.upX=new it({context:this.context,param:this.context.rawContext.listener.upX}),this.upY=new it({context:this.context,param:this.context.rawContext.listener.upY}),this.upZ=new it({context:this.context,param:this.context.rawContext.listener.upZ})}static getDefaults(){return Object.assign(k.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}};kr(o=>{o.listener=new Cc({context:o})});Pr(o=>{o.listener.dispose()});var Xi=class o extends Zt{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:$,onload:$,urls:{}}}has(t){return this._buffers.has(t.toString())}get(t){return B(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=$,i=$){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 Vo=class o extends ae{constructor(){super(...arguments),this.name="MidiClass",this.defaultUnits="midi"}_frequencyToUnits(t){return Ye(super._frequencyToUnits(t))}_ticksToUnits(t){return Ye(super._ticksToUnits(t))}_beatsToUnits(t){return Ye(super._beatsToUnits(t))}_secondsToUnits(t){return Ye(super._secondsToUnits(t))}toMidi(){return this.valueOf()}toFrequency(){return Fo(this.toMidi())}transpose(t){return new o(this.context,this.toMidi()+t)}};var Ae=class extends Ee{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 vc=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}};kr(o=>{o.draw=new vc({context:o})});Pr(o=>{o.draw.dispose()});var cn=class extends Zt{constructor(){super(...arguments),this.name="IntervalTimeline",this._root=null,this._length=0}add(t){B(J(t.time),"Events must have a time property"),B(J(t.duration),"Events must have a duration parameter"),t.time=t.time.valueOf();let e=new Ic(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}},Ic=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 un=class extends Zt{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 k{constructor(){super(w(o.getDefaults(),arguments,["context"]))}connect(t,e=0,r=0){return Qi(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,St(t.mapping)||t.mapping instanceof Float32Array?this.curve=Float32Array.from(t.mapping):fd(t.mapping)&&this.setMap(t.mapping,t.length)}static getDefaults(){return Object.assign(X.getDefaults(),{length:1024})}setMap(t,e=1024){let r=new Float32Array(e);for(let i=0,s=e;i<s;i++){let n=i/(s-1)*2-1;r[i]=t(n,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));B(e,"oversampling must be either 'none', '2x', or '4x'"),this._shaper.oversample=t}dispose(){return super.dispose(),this._shaper.disconnect(),this}};var Ji=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:$,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 ln=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 Kr(this._nextTick,this.floatTime+this.duration)?this.transport.scheduleOnce(this.invoke.bind(this),new Ae(this.context,this._nextTick).toSeconds()):-1}_createEvents(t){Kr(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 Ae(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 hn=class o extends Wt{constructor(){let t=w(o.getDefaults(),arguments);super(t),this.name="Transport",this._loop=new un(!1),this._loopStart=0,this._loopEnd=0,this._scheduledEvents={},this._timeline=new qt,this._repeatedEvents=new cn,this._syncedSignals=[],this._swingAmount=0,this._ppq=t.ppq,this._clock=new Zi({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),j(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 Ae(this.context,this._swingTicks*2/3).toSeconds()*i}xc(!0),this._timeline.forEachAtTime(e,r=>r.invoke(t)),xc(!1)}schedule(t,e){let r=new yr(this,{callback:t,time:new Ee(this.context,e).toTicks()});return this._addEvent(r,this._timeline)}scheduleRepeat(t,e,r,i=1/0){let s=new ln(this,{callback:t,duration:new ye(this.context,i).toTicks(),interval:new ye(this.context,e).toTicks(),time:new Ee(this.context,r).toTicks()});return this._addEvent(s,this._repeatedEvents)}scheduleOnce(t,e){let r=new yr(this,{callback:t,once:!0,time:new Ee(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 Ae(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 J(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){St(t)&&(t=t[0]/t[1]*4),this._timeSignature=t}get loopStart(){return new ye(this.context,this._loopStart,"i").toSeconds()}set loopStart(t){this._loopStart=this.toTicks(t)}get loopEnd(){return new ye(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 Ae(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 Ae(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),s=e+i;this.emit("stop",s),this._clock.setTicksAtTime(t,s),this.emit("start",s,this._clock.getSecondsAtTime(s))}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,s=1/(60/i.getValueAtTime(r)/this.PPQ),n=[];if(t.units==="time"){let c=.015625/s,u=new U(c),l=new Ji(-1),h=new U(c);i.chain(u,l,h),i=h,s=1/s,n=[u,l,h]}e||(t.getValueAtTime(r)!==0?e=t.getValueAtTime(r)/s:e=0);let a=new U(e);return i.connect(a),a.connect(t._param),n.push(a),this._syncedSignals.push({initial:t.value,nodes:n,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(),ti(this,"bpm"),this._timeline.dispose(),this._repeatedEvents.dispose(),this}};Lr.mixin(hn);kr(o=>{o.transport=new hn({context:o})});Pr(o=>{o.transport.dispose()});var mt=class extends k{constructor(t){super(t),this.input=void 0,this._state=new or("stopped"),this._synced=!1,this._scheduled=[],this._syncedStart=$,this._syncedStop=$,this._state.memory=100,this._state.increasing=!0,this._volume=this.output=new Re({context:this.context,mute:t.mute,volume:t.volume}),this.volume=this._volume.volume,j(this,"volume"),this.onstop=t.onstop}static getDefaults(){return Object.assign(k.getDefaults(),{mute:!1,onstop:$,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=jt(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t);if(i=this._clampToCurrentTime(i),!this._synced&&this._state.getValueAtTime(i)==="started")B(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 s=this._state.get(i);s&&(s.offset=this.toSeconds(xe(e,0)),s.duration=r?this.toSeconds(r):void 0);let n=this.context.transport.schedule(a=>{this._start(a,e,r)},i);this._scheduled.push(n),this.context.transport.state==="started"&&this.context.transport.getSecondsAtTime(this.immediate())>i&&this._syncedStart(this.now(),this.context.transport.seconds)}else $s(this.context),this._start(i,e,r);return this}stop(t){let e=jt(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t);if(e=this._clampToCurrentTime(e),this._state.getValueAtTime(e)==="started"||J(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),s;r.duration&&(s=this.toSeconds(r.duration)-i),this._start(t,this.toSeconds(r.offset)+i,s)}}},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=$,this.unsync(),this._volume.dispose(),this._state.dispose(),this}};var sr=class o extends He{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 it({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(He.getDefaults(),{url:new Dt,loop:!1,loopEnd:0,loopStart:0,onload:$,onerror:$,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){B(this.buffer.loaded,"buffer is either not set or not loaded");let s=this.toSeconds(t);this._startGain(s,i),this.loop?e=xe(e,this.loopStart):e=xe(e,0);let n=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;jo(n,a)&&(n=(n-c)%u+c),ne(n,this.buffer.duration)&&(n=0)}if(this._source.buffer=this.buffer.get(),this._source.loopEnd=this.toSeconds(this.loopEnd)||this.buffer.duration,Kr(n,this.buffer.duration)&&(this._sourceStarted=!0,this._source.start(s,n)),J(r)){let a=this.toSeconds(r);a=Math.max(a,0),this.stop(s+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 ri=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(B(t in Ld,"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=Ld[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}},Ki=44100*5,wc=2,Ar={brown:null,pink:null,white:null},Ld={get brown(){if(!Ar.brown){let o=[];for(let t=0;t<wc;t++){let e=new Float32Array(Ki);o[t]=e;let r=0;for(let i=0;i<Ki;i++){let s=Math.random()*2-1;e[i]=(r+.02*s)/1.02,r=e[i],e[i]*=3.5}}Ar.brown=new Dt().fromArray(o)}return Ar.brown},get pink(){if(!Ar.pink){let o=[];for(let t=0;t<wc;t++){let e=new Float32Array(Ki);o[t]=e;let r,i,s,n,a,c,u;r=i=s=n=a=c=u=0;for(let l=0;l<Ki;l++){let h=Math.random()*2-1;r=.99886*r+h*.0555179,i=.99332*i+h*.0750759,s=.969*s+h*.153852,n=.8665*n+h*.3104856,a=.55*a+h*.5329522,c=-.7616*c-h*.016898,e[l]=r+i+s+n+a+c+u+h*.5362,e[l]*=.11,u=h*.115926}}Ar.pink=new Dt().fromArray(o)}return Ar.pink},get white(){if(!Ar.white){let o=[];for(let t=0;t<wc;t++){let e=new Float32Array(Ki);o[t]=e;for(let r=0;r<Ki;r++)e[r]=Math.random()*2-1}Ar.white=new Dt().fromArray(o)}return Ar.white}};function he(o,t){return lt(this,void 0,void 0,function*(){let e=t/o.context.sampleRate,r=new ze(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 Go=class o extends He{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 it({context:this.context,param:this._oscillator.frequency,units:"frequency",value:t.frequency}),this.detune=new it({context:this.context,param:this._oscillator.detune,units:"cents",value:t.detune}),j(this,["frequency","detune"])}static getDefaults(){return Object.assign(He.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 Tt=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type"]);super(t),this.name="Oscillator",this._oscillator=null,this.frequency=new X({context:this.context,units:"frequency",value:t.frequency}),j(this,"frequency"),this.detune=new X({context:this.context,units:"cents",value:t.detune}),j(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 Go({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&&Sd(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(J(r)){let{partials:i,wave:s}=r;this._wave=s,this._partials=i,this._oscillator!==null&&this._oscillator.setPeriodicWave(this._wave)}else{let[i,s]=this._getRealImaginary(t,this._phase),n=this.context.createPeriodicWave(i,s);this._wave=n,this._oscillator!==null&&this._oscillator.setPeriodicWave(this._wave),o._periodicWaveCache.push({imag:s,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){Rt(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((s,n)=>i[n]=s),this._partials=Array.from(i),this.type=this._type}}_getRealImaginary(t,e){let i=2048,s=new Float32Array(i),n=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[s,n]}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),l;switch(t){case"sine":l=c<=a?1:0,this._partials[c-1]=l;break;case"square":l=c&1?2*u:0,this._partials[c-1]=l;break;case"sawtooth":l=u*(c&1?1:-1),this._partials[c-1]=l;break;case"triangle":c&1?l=2*(u*u)*(c-1>>1&1?-1:1):l=0,this._partials[c-1]=l;break;case"custom":l=this._partials[c-1];break;default:throw new TypeError("Oscillator: invalid type: "+t)}l!==0?(s[c]=-l*Math.sin(e*c),n[c]=l*Math.cos(e*c)):(s[c]=0,n[c]=0)}return[s,n]}_inverseFFT(t,e,r){let i=0,s=t.length;for(let n=0;n<s;n++)i+=t[n]*Math.cos(n*r)+e[n]*Math.sin(n*r);return i}getInitialValue(){let[t,e]=this._getRealImaginary(this._type,0),r=0,i=Math.PI*2,s=32;for(let n=0;n<s;n++)r=Math.max(this._inverseFFT(t,e,n/s*i),r);return yc(-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 he(this,t)})}dispose(){return super.dispose(),this._oscillator!==null&&this._oscillator.dispose(),this._wave=void 0,this.frequency.dispose(),this.detune.dispose(),this}};Tt._periodicWaveCache=[];var $i=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 X{constructor(){let t=w(o.getDefaults(),arguments,["value"]);super(t),this.name="Multiply",this.override=!1,this._mult=this.input=this.output=new U({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(X.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 $i({context:this.context}),this._modulationNode=new U({context:this.context}),this._carrier=new Tt({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 Tt({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),j(this,["frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(Tt.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 he(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 to=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type","modulationType"]);super(t),this.name="FMOscillator",this._modulationNode=new U({context:this.context,gain:0}),this._carrier=new Tt({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 X({context:this.context,units:"frequency",value:t.frequency}),this._modulator=new Tt({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),j(this,["modulationIndex","frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(Tt.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 he(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 ii=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","width"]);super(t),this.name="PulseOscillator",this._widthGate=new U({context:this.context,gain:0}),this._thresh=new le({context:this.context,mapping:e=>e<=0?-1:1}),this.width=new X({context:this.context,units:"audioRange",value:t.width}),this._triangle=new Tt({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),j(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 he(this,t)})}dispose(){return super.dispose(),this._triangle.dispose(),this.width.dispose(),this._widthGate.dispose(),this._thresh.dispose(),this}};var Wo=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type","spread"]);super(t),this.name="FatOscillator",this._oscillators=[],this.frequency=new X({context:this.context,units:"frequency",value:t.frequency}),this.detune=new X({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,j(this,["frequency","detune"])}static getDefaults(){return Object.assign(Tt.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,s)=>i.detune.value=e+r*s)}}get count(){return this._oscillators.length}set count(t){if(Rt(t,1),this._oscillators.length!==t){this._forEach(e=>e.dispose()),this._oscillators=[];for(let e=0;e<t;e++){let r=new Tt({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):$});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 he(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this._forEach(t=>t.dispose()),this}};var Uo=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 ii({context:this.context,frequency:t.modulationFrequency}),this._pulse.carrierType="sine",this.modulationFrequency=this._pulse.frequency,this._modulator=new Tt({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),j(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 he(this,t)})}dispose(){return super.dispose(),this._pulse.dispose(),this._scale.dispose(),this._modulator.dispose(),this}};var jd={am:qo,fat:Wo,fm:to,oscillator:Tt,pulse:ii,pwm:Uo},oi=class o extends mt{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type"]);super(t),this.name="OmniOscillator",this.frequency=new X({context:this.context,units:"frequency",value:t.frequency}),this.detune=new X({context:this.context,units:"cents",value:t.detune}),j(this,["frequency","detune"]),this.set(t)}static getDefaults(){return Object.assign(Tt.getDefaults(),to.getDefaults(),qo.getDefaults(),Wo.getDefaults(),ii.getDefaults(),Uo.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=jd[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 jd[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")&&Gt(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")&&Gt(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 he(this,t)})}dispose(){return super.dispose(),this.detune.dispose(),this.frequency.dispose(),this._oscillator.dispose(),this}};function dn(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(s){Rt(s,o,t),e.set(this,s)}})}}function pe(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(s){Rt(this.toSeconds(s),o,t),e.set(this,s)}})}}var zo=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:$,onerror:$,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=$){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=xe(e,this._loopStart):e=xe(e,0);let i=this.toSeconds(e),s=r;r=xe(r,Math.max(this._buffer.duration-i,0));let n=this.toSeconds(r);n=n/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+n),this._state.setStateAtTime("stopped",t+n,{implicitEnd:!0})),this._activeSources.add(a),this._loop&&jt(s)?a.start(t,i):a.start(t,i,n-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&&Rt(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&&Rt(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([pe(0)],zo.prototype,"fadeIn",void 0);re([pe(0)],zo.prototype,"fadeOut",void 0);var mn=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 ce=class o extends k{constructor(){let t=w(o.getDefaults(),arguments,["attack","decay","sustain","release"]);super(t),this.name="Envelope",this._sig=new X({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(k.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 fn)if(fn[r][e]===t)return r;return t}}_setCurve(t,e,r){if(te(r)&&Reflect.has(fn,r)){let i=fn[r];qe(i)?t!=="_decayCurve"&&(this[t]=i[e]):this[t]=i}else if(St(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),s=this.toSeconds(this.decay),n=this.getValueAtTime(t);if(n>0){let a=1/i;i=(1-n)/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]<=n&&n<=a[c]){a=this._attackCurve.slice(c),a[0]=n;break}this._sig.setValueCurveAtTime(a,t,i,e)}if(s&&this.sustain<1){let a=e*this.sustain,c=t+i;this.log("decay",c),this._decayCurve==="linear"?this._sig.linearRampToValueAtTime(a,s+c):this._sig.exponentialApproachValueAtTime(a,c,s)}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):(B(St(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 Qi(this,t,e,r),this}asArray(){return lt(this,arguments,void 0,function*(t=1024){let e=t/this.context.sampleRate,r=new ze(1,e,this.context.sampleRate),i=this.toSeconds(this.attack)+this.toSeconds(this.decay),s=i+this.toSeconds(this.release),n=s*.1,a=s+n,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+n)/a,0),(yield r.render()).getChannelData(0)})}dispose(){return super.dispose(),this._sig.dispose(),this}};re([pe(0)],ce.prototype,"attack",void 0);re([pe(0)],ce.prototype,"decay",void 0);re([dn(0,1)],ce.prototype,"sustain",void 0);re([pe(0)],ce.prototype,"release",void 0);var fn=(()=>{let t,e,r=[];for(t=0;t<128;t++)r[t]=Math.sin(t/127*(Math.PI/2));let i=[],s=6.4;for(t=0;t<127;t++){e=t/127;let p=Math.sin(e*(Math.PI*2)*s-Math.PI/2)+1;i[t]=p/10+e*.83}i[127]=1;let n=[],a=5;for(t=0;t<128;t++)n[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,m=Math.cos(p*Math.PI*2*e);u[t]=Math.abs(m*(1-e))}function l(p){let m=new Array(p.length);for(let x=0;x<p.length;x++)m[x]=1-p[x];return m}function h(p){return p.slice(0).reverse()}return{bounce:{In:l(u),Out:u},cosine:{In:r,Out:h(r)},exponential:"exponential",linear:"linear",ripple:{In:i,Out:l(i)},sine:{In:c,Out:l(c)},step:{In:n,Out:l(n)}}})();var be=class o extends k{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 Re({context:this.context,volume:t.volume}),this.volume=this._volume.volume,j(this,"volume")}static getDefaults(){return Object.assign(k.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 s=i[e],n=this.context.transport.schedule(a=>{i[e]=a,r.apply(this,i)},s);this._scheduledEvents.push(n)}}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 s=this.toSeconds(r),n=this.toSeconds(e);return this.triggerAttack(t,s,i),this.triggerRelease(s+n),this}dispose(){return super.dispose(),this._volume.dispose(),this.unsync(),this._scheduledEvents=[],this}};var de=class o extends be{constructor(){let t=w(o.getDefaults(),arguments);super(t),this.portamento=t.portamento,this.onsilence=t.onsilence}static getDefaults(){return Object.assign(be.getDefaults(),{detune:0,onsilence:$,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 ae?t.toFrequency():t;if(this.portamento>0&&this.getLevelAtTime(r)>.05){let s=this.toSeconds(this.portamento);this.frequency.exponentialRampTo(i,s,r)}else this.frequency.setValueAtTime(i,r);return this}};re([pe(0)],de.prototype,"portamento",void 0);var eo=class o extends ce{constructor(){super(w(o.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="AmplitudeEnvelope",this._gainNode=new U({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 nr=class o extends de{constructor(){let t=w(o.getDefaults(),arguments);super(t),this.name="Synth",this.oscillator=new oi(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 eo(Object.assign({context:this.context},t.envelope)),this.oscillator.chain(this.envelope,this.output),j(this,["oscillator","frequency","detune","envelope"])}static getDefaults(){return Object.assign(de.getDefaults(),{envelope:Object.assign(Ue(ce.getDefaults(),Object.keys(k.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.3}),oscillator:Object.assign(Ue(oi.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 Yo=class o extends k{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 it({context:this.context,units:"number",value:t.Q,param:this._filter.Q}),this.frequency=new it({context:this.context,units:"frequency",value:t.frequency,param:this._filter.frequency}),this.detune=new it({context:this.context,units:"cents",value:t.detune,param:this._filter.detune}),this.gain=new it({context:this.context,units:"decibels",convert:!1,value:t.gain,param:this._filter.gain}),this.type=t.type}static getDefaults(){return Object.assign(k.getDefaults(),{Q:1,type:"lowpass",frequency:350,detune:0,gain:0})}get type(){return this._filter.type}set type(t){B(["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 n=0;n<t;n++){let c=Math.pow(n/t,2)*19980+20;e[n]=c}let r=new Float32Array(t),i=new Float32Array(t),s=this.context.createBiquadFilter();return s.type=this.type,s.Q.value=this.Q.value,s.frequency.value=this.frequency.value,s.gain.value=this.gain.value,s.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 br=class o extends k{constructor(){let t=w(o.getDefaults(),arguments,["frequency","type","rolloff"]);super(t),this.name="Filter",this.input=new U({context:this.context}),this.output=new U({context:this.context}),this._filters=[],this._filters=[],this.Q=new X({context:this.context,units:"positive",value:t.Q}),this.frequency=new X({context:this.context,units:"frequency",value:t.frequency}),this.detune=new X({context:this.context,units:"cents",value:t.detune}),this.gain=new X({context:this.context,units:"decibels",convert:!1,value:t.gain}),this._type=t.type,this.rolloff=t.rolloff,j(this,["detune","frequency","gain","Q"])}static getDefaults(){return Object.assign(k.getDefaults(),{Q:1,detune:0,frequency:350,gain:0,rolloff:-12,type:"lowpass"})}get type(){return this._type}set type(t){B(["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=Gt(t)?t:parseInt(t,10),r=[-12,-24,-48,-96],i=r.indexOf(e);B(i!==-1,`rolloff can only be ${r.join(", ")}`),i+=1,this._rolloff=e,this.input.disconnect(),this._filters.forEach(s=>s.disconnect()),this._filters=new Array(i);for(let s=0;s<i;s++){let n=new Yo({context:this.context});n.type=this._type,this.frequency.connect(n.frequency),this.detune.connect(n.detune),this.Q.connect(n.Q),this.gain.connect(n.gain),this._filters[s]=n}this._internalChannels=this._filters,Me(this.input,...this._internalChannels,this.output)}getFrequencyResponse(t=128){let e=new Yo({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((s,n)=>r[n]*=s)}),e.dispose(),r}dispose(){return super.dispose(),this._filters.forEach(t=>{t.dispose()}),ti(this,["detune","frequency","gain","Q"]),this.frequency.dispose(),this.Q.dispose(),this.detune.dispose(),this.gain.dispose(),this}};var gn=class o extends nr{constructor(){let t=w(o.getDefaults(),arguments);super(t),this.name="MembraneSynth",this.portamento=0,this.pitchDecay=t.pitchDecay,this.octaves=t.octaves,j(this,["oscillator","envelope"])}static getDefaults(){return Oe(de.getDefaults(),nr.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 ae?t.toFrequency():t),s=i*this.octaves;return this.oscillator.frequency.setValueAtTime(s,r),this.oscillator.frequency.exponentialRampToValueAtTime(i,r+this.toSeconds(this.pitchDecay)),this}dispose(){return super.dispose(),this}};re([dn(0)],gn.prototype,"octaves",void 0);re([pe(0)],gn.prototype,"pitchDecay",void 0);var Fd=new Set;function io(o){Fd.add(o)}function xn(o,t){let e=`registerProcessor("${o}", ${t})`;Fd.add(e)}var Vx=`
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=`
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
- `;io(Vx);var Gx=`
49
+ `;co(cy);var uy=`
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
- `;io(Gx);var qx=`
116
+ `;co(uy);var hy=`
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
- `;io(qx);var Bd="feedback-comb-filter",Wx=`
160
+ `;co(hy);var nm="feedback-comb-filter",ly=`
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
- `;xn(Bd,Wx);var yn=class o extends be{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),B(!Gt(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(be.getDefaults(),{maxPolyphony:32,options:{},voice:nr})}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 B(t instanceof de,"Voice must extend Monophonic class"),t.connect(this.output),this._voices.push(t),t}else Jr("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 s=new Vo(this.context,i).toMidi(),n=this._getNextAvailableVoice();n&&(n.triggerAttack(i,e,r),this._activeVoices.push({midi:s,voice:n,released:!1}),this.log("triggerAttack",i,e))})}_triggerRelease(t,e){t.forEach(r=>{let i=new Vo(this.context,r).toMidi(),s=this._activeVoices.find(({midi:n,released:a})=>n===i&&!a);s&&(s.voice.triggerRelease(e),s.released=!0,this.log("triggerRelease",r,e))})}_scheduleEvent(t,e,r,i){B(!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 s=this.toSeconds(r);if(this.triggerAttack(t,s,i),St(e)){B(St(t),"If the duration is an array, the notes must also be an array"),t=t;for(let n=0;n<t.length;n++){let a=e[Math.min(n,e.length-1)],c=this.toSeconds(a);B(c>0,"The duration must be greater than 0"),this.triggerRelease(t[n],s+c)}}else{let n=this.toSeconds(e);B(n>0,"The duration must be greater than 0"),this.triggerRelease(t,s+n)}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=Ue(t,["onsilence","context"]);return this.options=Oe(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 An=class o extends be{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(B(Lo(r)||Gt(i)&&isFinite(i),`url key is neither a note or midi pitch: ${r}`),Lo(r)){let s=new ae(this.context,r).toMidi();e[s]=t.urls[r]}else Gt(i)&&isFinite(i)&&(e[i]=t.urls[i])}),this._buffers=new Xi({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(be.getDefaults(),{attack:0,baseUrl:"",curve:"exponential",onload:$,onerror:$,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 s=bc(new ae(this.context,i).toFrequency()),n=Math.round(s),a=s-n,c=this._findClosest(n),u=n-c,l=this._buffers.get(u),h=ei(c+a),p=new sr({url:l,context:this.context,curve:this.curve,fadeIn:this.attack,fadeOut:this.release,playbackRate:h}).connect(this.output);p.start(e,0,l.duration/h,r),St(this._activeSources.get(n))||this._activeSources.set(n,[]),this._activeSources.get(n).push(p),p.onended=()=>{if(this._activeSources&&this._activeSources.has(n)){let m=this._activeSources.get(n),x=m.indexOf(p);x!==-1&&m.splice(x,1)}}}),this}triggerRelease(t,e){return this.log("triggerRelease",t,e),Array.isArray(t)||(t=[t]),t.forEach(r=>{let i=new ae(this.context,r).toMidi();if(this._activeSources.has(i)&&this._activeSources.get(i).length){let s=this._activeSources.get(i);e=this.toSeconds(e),s.forEach(n=>{n.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 s=this.toSeconds(r);return this.triggerAttack(t,s,i),St(e)?(B(St(t),"notes must be an array when duration is array"),t.forEach((n,a)=>{let c=e[Math.min(a,e.length-1)];this.triggerRelease(n,s+this.toSeconds(c))})):this.triggerRelease(t,s+this.toSeconds(e)),this}add(t,e,r){if(B(Lo(t)||isFinite(t),`note must be a pitch or midi: ${t}`),Lo(t)){let i=new ae(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([pe(0)],An.prototype,"attack",void 0);re([pe(0)],An.prototype,"release",void 0);var oo=class o extends k{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 mn({context:this.context}),this.a=new U({context:this.context,gain:0}),this.b=new U({context:this.context,gain:0}),this.output=new U({context:this.context}),this._internalChannels=[this.a,this.b],this.fade=new X({context:this.context,units:"normalRange",value:t.fade}),j(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(k.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 me=class extends k{constructor(t){super(t),this.name="Effect",this._dryWet=new oo({context:this.context}),this.wet=this._dryWet.fade,this.effectSend=new U({context:this.context}),this.effectReturn=new U({context:this.context}),this.input=new U({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],j(this,"wet")}static getDefaults(){return Object.assign(k.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 Ho=class o extends k{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 it({context:this.context,param:this._panner.pan,value:t.pan,minValue:-1,maxValue:1}),this._panner.channelCount=t.channelCount,this._panner.channelCountMode="explicit",j(this,"pan")}static getDefaults(){return Object.assign(k.getDefaults(),{pan:0,channelCount:1})}dispose(){return super.dispose(),this._panner.disconnect(),this.pan.dispose(),this}};var Gd="bit-crusher",Xx=`
190
+ `;Ts(nm,ly);var Ns=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),Nt(e)){V(Nt(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 Os=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=Bc(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),Nt(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),Nt(e)?(V(Nt(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)],Os.prototype,"attack",void 0);re([de(0)],Os.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 Is({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 am="bit-crusher",yy=`
191
191
  class BitCrusherWorklet extends SingleIOProcessor {
192
192
 
193
193
  static get parameterDescriptors() {
@@ -206,9 +206,8 @@
206
206
  return val;
207
207
  }
208
208
  }
209
- `;xn(Gd,Xx);var jr=class o extends k{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(k.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}};var uJ=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100];var xJ=[1687/25e3,1601/25e3,2053/25e3,2251/25e3];var Cn=class o extends me{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);Rt(e,.001),this._decay=e;let r=this.toSeconds(t.preDelay);Rt(r,0),this._preDelay=r,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(me.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(t){t=this.toSeconds(t),Rt(t,.001),this._decay=t,this.generate()}get preDelay(){return this._preDelay}set preDelay(t){t=this.toSeconds(t),Rt(t,0),this._preDelay=t,this.generate()}generate(){return lt(this,void 0,void 0,function*(){let t=this.ready,e=new ze(2,this._decay+this._preDelay,this.context.sampleRate),r=new ri({context:e}),i=new ri({context:e}),s=new jr({context:e});r.connect(s,0,0),i.connect(s,0,1);let n=new U({context:e}).toDestination();s.connect(n),r.start(0),i.start(0),n.gain.setValueAtTime(0,0),n.gain.setValueAtTime(1,this._preDelay),n.gain.exponentialApproachValueAtTime(0,this._preDelay,this.decay);let a=e.render();return this.ready=a.then($),yield t,this._convolver.buffer=(yield a).get(),this})}dispose(){return super.dispose(),this._convolver.disconnect(),this}};var so=class o extends k{constructor(){let t=w(o.getDefaults(),arguments,["solo"]);super(t),this.name="Solo",this.input=this.output=new U({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(k.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}};so._allSolos=new Map;so._soloed=new Map;var vn=class o extends k{constructor(){let t=w(o.getDefaults(),arguments,["pan","volume"]);super(t),this.name="PanVol",this._panner=this.input=new Ho({context:this.context,pan:t.pan,channelCount:t.channelCount}),this.pan=this._panner.pan,this._volume=this.output=new Re({context:this.context,volume:t.volume}),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=t.mute,j(this,["pan","volume"])}static getDefaults(){return Object.assign(k.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 Ec=class o extends k{constructor(){let t=w(o.getDefaults(),arguments,["volume","pan"]);super(t),this.name="Channel",this._solo=this.input=new so({solo:t.solo,context:this.context}),this._panVol=this.output=new vn({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),j(this,["pan","volume"])}static getDefaults(){return Object.assign(k.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 U({context:this.context})),o.buses.get(t)}send(t,e=0){let r=this._getBus(t),i=new U({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}};Ec.buses=new Map;var srt=Ft().transport;var nrt=Ft().destination,art=Ft().destination;var crt=Ft().listener;var urt=Ft().draw;var lrt=Ft();var Mc=class{constructor(){d(this,"audioSource");try{let t=new Cn({decay:3,wet:.4}).toDestination(),e=new br(800,"lowpass").connect(t);this.audioSource=new yn(nr,{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=T.Math.linearToDecibels(r)),this.audioSource.triggerAttackRelease(t,e!=null?e:"2n"))}catch(i){}}stop(){try{this.audioSource&&this.audioSource.releaseAll()}catch(t){}}},Rc=new Mc;Wr();function oy(o){return typeof o=="string"?o:(typeof o=="number"&&(o=F.getChromaticNote(o)),o.format(0,0))}var In=[Rc],no=Rc;function sy(){return In.map(o=>o.getName())}function ny(){return no.getName()}function ay(o){In.some(t=>t.getName()===o.getName())||(In.push(o),Wd(o.getName()))}function Wd(o){if(o===no.getName())return;no.stop();let t=In.find(e=>e.getName()===o);t&&(no=t)}function wn(o,t,e){no.playNote(oy(o),t,e)}function Dc(){no.stop()}var Yc={};xi(Yc,{Annotation:()=>ui,Arpeggio:()=>Br,DivRect:()=>L,Fermata:()=>ss,Label:()=>co,MAccidental:()=>Ko,MArc:()=>os,MArpeggio:()=>rs,MBarLineLeft:()=>ds,MBarLineRight:()=>ps,MBeamGroup:()=>as,MDocument:()=>Pe,MEnding:()=>ms,MExtensionLine:()=>gs,MFermata:()=>fs,MHeader:()=>_s,MImage:()=>Jo,MMeasure:()=>ys,MNoteGroup:()=>cs,MPlaybackButtons:()=>zc,MPlayer:()=>Ss,MRenderer:()=>Uc,MRest:()=>is,MRhythmColumn:()=>us,MScoreRow:()=>bs,MSignature:()=>ts,MSpecialText:()=>ls,MText:()=>$o,MusicInterface:()=>Ot,Navigation:()=>_e,NoteAnchor:()=>Gr,PlayState:()=>Dn,ScoreEvent:()=>Zo,ScoreObjectEvent:()=>ni,ScoreStaffPosEvent:()=>si,StaffPreset:()=>ar,Stem:()=>De,TieType:()=>Vr,getStringNumbers:()=>Lc,getVoiceIds:()=>ke});var Zo=class{constructor(t){this.type=t}},si=class extends Zo{constructor(e,r,i,s){super(e);this.renderer=r;this.scoreRow=i;this.diatonicId=s}},ni=class extends Zo{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))}};var Sn=class{constructor(t){d(this,"head");d(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)}},st=class{constructor(t){this.parent=t;d(this,"rect",new L);d(this,"anchoredLayoutObjects",[]);d(this,"link")}getParent(){return this.parent}getRect(){return 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 Tn={DrawDebugRects:!1,DisableBeams:!1},at={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,ShortTieLength:5,GuitarTabHeight:20};var Ud="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 zd="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 cy="#55cc55",uy="#55cc55",ly="#44aa44",kc=new Map([[0,{src:Ud}],[1,{src:zd}]]);function hy(o,t){return!o&&!t?!0:!o||!t?!1:o.scoreRow===t.scoreRow&&o.diatonicId===t.diatonicId}function py(o,t){return!o&&!t?!0:!o||!t?!1:o.length===t.length&&o.every((e,r)=>e===t[r])}var Nn=class{constructor(t){this.mi=t;d(this,"devicePixelRatio");d(this,"fontSize");d(this,"unitSize");d(this,"lineWidth");d(this,"beamThickness");d(this,"scoreEventListener");d(this,"canvas");d(this,"ctx");d(this,"mdoc");d(this,"cursorRect");d(this,"mousePos");d(this,"curStaffPos");d(this,"curObjects");d(this,"hilightedStaffPos");d(this,"hilightedObj");d(this,"usingTouch",!1);d(this,"onClickFn");d(this,"onMouseMoveFn");d(this,"onMouseLeaveFn");d(this,"onTouchEndFn");this.devicePixelRatio=window.devicePixelRatio,this.fontSize=_o.FontSize*at.DocumentScale*this.devicePixelRatio,this.unitSize=this.fontSize*.3,this.lineWidth=this.unitSize*.2,this.beamThickness=this.unitSize*.8,kc.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.obj}finishImageAsset(t){t.finished=!0,Array.from(kc).every(r=>r[1].finished===!0)&&this.onLoad()}getImageAsset(t){var e;return(e=kc.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.obj.setRenderer(void 0),t&&t.obj.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 uu(t.offsetX,t.offsetY)}updateCurStaffPos(t,e){let r=!hy(t,this.curStaffPos);if(r&&this.curStaffPos&&this.scoreEventListener){let{scoreRow:i,diatonicId:s}=this.curStaffPos;this.scoreEventListener(new si("leave",this.getMusicInterface(),i.getMusicInterface(),s))}if(r&&t&&this.scoreEventListener){let{scoreRow:i,diatonicId:s}=t;this.scoreEventListener(new si("enter",this.getMusicInterface(),i.getMusicInterface(),s))}if(e&&t&&this.scoreEventListener){let{scoreRow:i,diatonicId:s}=t;this.scoreEventListener(new si("click",this.getMusicInterface(),i.getMusicInterface(),s))}return this.curStaffPos=t,r}updateCurObjects(t,e){let r=!py(t,this.curObjects);return r&&this.curObjects&&this.curObjects.length>0&&this.scoreEventListener&&this.scoreEventListener(new ni("leave",this.getMusicInterface(),this.curObjects.map(i=>i.getMusicInterface()))),r&&t&&t.length>0&&this.scoreEventListener&&this.scoreEventListener(new ni("enter",this.getMusicInterface(),t.map(i=>i.getMusicInterface()))),e&&t&&t.length>0&&this.scoreEventListener&&this.scoreEventListener(new ni("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),s=this.updateCurStaffPos(i,!0),n=this.updateCurObjects(r,!0);(s||n)&&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),s=this.updateCurStaffPos(i,!1),n=this.updateCurObjects(r,!1);(s||n)&&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,s=r.height+1;t.width=i,t.height=s,t.style.width=i/this.devicePixelRatio+"px",t.style.height=s/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:s,diatonicId:n}=r,a=s.getStaff(n);a&&(t.fillStyle=cy,t.fillRect(0,a.getDiatonicIdY(n)-i,t.canvas.width,2*i),e!==void 0&&this.drawLedgerLines(s,n,e.x))}drawHilightObjectRect(){let t=this.getCanvasContext(),{hilightedObj:e}=this;if(!t||!e)return;let r=e.getRect();t.strokeStyle=uy,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,ly,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 s=r.measureText(t);return r.font=i,s.width}else return T.Dom.getCanvasTextWidth(t,e)}drawDebugRect(t){if(!Tn.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 s=this.getCanvasContext();s&&(i!==void 0&&(s.fillStyle=i),s.beginPath(),s.arc(t,e,r,0,2*Math.PI),s.fill())}drawLine(t,e,r,i,s,n){let a=this.getCanvasContext();a&&(a.strokeStyle=s!=null?s:"black",a.lineWidth=n!=null?n:this.lineWidth,a.beginPath(),a.moveTo(t,e),a.lineTo(r,i),a.stroke())}drawPartialLine(t,e,r,i,s,n,a,c){let u=this.getCanvasContext();if(u){let l=t+(r-t)*s,h=e+(i-e)*s,p=t+(r-t)*n,m=e+(i-e)*n;u.strokeStyle=a!=null?a:"black",u.lineWidth=c!=null?c:this.lineWidth,u.beginPath(),u.moveTo(l,h),u.lineTo(p,m),u.stroke()}}drawLedgerLines(t,e,r){let i=t.getStaff(e);if(!i)return;let{unitSize:s}=this,n=s*at.LedgerLineWidth;if(e>=i.topLineDiatonicId+2){for(let a=i.topLineDiatonicId+2;a<=e;a+=2)if(i.containsDiatonicId(a)){let c=i.getDiatonicIdY(a);this.drawLine(r-n/2,c,r+n/2,c)}}else if(e<=i.bottomLineDiatonicId-2){for(let a=i.bottomLineDiatonicId-2;a>=e;a-=2)if(i.containsDiatonicId(a)){let c=i.getDiatonicIdY(a);this.drawLine(r-n/2,c,r+n/2,c)}}}};var Fr=class{constructor(t,e,r,i,s){this.clef=t;this.clefLineDiatonicId=e;this.middleLineDiatonicId=r;this.minDiatonicId=i;this.maxDiatonicId=s;d(this,"clefImageAsset");d(this,"topLineDiatonicId");d(this,"bottomLineDiatonicId");d(this,"octaveLower");d(this,"topLineY",0);d(this,"bottomLineY",0);this.clefImageAsset=t===0?0:1,this.topLineDiatonicId=this.middleLineDiatonicId+4,this.bottomLineDiatonicId=this.middleLineDiatonicId-4,this.octaveLower=this.clefLineDiatonicId===F.getNote("G3").diatonicId}get middleLineY(){return(this.topLineY+this.bottomLineY)/2}offset(t,e){this.topLineY+=e,this.bottomLineY+=e}getLineSpacing(){return(this.bottomLineY-this.topLineY)/4}getDiatonicSpacing(){return this.getLineSpacing()/2}containsDiatonicId(t){return F.validateDiatonicId(t),t>=this.minDiatonicId&&t<=this.maxDiatonicId}getDiatonicIdY(t){if(this.containsDiatonicId(t))return this.bottomLineY+(this.bottomLineDiatonicId-t)*this.getDiatonicSpacing();throw new E(6,"Staff does not contain diatonicId "+t)}getDiatonicIdAt(t){let e=Math.round(this.bottomLineDiatonicId-(t-this.bottomLineY)/this.getDiatonicSpacing());return this.containsDiatonicId(e)?e:void 0}isLine(t){return t%2===this.middleLineDiatonicId%2}isSpace(t){return t%2!==this.middleLineDiatonicId%2}},Xo=class{constructor(){d(this,"top",0);d(this,"bottom",0)}getStringY(t){return this.top+(this.bottom-this.top)/6*(t+.5)}offset(t,e){this.top+=e,this.bottom+=e}};var On=class{constructor(t){this.measure=t;d(this,"accidentalByDiatonicId",[])}getAccidentalFromKeySignature(t){let r=this.measure.getKeySignature().getOrderedAccidentalNotes().find(i=>i.diatonicClass===F.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 En=class extends st{constructor(e,r,i,s,n){super(e);this.image=r;this.anchorX=i;this.anchorY=s;this.imageScale=n;d(this,"mi");this.mi=new Jo(this)}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{anchorX:r,anchorY:i,image:s,imageScale:n}=this,{unitSize:a}=e;try{let c=s.naturalWidth*n*a,u=s.naturalHeight*n*a;this.rect=L.createSections(c*r,c*(1-r),u*i,u*(1-i))}catch(c){this.rect=new L}}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(s){}}};var ai=class extends st{constructor(e,r,i,s="black"){super(e);this.diatonicId=r;this.accidental=i;this.color=s;d(this,"mi");this.mi=new Ko(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=L.createSections(r*1.25,r*1.25,r*4,r*1.2);break;case-1:this.rect=L.createSections(r*.75,r*.75,r*4,r*1.2);break;case 0:this.rect=L.createSections(r*.75,r*.75,r*2.2,r*2.2);break;case 1:this.rect=L.createSections(r*.75,r*.75,r*2,r*2);break;case 2:this.rect=L.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:s}=e,{accidental:n}=this,a=this.rect.centerX,c=this.rect.centerY;r.strokeStyle=r.fillStyle=this.color;function u(l,h){r&&(r.lineWidth=s,r.beginPath(),r.moveTo(l-i*.75,h-i*4),r.lineTo(l-i*.75,h+i*1.1),r.bezierCurveTo(l+i*.75,h-i*0,l+i*.75,h-i*2.2,l-i*.75,h-i*.5),r.stroke())}n===-2?(u(a-i*.5,c),u(a+i*.5,c)):n===-1&&u(a,c),n===0?(r.beginPath(),r.lineWidth=s,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=s*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()):n===1?(r.lineWidth=s,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=s*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()):n===2&&(r.lineWidth=s,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 dy=.5,ut=class extends st{constructor(e,r,i,s){var a,c,u,l,h,p;super(e);this.anchorX=i;this.anchorY=s;d(this,"text");d(this,"scale");d(this,"color");d(this,"bold");d(this,"italic");d(this,"boxed");d(this,"padding");d(this,"bgcolor");d(this,"font","");d(this,"textLines");d(this,"lineWidths",[]);d(this,"lineHeight",0);d(this,"mi");let n=typeof r=="string"?{text:r}:r;this.text=n.text,this.scale=(a=n.scale)!=null?a:1,this.color=(c=n.color)!=null?c:"black",this.bold=(u=n.bold)!=null?u:!1,this.italic=(l=n.italic)!=null?l:!1,this.boxed=(h=n.boxed)!=null?h:!1,this.padding=(p=n.padding)!=null?p:this.boxed?dy:0,this.bgcolor=n.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 L,this.mi=new $o(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:s,bold:n,italic:a}=this,c=e.fontSize*r;this.font=(a?"italic ":"")+(n?"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,l=u+Math.max(...this.lineWidths)+u,h=u+this.lineHeight*this.textLines.length+u;(this.boxed==="square"||this.boxed==="circle")&&(h=l=Math.max(h,l)),this.rect=L.createSections(l*i,l*(1-i),h*s,h*(1-s))}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:s,lineHeight:n,lineWidths:a,anchorX:c,anchorY:u,italic:l}=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*n,m=-n*(l?.25:.175),x=s*e.unitSize,f=(i.left+x)*(1-c)+(i.right-x)*c,g=(i.top+x)*(1-u)+(i.bottom-x)*u;switch(this.textLines.forEach((y,I)=>{let v=f-a[I]*c,N=g-p*u+n*(I+1)+m;r.fillText(y,v,N)}),this.boxed){case"square":case"rectangle":r.strokeRect(i.left,i.top,i.width,i.height);break;case"circle":case"ellipse":let y=(i.left+i.right)/2,I=(i.top+i.bottom)/2,v=(i.right-i.left)/2,N=(i.bottom-i.top)/2;r.beginPath(),r.ellipse(y,I,v,N,0,0,2*Math.PI),r.stroke();break}}};var Mn=class extends st{constructor(e,r){super(e);this.measure=e;this.staff=r;d(this,"clefImage");d(this,"eightBelowClef");d(this,"measureNumber");d(this,"ksNeutralizeAccidentals",[]);d(this,"ksNewAccidentals",[]);d(this,"beatCountText");d(this,"beatSizeText");d(this,"tempoText");d(this,"mi");this.mi=new ts(this)}getMusicInterface(){return this.mi}updateClefImage(e,r){if(r){let i=e.getImageAsset(this.staff.clefImageAsset);this.clefImage=i?new En(this,i,0,.5,.1):void 0,this.eightBelowClef=this.clefImage&&this.staff.octaveLower?new ut(this,"8",.5,0):void 0}else this.clefImage=void 0}updateMeasureNumber(e){if(e){let r=this.measure.getMeasureNumber().toString();this.measureNumber=new ut(this,r,0,1)}else this.measureNumber=void 0}updateKeySignature(e){if(e){let{measure:r}=this,i=r.getPrevMeasure(),s=i?i.getKeySignature():void 0,n=r.getKeySignature();this.ksNeutralizeAccidentals=[],this.ksNewAccidentals=[],s&&!Le.equals(n,s)&&s.getOrderedAccidentalNotes().forEach(a=>{this.ksNeutralizeAccidentals.push(new ai(this,this.getAccidentalDiatonicId(a),0))}),n.getOrderedAccidentalNotes().forEach(a=>{this.ksNewAccidentals.push(new ai(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 ut(this,{text:i,scale:1.4},0,.5);let s=r.beatSize.toString();this.beatSizeText=new ut(this,{text:s,scale:1.4},0,.5)}else this.beatCountText=this.beatSizeText=void 0}updateTempo(e){if(e){let r=Ta(this.measure.getTempo());this.tempoText=new ut(this,r,.5,1)}else this.tempoText=void 0}getAccidentalDiatonicId(e){let{clef:r}=this.staff,i;if(r===0?e.accidental>0?i=this.staff.bottomLineDiatonicId+3:e.accidental<0&&(i=this.staff.bottomLineDiatonicId+1):r===1&&(e.accidental>0?i=this.staff.bottomLineDiatonicId+1:e.accidental<0&&(i=this.staff.bottomLineDiatonicId-1)),i!==void 0)return F.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 s=this.ksNeutralizeAccidentals[i].pick(e,r);if(s.length>0)return[this,...s]}for(let i=0;i<this.ksNewAccidentals.length;i++){let s=this.ksNewAccidentals[i].pick(e,r);if(s.length>0)return[this,...s]}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]}return[this]}layout(e){let{unitSize:r}=e,{measure:i,staff:s}=this,{row:n}=i,a=r,c=0;if(this.rect=new L,this.clefImage&&(c+=a,this.clefImage.layout(e),this.clefImage.offset(c,s.getDiatonicIdY(s.clefLineDiatonicId)),this.rect.expandInPlace(this.clefImage.getRect()),c=this.rect.right,this.eightBelowClef)){let l=this.clefImage.getRect();this.eightBelowClef.layout(e),this.eightBelowClef.offset(l.left+l.width/2,l.centerY+l.height*.3),this.rect.expandInPlace(this.eightBelowClef.getRect())}if(this.measureNumber){this.measureNumber.layout(e);let l=this.clefImage?this.clefImage.getRect().top:s.topLineY;this.measureNumber.offset(0,l),this.rect.expandInPlace(this.measureNumber.getRect()),c=Math.max(c,this.rect.right)}this.ksNeutralizeAccidentals.length>0&&(c+=a,this.ksNeutralizeAccidentals.forEach(l=>{let h=n.getStaff(l.diatonicId);h&&(l.layout(e),l.offset(c+l.getRect().leftw,h.getDiatonicIdY(l.diatonicId)),this.rect.expandInPlace(l.getRect()),c=this.rect.right)})),this.ksNewAccidentals&&(c+=a,this.ksNewAccidentals.forEach(l=>{let h=n.getStaff(l.diatonicId);h&&(l.layout(e),l.offset(c+l.getRect().leftw,h.getDiatonicIdY(l.diatonicId)),this.rect.expandInPlace(l.getRect()),c=this.rect.right)}));let u=c;this.beatCountText&&(this.beatCountText.layout(e),this.beatCountText.offset(c+a,s.getDiatonicIdY(s.middleLineDiatonicId+2)),this.rect.expandInPlace(this.beatCountText.getRect()),u=Math.max(u,this.rect.right)),this.beatSizeText&&(this.beatSizeText.layout(e),this.beatSizeText.offset(c+a,s.getDiatonicIdY(s.bottomLineDiatonicId+2)),this.rect.expandInPlace(this.beatSizeText.getRect()),u=Math.max(u,this.rect.right)),c=u,this.tempoText&&(this.tempoText.layout(e),this.tempoText.offset(c,Math.min(this.rect.top,s.topLineY)),this.rect.expandInPlace(this.tempoText.getRect())),this.rect.expandInPlace(new L(this.rect.left,this.rect.right+a,this.rect.centerY,this.rect.centerY))}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 es=class es extends st{constructor(e,r){super(e);this.col=e;this.arpeggioDir=r;d(this,"topArrowHeight",0);d(this,"bottomArrowHeight",0);d(this,"cycleHeight",0);d(this,"color","black");d(this,"mi");this.mi=new rs(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,s=es.NumCycles*this.cycleHeight+this.topArrowHeight+this.bottomArrowHeight;this.rect=new L(-i/2,i/2,-s/2,s/2)}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;let{lineWidth:i,unitSize:s}=e,{rect:n,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<es.NumCycles;u++){let l=n.top+a+u*this.cycleHeight;r.moveTo(n.centerX,l),r.quadraticCurveTo(n.left,l+this.cycleHeight/4,n.centerX,l+this.cycleHeight/2),r.quadraticCurveTo(n.right,l+this.cycleHeight*3/4,n.centerX,l+this.cycleHeight)}r.stroke(),a>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()),c>0&&(r.beginPath(),r.moveTo(n.centerX,n.bottom),r.lineTo(n.left,n.bottom-s),r.lineTo(n.right,n.bottom-s),r.fill())}};d(es,"NumCycles",5);var Rn=es;function fy(o){return typeof o=="number"?F.getChromaticNote(o).diatonicId:typeof o=="string"?F.getNote(o).diatonicId:o instanceof F?o.diatonicId:void 0}var Pc=class{constructor(){d(this,"dotRect",new L);d(this,"beamGroup")}},ao=class extends st{constructor(e,r,i,s){var c,u;super(e);this.col=e;this.voiceId=r;d(this,"ownStemDir");d(this,"ownDiatonicId");d(this,"color");d(this,"hide");d(this,"rhythmProps");d(this,"staffObjs");d(this,"mi");let n=fy(s==null?void 0:s.staffPos);if(n!==void 0){let l=this.row.hasStaff,h=this.row.getStaff(n);if(l&&!h)throw new E(6,"Rest staffPos is out of staff boundaries!")}this.ownDiatonicId=this.measure.updateOwnDiatonicId(r,n),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=s==null?void 0:s.color)!=null?c:"black",this.hide=(u=s==null?void 0:s.hide)!=null?u:!1,this.rhythmProps=new $t(i,s==null?void 0:s.dotted,s==null?void 0:s.triplet),this.staffObjs=this.row.hasStaff?new Pc:void 0,this.mi=new is(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.staffObjs?this.staffObjs.beamGroup?this.staffObjs.beamGroup.stemDir:this.ownStemDir:1}get triplet(){return this.rhythmProps.triplet}pick(e,r){return this.rect.contains(e,r)?[this]:[]}getBeamGroup(){var e;return(e=this.staffObjs)==null?void 0:e.beamGroup}setBeamGroup(e){this.staffObjs&&(this.staffObjs.beamGroup=e)}resetBeamGroup(){this.staffObjs&&(this.staffObjs.beamGroup=void 0)}getBeamX(){return this.rect.centerX}getBeamY(){return this.stemDir===1?this.rect.top:this.rect.bottom}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.hide||!this.staffObjs){this.rect=new L;return}let{unitSize:i}=e,{ownDiatonicId:s}=this,{noteLength:n,dotted:a,flagCount:c}=this.rhythmProps,u=0,l=0,h=0,p=0;if(n===192)u=i,l=i,h=0,p=i;else if(n===96)u=i,l=i,h=i,p=0;else if(n===48)u=i*1,l=i*1,h=i*3.2,p=i*3;else{let x=1-c%2;u=i*(1+c*.25),l=i*(1+c*.125),h=i*(.5+c-x),p=i*(1+c+x)}if(a){let x=at.DotSize*i,f=l+(at.RestDotSpace+at.DotSize/2)*i,g=this.getRestDotVerticalDisplacement(n)*i;this.staffObjs.dotRect=L.createCentered(f,g,x,x),h=Math.max(h,this.staffObjs.dotRect.toph),p=Math.max(p,this.staffObjs.dotRect.bottomh),l+=(at.RestDotSpace+at.DotSize)*i}this.rect=new L(-u,0,l,-h,0,p);let m=this.row.getStaff(s);m&&this.offset(0,m.getDiatonicIdY(s))}offset(e,r){this.staffObjs&&this.staffObjs.dotRect.offsetInPlace(e,r),this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r||this.hide||!this.staffObjs)return;e.drawDebugRect(this.rect);let{unitSize:i,lineWidth:s}=e,{color:n,rect:a}=this,{noteLength:c,dotted:u,flagCount:l}=this.rhythmProps,h=a.centerX,p=a.centerY;if(r.strokeStyle=r.fillStyle=n,r.lineWidth=s,c===192)r.fillRect(h-i,p,i*2,i);else if(c===96)r.fillRect(h-i,p-i,i*2,i);else if(c===48)r.beginPath(),r.moveTo(h-i*.6,p-i*3.2),r.lineTo(h+i*.7,p-i*1.5),r.quadraticCurveTo(h-i*.8,p-i*.5,h+i*1,p+i*1.5),r.lineTo(h-i*1,p-i*.75),r.quadraticCurveTo(h+i*.2,p-i*1.5,h-i*.6,p-i*3.2),r.moveTo(h+i*1,p+i*1.5),r.quadraticCurveTo(h-i*.8,p+i*1,h-i*.2,p+i*2.8),r.bezierCurveTo(h-i*1.8,p+i*1.5,h-i*.6,p-i*.2,h+i*.9,p+i*1.5),r.fill(),r.stroke();else if(l>0){let m=1-l%2,x=g=>h+(-g*.25+.5)*i,f=g=>p+(g+m)*i;r.beginPath(),r.moveTo(x(1+l),f(1+l)),r.lineTo(x(-.5-l),f(-.5-l)),r.stroke();for(let g=0;g<l;g++){let y=l-g*2;r.beginPath(),r.moveTo(x(y-2.5),f(y-2.5)),r.quadraticCurveTo(x(y-.5)+i*.25,f(y-1.5),x(y-1.5)-i*1.5,f(y-1.5)),r.stroke(),r.beginPath(),r.arc(x(y-2)-i*1.5,f(y-2),i*.5,0,Math.PI*2),r.fill()}}if(u){let m=this.staffObjs.dotRect;e.fillCircle(m.centerX,m.centerY,m.width/2)}}};var ci=class extends st{constructor(e,r,i,s,...n){super(r);this.arcProps=e;d(this,"lx",0);d(this,"ly",0);d(this,"rx",0);d(this,"ry",0);d(this,"cp1x",0);d(this,"cp1y",0);d(this,"cp2x",0);d(this,"cp2y",0);d(this,"arcHeight",0);d(this,"measure");d(this,"leftNoteGroup");d(this,"leftNote");d(this,"rightNoteGroup");d(this,"rightNote");d(this,"tieType");d(this,"mi");this.measure=r,this.leftNoteGroup=i,this.leftNote=s,n[0]instanceof Nt&&n[1]instanceof F?(this.rightNoteGroup=n[0],this.rightNote=n[1],this.tieType=void 0):T.Is.isEnumValue(n[0],Vr)&&(this.rightNoteGroup=void 0,this.rightNote=void 0,this.tieType=n[0]),this.mi=new os(this),this.measure.addArcObject(this)}getMusicInterface(){return this.mi}isTie(){return this.arcProps.arcType==="tie"}isSlur(){return this.arcProps.arcType==="slur"}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,leftNoteGroup:s,leftNote:n,rightNoteGroup:a,rightNote:c}=this,{row:u}=i,l=u.getPrevRow(),h=u.getNextRow(),p=u.getArcsContentRect(),{arcAnchor:m,arcDir:x}=this.arcProps,f=s.getArcAnchorPoint(n,m,"left"),g=a!==void 0&&c!==void 0?a.getArcAnchorPoint(c,m,"right"):this.tieType===-2?{x:i.getColumnsContentRect().right,y:f.y}:{x:f.x+r*at.ShortTieLength,y:f.y},y,I,v,N;if(a===void 0)y=f.x,I=f.y,v=g.x,N=g.y;else if(s.row===u&&a.row===u)y=f.x,I=f.y,v=g.x,N=g.y;else if(s.row===l&&a.row===u){let P=l.getArcsContentRect().right-f.x,M=g.x-p.left;y=p.left,I=f.y+(g.y-f.y)*P/(P+M),v=g.x,N=g.y}else if(s.row===u&&a.row===h){let S=h.getArcsContentRect(),P=p.right-f.x,M=g.x-S.left;y=f.x,I=f.y,v=p.right,N=f.y+(g.y-f.y)*P/(P+M)}else throw new E(6,"Cannot layout arc object because no valid left and right note groups.");let _=(x==="up"?-1:1)*r*Math.log2(v-y)/3;this.lx=y,this.ly=I,this.rx=v,this.ry=N,this.arcHeight=_;let{nx:b,ny:A}=T.Math.calcNormal(y,I,v,N);this.cp1x=y*.7+v*.3+b*this.arcHeight,this.cp1y=I*.7+N*.3+A*this.arcHeight,this.cp2x=y*.3+v*.7+b*this.arcHeight,this.cp2y=I*.3+N*.7+A*this.arcHeight,this.rect=new L(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))}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:s}=e;e.drawDebugRect(i);let n=s*1.5,a=s*.25;r.strokeStyle=r.fillStyle="black",r.lineWidth=s,r.beginPath(),r.moveTo(this.lx,this.ly-a),r.bezierCurveTo(this.cp1x,this.cp1y-n,this.cp2x,this.cp2y-n,this.rx,this.ry-a),r.lineTo(this.rx,this.ry+a),r.bezierCurveTo(this.cp2x,this.cp2y+n,this.cp1x,this.cp1y+n,this.lx,this.ly+a),r.fill()}};var ar=(n=>(n[n.Treble=1]="Treble",n[n.Bass=2]="Bass",n[n.Grand=3]="Grand",n[n.GuitarTreble=4]="GuitarTreble",n[n.GuitarTab=8]="GuitarTab",n[n.GuitarCombined=12]="GuitarCombined",n))(ar||{});function ke(){return[0,1,2,3]}function Lc(){return[1,2,3,4,5,6]}var De=(r=>(r[r.Auto=0]="Auto",r[r.Up=1]="Up",r[r.Down=2]="Down",r))(De||{}),Br=(e=>(e[e.Up=0]="Up",e[e.Down=1]="Down",e))(Br||{}),Vr=(e=>(e[e.Stub=-1]="Stub",e[e.ToMeasureEnd=-2]="ToMeasureEnd",e))(Vr||{}),Gr=(s=>(s[s.Auto=0]="Auto",s[s.Above=1]="Above",s[s.Center=2]="Center",s[s.Below=3]="Below",s[s.StemTip=4]="StemTip",s))(Gr||{}),Dn=(r=>(r[r.Playing=0]="Playing",r[r.Paused=1]="Paused",r[r.Stopped=2]="Stopped",r))(Dn||{}),ss=(e=>(e[e.AtNote=0]="AtNote",e[e.AtMeasureEnd=1]="AtMeasureEnd",e))(ss||{}),_e=(h=>(h[h.DC_al_Fine=0]="DC_al_Fine",h[h.DC_al_Coda=1]="DC_al_Coda",h[h.DS_al_Fine=2]="DS_al_Fine",h[h.DS_al_Coda=3]="DS_al_Coda",h[h.Coda=4]="Coda",h[h.toCoda=5]="toCoda",h[h.Segno=6]="Segno",h[h.Fine=7]="Fine",h[h.StartRepeat=8]="StartRepeat",h[h.EndRepeat=9]="EndRepeat",h[h.Ending=10]="Ending",h))(_e||{}),ui=(e=>(e[e.Dynamics=0]="Dynamics",e[e.Tempo=1]="Tempo",e))(ui||{}),co=(e=>(e[e.Note=0]="Note",e[e.Chord=1]="Chord",e))(co||{});var ns=class{constructor(t,e,r,i){this.arcType=t;this.arcSpan=e;this.arcAnchor=r;d(this,"noteGroups");d(this,"arcDir","down");this.noteGroups=[i]}getStartNoteGroup(){return this.noteGroups[0]}startsWith(t){return this.noteGroups[0]===t}addNoteGroup(t){return this.arcSpan===-1||this.arcSpan===-2?!1:this.arcSpan>this.noteGroups.length?(this.noteGroups.push(t),!0):!1}computeParams(){let t=this.noteGroups[0].stemDir;if(this.arcAnchor===4)this.arcDir=t===1?"up":"down";else if(this.arcAnchor===0)this.arcDir=t===1?"down":"up",this.noteGroups[0].notes.length>1?this.arcAnchor=2:this.arcDir==="up"?this.arcAnchor=1:this.arcAnchor=3;else if(this.arcAnchor===2){let{row:e}=this.noteGroups[0].measure,r=this.noteGroups[0].ownDiatonicId,i=e.getStaff(r);this.arcDir=!i||r<i.middleLineDiatonicId?"down":"up"}else this.arcAnchor===1?this.arcDir="up":this.arcAnchor===3&&(this.arcDir="down")}removeArcs(){this.noteGroups.forEach(t=>{t.measure.removeArcObjects(),t.removeArcProps()}),this.noteGroups.length=1}createArcs(){this.getStartNoteGroup().collectArcProps(),this.computeParams();let{arcSpan:t,arcType:e}=this;if(e==="tie"){if(t===-1||t===-2){let r=this.noteGroups[0];r.notes.forEach(i=>{this.createObjArcWithTieType(r,i,t)})}else if(this.noteGroups.length>=2)for(let r=0;r<this.noteGroups.length-1;r++){let i=this.noteGroups[r],s=this.noteGroups[r+1];i.notes.forEach(n=>{s.notes.find(c=>F.equals(c,n))&&this.createObjArc(i,n,s,n)})}}else if(e==="slur"&&typeof t=="number"&&t>=2&&this.noteGroups.length===t){let r=this.noteGroups[0],i=this.noteGroups[this.noteGroups.length-1],s=r.notes[0],n=i.notes[0];this.createObjArc(r,s,i,n)}}createObjArcWithTieType(t,e,r){new ci(this,t.measure,t,e,r)}createObjArc(t,e,r,i){if(t.measure===r.measure)new ci(this,t.measure,t,e,r,i);else if(t.measure.getNextMeasure()===r.measure)new ci(this,t.measure,t,e,r,i),new ci(this,r.measure,t,e,r,i);else throw new E(6,"Cannot create arc because arc is jumping measures.")}};var gy=(o,t)=>{let e=at.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}},li=class o extends st{constructor(e,r){super(e[0].measure);this.symbols=e;d(this,"mi");d(this,"type");d(this,"tripletNumber");d(this,"groupLineLeft");d(this,"groupLineRight");if(this.mi=new as(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(s=>s.triplet))throw new E(6,"Not every symbol's triplet property is true.");let i=e.length<3||e.some(s=>!(s instanceof Nt))||e.some(s=>s.rhythmProps.flagCount!==e[0].rhythmProps.flagCount);e.length===3&&e[0]instanceof Nt&&e[e.length-1]instanceof Nt&&e[0].rhythmProps.flagCount===e[e.length-1].rhythmProps.flagCount&&(i=!1),e.some(s=>s.rhythmProps.noteLength>=48)&&(i=!0),this.type=i?2:1,Nt.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(s=>s.triplet))return!1;let r=96,i=e.map(s=>s.rhythmProps.noteLength);if(e.length==2){if(i[0]<=r&&i[1]===i[0]/2&&i[0]/2>=bi||i[1]<=r&&i[0]===i[1]/2&&i[1]/2>=bi)return new o(e,!0),!0}else if(e.length===3&&i[0]<=r&&i.every(s=>s===i[0]))return new o(e,!0),!0;return!1}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[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}getBeamY(e){let r=this.getFirstSymbol(),i=this.getLastSymbol();return!(r instanceof Nt)||!(i instanceof Nt)||!(e instanceof Nt)?0:this.getFirstSymbol()===e||this.getLastSymbol()===e?e.getBeamY():T.Math.interpolateY(r.getBeamX(),r.getBeamY(),i.getBeamX(),i.getBeamY(),e.getBeamX())}layout(e){let r=this.getSymbols();if(r.length===0)return;let{unitSize:i,beamThickness:s}=e,{stemDir:n}=this,a=r[0].getBeamX(),c=r[0].getBeamY(),u=r[r.length-1].getBeamX(),l=r[r.length-1].getBeamY(),h=i*2*(n===1?-1:1),p=(l+c)/2,m=gy(u-a,l-c)/2;c=p-m,l=p+m;let x=0;if(r.forEach(f=>{let g=T.Math.interpolateY(a,c,u,l,f.getBeamX()),y=f.getBeamY()-g;n===1&&y<0?x=Math.min(x,y):n===2&&y>0&&(x=Math.max(x,y))}),c+=x,l+=x,this.type===2){let{unitSize:f}=e,g=f/(u-a);this.groupLineLeft=T.Math.interpolateCoord(a,c+h,u,l+h,-g),this.groupLineRight=T.Math.interpolateCoord(a,c+h,u,l+h,1+g),this.rect=new L(this.groupLineLeft.x,this.groupLineRight.x,Math.min(this.groupLineLeft.y,this.groupLineRight.y),Math.max(this.groupLineLeft.y,this.groupLineRight.y))}else(this.type===0||this.type===1)&&(x*=.5,this.symbols.forEach(f=>{if(f instanceof Nt){let g=T.Math.interpolateY(a,c,u,l,f.getBeamX());f.setStemTipY(g)}}),this.rect=new L(a,u,Math.min(c,l)-s/2,Math.max(c,l)+s/2));this.isTriplet()?(this.tripletNumber=new ut(this,"3",.5,.5),this.tripletNumber.layout(e),this.tripletNumber.offset((a+u)/2,(c+l)/2+h),this.rect.expandInPlace(this.tripletNumber.getRect())):this.tripletNumber=void 0}offset(e,r){this.tripletNumber&&this.tripletNumber.offset(e,r),this.groupLineLeft&&(this.groupLineLeft.x+=e,this.groupLineLeft.y+=r),this.groupLineRight&&(this.groupLineRight.x+=e,this.groupLineRight.y+=r),this.rect.offsetInPlace(e,r)}draw(e){let{unitSize:r,beamThickness:i,lineWidth:s}=e,n="black",a=this.getSymbols();if(this.type===2){if(this.groupLineLeft&&this.groupLineRight){let c=this.groupLineLeft,u=this.groupLineRight,l=this.tripletNumber?this.tripletNumber.getRect().width/(u.x-c.x)*1.2:0,h=T.Math.interpolateCoord(c.x,c.y,u.x,u.y,.5-l/2),p=T.Math.interpolateCoord(c.x,c.y,u.x,u.y,.5+l/2),m=this.stemDir===1?r:-r;e.drawLine(c.x,c.y,h.x,h.y,n,s),e.drawLine(p.x,p.y,u.x,u.y,n,s),e.drawLine(c.x,c.y,c.x,c.y+m,n,s),e.drawLine(u.x,u.y,u.x,u.y+m,n,s)}}else if(this.type===0||this.type===1){let c=a.filter(l=>l instanceof Nt),u=at.BeamSeparation*r*(this.stemDir===1?1:-1);for(let l=0;l<c.length-1;l++){let h=c[l],p=c[l+1],m=h.getBeamX(),x=h.getBeamY(),f=p.getBeamX(),g=p.getBeamY(),y=h.getRightBeamCount(),I=p.getLeftBeamCount();for(let v=0;v<Math.max(y,I);v++)v<y&&v<I?e.drawLine(m,x,f,g,n,i):y>I?e.drawPartialLine(m,x,f,g,0,.25,n,i):I>y&&e.drawPartialLine(m,x,f,g,.75,1,n,i),x+=u,g+=u}}this.tripletNumber&&this.tripletNumber.draw(e)}};function xy(o,t){let e=T.Arr.isArray(t)?t:t!==void 0?[t]:[],r=o.map((i,s)=>({note:i,string:e[s]}));return r=T.Arr.removeDuplicatesCmp(r,(i,s)=>F.equals(i.note,s.note)).sort((i,s)=>F.compareFunc(i.note,s.note)),{notes:r.map(i=>i.note),strings:r.every(i=>i.string===void 0)?void 0:r.map(i=>i.string)}}function yy(o){return o===!0||o===0?0:o===1?1:void 0}var jc=class{constructor(){d(this,"noteHeadRects",[]);d(this,"dotRects",[]);d(this,"accidentals",[]);d(this,"stemRect");d(this,"flagRects",[]);d(this,"beamGroup")}},Fc=class{constructor(){d(this,"fretNumbers",[])}},Nt=class o extends st{constructor(e,r,i,s,n){var c,u,l,h,p;super(e);this.col=e;this.voiceId=r;this.notes=i;d(this,"minDiatonicId");d(this,"maxDiatonicId");d(this,"ownDiatonicId");d(this,"ownStemDir");d(this,"ownString");d(this,"color");d(this,"staccato");d(this,"diamond");d(this,"arpeggio");d(this,"rhythmProps");d(this,"startTie");d(this,"startSlur");d(this,"tieProps",[]);d(this,"slurProps",[]);d(this,"leftBeamCount",0);d(this,"rightBeamCount",0);d(this,"staffObjs");d(this,"tabObjs");d(this,"mi");if(!T.Is.isIntegerGte(i.length,1))throw new E(6,"Cannot create note group object because notes array is empty.");let a=xy(i,n==null?void 0:n.string);if(this.notes=a.notes,this.notes.forEach(m=>{let{diatonicId:x}=m,f=e.row.hasStaff,g=e.row.getStaff(x);if(f&&!g)throw new E(6,"Note diatonicId is out of staff boundaries!")}),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,n==null?void 0:n.stem),this.ownString=this.measure.updateOwnString(this,a.strings),this.color=(c=n==null?void 0:n.color)!=null?c:"black",this.staccato=(u=n==null?void 0:n.staccato)!=null?u:!1,this.diamond=(l=n==null?void 0:n.diamond)!=null?l:!1,this.arpeggio=yy(n==null?void 0:n.arpeggio),this.rhythmProps=new $t(s,n==null?void 0:n.dotted,n==null?void 0:n.triplet),(n==null?void 0:n.tieSpan)!==void 0&&(this.startTie=new ns("tie",n.tieSpan,(h=n.tieAnchor)!=null?h:0,this),this.doc.addArcProps(this.startTie)),(n==null?void 0:n.slurSpan)!==void 0&&(this.startSlur=new ns("slur",n.slurSpan,(p=n.slurAnchor)!=null?p:0,this),this.doc.addArcProps(this.startSlur)),!this.row.hasStaff&&this.startTie!==void 0)throw new E(6,"Ties not implemented for guitar tabs alone, staff is required!");if(!this.row.hasStaff&&this.startSlur!==void 0)throw new E(6,"Slurs not implemented for guitar tabs alone, staff is required!");this.staffObjs=this.row.hasStaff?new jc:void 0,this.tabObjs=this.row.hasTab?new Fc:void 0,this.mi=new cs(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.staffObjs?this.staffObjs.beamGroup?this.staffObjs.beamGroup.stemDir:this.ownStemDir:1}get triplet(){return this.rhythmProps.triplet}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.staffObjs)for(let i=0;i<this.staffObjs.accidentals.length;i++){let s=this.staffObjs.accidentals[i];if(s){let n=s.pick(e,r);if(n.length>0)return[this,...n]}}if(this.tabObjs)for(let i=0;i<this.tabObjs.fretNumbers.length;i++){let s=this.tabObjs.fretNumbers[i];if(s){let n=s.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]}getArcAnchorPoint(e,r,i){let s=this.notes.findIndex(I=>F.equals(I,e));if(!this.staffObjs||s<0||s>=this.staffObjs.noteHeadRects.length){let I=this.getRect();return{x:I.centerX,y:I.bottom}}let n=this.staffObjs.noteHeadRects[s],a=this.staffObjs.stemRect,c=this.stemDir,u=a!==void 0,l=u?c===1?"right":"left":void 0,h=n.height/2,p=n.centerX,m=n.centerY,x=n.left-h,f=n.right+h,g=n.top-h,y=n.bottom+h;switch(r===0?r=3:r===4&&!u&&(r=c===1?1:3),r){case 2:return i==="left"?{x:f,y:m}:{x,y:m};case 1:return!u||c===2?{x:p,y:g}:{x:i==="left"&&l==="right"?f:i==="right"&&l==="left"?x:p,y:g};case 3:return!u||c===1?{x:p,y}:{x:i==="left"&&l==="right"?f:i==="right"&&l==="left"?x:p,y};case 4:if(c===1)return{x:p,y:a.top-h};if(c===2)return{x:p,y:a.bottom+h};default:throw new E(6,"Invalid arcAnchor: "+r)}}getNextNoteGroup(){let e=this.measure.getVoiceSymbols(this.voiceId).filter(s=>s 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 s=i.getVoiceSymbols(this.voiceId).filter(n=>n instanceof o);if(s.length>0)return s[0];i=i.getNextMeasure()}}collectArcProps(){if(this.startTie){this.tieProps.push(this.startTie);let e=this.getNextNoteGroup();for(;e&&this.startTie.addNoteGroup(e);)e.tieProps.push(this.startTie),e=e.getNextNoteGroup()}if(this.startSlur){this.slurProps.push(this.startSlur);let e=this.getNextNoteGroup();for(;e&&this.startSlur.addNoteGroup(e);)e.slurProps.push(this.startSlur),e=e.getNextNoteGroup()}}removeArcProps(){this.tieProps=[],this.slurProps=[]}getPlaySlur(){let e=this.slurProps.map(r=>r.startsWith(this)?"first":"slurred");return e.indexOf("first")>=0?"first":e.indexOf("slurred")>=0?"slurred":void 0}getBeamGroup(){var e;return(e=this.staffObjs)==null?void 0:e.beamGroup}setBeamGroup(e){this.staffObjs&&(this.staffObjs.beamGroup=e)}resetBeamGroup(){this.staffObjs&&(this.leftBeamCount=this.rightBeamCount=0,this.staffObjs.beamGroup=void 0)}getBeamX(){var r;let e=(r=this.staffObjs)==null?void 0:r.stemRect;if(!e)throw new E(6,"Cannot get beam x-coordinate because this note group has no stem.");return e.centerX}getBeamY(){var r;let e=(r=this.staffObjs)==null?void 0:r.stemRect;if(!e)throw new E(6,"Cannot get beam y-coordinate because this note group has no stem.");return this.stemDir===1?e.top:e.bottom}getStemHeight(e){let{unitSize:r}=e,{noteLength:i,flagCount:s}=this.rhythmProps;if(i>=192)return 0;{let n=this.hasBeamCount()?at.BeamSeparation:at.FlagSeparation;return(at.StemHeight+Math.max(0,s-1)*n)*r}}hasBeamCount(){return this.leftBeamCount>0||this.rightBeamCount>0}getLeftBeamCount(){return this.leftBeamCount}getRightBeamCount(){return this.rightBeamCount}getPlayTicks(e){let r=this.tieProps.map(i=>{let s=i.noteGroups,n=s.indexOf(this);if(n<0)return 0;if(i.arcSpan===-1||i.arcSpan===-2)return Math.max(this.rhythmProps.ticks,this.measure.getMeasureTicks()-this.col.positionTicks);let a=s[n-1];return a&&a.notes.some(c=>F.equals(c,e))?0:(s=s.slice(n),n=s.findIndex(c=>c.notes.every(u=>!F.equals(u,e))),n>=0&&(s=s.slice(0,n)),T.Math.sum(s.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){var m,x;let{unitSize:i}=e,{row:s,stemDir:n}=this,{dotted:a,flagCount:c}=this.rhythmProps;this.staffObjs&&(this.staffObjs.noteHeadRects=[],this.staffObjs.dotRects=[],this.staffObjs.accidentals=[],this.staffObjs.stemRect=void 0),this.tabObjs&&(this.tabObjs.fretNumbers=[]);let u=at.DotSize*i,l=(this.diamond?at.DiamondNoteHeadSize:at.NoteHeadWidth)*i,h=(this.diamond?at.DiamondNoteHeadSize:at.NoteHeadHeight)*i;if(this.notes.forEach((f,g)=>{let y=s.getStaff(f.diatonicId);if(this.staffObjs&&y){let I=this.col.getNoteHeadDisplacement(this,f)*l,v=y.getDiatonicIdY(f.diatonicId),N=this.staffObjs.noteHeadRects[g]=L.createCentered(I,v,l,h);if(r.needAccidental(f)){let C=this.staffObjs.accidentals[g]=new ai(this,f.diatonicId,f.accidental,this.color);C&&(C.layout(e),C.offset(-N.leftw-i*at.NoteAccSpace-C.getRect().rightw,v))}if(a){let C=N.right+at.NoteDotSpace*i+u/2,_=v+this.getDotVerticalDisplacement(f.diatonicId,n)*i;this.staffObjs.dotRects[g]=L.createCentered(C,_,u,u)}}}),this.staccato&&this.staffObjs){let f=this.staffObjs.noteHeadRects[0].centerX;if(n===1){let g=this.getBottomNote().diatonicId,y=s.getStaff(g);if(y){let I=y.getDiatonicIdY(g)+i*(y.isLine(g)?3:2);this.staffObjs.dotRects.push(L.createCentered(f,I,u,u))}}else{let g=this.getTopNote().diatonicId,y=s.getStaff(g);if(y){let I=y.getDiatonicIdY(g)-i*(y.isLine(g)?3:2);this.staffObjs.dotRects.push(L.createCentered(f,I,u,u))}}}if(this.staffObjs){let f=(m=s.getStaff(this.getBottomNote().diatonicId))==null?void 0:m.getDiatonicIdY(this.getBottomNote().diatonicId),g=(x=s.getStaff(this.getTopNote().diatonicId))==null?void 0:x.getDiatonicIdY(this.getTopNote().diatonicId);if(f===void 0||g===void 0)throw new E(6,"bottomNoteY or topNoteY is undefined!");let y=n===1?l/2:-l/2,I=this.getStemHeight(e),v=n===1?g-I:f+I,N=n===1?f:g;if(this.rhythmProps.hasStem()&&(this.staffObjs.stemRect=new L(y,y,Math.min(N,v),Math.max(N,v))),this.staffObjs.flagRects=[],!this.hasBeamCount()){let C=c===0?0:at.FlagWidth*i,_=c===0?0:at.FlagHeight*i;for(let b=0;b<c;b++){let A=b*i*at.FlagSeparation;this.staffObjs.flagRects[b]=n===1?new L(y,y+C,v+A,v+_+A):new L(y,y+C,v-_-A,v-A)}}}let p=s.getTab();this.notes.forEach((f,g)=>{var y;if(p&&this.tabObjs&&this.ownString[g]!==void 0){let I=this.ownString[g]-1,v=f.chromaticId-this.doc.tuningStrings[I].chromaticId,N=v<0?"red":"black",C=new ut(this,{text:String(v),color:N,bgcolor:"white"},.5,.5);this.tabObjs.fretNumbers.push(C),C.layout(e);let _=this.col.getNoteHeadDisplacement(this,f)*l,b=(y=this.staffObjs)!=null&&y.stemRect?this.staffObjs.stemRect.centerX:void 0,A=b!=null?b:_,S=p.getStringY(I);C.offset(A,S)}}),this.updateRect()}updateRect(){this.staffObjs?(this.rect=this.staffObjs.noteHeadRects[0].copy(),this.staffObjs.noteHeadRects.forEach(e=>this.rect.expandInPlace(e)),this.staffObjs.stemRect&&this.rect.expandInPlace(this.staffObjs.stemRect),this.staffObjs.dotRects.forEach(e=>this.rect.expandInPlace(e)),this.staffObjs.flagRects.forEach(e=>this.rect.expandInPlace(e)),this.staffObjs.accidentals.forEach(e=>this.rect.expandInPlace(e.getRect()))):this.tabObjs&&this.tabObjs.fretNumbers.length>0?this.rect=this.tabObjs.fretNumbers[0].getRect().copy():this.rect=new L,this.tabObjs&&this.tabObjs.fretNumbers.forEach(e=>this.rect.expandInPlace(e.getRect()))}setStemTipY(e){if(!this.staffObjs||!this.staffObjs.stemRect)return;let r=this.stemDir===1?this.staffObjs.stemRect.top:this.staffObjs.stemRect.bottom;if(e===r)return;let i=this.staffObjs.stemRect,s=this.stemDir===1?e:i.top,n=this.stemDir===1?i.bottom:e;this.staffObjs.stemRect=new L(i.left,i.right,s,n),this.updateRect()}offset(e,r){this.staffObjs&&(this.staffObjs.noteHeadRects.forEach(i=>i.offsetInPlace(e,r)),this.staffObjs.dotRects.forEach(i=>i.offsetInPlace(e,r)),this.staffObjs.accidentals.forEach(i=>i.offset(e,r)),this.staffObjs.stemRect&&this.staffObjs.stemRect.offsetInPlace(e,r),this.staffObjs.flagRects.forEach(i=>i.offsetInPlace(e,r))),this.tabObjs&&this.tabObjs.fretNumbers.forEach(i=>i.offset(e,r)),this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;e.drawDebugRect(this.rect);let{lineWidth:i}=e,{color:s,stemDir:n}=this,{noteLength:a}=this.rhythmProps;this.staffObjs&&(this.staffObjs.accidentals.forEach(c=>c.draw(e)),r.strokeStyle=r.fillStyle=s,r.lineWidth=i,this.staffObjs.noteHeadRects.forEach(c=>{let u=a>=96;this.diamond?u?(r.beginPath(),r.lineWidth=i*2.5,r.moveTo(c.centerX,c.top),r.lineTo(c.right,c.centerY),r.moveTo(c.left,c.centerY),r.lineTo(c.centerX,c.bottom),r.stroke(),r.beginPath(),r.lineWidth=i,r.moveTo(c.right,c.centerY),r.lineTo(c.centerX,c.bottom),r.moveTo(c.centerX,c.top),r.lineTo(c.left,c.centerY),r.stroke()):(r.beginPath(),r.moveTo(c.centerX,c.top),r.lineTo(c.right,c.centerY),r.lineTo(c.centerX,c.bottom),r.lineTo(c.left,c.centerY),r.lineTo(c.centerX,c.top),r.fill()):(r.beginPath(),r.ellipse(c.centerX,c.centerY,c.leftw,c.toph,-.3,0,Math.PI*2),u?r.stroke():r.fill())}),this.staffObjs.dotRects.forEach(c=>e.fillCircle(c.centerX,c.centerY,c.width/2)),this.staffObjs.stemRect&&(r.beginPath(),r.moveTo(this.staffObjs.stemRect.centerX,this.staffObjs.stemRect.bottom),r.lineTo(this.staffObjs.stemRect.centerX,this.staffObjs.stemRect.top),r.stroke()),this.staffObjs.flagRects.forEach(c=>{let u=c.left,h=c.right-u,p=n===1?c.top:c.bottom,m=n===1?c.bottom:c.top;r.beginPath(),r.moveTo(u,p),r.bezierCurveTo(u,p*.75+m*.25,u+h*1.5,p*.5+m*.5,u+h*.5,m),r.stroke()})),this.tabObjs&&this.tabObjs.fretNumbers.forEach(c=>c.draw(e))}static setBeamCounts(e){let r=(s,n)=>s.rhythmProps.noteLength===n.rhythmProps.noteLength*2&&s.rhythmProps.dotted&&!n.rhythmProps.dotted&&s.rhythmProps.flagCount>0&&n.rhythmProps.flagCount>0;for(let s=0;s<e.length;s++){let n=e[s],a=e[s-1],c=e[s+1];n&&(n.leftBeamCount=0,n.rightBeamCount=0,a&&(a.rhythmProps.flagCount===n.rhythmProps.flagCount||r(a,n)||r(n,a)?n.leftBeamCount=n.rhythmProps.flagCount:n.leftBeamCount=Math.min(a.rhythmProps.flagCount,n.rhythmProps.flagCount)),c&&(c.rhythmProps.flagCount===n.rhythmProps.flagCount||r(c,n)||r(n,c)?n.rightBeamCount=n.rhythmProps.flagCount:n.rightBeamCount=Math.min(c.rhythmProps.flagCount,n.rhythmProps.flagCount)))}let i;do{i=!1;for(let s=0;s<e.length;s++){let n=e[s],a=e[s-1],c=e[s+1];n&&n.leftBeamCount!==n.rhythmProps.flagCount&&n.rightBeamCount!==n.rhythmProps.flagCount&&(n.leftBeamCount=n.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((s,n)=>{s instanceof o&&(s.leftBeamCount=n===0?0:s.rhythmProps.flagCount,s.rightBeamCount=n===i.length-1?0:s.rhythmProps.flagCount)});else if(r===2)i.forEach(s=>{s instanceof o&&(s.leftBeamCount=s.rightBeamCount=0)});else throw new E(6,"Cannot set triplet beam count because triplet beam group type is invalid.")}getDotVerticalDisplacement(e,r){let i=this.row.getStaff(e);return i&&i.isLine(e)?r===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 s=e.notes[i],n=r.notes[i];if(s.diatonicId!==n.diatonicId||s.accidental!==n.accidental)return!1}return!0}};var Ay=(o,t)=>{let e=F.compareFunc(o.note,t.note);return e===0&&(e=o.noteGroup.stemDir===t.noteGroup.stemDir?0:o.noteGroup.stemDir===1?1:-1),e},_r=class extends st{constructor(e,r){super(e);this.measure=e;this.positionTicks=r;d(this,"voiceSymbol",[]);d(this,"minDiatonicId");d(this,"maxDiatonicId");d(this,"arpeggioDir");d(this,"arpeggios",[]);d(this,"noteHeadDisplacements",[]);d(this,"playerProps");d(this,"needLayout",!0);d(this,"shapeRects",[]);d(this,"mi");this.playerProps=new uo(this),this.mi=new us(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.shapeRects}get doc(){return this.measure.doc}get row(){return this.measure.row}pick(e,r){if(!this.rect.contains(e,r))return[];for(let i=0;i<this.voiceSymbol.length;i++)if(this.voiceSymbol[i]){let s=this.voiceSymbol[i].pick(e,r);if(s.length>0)return[this,...s]}for(let i=0;i<this.arpeggios.length;i++){let s=this.arpeggios[i].pick(e,r);if(s.length>0)return[this,...s]}return[this]}hasArpeggio(){return this.arpeggioDir!==void 0}getArpeggioDir(){var e;return(e=this.arpeggioDir)!=null?e:0}setVoiceSymbol(e,r){Bc(e),this.voiceSymbol[e]=r,r instanceof ao?!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 Nt&&(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=at.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 Nt&&e.notes.forEach(r=>{this.noteHeadDisplacements.push({noteGroup:e,note:r})})}),this.noteHeadDisplacements.sort(Ay),!(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],s=this.noteHeadDisplacements[e+1];if(i.displacement!==void 0)continue;let n=i.noteGroup.stemDir===2?-1:1;r&&i.note.diatonicId-r.note.diatonicId<=1?i.displacement=r.displacement===0?n:0:s&&s.note.diatonicId-i.note.diatonicId<=1&&(i.displacement=s.displacement===0?n:0)}}}getNoteHeadDisplacement(e,r){let i=this.noteHeadDisplacements.find(s=>s.noteGroup===e&&F.equals(s.note,r));return(i==null?void 0:i.displacement)!==void 0?i.displacement:0}getLowestDiatonicId(e){return Math.min(e,...this.voiceSymbol.map(r=>r instanceof Nt?Math.min(...r.notes.map(i=>i.diatonicId)):r.ownDiatonicId))}getPlayerNotes(){let e=[];function r(i,s,n,a){if(s<=0)return;e.some(u=>i.diatonicId===u.note.diatonicId&&i.accidental===u.note.accidental?(u.ticks=Math.max(u.ticks,s),!0):!1)||e.push({note:i,ticks:s,staccato:n,slur:a})}return ke().forEach(i=>{let s=this.getVoiceSymbol(i);if(s instanceof Nt){let n=s.getPlaySlur();s.notes.forEach(a=>{let c=s.getPlayTicks(a),u=s.staccato;r(a,c,u,n)})}}),e.sort((i,s)=>F.compareFunc(i.note,s.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;let{row:i}=this,{unitSize:s}=e,n=this.getMinWidth()*s/2,a=!0;if(this.voiceSymbol.forEach(u=>{u.layout(e,r);let l=u.getRect();a&&(this.rect=new L(-n,0,n,l.centerY,0,l.centerY),a=!1),this.rect.expandInPlace(l)}),a){let u=i.hasStaff?i.getTopStaff().topLineY:0,l=i.hasStaff?i.getBottomStaff().bottomLineY:0;this.rect=new L(-n,0,n,(u+l)/2,0,(u+l)/2)}this.arpeggioDir!==void 0?(this.arpeggios=i.getStaves().map(u=>{let l=new Rn(this,this.getArpeggioDir());return l.layout(e),l.offset(this.rect.left-l.getRect().width,u.middleLineY-l.getRect().centerY),l}),this.arpeggios.forEach(u=>this.rect.expandInPlace(u.getRect()))):this.arpeggios=[];let c=this.getAnchoredLayoutObjects().filter(u=>u.layoutGroup.widensColumn);if(c.length>0){let u=this.rect.leftw,l=this.rect.rightw;c.forEach(h=>{u=Math.max(u,h.musicObj.getRect().leftw),l=Math.max(l,h.musicObj.getRect().rightw)}),this.rect=new L(this.rect.centerX-u,this.rect.centerX,this.rect.centerX+l,this.rect.top,this.rect.centerY,this.rect.bottom)}this.voiceSymbol.forEach(u=>u.updateAccidentalState(r)),this.shapeRects=[...this.voiceSymbol.filter(u=>!!u).map(u=>u.getRect().copy()),...this.arpeggios.map(u=>u.getRect().copy())]}layoutDone(){this.needLayout=!1}offset(e,r){this.voiceSymbol.forEach(i=>{i&&i.offset(e,r)}),this.arpeggios.forEach(i=>i.offset(e,r)),this.shapeRects.forEach(i=>i.offsetInPlace(e,r)),this.rect.offsetInPlace(e,r)}draw(e){this.minDiatonicId!==void 0&&e.drawLedgerLines(this.row,this.minDiatonicId,this.rect.centerX),this.maxDiatonicId!==void 0&&e.drawLedgerLines(this.row,this.maxDiatonicId,this.rect.centerX),this.voiceSymbol.forEach(r=>{r&&r.draw(e)}),this.arpeggios.forEach(r=>r.draw(e))}};var cr=class cr extends st{constructor(e,r){super(e);this.text=r;d(this,"components",[]);d(this,"mi");switch(this.text){case cr.Coda:this.components=[new ut(this,{text:"\u{1D10C}",scale:1.7},.5,.3),new ut(this," Coda",0,1)];break;case cr.toCoda:this.components=[new ut(this,"toCoda ",1,1),new ut(this,{text:"\u{1D10C}",scale:1.7},.5,.3)];break;case cr.Segno:this.components=[new ut(this,{text:"\u{1D10B}",scale:1.1},.5,1)];break;default:this.components=[];break}this.mi=new ls(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 cr.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 L(r.getRect().left,r.getRect().centerX,i.getRect().right,i.getRect().top,i.getRect().centerY,i.getRect().bottom);break}case cr.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 L(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))}};d(cr,"toCoda","\u{1D10C} toCoda"),d(cr,"Coda","Coda \u{1D10C}"),d(cr,"Segno","\u{1D10B}");var Qe=cr;function hs(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 Qe.Segno;case 4:return Qe.Coda;case 5:return Qe.toCoda;default:return _e[o]}}function Vc(o){return["ppp","pp","p","mp","m","mf","f","ff","fff","cresc.","decresc.","dim."].indexOf(o)>=0}function kn(o){return["ppp","pp","p","mp","m","mf","f","ff","fff"].indexOf(o)>=0}function Gc(o){return["accel.","rit.","a tempo"].indexOf(o)>=0}function by(o){switch(o){case"bottom":return .8;case"middle":return .5}}function _y(o){return Vc(o)?2:Gc(o)?1:0}var hi=class extends Sn{constructor(e,r,i,s,n,a){super(e);d(this,"length");d(this,"visible");d(this,"lineStyle");d(this,"linePos");d(this,"startColumn");d(this,"context");if(this.length=i,this.visible=s,this.lineStyle=n,this.linePos=a,this.startColumn=r,this.context=e instanceof ut?_y(e.getText()):0,e instanceof ut)e.updateAnchorY(by(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 s=[9,10];for(let n=0;n<s.length;n++)if(i.hasNavigation(s[n]))return"section-break"}}if(r===1){let i=e.getAnchoredLayoutObjects();for(let s=0;s<i.length;s++){let n=i[s].getTextContent();if(n&&Gc(n))return n}}else if(r===2){let i=e.getAnchoredLayoutObjects();for(let s=0;s<i.length;s++){let n=i[s].getTextContent();if(n&&Vc(n))return n}}}getExtensionRangeInfo(){let{startColumn:e,length:r,context:i}=this,s=[e];if(r<=0)return{startColumn:e,endColumn:e,columnRange:s,extensionBreakText:void 0};let n=r,a=e;for(;;){let c=a.getNextColumn();if(!c)return{startColumn:e,endColumn:a,columnRange:s,extensionBreakText:void 0};let u=this.getSpanBreakText(c,i);if(u!==void 0)return{startColumn:e,endColumn:a,columnRange:s,extensionBreakText:u};if(n-=a.getTicksToNextColumn(),n<=0)return{startColumn:e,endColumn:a,columnRange:s,extensionBreakText:void 0};a=c,s.push(a)}}};var Cy=2,vy=2,Iy=.5,wy=.5;function Sy(o,t){let e=new $t(t.options.beatLength,t.options.dotted).ticks,r=t.beatsPerMinute*e;return 60*o/r}function lo(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 qc(){return lo("m")}function Ty(o){return o*1.25}var Ny=.5,uo=class{constructor(t){this.col=t;d(this,"speed");d(this,"volume");this.speed=1,this.volume=qc()}get measure(){return this.col.measure}reset(){this.speed=1,this.volume=qc()}setSpeed(t){this.speed=t}getSpeed(){return this.speed}getTempo(){let t=T.Math.clamp(this.getSpeed(),.1,10);return Na(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 pi)return this.measure.getMeasureTicks()/2;{let r=ke().map(i=>t.getVoiceSymbol(i)).filter(i=>!!i).map(i=>i.rhythmProps.ticks);return r.length===0?0:T.Math.sum(r)/r.length}}},Pn=class o{constructor(){d(this,"playTimer");d(this,"playPos");d(this,"playState",2);d(this,"doc");d(this,"cursorPositionChangeListener");d(this,"playStateChnageListener");d(this,"playerColumnSequence",[])}setDocument(t){this.doc=t,this.doc.update(),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,s=!1,n=!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),n&&e.hasNavigation(5))for(;e&&!e.hasNavigation(4);)e=e.getNextMeasure();else if(s&&e.hasNavigation(7))e=void 0;else if(e.hasNavigation(1))n=!0,e=this.doc.getFirstMeasure();else if(e.hasNavigation(0))s=!0,e=this.doc.getFirstMeasure();else if(e.hasNavigation(3))n=!0,e=i;else if(e.hasNavigation(2))s=!0,e=i;else if(e.hasNavigation(9)){let u=e.getPassCount(),l=e.getEndRepeatPlayCount()-1,h=((a=e.getNextMeasure())==null?void 0:a.hasNavigation(10))===!0;u<=l||h?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=qc(),r=new Map,i=new Map,s=(a,c)=>{var u;return r.set(a,[...(u=r.get(a))!=null?u:[],c])},n=(a,c)=>{var u;return i.set(a,[...(u=i.get(a))!=null?u:[],c])};this.playerColumnSequence.forEach(a=>{var l,h;if(!(a instanceof _r))return;a.getAnchoredLayoutObjects().forEach(p=>{var x;let m=(x=p.getTextContent())!=null?x:"";if(m==="a tempo")t=1;else if(kn(m))e=lo(m);else if(p.musicObj.getLink()instanceof hi){let f=p.musicObj.getLink(),{columnRange:g,extensionBreakText:y}=f.getExtensionRangeInfo(),I=T.Math.sum(g.map(v=>v.getTicksToNextColumn()));switch(m){case"accel.":{let v=t,N=v*Cy,C=0;g.forEach(_=>{C+=_.getTicksToNextColumn(),s(_,v+(N-v)*C/I)});break}case"rit.":{let v=t,N=v/vy,C=0;g.forEach(_=>{C+=_.getTicksToNextColumn(),s(_,v+(N-v)*C/I)});break}case"cresc.":{let v=e,N=v+Iy;y&&kn(y)&&lo(y)>v&&(N=lo(y));let C=0;g.forEach(_=>{C+=_.getTicksToNextColumn(),n(_,v+(N-v)*C/I)});break}case"decresc.":case"dim.":{let v=e,N=v-wy;y&&kn(y)&&lo(y)<v&&(N=lo(y));let C=0;g.forEach(_=>{C+=_.getTicksToNextColumn(),n(_,v+(N-v)*C/I)});break}}}});let c=(l=r.get(a))!=null?l:[];c.length>0&&(t=T.Math.sum(c)/c.length);let u=(h=i.get(a))!=null?h:[];u.length>0&&(e=T.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 s=r==null?void 0:r.getNextMeasure();if(!r||r.hasEndSong()||r.hasEndSection()||!s||s.hasNavigation(8))return}}playStep(){if(this.notifyCursorPositionChanged(),this.notifyPlayStateChanged(),this.playPos===void 0){this.stop();return}let t=this.playerColumnSequence[this.playPos],e=(n,a)=>{let c=Sy(n,a);return Math.max(0,c)},r=t.getPlayerProps().getTempo(),i=t.getPlayerProps().getFermataHoldTicks(),s;t instanceof pi?s=e(i,r):(t.getPlayerNotes().forEach((a,c)=>{let u=t.hasArpeggio()?6*c:0,l=e(a.ticks+i-u,r);if(l>0){a.staccato&&(l=Math.min(e(24,r)/2,l/2));let h=Ty(t.getPlayerProps().getVolume());if(a.slur==="slurred"&&(h*=Ny),u>0){let p=e(u,r);window.setTimeout(()=>wn(a.note,l,h),p*1e3)}else wn(a.note,l,h)}}),s=e(t.getTicksToNextColumn()+i,r)),this.playTimer=window.setTimeout(()=>this.playStep(),s*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,s=e.row.getRect().bottom;return new L(r,r,i,s)}};var Ln=class extends st{constructor(e){super(e);this.measure=e;d(this,"lineRects",[]);d(this,"dotRects",[]);d(this,"barLineType",0)}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){var N,C;this.barLineType=this.solveBarLineType();let{unitSize:r,lineWidth:i}=e,{measure:s,barLineType:n}=this,{row:a}=s,c=i,u=.7*r,l=.7*r,h=at.DotSize*r,p=h/2,m=a.getStaves().map(_=>_.middleLineY),x=a.getStaves().map(_=>_.getDiatonicSpacing()),f=a.getTab();f&&(m.push((f.bottom+f.top)/2),x.push((f.bottom-f.top)/6));let g,y;a.hasStaff?(g=a.getTopStaff().topLineY,y=f?f.getStringY(5):a.getBottomStaff().bottomLineY):(g=(N=f==null?void 0:f.getStringY(0))!=null?N:0,y=(C=f==null?void 0:f.getStringY(5))!=null?C:0),this.lineRects=[],this.dotRects=[];let I=(_,b)=>{this.lineRects.push(new L(_,_+b/2,_+b,g,0,y))},v=_=>{m.forEach((b,A)=>{for(let S=-1;S<=1;S+=2){let P=b+S*x[A];this.dotRects.push(new L(_-p,_,_+p,P-p,P,P+p))}})};switch(n){case 0:this.rect=new L(0,0,0,g,0,y);break;case 1:this.rect=new L(-c,0,0,g,0,y),I(-c,c);break;case 2:this.rect=new L(-c-l-c,0,0,g,0,y),I(-c-l-c,c),I(-c,c);break;case 3:this.rect=new L(-u-l-c,0,0,g,0,y),I(-c-l-u,c),I(-u,u);break;case 4:this.rect=new L(0,0,u+l+c+l+h,g,0,y),I(0,u),I(u+l,c),v(u+l+c+l+p);break;case 5:this.rect=new L(-u-l-c-l-h,0,0,g,0,y),I(-c-l-u,c),I(-u,u),v(-c-l-u-l-p);break;case 6:this.rect=new L(-h-l-c-l-u/2,0,u/2+l+c+l+h,g,0,y),I(-u/2,u),I(-u/2-l-c,c),I(u/2+l,c),v(-u/2-l-c-l-p),v(u/2+l+c+l+p);break}}offset(e,r){this.rect.offsetInPlace(e,r),this.lineRects.forEach(i=>i.offsetInPlace(e,r)),this.dotRects.forEach(i=>i.offsetInPlace(e,r))}draw(e){let r=e.getCanvasContext();!r||this.barLineType===0||(e.drawDebugRect(this.rect),r.strokeStyle=r.fillStyle="black",this.lineRects.forEach(i=>r.fillRect(i.left,i.top,i.width,i.height)),this.dotRects.forEach(i=>e.fillCircle(i.centerX,i.centerY,i.width/2)))}},ho=class extends Ln{constructor(e){super(e);d(this,"mi");this.mi=new ds(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}},pi=class extends Ln{constructor(e){super(e);d(this,"playerProps");d(this,"mi");this.playerProps=new uo(this),this.mi=new ps(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 di=class extends st{constructor(e,r){super(e);this.measure=e;this.passages=r;d(this,"endingText");d(this,"shapeRects",[]);d(this,"mi");if(this.mi=new ms(this),T.Is.isIntegerGte(r.length,1)){if(!this.passages.every(s=>T.Is.isIntegerGte(s,1)))throw new E(6,"Invalid passages: "+this.passages)}else throw new E(6,"Passages is empty.");this.passages.sort((s,n)=>s-n);let i=this.passages.map(s=>s+".").join("");this.endingText=new ut(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 L,this.shapeRects=[this.rect.copy()]}layoutFitToMeasure(e){let{unitSize:r}=e,{measure:i}=this;this.endingText.layout(e);let s=this.endingText.getRect(),n=i.getColumnsContentRect(),a=s.height;this.rect=new L(n.left+r,n.right-r,-a,0),this.endingText.offset(this.rect.left+r/2,this.rect.bottom),this.shapeRects=[new L(this.rect.left,this.rect.left+1,this.rect.top,this.rect.bottom),new L(this.rect.left,this.rect.right,this.rect.top,this.rect.top+1),new L(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:s}=this;e.drawDebugRect(this.rect),r.strokeStyle=r.fillStyle="black",r.lineWidth=i,r.beginPath(),r.moveTo(s.left,s.bottom),r.lineTo(s.left,s.top),r.lineTo(s.right,s.top),this.isSingleMeasureEnding()&&r.lineTo(s.right,s.bottom),r.stroke(),this.endingText.draw(e)}};var qr=class extends st{constructor(e,r){super(e);this.pos=r;d(this,"color","black");d(this,"mi");this.mi=new fs(this)}getMusicInterface(){return this.mi}static getFermataPositions(e){let{measure:r}=e,{row:i}=r;return i.staffPreset===3?[0,1]:[0]}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e,i=r*4,s=r*3;this.rect=new L(-i/2,i/2,-s,0)}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let r=e.getCanvasContext();if(!r)return;let{lineWidth:i,unitSize:s}=e,n=this.pos===1,a=(n?s:-s)*.7,c=this.rect.left,u=this.rect.right,l=(n?this.rect.bottom:this.rect.top)+a,h=(n?this.rect.top:this.rect.bottom)+a,p=h-l;e.drawDebugRect(this.rect),r.strokeStyle=r.fillStyle=this.color,r.lineWidth=i,r.beginPath(),r.moveTo(c,h),r.bezierCurveTo(c,l,u,l,u,h),r.bezierCurveTo(u,l+p/5,c,l+p/5,c,h),r.stroke(),r.fill();let m=p/6;e.fillCircle((c+u)/2,h-m,Math.abs(m))}};var po=class extends st{constructor(e,r,i,s){super(e);this.measure=e;this.extension=r;this.leftObj=i;this.rightObj=s;d(this,"mi");r.addTail(this),this.mi=new gs(this)}get row(){return this.measure.row}getMusicInterface(){return this.mi}getLineLeft(){return this.leftObj instanceof ho?this.leftObj.getRect().centerX:this.leftObj.getRect().right}getLineRight(){if(this.rightObj instanceof _r){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(),s=this.getLineRight(),n=r;this.rect=new L(i,s,-n/2,n/2)}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){this.rect=new L}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 s=this.extension.getTails();if(s.length>0&&this===s[s.length-1]){let n=i.centerY>this.measure.row.getRect().centerY?-e.unitSize:e.unitSize;e.drawLine(i.right,i.centerY,i.right,i.centerY+n,"black",e.lineWidth)}}};function Bc(o){if(ke().indexOf(o)<0)throw new E(6,"Invalid voiceId: "+o);return o}var xs=class xs extends st{constructor(e){super(e);this.row=e;d(this,"prevMeasure");d(this,"nextMeasure");d(this,"keySignature",Ms());d(this,"timeSignature",Ds());d(this,"tempo",ks());d(this,"alterKeySignature");d(this,"alterTimeSignature");d(this,"alterTempo");d(this,"signatures",[]);d(this,"barLineLeft");d(this,"columns",[]);d(this,"barLineRight");d(this,"arcs",[]);d(this,"beamGroups",[]);d(this,"measureId");d(this,"needLayout",!0);d(this,"leftSolidAreaWidth",0);d(this,"minColumnsAreaWidth",0);d(this,"rightSolidAreaWidth",0);d(this,"useDiatonicId",[]);d(this,"useStemDir",[]);d(this,"useString",[]);d(this,"voiceSymbols",[]);d(this,"lastAddedRhythmColumn");d(this,"addExtensionToMusicObject");d(this,"layoutObjects",[]);d(this,"postMeasureBreakWidth",0);d(this,"passCount",0);d(this,"needBeamsUpdate",!0);d(this,"navigationSet",new Set);d(this,"isEndSong",!1);d(this,"isEndSection",!1);d(this,"endRepeatPlayCount",2);d(this,"endRepeatPlayCountText");d(this,"mi");this.mi=new ys(this),this.prevMeasure=e.doc.getLastMeasure(),this.prevMeasure&&(this.prevMeasure.nextMeasure=this),this.barLineLeft=new ho(this),this.barLineRight=new pi(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 s=this.getPrevMeasure();s&&s.useDiatonicId[e]!==void 0&&(this.useDiatonicId[e]=s.useDiatonicId[e])}let i=this.useDiatonicId[e];return i===void 0&&(this.row.hasStaff?i=this.row.getTopStaff().middleLineDiatonicId:i=F.getNote("C4").diatonicId),this.useDiatonicId[e]=F.validateDiatonicId(i)}updateOwnStemDir(e,r){var n,a;let{voiceId:i}=e;r!==void 0?this.useStemDir[i]=r:this.useStemDir[i]===void 0&&(this.useStemDir[i]=(a=(n=this.getPrevMeasure())==null?void 0:n.useStemDir[i])!=null?a:0);let s=this.useStemDir[i];if(s===0||s===void 0){let c=this.row.getStaff(e.ownDiatonicId);return c?e.ownDiatonicId>c.middleLineDiatonicId?2:1:1}else return s}updateOwnString(e,r){var s,n;let{voiceId:i}=e;return r!==void 0?this.useString[i]=r:this.useString[i]===void 0&&(this.useString[i]=(n=(s=this.getPrevMeasure())==null?void 0:s.useString[i])!=null?n:[]),this.useString[i]}pick(e,r){if(!this.rect.contains(e,r))return[];for(let i=0;i<this.signatures.length;i++){let s=this.signatures[i].pick(e,r);if(s.length>0)return[this,...s]}for(let i=0;i<this.columns.length;i++){let s=this.columns[i].pick(e,r);if(s.length>0)return[this,...s]}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.arcs.length;i++){let s=this.arcs[i].pick(e,r);if(s.length>0)return[this,...s]}for(let i=0;i<this.beamGroups.length;i++){let s=this.beamGroups[i].pick(e,r);if(s.length>0)return[this,...s]}for(let i=0;i<this.layoutObjects.length;i++){let s=this.layoutObjects[i].musicObj.pick(e,r);if(s.length>0)return[this,...s]}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 lr)this.alterKeySignature=e[0];else try{let i=""+e[0],s=xa(""+e[1]);this.alterKeySignature=Sr(i,s)}catch(i){throw new E(6,"Cannot set key signature because invalid args: "+e)}this.updateKeySignature()}updateKeySignature(){this.keySignature=this.prevMeasure?this.prevMeasure.keySignature:Ms(),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:Ds(),this.alterTimeSignature&&(this.timeSignature=this.alterTimeSignature),this.nextMeasure&&this.nextMeasure.updateTimeSignature(),this.requestLayout()}getTempo(){return this.tempo}setTempo(e,r,i){var n;(n=this.getPrevMeasure())==null||n.endSection();let s=r!==void 0?{beatLength:r,dotted:i}:void 0;this.alterTempo={beatsPerMinute:e,options:s},this.updateTempo()}updateTempo(){var e;if(this.tempo=this.prevMeasure?this.prevMeasure.tempo:ks(),this.alterTempo){let r=this.alterTempo.beatsPerMinute,i,s;this.alterTempo.options?(i=this.alterTempo.options.beatLength,s=(e=this.alterTempo.options.dotted)!=null?e:!1):this.alterTimeSignature?(i=this.alterTimeSignature.beatLength,s=!1):(i=this.tempo.options.beatLength,s=this.tempo.options.dotted),this.tempo={beatsPerMinute:r,options:{beatLength:i,dotted:s}}}this.nextMeasure&&this.nextMeasure.updateTempo(),this.requestLayout()}hasPostMeasureBreak(){return this.isEndSong&&this!==this.row.getLastMeasure()}getPostMeasureBreakWidth(){return this.postMeasureBreakWidth}addLayoutObject(e,r,i){let s=new jn(e,r,i);this.layoutObjects.push(s),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 qr),s=i.some(a=>a.pos===0),n=i.some(a=>a.pos===1);qr.getFermataPositions(r).forEach(a=>{a===0&&!s?this.addLayoutObject(new qr(r,a),0,a):a===1&&!n&&this.addLayoutObject(new qr(r,a),0,a)}),this.disableExtension(),this.requestLayout()}hasFermata(e){return this.layoutObjects.some(r=>r.musicObj instanceof qr&&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,s=r;this.addLayoutObject(new di(i,s),3,0);break;case 1:case 0:case 3:case 2:{let n=this.barLineRight,a=hs(e);this.addLayoutObject(new ut(n,a,1,1),2,0),this.addNavigation(9),this.endSong();break}case 7:{let n=this.barLineRight,a=hs(e);this.addLayoutObject(new ut(n,a,1,1),2,0);break}case 6:case 4:{let n=this.barLineLeft,a=hs(e);this.addLayoutObject(new Qe(n,a),2,0);break}case 5:{let n=this.barLineRight,a=hs(e);this.addLayoutObject(new Qe(n,a),2,0);break}case 9:if(r.length===0)this.endRepeatPlayCount=2;else if(T.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 n={text:""+this.endRepeatPlayCount+"x",scale:.8};this.endRepeatPlayCountText=new ut(this,n,.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 di)}getEndRepeatPlayCount(){return this.endRepeatPlayCount}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 s={text:r},n,a;switch(e){case 0:n=1,a=1;break;case 1:n=6,a=0;break}let c=new ut(i,s,.5,1);this.addLayoutObject(c,n,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 s={text:r},n,a;switch(e){case 0:n=5,a=0,s.italic=!0;break;case 1:n=4,a=0,s.italic=!0;break}let c=new ut(i,s,.5,1);this.addLayoutObject(c,n,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,s=i==null?void 0:i.getParent();if(i instanceof ut&&s instanceof _r){let n="dashed",a="bottom",c=new hi(i,s,e,r,n,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}addNoteGroup(e,r,i,s){let n=r.map(c=>typeof c=="string"?F.getNote(c):c),a=this.getRhythmColumn(e);this.addRhythmSymbol(e,new Nt(a,e,n,i,s))}addRest(e,r,i){let s=this.getRhythmColumn(e);this.addRhythmSymbol(e,new ao(s,e,r,i))}getRhythmColumn(e){let r=0;for(let i=this.columns.length-1;i>=0&&r===0;i--){let s=this.columns[i],n=s.getVoiceSymbol(e);n&&(r=s.positionTicks+n.rhythmProps.ticks)}for(let i=0;i<=this.columns.length;i++){let s=this.columns[i];if(s&&s.positionTicks===r)return s;if(!s||s.positionTicks>r){let n=new _r(this,r);return this.columns.splice(i,0,n),n}}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=>{ke().forEach(s=>{let n=i.getVoiceSymbol(s);n&&(e===void 0||e===s)&&(r=Math.max(r,i.positionTicks+n.rhythmProps.ticks))})}),r}getColumnsContentRect(){return new L(this.barLineLeft.getRect().centerX,this.barLineRight.getRect().centerX,this.rect.top,this.rect.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.rect.left}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})}addArcObject(e){this.arcs.push(e),this.requestLayout()}removeArcObjects(){this.arcs.length>0&&(this.arcs=[],this.requestLayout())}updateExtensions(){this.layoutObjects.forEach(e=>{if(e.musicObj.getLink()instanceof hi){let r=e.musicObj.getLink();if(r.getHead()===e.musicObj){r.getTails().forEach(n=>e.measure.removeLayoutObjects(n));let{startColumn:i,endColumn:s}=r.getExtensionRangeInfo();if(r.isVisible()&&i!==s)for(let n=i.measure;n!==void 0;n=n===s.measure?void 0:n.getNextMeasure()){let a=n===i.measure?r.getHead():n.getBarLineLeft(),c=n===s.measure?s:n.getBarLineRight();n.addLayoutObject(new po(n,r,a,c),e.layoutGroupId,e.verticalPos)}}}})}addBeamGroup(e){this.beamGroups.push(e)}requestBeamsUpdate(){this.needBeamsUpdate=!0}updateBeams(){!this.needBeamsUpdate||!this.row.hasStaff||(this.beamGroups.forEach(e=>{e.getSymbols().forEach(r=>r.resetBeamGroup())}),this.beamGroups=[],ke().forEach(e=>{let r=this.getVoiceSymbols(e);if(!(r.length<=2)){for(let i=0;i<r.length;){let s=r.slice(i,i+2),n=r.slice(i,i+3);s.length===2&&li.createTriplet(s)?i+=2:n.length===3&&li.createTriplet(n)?i+=3:i++}if(!Tn.DisableBeams){let i=[],s=0,n=0;this.isUpBeat()&&(s=n=Math.max(0,this.getMeasureTicks()-this.getConsumedTicks()));let a=this.getTimeSignature();r.forEach(c=>{for(i.push(c),n+=c.rhythmProps.ticks,s===0&&n===a.beamGroupLength&&xs.setupBeamGroup(i);n>=a.beamGroupLength;)i=[],s=n=n-a.beamGroupLength})}}}),this.needBeamsUpdate=!1,this.requestLayout())}static setupBeamGroup(e){let r=e.map(s=>{var n;return s instanceof Nt&&((n=s.getBeamGroup())==null?void 0:n.isTriplet())!==!0?s:void 0});Nt.setBeamCounts(r);let i=[];r.forEach(s=>{s&&s.hasBeamCount()?i.push(s):(li.createBeam(i),i=[])}),li.createBeam(i)}getBarLineLeft(){return this.barLineLeft}getBarLineRight(){return this.barLineRight}getVoiceSymbols(e){return Bc(e),this.voiceSymbols[e]===void 0&&(this.voiceSymbols[e]=[]),this.voiceSymbols[e]}completeRests(e){if(e===void 0){this.getConsumedTicks()===0?this.completeRests(0):ke().forEach(c=>{this.getConsumedTicks(c)>0&&this.completeRests(c)});return}let r=this.getMeasureTicks(),i=this.getConsumedTicks(e),s=r-i,n=[],a=T.Enum.getEnumValues(Bt);for(;s>0;)a.forEach(c=>{let u=new $t(c,!1);if(u.canDot()){let l=new $t(c,!0);for(;l.ticks<=s;)n.push(l),s-=l.ticks}for(;u.ticks<=s;)n.push(u),s-=u.ticks});n.reverse().forEach(c=>this.addRest(e,c.noteLength,{dotted:c.dotted}))}getLowestDiatonicId(e){return Math.min(e,...this.columns.map(r=>r.getLowestDiatonicId(e)))}requestLayout(){this.needLayout||(this.needLayout=!0,this.row.requestLayout())}layout(e){var g;if(!this.needLayout)return;let{unitSize:r}=e;this.postMeasureBreakWidth=this.hasPostMeasureBreak()?at.PostMeasureBreakWidth*r:0;let i=this===this.row.getFirstMeasure(),s=((g=this.getPrevMeasure())==null?void 0:g.hasPostMeasureBreak())===!0,n=i||s,a=i&&!this.row.isFirstRow(),c=i||s||!!this.alterKeySignature,u=!!this.alterTimeSignature,l=!!this.alterTempo;n||a||c||u||l?this.signatures=this.row.getStaves().map((y,I)=>{var N;let v=(N=this.signatures[I])!=null?N:new Mn(this,y);return v.updateClefImage(e,n),v.updateMeasureNumber(a&&I===0),v.updateKeySignature(c),v.updateTimeSignature(u),v.updateTempo(l&&I===0),v.layout(e),v}):this.signatures=[],this.barLineLeft.layout(e);let h=new On(this);this.columns.forEach(y=>y.layout(e,h)),this.barLineRight.layout(e),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.layout(e);let p=Math.min(...this.signatures.map(y=>y.getRect().top),this.barLineLeft.getRect().top,...this.columns.map(y=>y.getRect().top),this.barLineRight.getRect().top),m=Math.max(...this.signatures.map(y=>y.getRect().bottom),this.barLineLeft.getRect().bottom,...this.columns.map(y=>y.getRect().bottom),this.barLineRight.getRect().bottom),x=this.row.getTab();x&&(p=Math.min(p,x.top),m=Math.max(m,x.bottom)),this.rect=new L(0,0,0,p,0,m);let f=e.unitSize;this.leftSolidAreaWidth=Math.max(0,...this.signatures.map(y=>y.getRect().width))+this.barLineLeft.getRect().width+f,this.rightSolidAreaWidth=f+this.barLineRight.getRect().width,this.minColumnsAreaWidth=0,this.columns.forEach(y=>this.minColumnsAreaWidth+=y.getRect().width),this.minColumnsAreaWidth=Math.max(this.minColumnsAreaWidth,xs.MinFlexContentWidth*r)}layoutWidth(e,r){if(!this.needLayout)return;r=Math.max(r,this.getMinWidth()),this.rect=new L(this.rect.left,this.rect.left+r/2,this.rect.left+r,this.rect.top,this.rect.centerY,this.rect.bottom);let i;this.signatures.forEach(p=>{i=p.getRect(),p.offset(this.rect.left-i.left,-i.centerY)});let s=Math.max(0,...this.signatures.map(p=>p.getRect().width));i=this.barLineLeft.getRect(),this.barLineLeft.offset(this.rect.left+s-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 n=this.rect.left+this.leftSolidAreaWidth,c=this.rect.right-this.rightSolidAreaWidth-n,u=T.Math.sum(this.columns.map(p=>p.getRect().width)),l=c/u,h=n;this.columns.forEach(p=>{i=p.getRect();let m=h+i.leftw*l;p.offset(m-i.centerX,-i.centerY),h+=i.width*l})}layoutArcs(e){this.needLayout&&this.arcs.forEach(r=>{r.layout(e);let i=r.getRect();this.rect=new L(this.rect.left,this.rect.right,Math.min(this.rect.top,i.top),Math.max(this.rect.bottom,i.bottom))})}layoutBeams(e){this.needLayout&&this.beamGroups.forEach(r=>{r.layout(e),this.rect.expandInPlace(r.getRect())})}layoutDone(){this.columns.forEach(e=>e.layoutDone()),this.needLayout=!1}offset(e,r){this.signatures.forEach(i=>i.offset(e,r)),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.arcs.forEach(i=>i.offset(e,r)),this.beamGroups.forEach(i=>i.offset(e,r)),this.layoutObjects.forEach(i=>i.musicObj.offset(e,r)),this.rect.offsetInPlace(e,r)}draw(e){e.drawDebugRect(this.rect);let r=this.getStaffLineLeft(),i=this.getStaffLineRight(),s=c=>e.drawLine(r,c,i,c),{row:n}=this;n.getStaves().forEach(c=>{for(let u=c.bottomLineDiatonicId;u<=c.topLineDiatonicId;u+=2)s(c.getDiatonicIdY(u))});let a=n.getTab();if(a)for(let c=0;c<6;c++)s(a.getStringY(c));this.signatures.forEach(c=>c.draw(e)),this.barLineLeft.draw(e),this.columns.forEach(c=>c.draw(e)),this.barLineRight.draw(e),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.draw(e),this.arcs.forEach(c=>c.draw(e)),this.layoutObjects.forEach(c=>c.musicObj.draw(e)),this.beamGroups.forEach(c=>c.draw(e))}};d(xs,"MinFlexContentWidth",10);var mo=xs;var Oy=[1,6],Ey=[2,3,4,5,6];function My(o){for(;o;){if(o instanceof mo)return o;o=o.getParent()}throw new E(6,"Parent measure is required but not found!")}var jn=class{constructor(t,e,r){this.musicObj=t;this.layoutGroupId=e;this.verticalPos=r;d(this,"anchor");d(this,"measure");d(this,"row");d(this,"layoutGroup");d(this,"positionResolved",!0);this.measure=My(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:s}=r,n=s.hasStaff?s.getTopStaff().topLineY:s.getRect().centerY,a=s.hasStaff?s.getBottomStaff().bottomLineY:s.getRect().centerY,c=t.unitSize*2,u=i===1?a+c+e.getRect().toph:n-c-e.getRect().bottomh,l=r.getStaticObjects(),h=e.getShapeRects();return l.forEach(p=>{let m=p.getShapeRects();h.forEach(x=>{m.forEach(f=>{L.overlapX(x,f)&&(u=i===1?Math.max(u,f.bottom+x.toph+x.centerY):Math.min(u,f.top-x.bottomh-x.centerY))})})}),u}getTextContent(){if(this.musicObj instanceof ut||this.musicObj instanceof Qe)return this.musicObj.getText()}},Fn=class{constructor(t){this.layoutGroupId=t;d(this,"layoutObjectTable",[]);d(this,"rowAlign");d(this,"widensColumn");this.layoutObjectTable[0]=[],this.layoutObjectTable[1]=[],this.rowAlign=Ey.indexOf(t)>=0,this.widensColumn=Oy.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 zt=o=>F.getNote(o).diatonicId,Ry=()=>new Fr(0,zt("G4"),zt("B4"),zt("C3"),zt("C7")),Yd=()=>new Fr(0,zt("G3"),zt("B3"),zt("C2"),zt("C6")),Dy=()=>new Fr(1,zt("F3"),zt("D3"),zt("C1"),zt("C5")),ky=()=>new Fr(0,zt("G4"),zt("B4"),zt("C4"),zt("C7")),Py=()=>new Fr(1,zt("F3"),zt("D3"),zt("C1"),zt("C4")-1),As=class extends st{constructor(e){super(e);this.doc=e;d(this,"staffPreset");d(this,"prevRow");d(this,"nextRow");d(this,"minWidth",0);d(this,"staves",[]);d(this,"tab");d(this,"measures",[]);d(this,"needLayout",!0);d(this,"mi");switch(this.staffPreset=e.staffPreset,this.staffPreset){case 1:this.staves[0]=Ry();break;case 2:this.staves[0]=Dy();break;case 3:this.staves[0]=ky(),this.staves[1]=Py();break;case 4:this.staves[0]=Yd();break;case 8:this.tab=new Xo;break;case 12:this.staves[0]=Yd(),this.tab=new Xo;break;default:throw new E(6,"Invalid staffPreset: "+this.staffPreset)}this.prevRow=e.getLastRow(),this.prevRow&&(this.prevRow.nextRow=this),this.mi=new bs(this)}getMusicInterface(){return this.mi}get hasStaff(){return this.staves[0]!==void 0}get hasTab(){return this.tab!==void 0}getTab(){return this.tab}getStaves(){return this.staves}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){F.validateDiatonicId(e);for(let r=0;r<this.staves.length;r++){let i=this.staves[r];if(i.containsDiatonicId(e))return i}}getLowestDiatonicId(){if(this.hasStaff){if(this.doc.fullDiatonicRange)return this.getBottomStaff().minDiatonicId;{let e=this.getBottomStaff().bottomLineDiatonicId;return Math.min(e,...this.measures.map(r=>r.getLowestDiatonicId(e)))}}else return}pick(e,r){if(!this.rect.contains(e,r))return[];for(let i=0;i<this.measures.length;i++){let s=this.measures[i].pick(e,r);if(s.length>0)return[this,...s]}return[this]}getArcsContentRect(){let e=this.rect,r=this.getFirstMeasure(),i=r?r.getColumnsContentRect().left:e.left;return new L(i,(i+e.right)/2,e.right,e.top,e.centerY,e.bottom)}getDiatonicIdAt(e){for(let r=0;r<this.staves.length;r++){let i=this.staves[r].getDiatonicIdAt(e);if(i!==void 0)return i}}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){var n;if(!this.needLayout)return;let{unitSize:r}=e;this.rect=new L;let i=r*2;this.staves.forEach(a=>{a.topLineY=-i*2,a.bottomLineY=i*2}),this.staves.length===2&&(this.staves[0].topLineY-=i*4,this.staves[0].bottomLineY-=i*4,this.staves[1].topLineY+=i*4,this.staves[1].bottomLineY+=i*4);let s=new L;if(this.staves.forEach(a=>s.expandInPlace(new L(0,0,a.topLineY,a.bottomLineY))),this.hasStaff&&this.doc.fullDiatonicRange&&this.staves.forEach(a=>{let c=a.getDiatonicIdY(a.maxDiatonicId)-a.getLineSpacing(),u=a.getDiatonicIdY(a.minDiatonicId)+a.getLineSpacing();s.expandInPlace(new L(0,0,c,u))}),this.tab){let a=this.getLowestDiatonicId(),c=a!==void 0?(n=this.getStaff(a))==null?void 0:n.getDiatonicIdY(a):void 0;this.tab.top=c!==void 0?c+r*8:0,this.tab.bottom=this.tab.top+r*at.GuitarTabHeight,s.expandInPlace(new L(0,0,this.tab.top,this.tab.bottom))}this.minWidth=0,this.measures.forEach(a=>{a.layout(e),s.expandInPlace(new L(0,0,a.getRect().top,a.getRect().bottom)),this.minWidth+=a.getMinWidth(),this.minWidth+=a.getPostMeasureBreakWidth()}),this.rect=s}layoutWidth(e,r){if(!this.needLayout)return;let i=Math.max(r,this.minWidth);this.rect=new L(this.rect.left,this.rect.left+i/2,this.rect.left+i,this.rect.top,this.rect.centerY,this.rect.bottom);let s=i,n=0;this.measures.forEach(u=>{s-=u.getSolidAreaWidth()+u.getPostMeasureBreakWidth(),n+=u.getMinColumnsAreaWidth()});let a=s/n,c=0;this.measures.forEach(u=>{let l=u.getSolidAreaWidth()+u.getMinColumnsAreaWidth()*a;u.layoutWidth(e,l);let h=u.getRect();u.offset(c-h.left,-h.centerY),c+=h.width,c+=u.getPostMeasureBreakWidth()})}layoutArcsAndBeams(e){this.needLayout&&(this.measures.forEach(r=>{r.layoutArcs(e),this.rect.expandInPlace(r.getRect())}),this.measures.forEach(r=>{r.layoutBeams(e),this.rect.expandInPlace(r.getRect())}))}setObjectY(e,r){if(r===void 0)return;let{measure:i,musicObj:s}=e;s.offset(0,r-s.getRect().centerY),e.setPositionResolved(),i.getRect().expandInPlace(s.getRect()),this.rect.expandInPlace(i.getRect())}alignObjectsY(e,r){r=r.filter(s=>!s.isPositionResolved());let i;r.forEach(s=>{let n=s.resolveClosestToStaffY(e);i=s.verticalPos===1?Math.max(n,i!=null?i:n):Math.min(n,i!=null?i:n)}),r.forEach(s=>this.setObjectY(s,i))}layoutLayoutGroup(e,r,i){let s=r.getLayoutObjects(i).filter(n=>n.row===this&&!n.isPositionResolved());s.forEach(n=>{let{musicObj:a,anchor:c}=n;a instanceof di||a instanceof po?a.layoutFitToMeasure(e):a.offset(c.getRect().centerX-a.getRect().centerX,0)}),r.rowAlign?this.alignObjectsY(e,s):s.forEach(n=>{let a=n.musicObj.getLink();if(a&&a.getHead()===n.musicObj){let c=[a.getHead(),...a.getTails()],u=s.filter(l=>c.some(h=>h===l.musicObj));this.alignObjectsY(e,u)}else this.alignObjectsY(e,[n])})}layoutPadding(e){let r=this.rect,i=e.unitSize/2;this.rect=new L(r.left-i,r.centerX,r.right+i,r.top-i,r.centerY,r.bottom+i)}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.staves.forEach(i=>i.offset(e,r)),this.tab&&this.tab.offset(e,r)}draw(e){let r=e.getCanvasContext();if(r){if(e.drawDebugRect(this.rect),r.save(),r.rect(this.rect.left,this.rect.top,this.rect.width,this.rect.height),r.clip(),this.getFirstMeasure()&&(this.staves.length>1||this.tab)){let i=this.getFirstMeasure().getStaffLineLeft(),s,n;this.hasStaff?(s=this.getTopStaff().topLineY,n=this.tab?this.tab.getStringY(5):this.getBottomStaff().bottomLineY):this.tab?(s=this.tab.getStringY(0),n=this.tab.getStringY(5)):s=n=0,e.drawLine(i,s,i,n)}this.measures.forEach(i=>i.draw(e)),r.restore()}}};var Bn=class extends st{constructor(e,r,i,s){var n;super(e);this.title=r;this.composer=i;this.arranger=s;d(this,"titleText");d(this,"composerText");d(this,"arrangerText");d(this,"tuningText");d(this,"mi");this.mi=new _s(this),this.titleText=this.title?new ut(this,{text:this.title,scale:2},.5,0):void 0,this.composerText=this.composer?new ut(this,this.composer,1,0):void 0,this.arrangerText=this.arranger?new ut(this,"Arr.: "+this.arranger,1,0):void 0,this.tuningText=((n=e.getFirstRow())==null?void 0:n.hasTab)===!0?new ut(this,e.tuningName+` tuning:
211
- `+e.tuningLabel,0,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]}if(this.tuningText){let i=this.tuningText.pick(e,r);if(i)return[this,...i]}return[this]}layoutWidth(e,r){let i=0,s=0;this.rect=new L(0,r,0,0),this.titleText&&(this.titleText.layout(e),this.titleText.offset(r/2,i),i+=this.titleText.getRect().height,s=i,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())),this.tuningText&&(this.tuningText.layout(e),this.tuningText.offset(0,s),this.rect.expandInPlace(this.tuningText.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.tuningText&&this.tuningText.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),this.tuningText&&this.tuningText.draw(e)}};var Vn=class extends st{constructor(e,r,i){var s;super(void 0);this.mi=e;this.staffPreset=r;this.options=i;d(this,"needLayout",!0);d(this,"needUpdate",!0);d(this,"renderer");d(this,"rows",[]);d(this,"measures",[]);d(this,"measuresPerRow");d(this,"tuningName");d(this,"tuningStrings");d(this,"tuningLabel");d(this,"fullDiatonicRange");d(this,"header");d(this,"layoutGroups",[]);d(this,"newRowRequested",!1);d(this,"allArcsProps",[]);this.measuresPerRow=i==null?void 0:i.measuresPerRow,this.tuningName=va((s=i==null?void 0:i.tuning)!=null?s:Ca),this.tuningStrings=Ia(this.tuningName),this.tuningLabel=this.tuningStrings.slice().reverse().map(n=>n.formatOmitOctave(0)).join("-"),this.fullDiatonicRange=(i==null?void 0:i.fullDiatonicRange)===!0,this.rows.push(new As(this))}getMusicInterface(){return this.mi}addArcProps(e){this.allArcsProps.push(e)}getLayoutGroup(e){let r=this.layoutGroups[e];return r||(r=this.layoutGroups[e]=new Fn(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 Bn(this,e,r,i),this.requestLayout()}getTitle(){var e;return(e=this.header)==null?void 0:e.title}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}getFirstRow(){return this.rows[0]}getLastRow(){return this.rows[this.rows.length-1]}isLastRowEmpty(){let e=this.getLastRow();return e===void 0||e.getMeasures().length===0}isLastRowFull(){let e=this.getLastRow();return this.measuresPerRow!==void 0&&e!==void 0&&e.getMeasures().length>=this.measuresPerRow}requestNewRow(){this.newRowRequested=!0}addMeasure(){(this.isLastRowFull()||this.newRowRequested)&&!this.isLastRowEmpty()&&(this.rows.push(new As(this)),this.newRowRequested=!1);let e=this.getLastRow();if(!e)throw new E(6,"Cannot add measure because last row is undefined.");let r=new mo(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))}update(){this.needUpdate&&(this.forEachMeasure(e=>e.updateBeams()),this.forEachMeasure(e=>e.updateExtensions()),this.allArcsProps.forEach(e=>e.removeArcs()),this.allArcsProps.forEach(e=>e.createArcs()),this.needUpdate=!1)}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,this.needUpdate=!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;this.update();let{renderer:e}=this;if(!e)return;let{unitSize:r}=e,i=this.layoutGroups.filter(n=>!!n);i.forEach(n=>n.clearPositionAndLayout(e)),this.rows.forEach(n=>n.layout(e));let s=Math.max(at.DocumentMinWidth*r,...this.rows.map(n=>1.4*n.getMinWidth()));this.rows.forEach(n=>n.layoutWidth(e,s)),this.rows.forEach(n=>n.layoutArcsAndBeams(e)),i.forEach(n=>{this.rows.forEach(a=>{a.layoutLayoutGroup(e,n,0),a.layoutLayoutGroup(e,n,1)})}),this.rows.forEach(n=>n.layoutPadding(e)),this.rect=new L,this.header&&(this.header.layoutWidth(e,s),this.rect.expandInPlace(this.header.getRect())),this.rows.forEach(n=>{n.offset(-this.rect.left,this.rect.bottom+r*2-n.getRect().top),this.rect.expandInPlace(n.getRect())}),this.rows.forEach(n=>n.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 s=this.rows[i];if(!s.hasStaff||!s.getRect().contains(e,r))continue;let n=s.getDiatonicIdAt(r);if(n!==void 0)return{scoreRow:s,diatonicId:n}}}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 s=this.rows[i].pick(e,r);if(s.length>0)return[this,...s]}return[this]}};function V(o,t,e){if(!o)throw new E(6,`Invalid arg: ${t} = ${e}`)}function Cs(o,t){if(o==null)throw new TypeError(t);return o}function vs(o){return Gt(o)&&ke().indexOf(o)>=0}function Hd(o){return Gt(o)&&Lc().indexOf(o)>=0}function Qd(o){V(T.Is.isObject(o),"noteOptions",o),V(T.Is.isBooleanOrUndefined(o.dotted),"noteOptions.dotted",o.dotted),V(T.Is.isEnumValueOrUndefined(o.stem,De),"noteOptions.stem",o.stem),V(T.Is.isStringOrUndefined(o.color),"noteOptions.color",o.color),V(T.Is.isBooleanOrUndefined(o.arpeggio)||T.Is.isEnumValue(o.arpeggio,Br),"noteOptions.arpeggio",o.arpeggio),V(T.Is.isBooleanOrUndefined(o.staccato),"noteOptions.staccato",o.staccato),V(T.Is.isBooleanOrUndefined(o.diamond),"noteOptions.diamond",o.diamond),V(T.Is.isEnumValueOrUndefined(o.tieSpan,Vr)||T.Is.isIntegerGte(o.tieSpan,1),"noteOptions.tieSpan",o.tieSpan),V(T.Is.isEnumValueOrUndefined(o.tieAnchor,Gr),"noteOptions.tieAnchor",o.tieAnchor),V(T.Is.isUndefined(o.slurSpan)||T.Is.isIntegerGte(o.slurSpan,1),"noteOptions.slurSpan",o.slurSpan),V(T.Is.isEnumValueOrUndefined(o.slurAnchor,Gr),"noteOptions.slurAnchor",o.slurAnchor),V(T.Is.isBooleanOrUndefined(o.triplet),"noteOptions.triplet",o.triplet),V(T.Is.isUndefined(o.string)||Hd(o.string)||T.Is.isArray(o.string)&&o.string.length>0&&o.string.every(t=>Hd(t)),"noteOptions.string",o.string)}function Ly(o){V(T.Is.isObject(o),"restOptions",o),V(T.Is.isBooleanOrUndefined(o.dotted),"restOptions.dotted",o.dotted),V(T.Is.isStringOrUndefined(o.staffPos)||T.Is.isInteger(o.staffPos)||o.staffPos instanceof F,"restOptions.staffPos",o.staffPos),V(T.Is.isStringOrUndefined(o.color),"restOptions.color",o.color),V(T.Is.isBooleanOrUndefined(o.hide),"restOptions.hide",o.hide),V(T.Is.isBooleanOrUndefined(o.triplet),"restOptions.triplet",o.triplet)}var Ot=class{constructor(t){this.name=t}getParent(){var t;return(t=this.getMusicObject().getParent())==null?void 0:t.getMusicInterface()}},Gn=class Gn extends Ot{constructor(e){super(Gn.Name);this.obj=e}getMusicObject(){return this.obj}getAccidental(){return this.obj.accidental}};d(Gn,"Name","Accidental");var Ko=Gn,qn=class qn extends Ot{constructor(e){super(qn.Name);this.obj=e}getMusicObject(){return this.obj}};d(qn,"Name","Arc");var os=qn,Wn=class Wn extends Ot{constructor(e){super(Wn.Name);this.obj=e}getMusicObject(){return this.obj}};d(Wn,"Name","Arpeggio");var rs=Wn,Un=class Un extends Ot{constructor(e){super(Un.Name);this.obj=e}getMusicObject(){return this.obj}};d(Un,"Name","BeamGroup");var as=Un,Is=class Is extends Ot{constructor(e,r){super(Is.Name);d(this,"obj");V(T.Is.isEnumValue(e,ar),"staffPreset",e),r!==void 0&&(V(T.Is.isObject(r),"documentOptions",r),V(T.Is.isUndefined(r.measuresPerRow)||T.Is.isIntegerGte(r.measuresPerRow,1),"documentOptions.measuresPerRow",r.measuresPerRow),V(T.Is.isStringOrUndefined(r.tuning),"documentOptions.tuning",r.tuning),V(T.Is.isBooleanOrUndefined(r.fullDiatonicRange),"documentOptions.fullDiatonicRange",r.fullDiatonicRange)),this.obj=new Vn(this,e,r)}getMusicObject(){return this.obj}setHeader(e,r,i){V(T.Is.isStringOrUndefined(e),"title",e),V(T.Is.isStringOrUndefined(r),"composer",r),V(T.Is.isStringOrUndefined(i),"arranger",i),this.obj.setHeader(e,r,i)}getTitle(){return this.obj.getTitle()}addMeasure(){return this.obj.addMeasure().mi}play(e){return V(T.Is.isFunctionOrUndefined(e),"playStateChangeListener",e),new Ss(this,e).play()}static createSimpleScaleArpeggio(e,r,i,s){V(T.Is.isEnumValue(e,ar),"staffPreset",e),V(r instanceof lr,"scale",r),V(T.Is.isString(i),"bottomNote",i),V(T.Is.isIntegerGte(s,1),"numOctaves",s);let n=new Is(e),a=n.addMeasure().setKeySignature(r);return r.getScaleNotes(i,s).forEach(c=>{let u=c.formatOmitOctave(1);a.addNote(0,c,48),a.addLabel(0,u)}),n}};d(Is,"Name","Document");var Pe=Is,zn=class zn extends Ot{constructor(e){super(zn.Name);this.obj=e}getMusicObject(){return this.obj}getPassages(){return this.obj.passages}hasPassage(e){return V(T.Is.isIntegerGte(e,1),"passage",e),this.obj.hasPassage(e)}};d(zn,"Name","Ending");var ms=zn,Yn=class Yn extends Ot{constructor(e){super(Yn.Name);this.obj=e}getMusicObject(){return this.obj}};d(Yn,"Name","Fermata");var fs=Yn,Hn=class Hn extends Ot{constructor(e){super(Hn.Name);this.obj=e}getMusicObject(){return this.obj}getTitle(){return this.obj.title}getComposer(){return this.obj.composer}getArranger(){return this.obj.arranger}};d(Hn,"Name","Header");var _s=Hn,Qn=class Qn extends Ot{constructor(e){super(Qn.Name);this.obj=e}getMusicObject(){return this.obj}};d(Qn,"Name","Image");var Jo=Qn,Zn=class Zn extends Ot{constructor(e){super(Zn.Name);this.obj=e}getMusicObject(){return this.obj}getMeasureNumber(){return this.obj.getMeasureNumber()}getRhythmColumns(){return this.obj.getColumns().map(e=>e.getMusicInterface())}setKeySignature(...e){return V(e[0]instanceof lr||e[0]instanceof Le||T.Is.isString(e[0])&&T.Is.isEnumValue(e[1],Xe),"keySignature",e),this.obj.setKeySignature(...e),this}setTimeSignature(e){return V(e instanceof pr||T.Is.isString(e),"timeSignature",e),this.obj.setTimeSignature(e),this}setTempo(e,r,i){return V(T.Is.isIntegerGte(e,1),"beatsPerMinute",e),r===void 0?V(T.Is.isUndefined(i),"dotted",i):(V(T.Is.isEnumValue(r,Bt),"beatLength",r),V(T.Is.isBooleanOrUndefined(i),"dotted",i)),this.obj.setTempo(e,r,i),this}addNote(e,r,i,s){return V(vs(e),"voiceId",e),V(r instanceof F||T.Is.isString(r),"note",r),V(T.Is.isEnumValue(i,Bt),"noteLength",i),s!==void 0&&Qd(s),this.obj.addNoteGroup(e,[r],i,s),this}addChord(e,r,i,s){return V(vs(e),"voiceId",e),V(T.Is.isArray(r)&&r.length>=1&&r.every(n=>n instanceof F||T.Is.isString(n)),"notes",r),V(T.Is.isEnumValue(i,Bt),"noteLength",i),s!==void 0&&Qd(s),this.obj.addNoteGroup(e,r,i,s),this}addRest(e,r,i){return V(vs(e),"voiceId",e),V(T.Is.isEnumValue(r,Bt),"restLength",r),i!==void 0&&Ly(i),this.obj.addRest(e,r,i),this}addFermata(e){return V(T.Is.isEnumValueOrUndefined(e,ss),"fermata",e),this.obj.addFermata(e!=null?e:0),this}addNavigation(e,...r){return V(T.Is.isEnumValue(e,_e),"navigation",e),e===9&&r.length>0?V(T.Is.isIntegerGte(r[0],1),"playCount",r[0]):e===10&&r.length>0&&V(r.every(i=>T.Is.isIntegerGte(i,1)),"passages",r),this.obj.addNavigation(e,...r),this}addLabel(e,r){return V(T.Is.isEnumValue(e,co),"label",e),V(T.Is.isString(r),"text",r),this.obj.addLabel(e,r),this}addAnnotation(e,r){return V(T.Is.isEnumValue(e,ui),"annotation",e),V(T.Is.isString(r),"text",r),this.obj.addAnnotation(e,r),this}addExtension(e,r){return V(T.Is.isIntegerGte(e,0)||e===1/0||T.Is.isEnumValue(e,Bt),"extendionLength",e),V(T.Is.isBooleanOrUndefined(r),"extensionVisible",r),this.obj.addExtension(e,r!=null?r:!0),this}endSong(){return this.obj.endSong(),this}endSection(){return this.obj.endSection(),this}endRow(){return this.obj.endRow(),this}completeRests(e){return V(T.Is.isUndefined(e)||vs(e),"voiceId",e),this.obj.completeRests(e),this}};d(Zn,"Name","Measure");var ys=Zn,Xn=class Xn extends Ot{constructor(e){super(Xn.Name);this.obj=e}getMusicObject(){return this.obj}};d(Xn,"Name","BarLineRight");var ps=Xn,Jn=class Jn extends Ot{constructor(e){super(Jn.Name);this.obj=e}getMusicObject(){return this.obj}};d(Jn,"Name","BarLineLeft");var ds=Jn,Kn=class Kn extends Ot{constructor(e){super(Kn.Name);this.obj=e}getMusicObject(){return this.obj}getNotes(){return this.obj.notes}getRhythmProps(){return this.obj.rhythmProps}};d(Kn,"Name","NoteGroup");var cs=Kn,$n=class $n extends Ot{constructor(e){super($n.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmProps(){return this.obj.rhythmProps}};d($n,"Name","Rest");var is=$n,ta=class ta extends Ot{constructor(e){super(ta.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmSymbol(e){var r;return V(vs(e),"voiceId",e),(r=this.obj.getVoiceSymbol(e))==null?void 0:r.getMusicInterface()}};d(ta,"Name","RhythmColumn");var us=ta,ea=class ea extends Ot{constructor(e){super(ea.Name);this.obj=e}getMusicObject(){return this.obj}getMeasures(){return this.obj.getMeasures().map(e=>e.getMusicInterface())}};d(ea,"Name","ScoreRow");var bs=ea,ra=class ra extends Ot{constructor(e){super(ra.Name);this.obj=e}getMusicObject(){return this.obj}};d(ra,"Name","Signature");var ts=ra,ia=class ia extends Ot{constructor(e){super(ia.Name);this.obj=e}getMusicObject(){return this.obj}};d(ia,"Name","SpecialText");var ls=ia,oa=class oa extends Ot{constructor(e){super(oa.Name);this.obj=e}getMusicObject(){return this.obj}getText(){return this.obj.getText()}};d(oa,"Name","Text");var $o=oa,sa=class sa extends Ot{constructor(e){super(sa.Name);this.obj=e}getMusicObject(){return this.obj}};d(sa,"Name","ExtensionLine");var gs=sa,ws=class ws{constructor(t,e){d(this,"player");V(t instanceof Pe,"doc",t),V(T.Is.isFunctionOrUndefined(e),"playStateChangeListener",e),this.player=new Pn,this.player.setDocument(t.obj),this.player.setCursorPositionChangeListener(r=>t.obj.updateCursorRect(r)),e&&this.player.setPlayStateChnageListener(e)}static stopAll(){this.currentlyPlaying.forEach(t=>t.stop()),Dc()}play(){return ws.currentlyPlaying.add(this),this.player.play(),this}pause(){return this.player.pause(),this}stop(){return this.player.stop(),ws.currentlyPlaying.delete(this),this}};d(ws,"currentlyPlaying",new Set);var Ss=ws,Uc=class{constructor(){d(this,"renderer");this.renderer=new Nn(this)}setDocument(t){return V(T.Is.isUndefined(t)||t instanceof Pe,"doc",t),this.renderer.setDocument(t),this}setCanvas(t){return t=Cs(T.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){V(T.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)}}},ue=class ue{constructor(){d(this,"playButton");d(this,"stopButton");d(this,"playStopButton");d(this,"pauseButton");d(this,"onPlay");d(this,"onStop");d(this,"onPlayStop");d(this,"onPause");d(this,"playLabel","Play");d(this,"stopLabel","Stop");d(this,"pauseLabel","Pause");d(this,"playState",2);d(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 V(T.Is.isUndefined(t)||t instanceof Pe,"doc",t),this.onStop(),t?this.player=new Ss(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 V(T.Is.isStringOrUndefined(e),"btnLabel",e),ue.removeOnClickListeners(this.playButton,this.onPlay),this.playButton=Cs(T.Dom.getButton(t),"Play button required!"),this.playLabel=e!=null?e:"Play",ue.removeOnClickListeners(this.playButton,"all"),ue.addOnClickListener(this.playButton,this.onPlay),this.updateButtons(),this}setStopButton(t,e){return V(T.Is.isStringOrUndefined(e),"btnLabel",e),ue.removeOnClickListeners(this.stopButton,this.onStop),this.stopButton=Cs(T.Dom.getButton(t),"Stop button required!"),this.stopLabel=e!=null?e:"Stop",ue.removeOnClickListeners(this.stopButton,"all"),ue.addOnClickListener(this.stopButton,this.onStop),this.updateButtons(),this}setPlayStopButton(t,e,r){return V(T.Is.isStringOrUndefined(e),"playLabel",e),V(T.Is.isStringOrUndefined(r),"stopLabel",r),ue.removeOnClickListeners(this.playStopButton,this.onPlayStop),this.playStopButton=Cs(T.Dom.getButton(t),"Play/stop button required!"),this.playLabel=e!=null?e:"Play",this.stopLabel=r!=null?r:"Stop",ue.removeOnClickListeners(this.playStopButton,"all"),ue.addOnClickListener(this.playStopButton,this.onPlayStop),this.updateButtons(),this}setPauseButton(t,e){return V(T.Is.isStringOrUndefined(e),"btnLabel",e),ue.removeOnClickListeners(this.pauseButton,this.onPause),this.pauseButton=Cs(T.Dom.getButton(t),"Pause button required!"),this.pauseLabel=e!=null?e:"Pause",ue.removeOnClickListeners(this.pauseButton,"all"),ue.addOnClickListener(this.pauseButton,this.onPause),this.updateButtons(),this}static removeOnClickListeners(t,e){if(t){let r=this.savedOnClickListeners.get(t)||[],i=[];r.forEach(s=>{e===s||e==="all"?t.removeEventListener("click",s):i.push(s)}),this.savedOnClickListeners.set(t,i)}}static addOnClickListener(t,e){V(T.Is.isFunction(e),"onClick",e),t.addEventListener("click",e);let r=this.savedOnClickListeners.get(t)||[];this.savedOnClickListeners.set(t,[...r,e])}};d(ue,"savedOnClickListeners",new Map);var zc=ue;var L=class o{constructor(...t){d(this,"left");d(this,"centerX");d(this,"right");d(this,"top");d(this,"centerY");d(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=T.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=T.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)}};Wr();var Hc={};xi(Hc,{createAndanteByDiabelli:()=>By,createFrereJacques:()=>jy,createGreensleeves:()=>Fy});function jy(){let o=new Pe(4);return o.setHeader("Frere Jacques"),o.addMeasure().setKeySignature("G","Major").setTimeSignature("4/4").addNote(0,"G3",48).addNote(0,"A3",48).addNote(0,"B3",48).addNote(0,"G3",48),o.addMeasure().addNote(0,"G3",48).addNote(0,"A3",48).addNote(0,"B3",48).addNote(0,"G3",48),o.addMeasure().addNote(0,"B3",48).addNote(0,"C4",48).addNote(0,"D4",96).endRow(),o.addMeasure().addNote(0,"B3",48).addNote(0,"C4",48).addNote(0,"D4",96),o.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(),o.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),o.addMeasure().addNote(0,"G3",48).addNote(0,"D3",48).addNote(0,"G3",96),o.addMeasure().addNote(0,"G3",48).addNote(0,"D3",48).addNote(0,"G3",96),o}function Fy(){let o=new Pe(4);return o.setHeader("Greensleeves"),o.addMeasure().setKeySignature("C","Major").setTimeSignature("6/8").setTempo(140).addNote(0,"A3",24),o.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),o.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),o.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),o.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(),o.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),o.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),o.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),o.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(),o.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),o.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),o.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),o.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(),o.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),o.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),o.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),o.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}),o.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}),o}function By(){let o=new Pe(4);return o.setHeader("Andante","A. Diabelli"),o.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,{slurSpan:2,slurAnchor:3}).addNote(0,"F#4",24).addNote(0,"E4",24).addNote(0,"D4",24).addNote(1,"D3",96,{dotted:!0,stem:2}),o.addMeasure().addNote(0,"C#4",24,{slurSpan:2,slurAnchor:3}).addNote(0,"D4",24).addNote(0,"E4",24).addNote(0,"F#4",24).addNote(0,"G4",48).addNote(1,"A2",96,{dotted:!0}),o.addMeasure().addRest(0,24,{staffPos:"B3"}).addAnnotation(0,"f").addNote(0,"A3",24).addNote(0,"G#3",24,{slurSpan:2,slurAnchor:3}).addNote(0,"A3",24).addNote(0,"B3",24).addNote(0,"C#4",24).addNote(1,"A2",96,{dotted:!0}).endRow(),o.addMeasure().addNote(0,"D4",24).addNote(0,"E4",24).addNote(0,"F#4",24).addNote(0,"G4",24).addNote(0,"A4",48).addNote(1,"D3",96,{dotted:!0}),o.addMeasure().addRest(0,24,{staffPos:"G4"}).addAnnotation(0,"p").addNote(0,"F#4",24).addNote(0,"G4",24,{slurSpan:2,slurAnchor:3}).addNote(0,"F#4",24).addNote(0,"E4",24).addNote(0,"D4",24).addNote(1,"D3",96,{dotted:!0}),o.addMeasure().addNote(0,"C#4",24,{slurSpan:2,slurAnchor: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(),o.addMeasure().addRest(0,24,{staffPos:"B3"}).addAnnotation(0,"f").addNote(0,"A3",24).addNote(0,"G#3",24,{slurSpan:2,slurAnchor:3}).addNote(0,"A3",24).addNote(0,"B3",24).addNote(0,"C#4",24).addNote(1,"A2",96,{dotted:!0}),o.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),o.addMeasure().addRest(0,24,{staffPos:"D4"}).addAnnotation(0,"f").addNote(0,"D4",24).addNote(0,"E4",24,{slurSpan:2,slurAnchor:3}).addNote(0,"D4",24).addNote(0,"C#4",24).addNote(0,"B3",24).addNote(1,"E2",96,{dotted:!0}).endRow(),o.addMeasure().addNote(0,"C#4",24,{slurSpan:2,slurAnchor:3}).addNote(0,"D4",24).addNote(0,"E4",24).addNote(0,"F#4",24).addNote(0,"E4",48).addNote(1,"A2",96,{dotted:!0}),o.addMeasure().addRest(0,24,{staffPos:"B3"}).addAnnotation(0,"p").addNote(0,"E3",24).addNote(0,"D#3",24,{slurSpan:2,slurAnchor:3}).addNote(0,"E3",24).addNote(0,"F#3",24).addNote(0,"G#3",24).addNote(1,"E2",96,{dotted:!0}),o.addMeasure().addNote(0,"A3",24,{slurSpan:2,slurAnchor: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(),o.addMeasure().addRest(0,24,{staffPos:"G4"}).addAnnotation(0,"f").addNote(0,"G4",24).addNote(0,"A4",24,{slurSpan:2,slurAnchor:3}).addNote(0,"G4",24).addNote(0,"F#4",24).addNote(0,"E4",24).addNote(1,"A2",96,{dotted:!0}),o.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}),o.addMeasure().addRest(0,24,{staffPos:"B3"}).addAnnotation(0,"ff").addNote(0,"A3",24).addNote(0,"G#3",24,{slurSpan:2,slurAnchor:3}).addNote(0,"A3",24).addNote(0,"B3",24).addNote(0,"C#4",24).addNote(1,"A2",96,{dotted:!0}),o.addMeasure().addNote(0,"D4",48).addRest(1,48,{staffPos:"D3"}).addNote(0,"D3",48).addNote(1,"D3",48).addRest(1,48,{staffPos:"B3"}).endSong(),o}return rm(Vy);})();
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);})();
212
211
  /*! Bundled license information:
213
212
 
214
213
  tone/build/esm/core/Tone.js: