const FLAT_KEY=["Db","Eb","Gb","Ab","Bb"],SHARP_KEY=["C#","D#","F#","G#","A#"];function ChangeRootLabel(a,b){document.querySelectorAll("input[type=radio][name="+b+"]").forEach(b=>{b.addEventListener("change",function(){let b=this.value,c=document.querySelectorAll("#"+a+" option");c.forEach(a=>{let c;c="Sharp"===b?FlatToSharp(a.getAttribute("value")):SharpToFlat(a.getAttribute("value")),a.setAttribute("value",c),a.textContent=c})})})}function getNearestNote(a){a=6parseInt(b)&&(b=a[c]);return b}function setSelected(a,b,c){if(b){let e=document.querySelectorAll("#"+a+" option");if(c){var d=!1;e.forEach(a=>{let c=a.getAttribute("value");c==b&&(a.setAttribute("selected","selected"),d=!0)}),d||e.forEach(a=>{let c=SharpToFlat(a.getAttribute("value"));a.setAttribute("value",c),a.textContent=c,c==b&&a.setAttribute("selected","selected")})}else e.forEach(a=>{a.getAttribute("value")==b&&a.setAttribute("selected","selected")})}}function DrawCircle(a,b,c,d){a.beginPath(),a.arc(c,d,3*b/8,0,2*Math.PI),a.fillStyle="black",a.fill(),a.stroke()}function DrawBlackBorderCirble(a,b,c,d){a.beginPath(),a.arc(c,d,2*b/5,0,2*Math.PI),a.stroke()}function DrawCross(a,b,c,d){var e=b/2;a.beginPath(),a.moveTo(c,d),a.lineWidth=1.5,a.lineTo(c+e,d+e),a.stroke(),a.beginPath(),a.moveTo(c,d+e),a.lineWidth=1.5,a.lineTo(c+e,d),a.stroke()}function TransposeUp_Half(a){var b=String.fromCharCode;return"b"===a[1]?a[0]:"E"===a[0]&&1==a.length?"F":"B"===a[0]&&1==a.length?"C":"#"===a[1]?"G"===a[0]?"A":b(a[0].charCodeAt(0)+1):a+"#"}function TransposeUp(a,b){for(var c=a,d=0;d=getFarthestNote(a)||"0"===getNearestNote(a))&&(j=!0),j)var k=2*g;else{var k=g;c.font="18px Calibri",c.fillText(getNearestNote(a)+" fr",6*h+15,h+18)}c.moveTo(h,h+2),c.lineWidth=k,c.lineTo(6*h+g,h+2),c.stroke();var l=0;for(c.lineWidth=g,l=h+1;l<7*h;l+=h)c.moveTo(l,5+h-2),c.lineTo(l,5*h+g+h),c.stroke();for(l=1;5>=l;l++)c.moveTo(h,h*l+g+h),c.lineTo(6*h+g,h*l+g+h),c.stroke();for(l=0;lc;c++)drawLine(a,b+60,40+c*b,40+23*b+19,40+c*b,2,"black");drawLine(a,b+60-2,39,b+60-2,6*b+8,4,"black");for(var d,c=1;22>=c;c++)d=b*c,drawLine(a,b+60-2+d,40,b+60-2+d,6*b+6,2,"black");drawScaleText(a,"E",b-10,b+12,"black","19","600"),drawScaleText(a,"B",b-10,2*b+12,"black","19","600"),drawScaleText(a,"G",b-10,3*b+12,"black","19","600"),drawScaleText(a,"D",b-10,4*b+12,"black","19","600"),drawScaleText(a,"A",b-10,5*b+12,"black","19","600"),drawScaleText(a,"E",b-10,6*b+12,"black","19","600"),drawScaleText(a,"E",b+30,b+12,"black","19","500"),drawScaleText(a,"B",b+30,2*b+12,"black","19","500"),drawScaleText(a,"G",b+30,3*b+12,"black","19","500"),drawScaleText(a,"D",b+30,4*b+12,"black","19","500"),drawScaleText(a,"A",b+30,5*b+12,"black","19","500"),drawScaleText(a,"E",b+30,6*b+12,"black","19","500"),drawScaleText(a,"Ng\u0103n",10,14,"black","18","500");for(var c=0;22>=c;c++)drawScaleText(a,c,(c+2)*b,14,"black","18","500")}function drawArpeggio(a,b,d,e,f){var g=document.getElementById(f),c=g.getContext("2d");drawSacle_Frame(c,33),b=b.split("."),d=d.split(".");var h=["C#","D#","F#","G#","A#"],k=["Db","Eb","Gb","Ab","Bb"];if(e)for(var l=0;ll;l++){if(b.includes(m[l])&&(drawScaleCircle(c,66/5,70,6+33*(l+1),"#6a5acd"),"none"!==a)){var n=d[b.indexOf(m[l])];drawScaleText(c,n,67-2*n.length,6+33*(l+1)+5,"white",(20-n.length).toString(),"500")}m[l]=TransposeUp_Half(m[l])}for(var l=0;6>l;l++)for(var o=1;22>=o;o++){if(e&&h.includes(m[l])&&(m[l]=k[h.indexOf(m[l])]),b.includes(m[l])&&(drawScaleCircle(c,66/5,33*(o+2)+9,6+33*(l+1),"#6a5acd"),"none"!==a)){var n=d[b.indexOf(m[l])];drawScaleText(c,n,33*(o+2)+4-2*n.length,6+33*(l+1)+5,"white",(20-n.length).toString(),"500")}m[l]=TransposeUp_Half(m[l])}}function drawScale(a,b,c,d,e,f){b=b.split(".");for(var g=0;g