/*! abcjs_plugin v6.3.0 Copyright © 2009-2023 Paul Rosen and Gregory Dyke (https://abcjs.net) */ /*! For license information please see abcjs_plugin.LICENSE */ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.abcjs=t():e.ABCJS=t()}(this,(function(){return e={7001:function(e,t,r){"use strict";var i=r(1592).TuneBook,a=r(8905),n=r(5253),s=new function(){var e=!1;try{e=abcjs_is_user_script}catch(e){}this.show_midi=!e,this.hide_abc=!1,this.render_before=!1,this.midi_options={},this.render_options={},this.render_classname="abcrendered",this.text_classname="abctext",this.auto_render_threshold=20,this.show_text="show score for: ",this.debug=!1};s.start=function(){var e=window.document.body;this.errors="";var t=this.getABCContainingElements(e);if(0!==t.length){if(this.debug)for(var r=0;r0)for(var a=r.length,n=0;n1&&r&&r.length>0)for(a=r.length,n=0;n=0&&h0,v=0;v=0&&(u=C.startChar,f=void 0===C.chord?h:null),C.chord&&(h=C),"bar"===C.el_type){if(p){var S={abc:n.abc.substring(u,C.endChar)};(h=f&&f.chord&&f.chord.length>0?f.chord[0].name:null)&&(S.lastChord=h),C.startEnding&&(S.startEnding=C.startEnding),C.endEnding&&(S.endEnding=C.endEnding),d.push(S),u=null,p=!1}}else"note"===C.el_type&&(p=!0)}}r.push({header:l,measures:d,hasPickup:g})}return r}}(),e.exports=o},9447:function(e,t,r){var i=r(4914).relativeMajor,a={acc:"sharp",note:"f"},n={acc:"sharp",note:"c"},s={acc:"sharp",note:"g"},o={acc:"sharp",note:"d"},c={acc:"sharp",note:"A"},l={acc:"sharp",note:"e"},h={acc:"flat",note:"B"},f={acc:"flat",note:"e"},u={acc:"flat",note:"A"},d={acc:"flat",note:"d"},p={acc:"flat",note:"G"},m={acc:"flat",note:"c"},g={"C#":[a,n,s,o,c,l,{acc:"sharp",note:"B"}],"F#":[a,n,s,o,c,l],B:[a,n,s,o,c],E:[a,n,s,o],A:[a,n,s],D:[a,n],G:[a],C:[],F:[h],Bb:[h,f],Eb:[h,f,u],Cm:[h,f,u],Ab:[h,f,u,d],Db:[h,f,u,d,p],Gb:[h,f,u,d,p,m],Cb:[h,f,u,d,p,m,{acc:"flat",note:"F"}],"A#":[h,f],"B#":[],"D#":[h,f,u],"E#":[h],"G#":[h,f,u,d],none:[]};e.exports=function(e){var t=g[i(e)];return t?JSON.parse(JSON.stringify(t)):null}},4914:function(e){var t={C:{modes:["CMaj","Amin","Am","GMix","DDor","EPhr","FLyd","BLoc"],stepsFromC:0},Db:{modes:["DbMaj","Bbmin","Bbm","AbMix","EbDor","FPhr","GbLyd","CLoc"],stepsFromC:1},D:{modes:["DMaj","Bmin","Bm","AMix","EDor","F#Phr","GLyd","C#Loc"],stepsFromC:2},Eb:{modes:["EbMaj","Cmin","Cm","BbMix","FDor","GPhr","AbLyd","DLoc"],stepsFromC:3},E:{modes:["EMaj","C#min","C#m","BMix","F#Dor","G#Phr","ALyd","D#Loc"],stepsFromC:4},F:{modes:["FMaj","Dmin","Dm","CMix","GDor","APhr","BbLyd","ELoc"],stepsFromC:5},Gb:{modes:["GbMaj","Ebmin","Ebm","DbMix","AbDor","BbPhr","CbLyd","FLoc"],stepsFromC:6},G:{modes:["GMaj","Emin","Em","DMix","ADor","BPhr","CLyd","F#Loc"],stepsFromC:7},Ab:{modes:["AbMaj","Fmin","Fm","EbMix","BbDor","CPhr","DbLyd","GLoc"],stepsFromC:8},A:{modes:["AMaj","F#min","F#m","EMix","BDor","C#Phr","DLyd","G#Loc"],stepsFromC:9},Bb:{modes:["BbMaj","Gmin","Gm","FMix","CDor","DPhr","EbLyd","ALoc"],stepsFromC:10},B:{modes:["BMaj","G#min","G#m","F#Mix","C#Dor","D#Phr","ELyd","A#Loc"],stepsFromC:11},"C#":{modes:["C#Maj","A#min","A#m","G#Mix","D#Dor","E#Phr","F#Lyd","B#Loc"],stepsFromC:1},"F#":{modes:["F#Maj","D#min","D#m","C#Mix","G#Dor","A#Phr","BLyd","E#Loc"],stepsFromC:6},Cb:{modes:["CbMaj","Abmin","Abm","GbMix","DbDor","EbPhr","FbLyd","BbLoc"],stepsFromC:11}},r=null;e.exports={relativeMajor:function(e){r||function(){r={};for(var e=Object.keys(t),i=0;i=t&&(r-=t),"bar"===s[c].el_type)return r}return r}(this.lines,e);return t<1e-8||e-t<1e-8?0:t},this.getBarLength=function(){var e=this.getMeterFraction();return e.num/e.den},this.getTotalTime=function(){return this.totalTime},this.getTotalBeats=function(){return this.totalBeats},this.millisecondsPerMeasure=function(e){var t;if(e)t=e;else{var r=this.metaText?this.metaText.tempo:null;t=this.getBpm(r)}return t<=0&&(t=1),this.getBeatsPerMeasure()/t*6e4},this.getBeatsPerMeasure=function(){var e=this.getBeatLength();return this.getBarLength()/e},this.getMeter=function(){for(var e=0;ee)return c}}return null},this.addElementToEvents=function(e,t,r,a,n,s,o,c,l,h){if(t.hint)return{isTiedState:void 0,duration:0};var f=t.durationClass?t.durationClass:t.duration;if(t.abcelem.rest&&"spacer"===t.abcelem.rest.type&&(f=0),f>0){for(var u=[],d=0;d0)for(var s=n.staffs[0],o=s.absoluteY,c=o-s.top*a.STEP,l=n.staffs[n.staffs.length-1],h=(o=l.absoluteY)-l.bottom*a.STEP-c,f=n.voices,u=0;u0&&o["event"+p]&&(k="event"+p),p=Math.round(1e3*d),"bar"===T.type){var S=T.abcelem.type,N="bar_right_repeat"===S||"bar_dbl_repeat"===S,E="1"===T.abcelem.startEnding,_="bar_left_repeat"===S||"bar_dbl_repeat"===S||"bar_right_repeat"===S;if(N){x>0&&(o[k].endX=T.x),-1===g&&(g=x);var M=0;y=-1;for(var A=m;A=0;n--){var s=e[n];"bar"===s.type?(s.top=i,s.nextTop=t,t=i,s.bottom=a,s.nextBottom=r,r=a):"event"===s.type&&(i=s.top,a=s.top+s.height)}}(s=function(e){var t=[];for(var r in e)e.hasOwnProperty(r)&&t.push(e[r]);return t.sort((function(e,t){var r=e.milliseconds-t.milliseconds;return 0!==r?r:"bar"===e.type?-1:1}))}(o)),function(e,r){if(!(r.length<1)){for(var i=0;ia.left&&(a.endX=Math.min(a.endX,s)):a.endX=s}}var o=r[r.length-1];o.endX=e[o.line].staffGroup.w}}(this.lines,s),s.push({type:"end",milliseconds:f}),this.addUsefulCallbackInfo(s,b*a),s},this.addUsefulCallbackInfo=function(e,t){for(var r=this.millisecondsPerMeasure(t),i=0;i0?e.duration[0]:r)/r}if(!t){t=180;var i=this.getMeterFraction();i&&3!==i.num&&i.num%3==0&&(t=120)}return t},this.setTiming=function(e,t){if(t=t||0,!this.engraver||!this.engraver.staffgroups)return console.log("setTiming cannot be called before the tune is drawn."),this.noteTimings=[],this.noteTimings;var r=this.metaText?this.metaText.tempo:null,i=this.getBpm(r),a=1;e?r&&(a=e/i):e=i;var n=this.getBeatLength(),s=e/60,o=this.getBarLength()/n*t/s;o&&(o-=this.getPickupLength()/n/s);var c=n*s;return this.noteTimings=this.setupEvents(o,c,e,a),this.noteTimings.length>0?(this.totalTime=this.noteTimings[this.noteTimings.length-1].milliseconds/1e3,this.totalBeats=this.totalTime*s):(this.totalTime=void 0,this.totalBeats=void 0),this.noteTimings},this.setUpAudio=function(e){e||(e={});var t=n(this,e);return s(t,e,this.formatting.percmap,this.formatting.midi)},this.deline=function(e){return o(this.lines,e)}}},351:function(e){function t(e,t){return"abselem"===e?"abselem":t}function r(e,t){e.el_type="meter",e.startChar=-1,e.endChar=-1;for(var r=0;r=0&&e.lastIndexOf(t)===r},last:function(e){return 0===e.length?null:e[e.length-1]}};e.exports=t},8905:function(e,t,r){var i=r(5008),a=r(8360),n=r(9928),s=r(6476),o=r(1881),c=r(1756),l=r(6780),h=r(575);e.exports=function(){"use strict";var e,t=new l,r=new h(t),f="",u="";function d(e,t,r){e.positioning||(e.positioning={}),e.positioning[t]=r}function p(e,t,r){e.fonts||(e.fonts={}),e.fonts[t]=r}this.getTune=function(){var e={formatting:t.formatting,lines:t.lines,media:t.media,metaText:t.metaText,metaTextInfo:t.metaTextInfo,version:t.version,addElementToEvents:t.addElementToEvents,addUsefulCallbackInfo:t.addUsefulCallbackInfo,getTotalTime:t.getTotalTime,getTotalBeats:t.getTotalBeats,getBarLength:t.getBarLength,getBeatLength:t.getBeatLength,getBeatsPerMeasure:t.getBeatsPerMeasure,getBpm:t.getBpm,getMeter:t.getMeter,getMeterFraction:t.getMeterFraction,getPickupLength:t.getPickupLength,getKeySignature:t.getKeySignature,getElementFromChar:t.getElementFromChar,makeVoicesArray:t.makeVoicesArray,millisecondsPerMeasure:t.millisecondsPerMeasure,setupEvents:t.setupEvents,setTiming:t.setTiming,setUpAudio:t.setUpAudio,deline:t.deline};return t.lineBreaks&&(e.lineBreaks=t.lineBreaks),t.visualTranspose&&(e.visualTranspose=t.visualTranspose),e};var m,g,v={reset:function(){for(var e in this)this.hasOwnProperty(e)&&"function"!=typeof this[e]&&delete this[e];this.iChar=0,this.key={accidentals:[],root:"none",acc:"",mode:""},this.meter=null,this.origMeter=null,this.hasMainTitle=!1,this.default_length=.125,this.clef={type:"treble",verticalPos:0},this.octave=0,this.next_note_duration=0,this.start_new_line=!0,this.is_in_header=!0,this.partForNextLine={},this.tempoForNextLine=[],this.havent_set_length=!0,this.voices={},this.staves=[],this.macros={},this.currBarNumber=1,this.barCounter={},this.ignoredDecorations=[],this.score_is_present=!1,this.inEnding=!1,this.inTie=[],this.inTieChord={},this.vocalPosition="auto",this.dynamicPosition="auto",this.chordPosition="auto",this.ornamentPosition="auto",this.volumePosition="auto",this.openSlurs=[],this.freegchord=!1,this.endingHoldOver={}},differentFont:function(e,t){return this[e].decoration!==t[e].decoration||this[e].face!==t[e].face||this[e].size!==t[e].size||this[e].style!==t[e].style||this[e].weight!==t[e].weight},addFormattingOptions:function(e,t,r){"note"===r?("auto"!==this.vocalPosition&&d(e,"vocalPosition",this.vocalPosition),"auto"!==this.dynamicPosition&&d(e,"dynamicPosition",this.dynamicPosition),"auto"!==this.chordPosition&&d(e,"chordPosition",this.chordPosition),"auto"!==this.ornamentPosition&&d(e,"ornamentPosition",this.ornamentPosition),"auto"!==this.volumePosition&&d(e,"volumePosition",this.volumePosition),this.differentFont("annotationfont",t)&&p(e,"annotationfont",this.annotationfont),this.differentFont("gchordfont",t)&&p(e,"gchordfont",this.gchordfont),this.differentFont("vocalfont",t)&&p(e,"vocalfont",this.vocalfont),this.differentFont("tripletfont",t)&&p(e,"tripletfont",this.tripletfont)):"bar"===r&&("auto"!==this.dynamicPosition&&d(e,"dynamicPosition",this.dynamicPosition),"auto"!==this.chordPosition&&d(e,"chordPosition",this.chordPosition),"auto"!==this.ornamentPosition&&d(e,"ornamentPosition",this.ornamentPosition),"auto"!==this.volumePosition&&d(e,"volumePosition",this.volumePosition),this.differentFont("measurefont",t)&&p(e,"measurefont",this.measurefont),this.differentFont("repeatfont",t)&&p(e,"repeatfont",this.repeatfont))},duplicateStartEndingHoldOvers:function(){this.endingHoldOver={inTie:[],inTieChord:{}};for(var e=0;e/g,">")},y=function(t,r,i){r||(r=" ");var a=r[i];" "!==a&&a||(a="SPACE");var n,s=b(r.substring(i-64,i))+''+a+""+b(r.substring(i+1).substring(0,64));!function(e){v.warnings||(v.warnings=[]),v.warnings.push(e)}("Music Line:"+e.lineIndex+":"+(i+1)+": "+t+": "+s),n={message:t,line:r,startChar:v.iChar+i,column:i},v.warningObjects||(v.warningObjects=[]),v.warningObjects.push(n)};this.getWarnings=function(){return v.warnings},this.getWarningObjects=function(){return v.warningObjects};var x=function(t,r){if(r.indexOf("")>=0)f+=r;else if(r=f+r,f="",t){"-"!==(r=i.strip(r))[r.length-1]&&(r+=" ");for(var a=[],n=0,s=!1,o=function(t){var o=i.strip(r.substring(n,t));if(o=o.replace(/\\([-_*|~])/g,"$1"),n=t+1,o.length>0){s&&(o=o.replace(/~/g," "));var c=r[t];return"_"!==c&&"-"!==c&&(c=" "),a.push({syllable:e.translateString(o),divider:c}),s=!1,!0}return!1},c=!1,l=0;l0&&(i.last(a).divider="-",a.push({skip:!0,to:"next"}));break;case"_":c||(o(l),a.push({skip:!0,to:"slur"}));break;case"*":c||(o(l),a.push({skip:!0,to:"next"}));break;case"|":c||(o(l),a.push({skip:!0,to:"bar"}));break;case"~":c||(s=!0)}c="\\"===r[l]}t.forEach((function(e){if(0!==a.length)if(a[0].skip){switch(a[0].to){case"next":case"slur":"note"===e.el_type&&null!==e.pitches&&a.shift();break;case"bar":"bar"===e.el_type&&a.shift()}"bar"!==e.el_type&&(void 0===e.lyric?e.lyric=[{syllable:"",divider:" "}]:e.lyric.push({syllable:"",divider:" "}))}else if("note"===e.el_type&&void 0===e.rest){var t=a.shift();t.syllable&&(t.syllable=t.syllable.replace(/ +/g," ")),void 0===e.lyric?e.lyric=[t]:e.lyric.push(t)}}))}else y("Can't add words before the first line of music",t,0)},w=function(t,r){if(r.indexOf("")>=0)u+=r;else if(r=u+r,u="",t){"-"!==(r=i.strip(r))[r.length-1]&&(r+=" ");for(var a=[],n=0,s=!1,o=function(t){var o=i.strip(r.substring(n,t));if(n=t+1,o.length>0){s&&(o=o.replace(/~/g," "));var c=r[t];return"_"!==c&&"-"!==c&&(c=" "),a.push({syllable:e.translateString(o),divider:c}),s=!1,!0}return!1},c=0;c0&&(i.last(a).divider="-",a.push({skip:!0,to:"next"}));break;case"_":o(c),a.push({skip:!0,to:"slur"});break;case"*":o(c),a.push({skip:!0,to:"next"});break;case"|":o(c),a.push({skip:!0,to:"bar"});break;case"~":s=!0}t.forEach((function(e){if(0!==a.length)if(a[0].skip)switch(a[0].to){case"next":case"slur":"note"===e.el_type&&null!==e.pitches&&a.shift();break;case"bar":"bar"===e.el_type&&a.shift()}else if("note"===e.el_type&&void 0===e.rest){var t=a.shift();void 0===e.lyric?e.lyric=[t]:e.lyric.push(t)}}))}else y("Can't add symbols before the first line of music",t,0)},k=function(e){if(i.startsWith(e,"%%")){var t=a.addDirective(e.substring(2));t&&y(t,e,2)}else{var n=e.indexOf("%");if(n>=0&&(e=e.substring(0,n)),0!==(e=e.replace(/\s+$/,"")).length)if(f)x(r.getCurrentVoice(),e.substring(2));else if(u)w(r.getCurrentVoice(),e.substring(2));else if(e.length<2||":"!==e[1]||g.lineContinuation)g.parseMusic(e);else{var s=m.parseHeader(e);s.regular&&g.parseMusic(e),s.newline&&g.startNewLine(),s.words&&x(r.getCurrentVoice(),e.substring(2)),s.symbols&&w(r.getCurrentVoice(),e.substring(2))}}};function T(e,t){e.push({el_type:"hint"});for(var r=0;r1){for(var b=1;b0&&"\n"!==p[b][0];)p[b]=p[b].substr(1),p[b-1]+=" ";l=p.join(" ")}var T=(l=l.replace(/\\([ \t]*)(%.*)*\n/g,(function(e,t,r){return t+""+(r?Array(r.length+1).join(" "):"")+"\n"}))).split("\n");0===i.last(T).length&&T.pop(),e=new o(T,v),m=new n(e,y,v,t,r),g=new s(e,y,v,t,r,m),h.print&&(t.media="print"),v.reset(),v.iChar=d,h.visualTranspose?(v.globalTranspose=parseInt(h.visualTranspose),0===v.globalTranspose?v.globalTranspose=void 0:r.setVisualTranspose(h.visualTranspose)):v.globalTranspose=void 0,h.lineBreaks&&(v.lineBreaks=h.lineBreaks),m.reset(e,y,v,t);try{h.format&&a.globalFormatting(h.format);for(var S=e.nextLine();S;){if(h.header_only&&!1===v.is_in_header)throw"normal_abort";if(h.stop_on_warning&&v.warnings)throw"normal_abort";var N=v.is_in_header;k(S),N&&!v.is_in_header&&(r.setRunningFont("annotationfont",v.annotationfont),r.setRunningFont("gchordfont",v.gchordfont),r.setRunningFont("tripletfont",v.tripletfont),r.setRunningFont("vocalfont",v.vocalfont)),S=e.nextLine()}f&&x(r.getCurrentVoice(),""),u&&w(r.getCurrentVoice(),""),v.openSlurs=r.cleanUp(v.barsperstaff,v.staffnonote,v.openSlurs)}catch(e){if("normal_abort"!==e)throw e}var E=792,_=612;switch(v.papersize){case"legal":E=1008,_=612;break;case"A4":E=842.4,_=597.6}if(v.landscape){var M=E;E=_,_=M}t.formatting.pagewidth||(t.formatting.pagewidth=_),t.formatting.pageheight||(t.formatting.pageheight=E),h.hint_measures&&function(){for(var e=0;e1&&!i.startsWith(o[0].abc,"X:")&&o.shift().abc.split("\n").forEach((function(e){i.startsWith(e,"%%")&&(t+=e+"\n")}));var c=t;return o.forEach((function(e){var r=e.abc.indexOf("\n\n");r>0&&(e.abc=e.abc.substring(0,r)),e.pure=e.abc,e.abc=t+e.abc,e.title="";var a=e.pure.split("T:");a.length>1&&(a=a[1].split("\n"),e.title=i.strip(a[0]));var n=e.pure.substring(2,e.pure.indexOf("\n"));e.id=i.strip(n)})),{header:c,tunes:o}}},8360:function(e,t,r){var i=r(5008),a={};!function(){"use strict";var e,t,r,n,s;a.initialize=function(i,a,o,c,l){e=i,t=a,n=c,s=l,(r=o).annotationfont={face:"Helvetica",size:12,weight:"normal",style:"normal",decoration:"none"},r.gchordfont={face:"Helvetica",size:12,weight:"normal",style:"normal",decoration:"none"},r.historyfont={face:'"Times New Roman"',size:16,weight:"normal",style:"normal",decoration:"none"},r.infofont={face:'"Times New Roman"',size:14,weight:"normal",style:"italic",decoration:"none"},r.measurefont={face:'"Times New Roman"',size:14,weight:"normal",style:"italic",decoration:"none"},r.partsfont={face:'"Times New Roman"',size:15,weight:"normal",style:"normal",decoration:"none"},r.repeatfont={face:'"Times New Roman"',size:13,weight:"normal",style:"normal",decoration:"none"},r.textfont={face:'"Times New Roman"',size:16,weight:"normal",style:"normal",decoration:"none"},r.tripletfont={face:"Times",size:11,weight:"normal",style:"italic",decoration:"none"},r.vocalfont={face:'"Times New Roman"',size:13,weight:"bold",style:"normal",decoration:"none"},r.wordsfont={face:'"Times New Roman"',size:16,weight:"normal",style:"normal",decoration:"none"},n.formatting.composerfont={face:'"Times New Roman"',size:14,weight:"normal",style:"italic",decoration:"none"},n.formatting.subtitlefont={face:'"Times New Roman"',size:16,weight:"normal",style:"normal",decoration:"none"},n.formatting.tempofont={face:'"Times New Roman"',size:15,weight:"bold",style:"normal",decoration:"none"},n.formatting.titlefont={face:'"Times New Roman"',size:20,weight:"normal",style:"normal",decoration:"none"},n.formatting.footerfont={face:'"Times New Roman"',size:12,weight:"normal",style:"normal",decoration:"none"},n.formatting.headerfont={face:'"Times New Roman"',size:12,weight:"normal",style:"normal",decoration:"none"},n.formatting.voicefont={face:'"Times New Roman"',size:13,weight:"bold",style:"normal",decoration:"none"},n.formatting.tablabelfont={face:'"Trebuchet MS"',size:16,weight:"normal",style:"normal",decoration:"none"},n.formatting.tabnumberfont={face:'"Arial"',size:11,weight:"normal",style:"normal",decoration:"none"},n.formatting.tabgracefont={face:'"Arial"',size:8,weight:"normal",style:"normal",decoration:"none"},n.formatting.annotationfont=r.annotationfont,n.formatting.gchordfont=r.gchordfont,n.formatting.historyfont=r.historyfont,n.formatting.infofont=r.infofont,n.formatting.measurefont=r.measurefont,n.formatting.partsfont=r.partsfont,n.formatting.repeatfont=r.repeatfont,n.formatting.textfont=r.textfont,n.formatting.tripletfont=r.tripletfont,n.formatting.vocalfont=r.vocalfont,n.formatting.wordsfont=r.wordsfont};var o={gchordfont:!0,measurefont:!0,partsfont:!0,annotationfont:!0,composerfont:!0,historyfont:!0,infofont:!0,subtitlefont:!0,textfont:!0,titlefont:!0,voicefont:!0},c=function(e,r,i,a,n){function s(){var s=parseInt(e[0].token);return e.shift(),r?0===e.length?{face:r.face,weight:r.weight,style:r.style,decoration:r.decoration,size:s}:1===e.length&&"box"===e[0].token&&o[n]?{face:r.face,weight:r.weight,style:r.style,decoration:r.decoration,size:s,box:!0}:(t("Extra parameters in font definition.",i,a),{face:r.face,weight:r.weight,style:r.style,decoration:r.decoration,size:s}):(t("Can't set just the size of the font since there is no default value.",i,a),{face:'"Times New Roman"',weight:"normal",style:"normal",decoration:"none",size:s})}if("*"===e[0].token){if(e.shift(),"number"===e[0].type)return s();t("Expected font size number after *.",i,a)}if("number"===e[0].type)return s();for(var c,l=[],h="normal",f="normal",u="none",d=!1,p="face",m=!1;e.length;){var g=e.shift(),v=g.token.toLowerCase();switch(p){case"face":m||"utf"!==v&&"number"!==g.type&&"bold"!==v&&"italic"!==v&&"underline"!==v&&"box"!==v?l.length>0&&"-"===g.token?(m=!0,l[l.length-1]=l[l.length-1]+g.token):m?(m=!1,l[l.length-1]=l[l.length-1]+g.token):l.push(g.token):"number"===g.type?(c?t("Font size specified twice in font definition.",i,a):c=g.token,p="modifier"):"bold"===v?h="bold":"italic"===v?f="italic":"underline"===v?u="underline":"box"===v?(o[n]?d=!0:t('This font style doesn\'t support "box"',i,a),p="finished"):"utf"===v?(g=e.shift(),p="size"):t("Unknown parameter "+g.token+" in font definition.",i,a);break;case"size":"number"===g.type?c?t("Font size specified twice in font definition.",i,a):c=g.token:t("Expected font size in font definition.",i,a),p="modifier";break;case"modifier":"bold"===v?h="bold":"italic"===v?f="italic":"underline"===v?u="underline":"box"===v?(o[n]?d=!0:t('This font style doesn\'t support "box"',i,a),p="finished"):t("Unknown parameter "+g.token+" in font definition.",i,a);break;case"finished":t('Extra characters found after "box" in font definition.',i,a)}}void 0===c?r?c=r.size:(t("Must specify the size of the font since there is no default value.",i,a),c=12):c=parseFloat(c),""===(l=l.join(" "))&&(r?l=r.face:(t("Must specify the name of the font since there is no default value.",i,a),l="sans-serif"));var b=function(e){switch(e){case"Arial-Italic":return{face:"Arial",weight:"normal",style:"italic",decoration:"none"};case"Arial-Bold":return{face:"Arial",weight:"bold",style:"normal",decoration:"none"};case"Bookman-Demi":return{face:"Bookman,serif",weight:"bold",style:"normal",decoration:"none"};case"Bookman-DemiItalic":return{face:"Bookman,serif",weight:"bold",style:"italic",decoration:"none"};case"Bookman-Light":return{face:"Bookman,serif",weight:"normal",style:"normal",decoration:"none"};case"Bookman-LightItalic":return{face:"Bookman,serif",weight:"normal",style:"italic",decoration:"none"};case"Courier":return{face:'"Courier New"',weight:"normal",style:"normal",decoration:"none"};case"Courier-Oblique":return{face:'"Courier New"',weight:"normal",style:"italic",decoration:"none"};case"Courier-Bold":return{face:'"Courier New"',weight:"bold",style:"normal",decoration:"none"};case"Courier-BoldOblique":return{face:'"Courier New"',weight:"bold",style:"italic",decoration:"none"};case"AvantGarde-Book":return{face:"AvantGarde,Arial",weight:"normal",style:"normal",decoration:"none"};case"AvantGarde-BookOblique":return{face:"AvantGarde,Arial",weight:"normal",style:"italic",decoration:"none"};case"AvantGarde-Demi":case"Avant-Garde-Demi":return{face:"AvantGarde,Arial",weight:"bold",style:"normal",decoration:"none"};case"AvantGarde-DemiOblique":return{face:"AvantGarde,Arial",weight:"bold",style:"italic",decoration:"none"};case"Helvetica-Oblique":return{face:"Helvetica",weight:"normal",style:"italic",decoration:"none"};case"Helvetica-Bold":return{face:"Helvetica",weight:"bold",style:"normal",decoration:"none"};case"Helvetica-BoldOblique":return{face:"Helvetica",weight:"bold",style:"italic",decoration:"none"};case"Helvetica-Narrow":return{face:'"Helvetica Narrow",Helvetica',weight:"normal",style:"normal",decoration:"none"};case"Helvetica-Narrow-Oblique":return{face:'"Helvetica Narrow",Helvetica',weight:"normal",style:"italic",decoration:"none"};case"Helvetica-Narrow-Bold":return{face:'"Helvetica Narrow",Helvetica',weight:"bold",style:"normal",decoration:"none"};case"Helvetica-Narrow-BoldOblique":return{face:'"Helvetica Narrow",Helvetica',weight:"bold",style:"italic",decoration:"none"};case"Palatino-Roman":return{face:"Palatino",weight:"normal",style:"normal",decoration:"none"};case"Palatino-Italic":return{face:"Palatino",weight:"normal",style:"italic",decoration:"none"};case"Palatino-Bold":return{face:"Palatino",weight:"bold",style:"normal",decoration:"none"};case"Palatino-BoldItalic":return{face:"Palatino",weight:"bold",style:"italic",decoration:"none"};case"NewCenturySchlbk-Roman":return{face:'"New Century",serif',weight:"normal",style:"normal",decoration:"none"};case"NewCenturySchlbk-Italic":return{face:'"New Century",serif',weight:"normal",style:"italic",decoration:"none"};case"NewCenturySchlbk-Bold":return{face:'"New Century",serif',weight:"bold",style:"normal",decoration:"none"};case"NewCenturySchlbk-BoldItalic":return{face:'"New Century",serif',weight:"bold",style:"italic",decoration:"none"};case"Times":case"Times-Roman":case"Times-Narrow":case"Times-Courier":case"Times-New-Roman":return{face:'"Times New Roman"',weight:"normal",style:"normal",decoration:"none"};case"Times-Italic":case"Times-Italics":return{face:'"Times New Roman"',weight:"normal",style:"italic",decoration:"none"};case"Times-Bold":return{face:'"Times New Roman"',weight:"bold",style:"normal",decoration:"none"};case"Times-BoldItalic":return{face:'"Times New Roman"',weight:"bold",style:"italic",decoration:"none"};case"ZapfChancery-MediumItalic":return{face:'"Zapf Chancery",cursive,serif',weight:"normal",style:"normal",decoration:"none"};default:return null}}(l),y={};return b?(y.face=b.face,y.weight=b.weight,y.style=b.style,y.decoration=b.decoration,y.size=c,d&&(y.box=!0),y):(y.face=l,y.weight=h,y.style=f,y.decoration=u,y.size=c,d&&(y.box=!0),y)},l=function(e,t,i){return 0===t.length?'Directive "'+e+'" requires a font as a parameter.':(r[e]=c(t,r[e],i,0,e),r.is_in_header&&(n.formatting[e]=r[e]),null)},h=function(e,t){var r="";t.forEach((function(e){r+=e.token}));var i=parseFloat(r);if(isNaN(i)||0===i)return'Directive "'+e+'" requires a number as a parameter.';n.formatting.scale=i},f=["acoustic-bass-drum","bass-drum-1","side-stick","acoustic-snare","hand-clap","electric-snare","low-floor-tom","closed-hi-hat","high-floor-tom","pedal-hi-hat","low-tom","open-hi-hat","low-mid-tom","hi-mid-tom","crash-cymbal-1","high-tom","ride-cymbal-1","chinese-cymbal","ride-bell","tambourine","splash-cymbal","cowbell","crash-cymbal-2","vibraslap","ride-cymbal-2","hi-bongo","low-bongo","mute-hi-conga","open-hi-conga","low-conga","high-timbale","low-timbale","high-agogo","low-agogo","cabasa","maracas","short-whistle","long-whistle","short-guiro","long-guiro","claves","hi-wood-block","low-wood-block","mute-cuica","open-cuica","mute-triangle","open-triangle"],u=function(e,t,i,a,n){if(1!==i.length||"number"!==i[0].type)return'Directive "'+t+'" requires a number as a parameter.';var s=i[0].intt;return void 0!==a&&sn?'Directive "'+t+'" requires a number less than or equal to '+n+" as a parameter.":(r[e]=s,null)},d=function(e,t,i){if(1===i.length&&("true"===i[0].token||"false"===i[0].token))return r[e]="true"===i[0].token,null;var a=u(e,t,i,0,1);return null!==a?a:(r[e]=1===r[e],null)},p=function(e,t,i,a){if(1!==i.length)return'Directive "'+t+'" requires one of [ '+a.join(", ")+" ] as a parameter.";for(var n=i[0].token,s=!1,o=0;!s&&o1&&r.setfont){var i=[];""!==t[0]&&i.push({text:t[0]});for(var a=1;a=0||e[0].floatt<=1)return{value:e[0].floatt}}else{if("false"===e[0].token)return{value:0};if("true"===e[0].token)return{value:1}}return{error:"Directive stretchlast requires zero or one parameter: false, true, or number between 0 and 1 (received "+e[0].token+")"}}a.addDirective=function(o){var E=e.tokenize(o,0,o.length);if(0===E.length||"alpha"!==E[0].type)return null;var _=o.substring(o.indexOf(E[0].token)+E[0].token.length);_=e.stripComment(_);var M,A=E.shift().token.toLowerCase(),B="";switch(A){case"bagpipes":n.formatting.bagpipes=!0;break;case"flatbeams":n.formatting.flatbeams=!0;break;case"jazzchords":n.formatting.jazzchords=!0;break;case"accentAbove":n.formatting.accentAbove=!0;break;case"germanAlphabet":n.formatting.germanAlphabet=!0;break;case"landscape":r.landscape=!0;break;case"papersize":r.papersize=_;break;case"graceslurs":if(1!==E.length)return"Directive graceslurs requires one parameter: 0 or 1";if("0"===E[0].token||"false"===E[0].token)n.formatting.graceSlurs=!1;else{if("1"!==E[0].token&&"true"!==E[0].token)return"Directive graceslurs requires one parameter: 0 or 1 (received "+E[0].token+")";n.formatting.graceSlurs=!0}break;case"lineThickness":var L=N(E);if(void 0!==L.value&&(n.formatting.lineThickness=L.value),L.error)return L.error;break;case"stretchlast":var P=N(E);if(void 0!==P.value&&(n.formatting.stretchlast=P.value),P.error)return P.error;break;case"titlecaps":r.titlecaps=!0;break;case"titleleft":n.formatting.titleleft=!0;break;case"measurebox":n.formatting.measurebox=!0;break;case"vocal":return p("vocalPosition",A,E,S);case"dynamic":return p("dynamicPosition",A,E,S);case"gchord":return p("chordPosition",A,E,S);case"ornament":return p("ornamentPosition",A,E,S);case"volume":return p("volumePosition",A,E,S);case"botmargin":case"botspace":case"composerspace":case"indent":case"leftmargin":case"linesep":case"musicspace":case"partsspace":case"pageheight":case"pagewidth":case"rightmargin":case"staffsep":case"staffwidth":case"subtitlespace":case"sysstaffsep":case"systemsep":case"textspace":case"titlespace":case"topmargin":case"topspace":case"vocalspace":case"wordsspace":return function(t,r){var i=e.getMeasurement(r);return 0===i.used||0!==r.length?'Directive "'+t+'" requires a measurement as a parameter.':(n.formatting[t]=i.value,null)}(A,E);case"voicescale":if(1!==E.length||"number"!==E[0].type)return"voicescale requires one float as a parameter";var z=E.shift();return r.currentVoice&&(r.currentVoice.scale=z.floatt,s.changeVoiceScale(r.currentVoice.scale)),null;case"voicecolor":if(1!==E.length)return"voicecolor requires one string as a parameter";var H=E.shift();return r.currentVoice&&(r.currentVoice.color=H.token,s.changeVoiceColor(r.currentVoice.color)),null;case"vskip":var O=Math.round(function(t,r){var i=e.getMeasurement(r);return 0===i.used||0!==r.length?{error:'Directive "'+t+'" requires a measurement as a parameter.'}:i.value}(A,E));return O.error?O.error:(s.addSpacing(O),null);case"scale":h(A,E);break;case"sep":if(0===E.length)s.addSeparator(14,14,85,{startChar:r.iChar,endChar:r.iChar+5});else{var D=e.getMeasurement(E);if(0===D.used)return'Directive "'+A+'" requires 3 numbers: space above, space below, length of line';var F=D.value;if(0===(D=e.getMeasurement(E)).used)return'Directive "'+A+'" requires 3 numbers: space above, space below, length of line';var I=D.value;if(0===(D=e.getMeasurement(E)).used||0!==E.length)return'Directive "'+A+'" requires 3 numbers: space above, space below, length of line';var V=D.value;s.addSeparator(F,I,V,{startChar:r.iChar,endChar:r.iChar+_.length})}break;case"barsperstaff":if(null!==(B=u("barsperstaff",A,E)))return B;break;case"staffnonote":if(1!==E.length)return"Directive staffnonote requires one parameter: 0 or 1";if("0"===E[0].token)r.staffnonote=!0;else{if("1"!==E[0].token)return"Directive staffnonote requires one parameter: 0 or 1 (received "+E[0].token+")";r.staffnonote=!1}break;case"printtempo":if(null!==(B=d("printTempo",A,E)))return B;break;case"partsbox":if(null!==(B=d("partsBox",A,E)))return B;r.partsfont.box=r.partsBox;break;case"freegchord":if(null!==(B=d("freegchord",A,E)))return B;break;case"measurenb":case"barnumbers":if(null!==(B=u("barNumbers",A,E)))return B;break;case"setbarnb":if(1!==E.length||"number"!==E[0].type)return"Directive setbarnb requires a number as a parameter.";r.currBarNumber=s.setBarNumberImmediate(E[0].intt);break;case"begintext":var Y="";for(M=e.nextLine();M&&0!==M.indexOf("%%endtext");)i.startsWith(M,"%%")?Y+=M.substring(2)+"\n":Y+=M+"\n",M=e.nextLine();s.addText(Y,{startChar:r.iChar,endChar:r.iChar+Y.length+7});break;case"continueall":r.continueall=!0;break;case"beginps":for(M=e.nextLine();M&&0!==M.indexOf("%%endps");)e.nextLine();t("Postscript ignored",o,0);break;case"deco":_.length>0&&r.ignoredDecorations.push(_.substring(0,_.indexOf(" "))),t("Decoration redefinition ignored",o,0);break;case"text":var G=e.translateString(_);s.addText(a.parseFontChangeLine(G),{startChar:r.iChar,endChar:r.iChar+_.length+7});break;case"center":var j=e.translateString(_);s.addCentered(a.parseFontChangeLine(j));break;case"font":break;case"setfont":var W=e.tokenize(_,0,_.length);if(W.length>=4&&"-"===W[0].token&&"number"===W[1].type){var q=parseInt(W[1].token);q>=1&&q<=9&&(r.setfont||(r.setfont=[]),W.shift(),W.shift(),r.setfont[q]=c(W,r.setfont[q],o,0,"setfont"))}break;case"gchordfont":case"partsfont":case"tripletfont":case"vocalfont":case"textfont":case"annotationfont":case"historyfont":case"infofont":case"measurefont":case"repeatfont":case"wordsfont":return l(A,E,o);case"composerfont":case"subtitlefont":case"tempofont":case"titlefont":case"voicefont":case"footerfont":case"headerfont":return function(e,t,r){return 0===t.length?'Directive "'+e+'" requires a font as a parameter.':(n.formatting[e]=c(t,n.formatting[e],r,0,e),null)}(A,E,o);case"barlabelfont":case"barnumberfont":case"barnumfont":return l("measurefont",E,o);case"staves":case"score":r.score_is_present=!0;for(var X,R=function(e,t,a,n,s){(t||0===r.staves.length)&&r.staves.push({index:r.staves.length,numVoices:0});var o=i.last(r.staves);void 0!==a&&void 0===o.bracket&&(o.bracket=a),void 0!==n&&void 0===o.brace&&(o.brace=n),s&&(o.connectBarLines="end"),void 0===r.voices[e]&&(r.voices[e]={staffNum:o.index,index:o.numVoices},o.numVoices++)},U=!1,K=!1,$=!1,Q=!1,Z=!1,J=!1,ee=!1,te=function(){if(ee=!0,X){var e="start";X.staffNum>0&&("start"!==r.staves[X.staffNum-1].connectBarLines&&"continue"!==r.staves[X.staffNum-1].connectBarLines||(e="continue")),r.staves[X.staffNum].connectBarLines=e}};E.length;){var re=E.shift();switch(re.token){case"(":U?t("Can't nest parenthesis in %%score",o,re.start):(U=!0,Q=!0);break;case")":!U||Q?t("Unexpected close parenthesis in %%score",o,re.start):U=!1;break;case"[":K?t("Can't nest brackets in %%score",o,re.start):(K=!0,Z=!0);break;case"]":!K||Z?t("Unexpected close bracket in %%score",o,re.start):(K=!1,r.staves[X.staffNum].bracket="end");break;case"{":$?t("Can't nest braces in %%score",o,re.start):($=!0,J=!0);break;case"}":!$||J?t("Unexpected close brace in %%score",o,re.start):($=!1,r.staves[X.staffNum].brace="end");break;case"|":te();break;default:for(var ie="";("alpha"===re.type||"number"===re.type)&&(ie+=re.token,re.continueId);)re=E.shift();R(ie,!U||Q,Z?"start":K?"continue":void 0,J?"start":$?"continue":void 0,ee),Q=!1,Z=!1,J=!1,ee=!1,X=r.voices[ie],"staves"===A&&te()}}break;case"newpage":var ae=e.getInt(_);s.addNewPage(0===ae.digits?-1:ae.value);break;case"abc":var ne=_.split(" ");switch(ne[0]){case"-copyright":case"-creator":case"-edited-by":case"-version":case"-charset":var se=ne.shift();s.addMetaText(A+se,ne.join(" "),{startChar:r.iChar,endChar:r.iChar+_.length+5});break;default:return"Unknown directive: "+A+ne[0]}break;case"header":case"footer":var oe=e.getMeat(_,0,_.length);'"'===(oe=_.substring(oe.start,oe.end))[0]&&'"'===oe[oe.length-1]&&(oe=oe.substring(1,oe.length-1));var ce=oe.split("\t"),le={};le=1===ce.length?{left:"",center:ce[0],right:""}:2===ce.length?{left:ce[0],center:ce[1],right:""}:{left:ce[0],center:ce[1],right:ce[2]},ce.length>3&&t("Too many tabs in "+A+": "+ce.length+" found.",_,0),s.addMetaTextObj(A,le,{startChar:r.iChar,endChar:r.iChar+o.length});break;case"midi":var he=e.tokenize(_,0,_.length,!0);he.length>0&&"="===he[0].token&&he.shift(),0===he.length?t("Expected midi command",_,0):function(e,r,i){var a=e.shift().token,n=[];if(m.indexOf(a)>=0)0!==e.length&&t("Unexpected parameter in MIDI "+a,i,0);else if(g.indexOf(a)>=0)1!==e.length?t("Expected one parameter in MIDI "+a,i,0):n.push(e[0].token);else if(v.indexOf(a)>=0)1!==e.length?t("Expected one parameter in MIDI "+a,i,0):"number"!==e[0].type?t("Expected one integer parameter in MIDI "+a,i,0):n.push(e[0].intt);else if(b.indexOf(a)>=0)1!==e.length&&2!==e.length?t("Expected one or two parameters in MIDI "+a,i,0):"number"!==e[0].type||2===e.length&&"number"!==e[1].type?t("Expected integer parameter in MIDI "+a,i,0):(n.push(e[0].intt),2===e.length&&n.push(e[1].intt));else if(y.indexOf(a)>=0)2!==e.length?t("Expected two parameters in MIDI "+a,i,0):"number"!==e[0].type||"number"!==e[1].type?t("Expected two integer parameters in MIDI "+a,i,0):(n.push(e[0].intt),n.push(e[1].intt));else if(k.indexOf(a)>=0)2!==e.length?t("Expected two parameters in MIDI "+a,i,0):"alpha"!==e[0].type||"number"!==e[1].type?t("Expected one string and one integer parameters in MIDI "+a,i,0):(n.push(e[0].token),n.push(e[1].intt));else if("drummap"===a)2===e.length&&"alpha"===e[0].type&&"number"===e[1].type?(r.formatting||(r.formatting={}),r.formatting.midi||(r.formatting.midi={}),r.formatting.midi.drummap||(r.formatting.midi.drummap={}),r.formatting.midi.drummap[e[0].token]=e[1].intt,n=r.formatting.midi.drummap):3===e.length&&"punct"===e[0].type&&"alpha"===e[1].type&&"number"===e[2].type?(r.formatting||(r.formatting={}),r.formatting.midi||(r.formatting.midi={}),r.formatting.midi.drummap||(r.formatting.midi.drummap={}),r.formatting.midi.drummap[e[0].token+e[1].token]=e[2].intt,n=r.formatting.midi.drummap):t("Expected one note name and one integer parameter in MIDI "+a,i,0);else if(T.indexOf(a)>=0)3!==e.length||"number"!==e[0].type||"/"!==e[1].token||"number"!==e[2].type?t("Expected fraction parameter in MIDI "+a,i,0):(n.push(e[0].intt),n.push(e[2].intt));else if(x.indexOf(a)>=0)4!==e.length?t("Expected four parameters in MIDI "+a,i,0):"number"!==e[0].type||"number"!==e[1].type||"number"!==e[2].type||"number"!==e[3].type?t("Expected four integer parameters in MIDI "+a,i,0):(n.push(e[0].intt),n.push(e[1].intt),n.push(e[2].intt),n.push(e[3].intt));else if(w.indexOf(a)>=0)5!==e.length?t("Expected five parameters in MIDI "+a,i,0):"number"!==e[0].type||"number"!==e[1].type||"number"!==e[2].type||"number"!==e[3].type||"number"!==e[4].type?t("Expected five integer parameters in MIDI "+a,i,0):(n.push(e[0].intt),n.push(e[1].intt),n.push(e[2].intt),n.push(e[3].intt),n.push(e[4].intt));else if(b.indexOf(a)>=0)1!==e.length||4!==e.length?t("Expected one or two parameters in MIDI "+a,i,0):"number"!==e[0].type?t("Expected integer parameter in MIDI "+a,i,0):4===e.length?("octave"!==e[1].token&&t("Expected octave parameter in MIDI "+a,i,0),"="!==e[2].token&&t("Expected octave parameter in MIDI "+a,i,0),"number"!==e[3].type&&t("Expected integer parameter for octave in MIDI "+a,i,0)):(n.push(e[0].intt),4===e.length&&n.push(e[3].intt));else if(C.indexOf(a)>=0)if(e.length<2)t("Expected string parameter and at least one integer parameter in MIDI "+a,i,0);else if("alpha"!==e[0].type)t("Expected string parameter and at least one integer parameter in MIDI "+a,i,0);else{var o=e.shift();for(n.push(o.token);e.length>0;)"number"!==(o=e.shift()).type&&t("Expected integer parameter in MIDI "+a,i,0),n.push(o.intt)}s.hasBeginMusic()?s.appendElement("midi",-1,-1,{cmd:a,params:n}):(void 0===r.formatting.midi&&(r.formatting.midi={}),r.formatting.midi[a]=n)}(he,n,_);break;case"percmap":var fe=function(e){var t=e.split(/\s+/);if(2!==t.length&&3!==t.length)return{error:'Expected parameters "abc-note", "drum-sound", and optionally "note-head"'};var r=t[0],i=parseInt(t[1],10);if((isNaN(i)||i<35||i>81)&&t[1]&&(i=f.indexOf(t[1].toLowerCase())+35),isNaN(i)||i<35||i>81)return{error:'Expected drum name, received "'+t[1]+'"'};var a={sound:i};return 3===t.length&&(a.noteHead=t[2]),{key:r,value:a}}(_);fe.error?t(fe.error,o,8):(n.formatting.percmap||(n.formatting.percmap={}),n.formatting.percmap[fe.key]=fe.value);break;case"map":case"playtempo":case"auquality":case"continuous":case"nobarcheck":n.formatting[A]=_;break;default:return"Unknown directive: "+A}return null},a.globalFormatting=function(i){for(var a in i)if(i.hasOwnProperty(a)){var s,o=""+i[a],c=e.tokenize(o,0,o.length);switch(a){case"titlefont":case"gchordfont":case"composerfont":case"footerfont":case"headerfont":case"historyfont":case"infofont":case"measurefont":case"partsfont":case"repeatfont":case"subtitlefont":case"tempofont":case"textfont":case"voicefont":case"tripletfont":case"vocalfont":case"wordsfont":case"annotationfont":case"tablabelfont":case"tabnumberfont":case"tabgracefont":l(a,c,o);break;case"scale":h(a,c);break;case"partsbox":null!==(s=d("partsBox",a,c))&&t(s),r.partsfont.box=r.partsBox;break;case"freegchord":null!==(s=d("freegchord",a,c))&&t(s);break;case"fontboxpadding":1===c.length&&"number"===c[0].type||t('Directive "'+a+'" requires a number as a parameter.'),n.formatting.fontboxpadding=c[0].floatt;break;case"stretchlast":var f=N(c);if(void 0!==f.value&&(n.formatting.stretchlast=f.value),f.error)return f.error;break;default:t("Formatting directive unrecognized: ",a,0)}}}}(),e.exports=a},9928:function(e,t,r){var i=r(5008),a=r(8360),n=r(9708);e.exports=function(e,t,r,s,o){this.reset=function(e,t,r,i){n.initialize(e,t,r,i,o),a.initialize(e,t,r,i,o)},this.reset(e,t,r,s),this.setTitle=function(e,t){r.hasMainTitle?o.addSubtitle(e,{startChar:r.iChar,endChar:r.iChar+t+2}):(o.addMetaText("title",e,{startChar:r.iChar,endChar:r.iChar+t+2}),r.hasMainTitle=!0)},this.setMeter=function(i){if("C"===(i=e.stripComment(i)))return!0===r.havent_set_length&&(r.default_length=.125,r.havent_set_length=!1),{type:"common_time"};if("C|"===i)return!0===r.havent_set_length&&(r.default_length=.125,r.havent_set_length=!1),{type:"cut_time"};if("o"===i)return!0===r.havent_set_length&&(r.default_length=.125,r.havent_set_length=!1),{type:"tempus_perfectum"};if("c"===i)return!0===r.havent_set_length&&(r.default_length=.125,r.havent_set_length=!1),{type:"tempus_imperfectum"};if("o."===i)return!0===r.havent_set_length&&(r.default_length=.125,r.havent_set_length=!1),{type:"tempus_perfectum_prolatio"};if("c."===i)return!0===r.havent_set_length&&(r.default_length=.125,r.havent_set_length=!1),{type:"tempus_imperfectum_prolatio"};if(0===i.length||"none"===i.toLowerCase())return!0===r.havent_set_length&&(r.default_length=.125,r.havent_set_length=!1),null;var a=e.tokenize(i,0,i.length);try{var n=function(){var e=function(){var e={value:0,num:""},t=a.shift();for("("===t.token&&(t=a.shift());;){if("number"!==t.type)throw"Expected top number of meter";if(e.value+=parseInt(t.token),e.num+=t.token,0===a.length||"/"===a[0].token)return e;if(")"===(t=a.shift()).token){if(0===a.length||"/"===a[0].token)return e;throw"Unexpected paren in meter"}if("."!==t.token&&"+"!==t.token)throw"Expected top number of meter";if(e.num+=t.token,0===a.length)throw"Expected top number of meter";t=a.shift()}return e}();if(0===a.length)return e;var t=a.shift();if("/"!==t.token)throw"Expected slash in meter";if("number"!==(t=a.shift()).type)throw"Expected bottom number of meter";return e.den=t.token,e.value=e.value/parseInt(e.den),e};if(0===a.length)throw"Expected meter definition in M: line";for(var s={type:"specified",value:[]},o=0;;){var c=n();o+=c.value;var l={num:c.num};if(void 0!==c.den&&(l.den=c.den),s.value.push(l),0===a.length)break}return!0===r.havent_set_length&&(r.default_length=o<.75?.0625:.125,r.havent_set_length=!1),s}catch(e){t(e,i,0)}return null},this.calcTempo=function(e){var t=1/4;r.meter&&"specified"===r.meter.type?t=1/parseInt(r.meter.value[0].den):r.origMeter&&"specified"===r.origMeter.type&&(t=1/parseInt(r.origMeter.value[0].den));for(var i=0;i0&&(r.default_length=n/s,r.havent_set_length=!1)}else 1===a.length&&"1"===a[0]&&(r.default_length=1,r.havent_set_length=!1)};var c={larghissimo:20,adagissimo:24,sostenuto:28,grave:32,largo:40,lento:50,larghetto:60,adagio:68,adagietto:74,andante:80,andantino:88,"marcia moderato":84,"andante moderato":100,moderato:112,allegretto:116,"allegro moderato":120,allegro:126,animato:132,agitato:140,veloce:148,"mosso vivo":156,vivace:164,vivacissimo:172,allegrissimo:176,presto:184,prestissimo:210};this.setTempo=function(i,a,n,s){try{var o=e.tokenize(i,a,n);if(0===o.length)throw"Missing parameter in Q: field";var l={startChar:s+a-2,endChar:s+n},h=!0,f=o.shift();if("quote"===f.type&&(l.preString=f.token,f=o.shift(),0===o.length))return c[l.preString.toLowerCase()]&&(l.bpm=c[l.preString.toLowerCase()],l.suppressBpm=!0),{type:"immediate",tempo:l};if("alpha"===f.type&&"C"===f.token){if(0===o.length)throw"Missing tempo after C in Q: field";if("punct"===(f=o.shift()).type&&"="===f.token){if(0===o.length)throw"Missing tempo after = in Q: field";if("number"!==(f=o.shift()).type)throw"Expected number after = in Q: field";l.duration=[1],l.bpm=parseInt(f.token)}else{if("number"!==f.type)throw"Expected number or equal after C in Q: field";if(l.duration=[parseInt(f.token)],0===o.length)throw"Missing = after duration in Q: field";if("punct"!==(f=o.shift()).type||"="!==f.token)throw"Expected = after duration in Q: field";if(0===o.length)throw"Missing tempo after = in Q: field";if("number"!==(f=o.shift()).type)throw"Expected number after = in Q: field";l.bpm=parseInt(f.token)}}else{if("number"!==f.type)throw"Unknown value in Q: field";var u=parseInt(f.token);if(0===o.length||"quote"===o[0].type)l.duration=[1],l.bpm=u;else{if(h=!1,"punct"!==(f=o.shift()).type&&"/"!==f.token)throw"Expected fraction in Q: field";if("number"!==(f=o.shift()).type)throw"Expected fraction in Q: field";var d=parseInt(f.token);for(l.duration=[u/d];o.length>0&&"="!==o[0].token&&"quote"!==o[0].type;){if("number"!==(f=o.shift()).type)throw"Expected fraction in Q: field";if(u=parseInt(f.token),"punct"!==(f=o.shift()).type&&"/"!==f.token)throw"Expected fraction in Q: field";if("number"!==(f=o.shift()).type)throw"Expected fraction in Q: field";d=parseInt(f.token),l.duration.push(u/d)}if("punct"!==(f=o.shift()).type&&"="!==f.token)throw"Expected = in Q: field";if("number"!==(f=o.shift()).type)throw"Expected tempo in Q: field";l.bpm=parseInt(f.token)}}if(0!==o.length&&("quote"===(f=o.shift()).type&&(l.postString=f.token,f=o.shift()),0!==o.length))throw"Unexpected string at end of Q: field";return!1===r.printTempo&&(l.suppress=!0),{type:h?"delaySet":"immediate",tempo:l}}catch(e){return t(e,i,a),{type:"none"}}},this.letter_to_inline_header=function(i,c,l){var h=e.eatWhiteSpace(i,c);if(c+=h,i.length>=c+5&&"["===i[c]&&":"===i[c+2]){var f=i.indexOf("]",c),u=r.iChar+c,d=r.iChar+f+1;switch(i.substring(c,c+3)){case"[I:":var p=a.addDirective(i.substring(c+3,f));return p&&t(p,i,c),[f-c+1+h];case"[M:":var m=this.setMeter(i.substring(c+3,f));return o.hasBeginMusic()&&m?o.appendStartingElement("meter",u,d,m):r.meter=m,[f-c+1+h];case"[K:":var g=n.parseKey(i.substring(c+3,f),!0);return g.foundClef&&o.hasBeginMusic()&&o.appendStartingElement("clef",u,d,r.clef),g.foundKey&&o.hasBeginMusic()&&o.appendStartingElement("key",u,d,n.fixKey(r.clef,r.key)),[f-c+1+h];case"[P:":var v=a.parseFontChangeLine(i.substring(c+3,f));return l||s.lines.length<=s.lineNum?r.partForNextLine={title:v,startChar:u,endChar:d}:o.appendElement("part",u,d,{title:v}),[f-c+1+h];case"[L:":return this.setDefaultLength(i,c+3,f),[f-c+1+h];case"[Q:":if(f>0){var b=this.setTempo(i,c+3,f,r.iChar);return"delaySet"===b.type?o.hasBeginMusic()?o.appendElement("tempo",u,d,this.calcTempo(b.tempo)):r.tempoForNextLine=["tempo",u,d,this.calcTempo(b.tempo)]:"immediate"===b.type&&(!l&&o.hasBeginMusic()?o.appendElement("tempo",u,d,b.tempo):r.tempoForNextLine=["tempo",u,d,b.tempo]),[f-c+1+h,i[c+1],i.substring(c+3,f)]}break;case"[V:":if(f>0)return n.parseVoice(i,c+3,f),[f-c+1+h,i[c+1],i.substring(c+3,f)];break;case"[r:":return[f-c+1+h]}}return[0]},this.letter_to_body_header=function(e,s){if(e.length>=s+3)switch(e.substring(s,s+2)){case"I:":var c=a.addDirective(e.substring(s+2));return c&&t(c,e,s),[e.length];case"M:":var l=this.setMeter(e.substring(s+2));return o.hasBeginMusic()&&l&&o.appendStartingElement("meter",r.iChar+s,r.iChar+e.length,l),[e.length];case"K:":var h=n.parseKey(e.substring(s+2),o.hasBeginMusic());return h.foundClef&&o.hasBeginMusic()&&o.appendStartingElement("clef",r.iChar+s,r.iChar+e.length,r.clef),h.foundKey&&o.hasBeginMusic()&&o.appendStartingElement("key",r.iChar+s,r.iChar+e.length,n.fixKey(r.clef,r.key)),[e.length];case"P:":return o.hasBeginMusic()&&o.appendElement("part",r.iChar+s,r.iChar+e.length,{title:e.substring(s+2)}),[e.length];case"L:":return this.setDefaultLength(e,s+2,e.length),[e.length];case"Q:":var f=e.indexOf("",s+2);-1===f&&(f=e.length);var u=this.setTempo(e,s+2,f,r.iChar);return"delaySet"===u.type?o.appendElement("tempo",r.iChar+s,r.iChar+e.length,this.calcTempo(u.tempo)):"immediate"===u.type&&o.appendElement("tempo",r.iChar+s,r.iChar+e.length,u.tempo),[f,e[s],i.strip(e.substring(s+2))];case"V:":return n.parseVoice(e,s+2,e.length),[e.length,e[s],i.strip(e.substring(s+2))]}return[0]};var l={A:"author",B:"book",C:"composer",D:"discography",F:"url",G:"group",I:"instruction",N:"notes",O:"origin",R:"rhythm",S:"source",W:"unalignedWords",Z:"transcription"};this.parseHeader=function(i){var c=l[i[0]],h=i.length-2,f=e.translateString(e.stripComment(i.substring(2)));if("unalignedWords"===c||"notes"===c)o.addMetaTextArray(c,a.parseFontChangeLine(f),{startChar:r.iChar,endChar:r.iChar+i.length});else if(void 0!==c)o.addMetaText(c,a.parseFontChangeLine(f),{startChar:r.iChar,endChar:r.iChar+i.length});else{var u=r.iChar,d=u+i.length;switch(i[0]){case"H":for(o.addMetaTextArray("history",a.parseFontChangeLine(f),{startChar:r.iChar,endChar:r.iChar+i.length}),i=e.peekLine();i&&":"!==i[1];)e.nextLine(),o.addMetaTextArray("history",a.parseFontChangeLine(e.translateString(e.stripComment(i))),{startChar:r.iChar,endChar:r.iChar+i.length}),i=e.peekLine();break;case"K":this.resolveTempo();var p=n.parseKey(i.substring(2),!1);!r.is_in_header&&o.hasBeginMusic()&&(p.foundClef&&o.appendStartingElement("clef",u,d,r.clef),p.foundKey&&o.appendStartingElement("key",u,d,n.fixKey(r.clef,r.key))),r.is_in_header=!1;break;case"L":this.setDefaultLength(i,2,i.length);break;case"M":r.origMeter=r.meter=this.setMeter(i.substring(2));break;case"P":r.is_in_header?o.addMetaText("partOrder",a.parseFontChangeLine(f),{startChar:r.iChar,endChar:r.iChar+i.length}):r.partForNextLine={title:f,startChar:u,endChar:d};break;case"Q":var m=this.setTempo(i,2,i.length,r.iChar);"delaySet"===m.type?r.tempo=m.tempo:"immediate"===m.type&&(s.metaText.tempo?r.tempoForNextLine=["tempo",u,d,m.tempo]:s.metaText.tempo=m.tempo);break;case"T":r.titlecaps&&(f=f.toUpperCase()),this.setTitle(a.parseFontChangeLine(e.theReverser(f)),h);break;case"U":this.addUserDefinition(i,2,i.length);break;case"V":if(n.parseVoice(i,2,i.length),!r.is_in_header)return{newline:!0};break;case"s":return{symbols:!0};case"w":return{words:!0};case"X":break;case"E":case"m":t("Ignored header",i,0);break;default:return{regular:!0}}}return{}}}},9708:function(e,t,r){var i=r(5008),a=r(8360),n=r(2821),s={};!function(){var e,t,r,o;s.initialize=function(i,a,n,s,c){e=i,t=a,r=n,o=c},s.standardKey=function(e,t,i,a){return n.keySignature(r,e,t,i,a)};var c={treble:{clef:"treble",pitch:4,mid:0},"treble+8":{clef:"treble+8",pitch:4,mid:0},"treble-8":{clef:"treble-8",pitch:4,mid:0},"treble^8":{clef:"treble+8",pitch:4,mid:0},treble_8:{clef:"treble-8",pitch:4,mid:0},treble1:{clef:"treble",pitch:2,mid:2},treble2:{clef:"treble",pitch:4,mid:0},treble3:{clef:"treble",pitch:6,mid:-2},treble4:{clef:"treble",pitch:8,mid:-4},treble5:{clef:"treble",pitch:10,mid:-6},perc:{clef:"perc",pitch:6,mid:0},none:{clef:"none",mid:0},bass:{clef:"bass",pitch:8,mid:-12},"bass+8":{clef:"bass+8",pitch:8,mid:-12},"bass-8":{clef:"bass-8",pitch:8,mid:-12},"bass^8":{clef:"bass+8",pitch:8,mid:-12},bass_8:{clef:"bass-8",pitch:8,mid:-12},"bass+16":{clef:"bass",pitch:8,mid:-12},"bass-16":{clef:"bass",pitch:8,mid:-12},"bass^16":{clef:"bass",pitch:8,mid:-12},bass_16:{clef:"bass",pitch:8,mid:-12},bass1:{clef:"bass",pitch:2,mid:-6},bass2:{clef:"bass",pitch:4,mid:-8},bass3:{clef:"bass",pitch:6,mid:-10},bass4:{clef:"bass",pitch:8,mid:-12},bass5:{clef:"bass",pitch:10,mid:-14},tenor:{clef:"alto",pitch:8,mid:-8},tenor1:{clef:"alto",pitch:2,mid:-2},tenor2:{clef:"alto",pitch:4,mid:-4},tenor3:{clef:"alto",pitch:6,mid:-6},tenor4:{clef:"alto",pitch:8,mid:-8},tenor5:{clef:"alto",pitch:10,mid:-10},alto:{clef:"alto",pitch:6,mid:-6},alto1:{clef:"alto",pitch:2,mid:-2},alto2:{clef:"alto",pitch:4,mid:-4},alto3:{clef:"alto",pitch:6,mid:-6},alto4:{clef:"alto",pitch:8,mid:-8},alto5:{clef:"alto",pitch:10,mid:-10},"alto+8":{clef:"alto+8",pitch:6,mid:-6},"alto-8":{clef:"alto-8",pitch:6,mid:-6},"alto^8":{clef:"alto+8",pitch:6,mid:-6},alto_8:{clef:"alto-8",pitch:6,mid:-6}},l=function(e,t){var r=c[e];return(r?r.mid:0)+t};s.fixClef=function(e){var t=c[e.type];t&&(e.clefPos=t.pitch,e.type=t.clef)},s.deepCopyKey=function(e){var t={accidentals:[],root:e.root,acc:e.acc,mode:e.mode};return e.accidentals.forEach((function(e){t.accidentals.push(i.clone(e))})),t};var h={A:5,B:6,C:0,D:1,E:2,F:3,G:4,a:12,b:13,c:7,d:8,e:9,f:10,g:11};s.addPosToKey=function(e,t){var r=e.verticalPos;t.accidentals.forEach((function(e){var t=h[e.note];t-=r,e.verticalPos=t})),t.impliedNaturals&&t.impliedNaturals.forEach((function(e){var t=h[e.note];t-=r,e.verticalPos=t})),r<-10?(t.accidentals.forEach((function(e){e.verticalPos-=7,(e.verticalPos>=11||10===e.verticalPos&&"flat"===e.acc)&&(e.verticalPos-=7),"A"===e.note&&"sharp"===e.acc&&(e.verticalPos-=7),"G"!==e.note&&"F"!==e.note||"flat"!==e.acc||(e.verticalPos-=7)})),t.impliedNaturals&&t.impliedNaturals.forEach((function(e){e.verticalPos-=7,(e.verticalPos>=11||10===e.verticalPos&&"flat"===e.acc)&&(e.verticalPos-=7),"A"===e.note&&"sharp"===e.acc&&(e.verticalPos-=7),"G"!==e.note&&"F"!==e.note||"flat"!==e.acc||(e.verticalPos-=7)}))):r<-4?(t.accidentals.forEach((function(e){e.verticalPos-=7,-8!==r||"f"!==e.note&&"g"!==e.note||"sharp"!==e.acc||(e.verticalPos-=7)})),t.impliedNaturals&&t.impliedNaturals.forEach((function(e){e.verticalPos-=7,-8!==r||"f"!==e.note&&"g"!==e.note||"sharp"!==e.acc||(e.verticalPos-=7)}))):r>=7&&(t.accidentals.forEach((function(e){e.verticalPos+=7})),t.impliedNaturals&&t.impliedNaturals.forEach((function(e){e.verticalPos+=7})))},s.fixKey=function(e,t){var r=i.clone(t);return s.addPosToKey(e,r),r};var f=function(e){var t=0,r=e[t++];"^"!==r&&"_"!==r||(r=e[t++]);var i=h[r];for(void 0===i&&(i=6);t0){c.foundKey=!0;var f="",u="";o[0].token.length>1?o[0].token=o[0].token.substring(1):o.shift();var d=h.token;if(o.length>0){var p=e.getSharpFlat(o[0].token);if(p.len>0&&(o[0].token.length>1?o[0].token=o[0].token.substring(1):o.shift(),d+=p.token,f=p.token),o.length>0){var m=e.getMode(o[0].token);m.len>0&&(o.shift(),d+=m.token,u=m.token)}if(void 0===s.standardKey(d,h.token,f,0))return t("Unsupported key signature: "+d,i,0),c}var g,v=s.deepCopyKey(r.key),b=!n&&r.globalTranspose?-r.globalTranspose:0;if(n&&(g=r.globalTransposeOrigKeySig),r.key=s.deepCopyKey(s.standardKey(d,h.token,f,b)),n&&(r.globalTransposeOrigKeySig=g),r.key.mode=u,v){for(var y,x=0;x0;)switch(o[0].token){case"m":case"middle":if(o.shift(),0===o.length)return t("Expected = after middle",i,0),c;if("="!==(w=o.shift()).token){t("Expected = after middle",i,w.start);break}if(0===o.length)return t("Expected parameter after middle=",i,0),c;var E=e.getPitchFromTokens(o);E.warn&&t(E.warn,i,0),E.position&&(r.clef.verticalPos=E.position-6);break;case"transpose":if(o.shift(),0===o.length)return t("Expected = after transpose",i,0),c;if("="!==(w=o.shift()).token){t("Expected = after transpose",i,w.start);break}if(0===o.length)return t("Expected parameter after transpose=",i,0),c;if("number"!==o[0].type){t("Expected number after transpose",i,o[0].start);break}r.clef.transpose=o[0].intt,o.shift();break;case"stafflines":if(o.shift(),0===o.length)return t("Expected = after stafflines",i,0),c;if("="!==(w=o.shift()).token){t("Expected = after stafflines",i,w.start);break}if(0===o.length)return t("Expected parameter after stafflines=",i,0),c;if("number"!==o[0].type){t("Expected number after stafflines",i,o[0].start);break}r.clef.stafflines=o[0].intt,o.shift();break;case"staffscale":if(o.shift(),0===o.length)return t("Expected = after staffscale",i,0),c;if("="!==(w=o.shift()).token){t("Expected = after staffscale",i,w.start);break}if(0===o.length)return t("Expected parameter after staffscale=",i,0),c;if("number"!==o[0].type){t("Expected number after staffscale",i,o[0].start);break}r.clef.staffscale=o[0].floatt,o.shift();break;case"octave":if(o.shift(),0===o.length)return t("Expected = after octave",i,0),c;if("="!==(w=o.shift()).token){t("Expected = after octave",i,w.start);break}if(0===o.length)return t("Expected parameter after octave=",i,0),c;if("number"!==o[0].type){t("Expected number after octave",i,o[0].start);break}r.octave=o[0].intt,o.shift();break;case"style":if(o.shift(),0===o.length)return t("Expected = after style",i,0),c;if("="!==(w=o.shift()).token){t("Expected = after style",i,w.start);break}if(0===o.length)return t("Expected parameter after style=",i,0),c;switch(o[0].token){case"normal":case"harmonic":case"rhythm":case"x":case"triangle":r.style=o[0].token,o.shift();break;default:t("error parsing style element: "+o[0].token,i,o[0].start)}break;case"clef":if(o.shift(),0===o.length)return t("Expected = after clef",i,0),c;if("="!==(w=o.shift()).token){t("Expected = after clef",i,w.start);break}if(0===o.length)return t("Expected parameter after clef=",i,0),c;case"treble":case"bass":case"alto":case"tenor":case"perc":case"none":var _=o.shift();switch(_.token){case"treble":case"tenor":case"alto":case"bass":case"perc":case"none":break;case"C":case"c":_.token="alto";break;case"F":case"f":_.token="bass";break;case"G":case"g":_.token="treble";break;default:t("Expected clef name. Found "+_.token,i,_.start)}o.length>0&&"number"===o[0].type&&(_.token+=o[0].token,o.shift()),o.length>1&&("-"===o[0].token||"+"===o[0].token||"^"===o[0].token||"_"===o[0].token)&&"8"===o[1].token&&(_.token+=o[0].token+o[1].token,o.shift(),o.shift()),r.clef={type:_.token,verticalPos:l(_.token,0)},r.currentVoice&&void 0!==r.currentVoice.transpose&&(r.clef.transpose=r.currentVoice.transpose),c.foundClef=!0;break;default:t("Unknown parameter: "+o[0].token,i,o[0].start),o.shift()}return c},s.parseVoice=function(i,a,n){var s=e.getMeat(i,a,n),c=s.start,h=s.end,u=e.getToken(i,c,h);if(0!==u.length){var d=!1;void 0===r.voices[u]&&(r.voices[u]={},d=!0,r.score_is_present&&t("Can't have an unknown V: id when the %score directive is present",i,c)),c+=u.length,c+=e.eatWhiteSpace(i,c);for(var p={startStaff:d},m=function(r){var a=e.getVoiceToken(i,c,h);void 0!==a.warn?t("Expected value for "+r+" in voice: "+a.warn,i,c):void 0!==a.err?t("Expected value for "+r+" in voice: "+a.err,i,c):0===a.token.length&&'"'!==i[c]?t("Expected value for "+r+" in voice",i,c):p[r]=a.token,c+=a.len},g=function(a,n,s){var o=e.getVoiceToken(i,c,h);void 0!==o.warn?t("Expected value for "+n+" in voice: "+o.warn,i,c):void 0!==o.err?t("Expected value for "+n+" in voice: "+o.err,i,c):0===o.token.length&&'"'!==i[c]?t("Expected value for "+n+" in voice",i,c):("number"===s&&(o.token=parseFloat(o.token)),r.voices[a][n]=o.token),c+=o.len},v=function(r,a){var n=e.getVoiceToken(i,c,h);if(void 0!==n.warn)t("Expected value for "+r+" in voice: "+n.warn,i,c);else if(void 0!==n.err)t("Expected value for "+r+" in voice: "+n.err,i,c);else{if(0!==n.token.length||'"'===i[c])return"number"===a&&(n.token=parseFloat(n.token)),n.token;t("Expected value for "+r+" in voice",i,c)}c+=n.len},b=function(a,n){var s=e.getVoiceToken(i,c,h);if(void 0!==s.warn)t("Expected one of (_B, _E, _b, _e) for "+n+" in voice: "+s.warn,i,c);else if(0===s.token.length&&'"'!==i[c])t("Expected one of (_B, _E, _b, _e) for "+n+" in voice",i,c);else{var o={_B:2,_E:9,_b:-10,_e:-3}[s.token];o?r.voices[a][n]=o:t("Expected one of (_B, _E, _b, _e) for "+n+" in voice",i,c)}c+=s.len};c0&&(t+=f[0],"V"===f[1]&&this.startNewLine());for(var u=0;t0)t+=p[0],"V"===p[1]&&(l=!0);else{var m;for((!o.hasBeginMusic()||l&&!this.lineContinuation)&&(this.startNewLine(),l=!1);;)if((m=i.eatWhiteSpace(e,t))>0&&(t+=m),t>0&&""===e[t-1]&&(m=c.letter_to_body_header(e,t))[0]>0&&("V"===m[1]&&this.startNewLine(),t=m[0],n.start_new_line=!1),(m=P(e,t))[0]>0&&(t+=m[0]),(m=_(e,t))[0]>0){N.chord||(N.chord=[]);var g=i.translateString(m[1]);g=g.replace(/;/g,"\n");for(var v=!1,x=0;x0&&(N.force_end_beam_last=!0),t+=w}else if((m=-1===b.indexOf(e[t])?L(e,t):[0])[0]>0)null===m[1]?t+10&&(0===m[1].indexOf("style=")?N.style=m[1].substr(6):(void 0===N.decoration&&(N.decoration=[]),"beambr1"===m[1]?N.beambr=1:"beambr2"===m[1]?N.beambr=2:N.decoration.push(m[1]))),t+=m[0];else{if(!((m=M(e,t))[0]>0))break;N.gracenotes=m[1],t+=m[0]}if((m=z(e,t))[0]>0){u=0,void 0!==N.gracenotes&&(N.rest={type:"spacer"},N.duration=.125,n.addFormattingOptions(N,s.formatting,"note"),o.appendElement("note",r+t,r+t+m[0],N),n.measureNotEmpty=!0,N={});var k={type:m[1]};0===k.type.length?a("Unknown bar type",e,t):(n.inEnding&&"bar_thin"!==k.type&&(k.endEnding=!0,n.inEnding=!1),m[2]&&(k.startEnding=m[2],n.inEnding&&(k.endEnding=!0),n.inEnding=!0,"bar_right_repeat"===m[1]?n.restoreStartEndingHoldOvers():n.duplicateStartEndingHoldOvers()),void 0!==N.decoration&&(k.decoration=N.decoration),void 0!==N.chord&&(k.chord=N.chord),k.startEnding&&void 0===n.barFirstEndingNum?n.barFirstEndingNum=n.currBarNumber:k.startEnding&&k.endEnding&&n.barFirstEndingNum?n.currBarNumber=n.barFirstEndingNum:k.endEnding&&(n.barFirstEndingNum=void 0),"bar_invisible"!==k.type&&n.measureNotEmpty&&(void 0===n.currentVoice||0===n.currentVoice.staffNum&&0===n.currentVoice.index)&&(n.currBarNumber++,n.barNumbers&&n.currBarNumber%n.barNumbers==0&&(k.barNumber=n.currBarNumber)),n.addFormattingOptions(N,s.formatting,"bar"),o.appendElement("bar",r+d,r+t+m[0],k),n.measureNotEmpty=!1,N={}),t+=m[0]}else if("&"===e[t])(m=A(e,t))[0]>0&&(o.appendElement("overlay",r,r+1,{}),t+=1,u++);else{if((m=H(e,t)).consumed>0&&(void 0!==m.startSlur&&(N.startSlur=m.startSlur),m.dottedSlur&&(N.dottedSlur=!0),void 0!==m.triplet&&(h>0?a("Can't nest triplets",e,t):(N.startTriplet=m.triplet,N.tripletMultiplier=m.tripletQ/m.triplet,N.tripletR=m.num_notes,h=void 0===m.num_notes?m.triplet:m.num_notes)),t+=m.consumed),"["===e[t]){t++;for(var T=null,C=!1,I=!1;!I;){var V=L(e,t);V[0]>0&&(t+=V[0]);var Y=D(e,t,{},!1);if(null!==Y&&void 0!==Y.pitch)V[0]>0&&0!==V[1].indexOf("style=")&&(void 0===N.decoration&&(N.decoration=[]),N.decoration.push(V[1])),Y.end_beam&&(N.end_beam=!0,delete Y.end_beam),void 0===N.pitches?(N.duration=Y.duration,N.pitches=[Y]):N.pitches.push(Y),delete Y.duration,V[0]>0&&0===V[1].indexOf("style=")&&(N.pitches[N.pitches.length-1].style=V[1].substr(6)),n.inTieChord[N.pitches.length]&&(Y.endTie=!0,n.inTieChord[N.pitches.length]=void 0),Y.startTie&&(n.inTieChord[N.pitches.length]=!0),t=Y.endChar,delete Y.endChar;else if(" "===e[t])a("Spaces are not allowed in chords",e,t),t++;else{if(t0&&(!N.rest||"spacer"!==N.rest.type)&&0==--h&&(N.endTriplet=!0);for(var G=!1;t":case"<":var j=F(e,t);t+=j[0]-1,n.next_note_duration=j[2],T?T*=j[1]:T=j[1];break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"/":var W=i.getFraction(e,t);T=W.value;var q=e[t=W.index];" "===q&&(C=!0),"-"===q||")"===q||" "===q||"<"===q||">"===q?t--:G=!0;break;default:G=!0}G||t++}}else a("Expected ']' to end the chords",e,t);void 0!==N.pitches&&(null!==T&&(N.duration=N.duration*T,C&&O(N)),n.addFormattingOptions(N,s.formatting,"note"),o.appendElement("note",r+d,r+t,N),n.measureNotEmpty=!0,N={}),I=!0}}}else{var X={},R=D(e,t,X,!0);void 0!==X.endTie&&E(n,u,!0),null!==R&&(void 0!==R.pitch?(N.pitches=[{}],void 0!==R.accidental&&(N.pitches[0].accidental=R.accidental),N.pitches[0].pitch=R.pitch,N.pitches[0].name=R.name,(R.midipitch||0===R.midipitch)&&(N.pitches[0].midipitch=R.midipitch),void 0!==R.endSlur&&(N.pitches[0].endSlur=R.endSlur),void 0!==R.endTie&&(N.pitches[0].endTie=R.endTie),void 0!==R.startSlur&&(N.pitches[0].startSlur=R.startSlur),void 0!==N.startSlur&&(N.pitches[0].startSlur=N.startSlur),void 0!==N.dottedSlur&&(N.pitches[0].dottedSlur=!0),void 0!==R.startTie&&(N.pitches[0].startTie=R.startTie),void 0!==N.startTie&&(N.pitches[0].startTie=N.startTie)):(N.rest=R.rest,void 0!==R.endSlur&&(N.endSlur=R.endSlur),void 0!==R.endTie&&(N.rest.endTie=R.endTie),void 0!==R.startSlur&&(N.startSlur=R.startSlur),void 0!==R.startTie&&(N.rest.startTie=R.startTie),void 0!==N.startTie&&(N.rest.startTie=N.startTie)),void 0!==R.chord&&(N.chord=R.chord),void 0!==R.duration&&(N.duration=R.duration),void 0!==R.decoration&&(N.decoration=R.decoration),void 0!==R.graceNotes&&(N.graceNotes=R.graceNotes),delete N.startSlur,delete N.dottedSlur,S(n,u,N)&&(void 0!==N.pitches?N.pitches[0].endTie=!0:"spacer"!==N.rest.type&&(N.rest.endTie=!0),E(n,u,!1)),(R.startTie||N.startTie)&&E(n,u,!0),t=R.endChar,h>0&&(!R.rest||"spacer"!==R.rest.type)&&0==--h&&(N.endTriplet=!0),R.end_beam&&O(N),N.rest&&"rest"===N.rest.type&&1===N.duration&&B(n)<=1&&(N.rest.type="whole",N.duration=B(n)),N.duration<1&&-1===y.indexOf(N.duration)&&0!==N.duration&&(N.rest&&"spacer"===N.rest.type||a("Duration not representable: "+e.substring(d,t),e,t)),n.addFormattingOptions(N,s.formatting,"note"),o.appendElement("note",r+d,r+t,N),n.measureNotEmpty=!0,N={})}t===d&&(" "!==e[t]&&"`"!==e[t]&&a("Unknown character ignored",e,t),t++)}}}this.lineContinuation=e.indexOf("")>=0||f[0]>0,this.lineContinuation||(N={})}};var E=function(e,t,r){var i=e.currentVoice?100*e.currentVoice.staffNum+e.currentVoice.index:0;void 0===e.inTie[t]&&(e.inTie[t]=[]),e.inTie[t][i]=r},_=function(e,t){if('"'===e[t]){var r=i.getBrackettedSubstring(e,t,5);if(r[2]||a("Missing the closing quote while parsing the chord symbol",e,t),r[0]>0&&r[1].length>0&&"^"===r[1][0])r[1]=r[1].substring(1),r[2]="above";else if(r[0]>0&&r[1].length>0&&"_"===r[1][0])r[1]=r[1].substring(1),r[2]="below";else if(r[0]>0&&r[1].length>0&&"<"===r[1][0])r[1]=r[1].substring(1),r[2]="left";else if(r[0]>0&&r[1].length>0&&">"===r[1][0])r[1]=r[1].substring(1),r[2]="right";else if(r[0]>0&&r[1].length>0&&"@"===r[1][0]){r[1]=r[1].substring(1);var s=i.getFloat(r[1]);0===s.digits&&a("Missing first position in absolutely positioned annotation.",e,t),r[1]=r[1].substring(s.digits),","!==r[1][0]&&a("Missing comma absolutely positioned annotation.",e,t),r[1]=r[1].substring(1);var o=i.getFloat(r[1]);0===o.digits&&a("Missing second position in absolutely positioned annotation.",e,t),r[1]=r[1].substring(o.digits);var c=i.skipWhiteSpace(r[1]);r[1]=r[1].substring(c),r[2]=null,r[3]={x:s.value,y:o.value}}else!0!==n.freegchord&&(r[1]=r[1].replace(/([ABCDEFG0-9])b/g,"$1♭"),r[1]=r[1].replace(/([ABCDEFG0-9])#/g,"$1♯"),r[1]=r[1].replace(/^([ABCDEFG])([♯♭]?)o([^A-Za-z])/g,"$1$2°$3"),r[1]=r[1].replace(/^([ABCDEFG])([♯♭]?)o$/g,"$1$2°"),r[1]=r[1].replace(/^([ABCDEFG])([♯♭]?)0([^A-Za-z])/g,"$1$2ø$3"),r[1]=r[1].replace(/^([ABCDEFG])([♯♭]?)\^([^A-Za-z])/g,"$1$2∆$3")),r[2]="default",r[1]=f.chordName(n,r[1]);return r}return[0,""]},M=function(e,t){if("{"===e[t]){var r=i.getBrackettedSubstring(e,t,1,"}");r[2]||a("Missing the closing '}' while parsing grace note",e,t),")"===e[t+r[0]]&&(r[0]++,r[1]+=")");for(var s=[],o=0,c=!1;o0&&(s[s.length-1].endBeam=!0):a("Unknown character '"+r[1][o]+"' while parsing grace note",e,t),o++)}if(s.length)return[r[0],s]}return[0]};function A(e,t){if("&"===e[t]){for(var r=t;e[t]&&":"!==e[t]&&"|"!==e[t];)t++;return[t-r,e.substring(r+1,t)]}return[0]}function B(e){var t=e.origMeter;return t&&"specified"===t.type&&t.value&&0!==t.value.length?parseInt(t.value[0].num,10)/parseInt(t.value[0].den,10):1}var L=function(e,t){var r=n.macros[e[t]];if(void 0!==r)return"!"!==r[0]&&"+"!==r[0]||(r=r.substring(1)),"!"!==r[r.length-1]&&"+"!==r[r.length-1]||(r=r.substring(0,r.length-1)),d.includes(r)?[1,r]:p.includes(r)?("hidden"===n.volumePosition&&(r=""),[1,r]):m.includes(r)?("hidden"===n.dynamicPosition&&(r=""),[1,r]):(n.ignoredDecorations.includes(r)||a("Unknown macro: "+r,e,t),[1,""]);switch(e[t]){case".":if("("===e[t+1]||"-"===e[t+1])break;return[1,"staccato"];case"u":return[1,"upbow"];case"v":return[1,"downbow"];case"~":return[1,"irishroll"];case"!":case"+":var s=i.getBrackettedSubstring(e,t,5);if(s[1].length>1&&("^"===s[1][0]||"_"===s[1][0])&&(s[1]=s[1].substring(1)),d.includes(s[1]))return s;if(p.includes(s[1]))return"hidden"===n.volumePosition&&(s[1]=""),s;if(m.includes(s[1]))return"hidden"===n.dynamicPosition&&(s[1]=""),s;var o=g.findIndex((function(e){return s[1]===e[0]}));return o>=0?(s[1]=g[o][1],s):(o=v.findIndex((function(e){return s[1]===e[0]})))>=0?(s[1]=v[o][1],"hidden"===n.dynamicPosition&&(s[1]=""),s):"!"!==e[t]||1!==s[0]&&"!"===e[t+s[0]-1]?(a("Unknown decoration: "+s[1],e,t),s[1]="",s):[1,null];case"H":return[1,"fermata"];case"J":return[1,"slide"];case"L":return[1,"accent"];case"M":return[1,"mordent"];case"O":return[1,"coda"];case"P":return[1,"pralltriller"];case"R":return[1,"roll"];case"S":return[1,"segno"];case"T":return[1,"trill"]}return[0,0]},P=function(e,t){for(var r=t;i.isWhiteSpace(e[t]);)t++;return[t-r]},z=function(e,t){var r=i.getBarLine(e,t);if(0===r.len)return[0,""];if(r.warn)return a(r.warn,e,t),[r.len,""];for(var n=0;n="2"&&e[t+1]<="9"?(void 0!==r.triplet?a("Can't nest triplets",e,t):(r.triplet=e[t+1]-"0",r.tripletQ=T[r.triplet],r.num_notes=r.triplet,t+2="1"&&e[t+4]<="9"?(r.num_notes=e[t+4]-"0",t+=3):a("expected number after the two colons after the triplet to mark the duration",e,t):t+3="1"&&e[t+3]<="9"?(r.tripletQ=e[t+3]-"0",t+4="1"&&e[t+5]<="9"&&(r.num_notes=e[t+5]-"0",t+=4):t+=2):a("expected number after the triplet to mark the duration",e,t))),t++):void 0===r.startSlur?r.startSlur=1:r.startSlur++),t++;return r.consumed=t-n,r};C.prototype.startNewLine=function(){var e={startChar:-1,endChar:-1};n.partForNextLine.title&&(e.part=n.partForNextLine),e.clef=n.currentVoice&&void 0!==n.staves[n.currentVoice.staffNum].clef?l.clone(n.staves[n.currentVoice.staffNum].clef):l.clone(n.clef);var t=n.currentVoice?n.currentVoice.scoreTranspose:0;if(e.key=h.standardKey(n.key.root+n.key.acc+n.key.mode,n.key.root,n.key.acc,t),e.key.mode=n.key.mode,n.key.impliedNaturals&&(e.key.impliedNaturals=n.key.impliedNaturals),n.key.explicitAccidentals)for(var r=0;r=0?(r.duration=s.getBarLength(),r.rest.text=1,h="Zduration"):(a&&0!==n.next_note_duration?(r.duration=n.default_length*n.next_note_duration,n.next_note_duration=0,u=!0):r.duration=n.default_length,h="duration");break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"0":case"/":if("octave"===h||"duration"===h){var p=i.getFraction(e,t);for(r.duration=r.duration*p.value,r.endChar=p.index;p.index"!==e[t])return r;t--,h="broken_rhythm";break;case">":case"<":if(!l(h))return null;if(!a)return r.endChar=t,r;var g=F(e,t);t+=g[0]-1,n.next_note_duration=g[2],r.duration=g[1]*r.duration,h="end_slur";break;default:return l(h)?(r.endChar=t,r):null}if(++t===e.length)return l(h)?(r.endChar=t,r):null}return null},F=function(e,t){switch(e[t]){case">":return t"===e[t+1]&&">"===e[t+2]?[3,1.875,.125]:t"===e[t+1]?[2,1.75,.25]:[1,1.5,.5];case"<":return t","accent"],["tr","trill"],["plus","+"],["emphasis","accent"],["^","umarcato"],["marcato","umarcato"]],e.exports.accentDynamicPseudonyms=[["<(","crescendo("],["<)","crescendo)"],[">(","diminuendo("],[">)","diminuendo)"]],e.exports.nonDecorations="ABCDEFGabcdefgxyzZ[]|^_{",e.exports.durations=[.5,.75,.875,.9375,.96875,.984375,.25,.375,.4375,.46875,.484375,.4921875,.125,.1875,.21875,.234375,.2421875,.24609375,.0625,.09375,.109375,.1171875,.12109375,.123046875,.03125,.046875,.0546875,.05859375,.060546875,.0615234375,.015625,.0234375,.02734375,.029296875,.0302734375,.03076171875],e.exports.pitches={A:5,B:6,C:0,D:1,E:2,F:3,G:4,a:12,b:13,c:7,d:8,e:9,f:10,g:11},e.exports.rests={x:"invisible",X:"invisible-multimeasure",y:"spacer",z:"rest",Z:"multimeasure"},e.exports.accMap={dblflat:"__",flat:"_",natural:"=",sharp:"^",dblsharp:"^^",quarterflat:"_/",quartersharp:"^/"},e.exports.tripletQ={2:3,3:2,4:3,5:2,6:2,7:2,8:3,9:2}},1881:function(e,t,r){var i=r(5008),a=function(e,t){this.lineIndex=0,this.lines=e,this.multilineVars=t,this.skipWhiteSpace=function(e){for(var t=0;t=e.length};this.eatWhiteSpace=function(e,t){for(var r=t;r="a"&&e[t]<="z"||e[t]>="A"&&e[t]<="Z");)t++;return t},i=this.skipWhiteSpace(e);if(r(e,i))return{len:0};var a=e.substring(i,i+3).toLowerCase();switch((a.length>1&&" "===a[1]||"^"===a[1]||"_"===a[1]||"="===a[1])&&(a=a[0]),a){case"mix":return{len:t(e,i),token:"Mix"};case"dor":return{len:t(e,i),token:"Dor"};case"phr":return{len:t(e,i),token:"Phr"};case"lyd":return{len:t(e,i),token:"Lyd"};case"loc":return{len:t(e,i),token:"Loc"};case"aeo":case"min":case"m":return{len:t(e,i),token:"m"};case"maj":case"ion":return{len:t(e,i),token:""}}return{len:0}},this.getClef=function(e,t){var a=e,n=this.skipWhiteSpace(e);if(r(e,n))return{len:0};var s=!1,o=e.substring(n);if(i.startsWith(o,"clef=")&&(s=!0,o=o.substring(5),n+=5),0===o.length&&s)return{len:n+5,warn:"No clef specified: "+a};var c=this.skipWhiteSpace(o);if(r(o,c))return{len:0};c>0&&(n+=c,o=o.substring(c));var l=null;if(i.startsWith(o,"treble"))l="treble";else if(i.startsWith(o,"bass3"))l="bass3";else if(i.startsWith(o,"bass"))l="bass";else if(i.startsWith(o,"tenor"))l="tenor";else if(i.startsWith(o,"alto2"))l="alto2";else if(i.startsWith(o,"alto1"))l="alto1";else if(i.startsWith(o,"alto"))l="alto";else if(!t&&s&&i.startsWith(o,"none"))l="none";else if(i.startsWith(o,"perc"))l="perc";else if(!t&&s&&i.startsWith(o,"C"))l="tenor";else if(!t&&s&&i.startsWith(o,"F"))l="bass";else{if(t||!s||!i.startsWith(o,"G"))return{len:n+5,warn:"Unknown clef specified: "+a};l="treble"}return o=o.substring(l.length),(c=this.isMatch(o,"+8"))>0?l+="+8":(c=this.isMatch(o,"-8"))>0&&(l+="-8"),{len:n+l.length,token:l,explicit:s}},this.getBarLine=function(e,t){switch(e[t]){case"]":switch(e[++t]){case"|":return{len:2,token:"bar_thick_thin"};case"[":return e[++t]>="1"&&e[t]<="9"||'"'===e[t]?{len:2,token:"bar_invisible"}:{len:1,warn:"Unknown bar symbol"};default:return{len:1,token:"bar_invisible"}}break;case":":switch(e[++t]){case":":return{len:2,token:"bar_dbl_repeat"};case"|":switch(e[++t]){case"]":return"|"===e[++t]&&":"===e[++t]?{len:5,token:"bar_dbl_repeat"}:{len:3,token:"bar_right_repeat"};case"|":return":"===e[++t]?{len:4,token:"bar_dbl_repeat"}:{len:3,token:"bar_right_repeat"};default:return{len:2,token:"bar_right_repeat"}}break;default:return{len:1,warn:"Unknown bar symbol"}}break;case"[":if("|"!==e[++t])return e[t]>="1"&&e[t]<="9"||'"'===e[t]?{len:1,token:"bar_invisible"}:{len:0};switch(e[++t]){case":":return{len:3,token:"bar_left_repeat"};case"]":return{len:3,token:"bar_invisible"};default:return{len:2,token:"bar_thick_thin"}}break;case"|":switch(e[++t]){case"]":return{len:2,token:"bar_thin_thick"};case"|":return":"===e[++t]?{len:3,token:"bar_left_repeat"}:{len:2,token:"bar_thin_thin"};case":":for(var r=0;":"===e[t+r];)r++;return{len:1+r,token:"bar_left_repeat"};default:return{len:1,token:"bar_thin"}}}return{len:0}},this.getTokenOf=function(e,t){for(var r=0;r0;){var r;if("^"===e[0].token){if(r="sharp",e.shift(),0===e.length)return{accs:t,warn:"Expected note name after "+r};switch(e[0].token){case"^":r="dblsharp",e.shift();break;case"/":r="quartersharp",e.shift()}}else if("="===e[0].token)r="natural",e.shift();else{if("_"!==e[0].token)return{accs:t};if(r="flat",e.shift(),0===e.length)return{accs:t,warn:"Expected note name after "+r};switch(e[0].token){case"_":r="dblflat",e.shift();break;case"/":r="quarterflat",e.shift()}}if(0===e.length)return{accs:t,warn:"Expected note name after "+r};switch(e[0].token[0]){case"a":case"b":case"c":case"d":case"e":case"f":case"g":case"A":case"B":case"C":case"D":case"E":case"F":case"G":void 0===t&&(t=[]),t.push({acc:r,note:e[0].token[0]}),1===e[0].token.length?e.shift():e[0].token=e[0].token.substring(1);break;default:return{accs:t,warn:"Expected note name after "+r+" Found: "+e[0].token}}}return{accs:t}},this.getKeyAccidental=function(e){var t={"^":"sharp","^^":"dblsharp","=":"natural",_:"flat",__:"dblflat","_/":"quarterflat","^/":"quartersharp"},i=this.skipWhiteSpace(e);if(r(e,i))return{len:0};var a=null;switch(e[i]){case"^":case"_":case"=":a=e[i];break;default:return{len:0}}if(i++,r(e,i))return{len:1,warn:"Expected note name after accidental"};switch(e[i]){case"a":case"b":case"c":case"d":case"e":case"f":case"g":case"A":case"B":case"C":case"D":case"E":case"F":case"G":return{len:i+1,token:{acc:t[a],note:e[i]}};case"^":case"_":case"/":if(a+=e[i],i++,r(e,i))return{len:2,warn:"Expected note name after accidental"};switch(e[i]){case"a":case"b":case"c":case"d":case"e":case"f":case"g":case"A":case"B":case"C":case"D":case"E":case"F":case"G":return{len:i+1,token:{acc:t[a],note:e[i]}};default:return{len:2,warn:"Expected note name after accidental"}}break;default:return{len:1,warn:"Expected note name after accidental"}}},this.isWhiteSpace=function(e){return" "===e||"\t"===e||""===e},this.getMeat=function(e,t,r){var i=e.indexOf("%",t);for(i>=0&&i="A"&&e<="Z"||e>="a"&&e<="z"},n=function(e){return e>="0"&&e<="9"};this.tokenize=function(e,t,r,i){var s=this.getMeat(e,t,r);t=s.start,r=s.end;for(var o,c=[];t=r?{len:1,err:"Missing close quote"}:{len:a-t+1,token:this.translateString(e.substring(i+1,a))}}for(var n=i;n=0?i.strip(e.substring(0,t)):i.strip(e)},this.getInt=function(e){var t=parseInt(e);if(isNaN(t))return{digits:0};var r=""+t;return{value:t,digits:e.indexOf(r)+r.length}},this.getFloat=function(e){var t=parseFloat(e);if(isNaN(t))return{digits:0};var r=""+t;return{value:t,digits:e.indexOf(r)+r.length}},this.getMeasurement=function(e){if(0===e.length)return{used:0};var t=1,r="";if("-"===e[0].token)e.shift(),r="-",t++;else if("number"!==e[0].type)return{used:0};if(r+=e.shift().token,0===e.length)return{used:1,value:parseInt(r)};var i=e.shift();if("."===i.token){if(t++,0===e.length)return{used:t,value:parseInt(r)};if("number"===e[0].type&&(r=r+"."+(i=e.shift()).token,t++,0===e.length))return{used:t,value:parseFloat(r)};i=e.shift()}switch(i.token){case"pt":case"px":return{used:t+1,value:parseFloat(r)};case"cm":return{used:t+1,value:parseFloat(r)/2.54*72};case"in":return{used:t+1,value:72*parseFloat(r)};default:return e.unshift(i),{used:t,value:parseFloat(r)}}};var f=function(e){return e=(e=e.replace(/\\n/g,"\n")).replace(/\\"/g,'"')};this.getBrackettedSubstring=function(e,t,r,i){for(var a=i||e[t],n=t+1,s=!1;ne.length-1&&(n=e.length-1),[n-t+1,f(e.substring(t+1,n)),!1])}};a.prototype.peekLine=function(){return this.lines[this.lineIndex]},a.prototype.nextLine=function(){if(this.lineIndex>0&&(this.multilineVars.iChar+=this.lines[this.lineIndex-1].length+1),this.lineIndex11&&(d%=12);var p="m"===t[0]?l[d]:c[d],m=p+t,g=n(m);g.length>0&&"flat"===g[0].acc&&(e.localTransposePreferFlats=!0);var v=m.charCodeAt(0)-h.charCodeAt(0);return e.localTranspose>0?v<0?v+=7:0===v&&("#"!==h[1]&&"b"!==m[1]||(v+=7)):e.localTranspose<0&&(v>0?v-=7:0===v&&("b"!==h[1]&&"#"!==m[1]||(v-=7))),e.localTranspose>0?e.localTransposeVerticalMovement=v+7*Math.floor(e.localTranspose/12):e.localTransposeVerticalMovement=v+7*Math.ceil(e.localTranspose/12),u?{accidentals:g,root:p[0],acc:p.length>1?p[1]:""}:{accidentals:[],root:r,acc:i}},s.chordName=function(e,t){return a(t,e.localTranspose,e.localTransposePreferFlats,e.freegchord)};var h=["c","d","e","f","g","a","b"],f={dblflat:-2,flat:-1,natural:0,sharp:1,dblsharp:2},u={"-2":"dblflat","-1":"flat",0:"natural",1:"sharp",2:"dblsharp"},d={"-2":"__","-1":"_",0:"=",1:"^",2:"^^"};s.note=function(e,t){if(e.localTranspose&&"perc"!==e.clef.type){var r=t.pitch;if(e.localTransposeVerticalMovement&&(t.pitch=t.pitch+e.localTransposeVerticalMovement,t.name)){var a=t.accidental?t.name.substring(1):t.name,n=t.accidental?t.name[0]:"",s=i.pitchIndex(a);t.name=n+i.noteName(s+e.localTransposeVerticalMovement)}if(t.accidental){var o=function(e,t,r,i,a){for(var n=h[(e+49)%7],s=0,o=0;o2&&(t++,p-="b"===l||"e"===l?1:2),[t,p]}(r,t.pitch,t.accidental,e.globalTransposeOrigKeySig,e.targetKey);t.pitch=o[0],t.accidental=u[o[1]],t.name&&(t.name=d[o[1]]+t.name.replace(/[_^=]/g,""))}}},e.exports=s},867:function(e){var t={},r=["C,,,","D,,,","E,,,","F,,,","G,,,","A,,,","B,,,","C,,","D,,","E,,","F,,","G,,","A,,","B,,","C,","D,","E,","F,","G,","A,","B,","C","D","E","F","G","A","B","c","d","e","f","g","a","b","c'","d'","e'","f'","g'","a'","b'","c''","d''","e''","f''","g''","a''","b''","c'''","d'''","e'''","f'''","g'''","a'''","b'''"];t.pitchIndex=function(e){return r.indexOf(e)},t.noteName=function(e){return r[e]},e.exports=t},4208:function(e){var t=["C","C♯","D","D♯","E","F","F♯","G","G♯","A","A♯","B"],r=["C","D♭","D","E♭","E","F","G♭","G","A♭","A","B♭","B"],i=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"],a=["C","Db","D","Eb","E","F","Gb","G","Ab","A","Bb","B"];e.exports=function(e,n,s,o){if(!n||n%12==0)return e;for(;n<0;)n+=12;n>11&&(n%=12);var c=e.match(/^([A-G][b#♭♯]?)([^\/]+)?\/?([A-G][b#♭♯]?)?(.+)?/);if(!c)return e;var l,h=c[1],f=c[2],u=c[3],d=c[4];return(l=t.indexOf(h))<0&&(l=r.indexOf(h)),l<0&&(l=i.indexOf(h)),l<0&&(l=a.indexOf(h)),l<0||(l+=n,l%=12,e=s?o?a[l]:r[l]:o?i[l]:t[l],f&&(e+=f),u&&((l=t.indexOf(u))<0&&(l=r.indexOf(u)),l<0&&(l=i.indexOf(u)),l<0&&(l=a.indexOf(u)),e+="/",l>=0?(l+=n,l%=12,e+=s?o?a[l]:r[l]:o?i[l]:t[l]):e+=u),d&&(e+=d)),e}},575:function(e,t,r){var i=r(9708),a=r(5008);function n(e){if(!e)return!1;if("string"==typeof e)return!1;for(var t=0;t0&&"bar"!==e[r].el_type;r--);return r}this.setVisualTranspose=function(t){t&&(e.visualTranspose=t)},this.resolveOverlays=function(){for(var t=!1,i=[],n=0;n0&&l[h].voice.push({el_type:"note",duration:u,rest:{type:"invisible"},startChar:v.startChar,endChar:v.endChar}),l[h].voice.push(v)),u=0):"note"===v.el_type?d?l[h].voice.push(v):(u+=v.duration,i[n]+=v.duration):"scale"!==v.el_type&&"stem"!==v.el_type&&"overlay"!==v.el_type&&"style"!==v.el_type&&"transpose"!==v.el_type&&"color"!==v.el_type||l[h].voice.push(v);else{t=!0,d=!0,m=g,l[h].hasOverlay=!0,0===p&&(p=i[n]);for(var b=0;b=e.lines[b].staff[0].voices.length&&e.lines[b].staff[0].voices.push([{el_type:"note",duration:i[b],rest:{type:"invisible"},startChar:v.startChar,endChar:v.endChar}])}}l[h].hasOverlay&&0===l[h].snip.length&&l[h].snip.push({start:m,len:f.length-m})}for(h=0;h=0;x--){var w=y.snip[x];c.voices[h].splice(w.start,w.len),c.voices[h].splice(w.start+1,0,{el_type:"stem",direction:"auto"});var k=r(c.voices[h],w.start);c.voices[h].splice(k,0,{el_type:"stem",direction:"up"})}for(x=0;x=t&&st;){if(e[t].staff)return e[t];t++}return null}for(e.lineNum=0;e.lineNum0&&b[b.length-1].barNumber){var x=g(e.lines,e.lineNum);x&&(x.staff[0].barNumber=b[b.length-1].barNumber),delete b[b.length-1].barNumber}}}return delete e.staffNum,delete e.voiceNum,delete e.lineNum,delete e.potentialStartBeam,delete e.potentialEndBeam,delete e.vskipPending,s},e.reset(),this.getLastNote=function(){if(e.lines[e.lineNum]&&e.lines[e.lineNum].staff&&e.lines[e.lineNum].staff[e.staffNum]&&e.lines[e.lineNum].staff[e.staffNum].voices[e.voiceNum])for(var t=e.lines[e.lineNum].staff[e.staffNum].voices[e.voiceNum].length-1;t>=0;t--){var r=e.lines[e.lineNum].staff[e.staffNum].voices[e.voiceNum][t];if("note"===r.el_type)return r}return null},this.addTieToLastNote=function(e){var t=this.getLastNote();return!!(t&&t.pitches&&t.pitches.length>0)&&(t.pitches[0].startTie={},e&&(t.pitches[0].startTie.style="dotted"),!0)},this.getDuration=function(e){return e.duration?e.duration:0},this.closeLine=function(){e.potentialStartBeam&&e.potentialEndBeam&&(e.potentialStartBeam.startBeam=!0,e.potentialEndBeam.endBeam=!0),delete e.potentialStartBeam,delete e.potentialEndBeam},this.appendElement=function(r,i,a,n){var s=e;n.el_type=r,null!==i&&(n.startChar=i),null!==a&&(n.endChar=a);var o=function(){void 0!==s.potentialStartBeam&&void 0!==s.potentialEndBeam&&(s.potentialStartBeam.startBeam=!0,s.potentialEndBeam.endBeam=!0),delete s.potentialStartBeam,delete s.potentialEndBeam};"note"===r?t.getDuration(n)>=.25||n.force_end_beam_last&&void 0!==s.potentialStartBeam?o():n.end_beam&&void 0!==s.potentialStartBeam?void 0===n.rest?(s.potentialStartBeam.startBeam=!0,n.endBeam=!0,delete s.potentialStartBeam,delete s.potentialEndBeam):o():void 0===n.rest&&(void 0===s.potentialStartBeam?n.end_beam||(s.potentialStartBeam=n,delete s.potentialEndBeam):s.potentialEndBeam=n):o(),delete n.end_beam,delete n.force_end_beam_last,function(e){var t=s.lines[s.lineNum].staff[s.staffNum];if(t){if(void 0!==e.pitches){var r=t.workingClef.verticalPos;e.pitches.forEach((function(e){e.verticalPos=e.pitch-r}))}if(void 0!==e.gracenotes){var i=t.workingClef.verticalPos;e.gracenotes.forEach((function(e){e.verticalPos=e.pitch-i}))}t.voices[s.voiceNum].push(e)}}(n)},this.appendStartingElement=function(t,r,i,n){var s;this.closeLine(),"key"===t&&(s=n.impliedNaturals,delete n.impliedNaturals,delete n.explicitAccidentals);var o=a.clone(n);if(e.lines[e.lineNum]&&e.lines[e.lineNum].staff){e.lines[e.lineNum].staff.length<=e.staffNum&&(e.lines[e.lineNum].staff[e.staffNum]={},e.lines[e.lineNum].staff[e.staffNum].clef=a.clone(e.lines[e.lineNum].staff[0].clef),e.lines[e.lineNum].staff[e.staffNum].key=a.clone(e.lines[e.lineNum].staff[0].key),e.lines[e.lineNum].staff[0].meter&&(e.lines[e.lineNum].staff[e.staffNum].meter=a.clone(e.lines[e.lineNum].staff[0].meter)),e.lines[e.lineNum].staff[e.staffNum].workingClef=a.clone(e.lines[e.lineNum].staff[0].workingClef),e.lines[e.lineNum].staff[e.staffNum].voices=[[]]),"clef"===t&&(e.lines[e.lineNum].staff[e.staffNum].workingClef=o);for(var c=e.lines[e.lineNum].staff[e.staffNum].voices[e.voiceNum],l=0;l0){if(void 0!==r.voices[0]){for(var a=!1,n=0;n0){var r=t[t.length-1];if("bar"!==r.el_type)return e-1;void 0!==r.barNumber&&(r.barNumber=e)}return e},this.hasBeginMusic=function(){for(var t=0;t=0;r--)if(void 0!==e.lines[r].staff)return!1;return!0},this.getCurrentVoice=function(){var t=e.lines[e.lineNum];if(!t)return null;var r=t.staff[e.staffNum];return r&&void 0!==r.voices[e.voiceNum]?r.voices[e.voiceNum]:null},this.setCurrentVoice=function(t,r){e.staffNum=t,e.voiceNum=r;for(var i=0;i0?(r.push(n-1),i.push(Math.round(a-s)),a=s):ns&&us?(l.push(u-1),c++,o=Math.max(o,s),s=Math.abs(i-t[c]),n.push(a-d),a=d):s=p}n.push(a)}function a(e,t,r,a){for(var n=Math.ceil(e.total/t),s=Math.floor(e.total/n),o=[],c=0;ct&&(s=!0),o%r==r-1&&(o!==e.length-1&&i.push(o),a.push(Math.round(n)),n=0);return{failed:s,totals:a,lineBreaks:i}}e.exports={wrapLines:function(e,t,r){if(t&&0!==e.lines.length){var i=e.deline({lineBreaks:!1}),a=function(e,t){for(var r=[],i=0,a=0,n=0,s=0;s0&&(i[c.line].staff[c.staff].barNumber=s);for(var h=Object.keys(l),f=0;f=0;p--)if("key"===d[p].el_type){a[c.staff]={root:d[p].root,acc:d[p].acc,mode:d[p].mode,accidentals:d[p].accidentals.filter((function(e){return"natural"!==e.acc}))};break}for(p=d.length-1;p>=0;p--)if("stem"===d[p].el_type){n[10*c.staff+c.voice]={direction:d[p].direction};break}if(void 0!==r&&0===c.staff&&0===c.voice)for(p=0;p0&&p.measureWidths.length<25&&(w=a(p,g,0,b),b.attempts.push({type:"Optimize",failed:w.failed,reason:w.reason,lineBreaks:w.lineBreaks,totals:w.totals}),w.failed||(y=w.lineBreaks))}f.push(y),u.push(b)}var k=function(e,t,r){var i={lineBreaks:e,staffwidth:t};for(var a in r)r.hasOwnProperty(a)&&"wrap"!==a&&"staffwidth"!==a&&(i[a]=r[a]);return{revisedParams:i}}(f,i.staffwidth,i);return k.explanation=u,k.reParse=!0,k}}},9716:function(e,t,r){var i,a=r(5008),n=r(5058);!function(){"use strict";var e,t,r,s,o,c,l,h,f,u,d,p,m,g,v,b,y,x,w,k,T,C,S,N,E=1,_={num:4,den:4},M=0,A=0,B=128,L=64,P=48,z=!1,H=!1,O=!0,D=105,F=95,I=85,V=.25,Y=0,G={},j=0;function W(e){for(var t=f.length-1;t>=0;t--)if("program"===f[t].cmd)return void(f[t].channel=e)}function q(){for(var e=!0,t=0;t0&&i[0].length>0&&(j=i[0][0].pickupLength),function(e,t){for(var r=0;r=0)&&($=!0);for(var Q=0;Q0&&(!1===m||R===m)&&(fe(w,X(Z.time)),b=[]),e=[],0===R&&pe(i.length+1),H=!1,x=y,w=X(Z.time);break;case"bagpipes":break;case"instrument":if(void 0===l&&(l=Z.program),h=Z.program,f.length>0&&"program"===f[f.length-1].cmd)f[f.length-1].instrument=Z.program;else{var ee;for(ee=f.length-1;ee>=0&&"program"!==f[ee].cmd;ee--);(ee<0||f[ee].instrument!==Z.program)&&f.push({cmd:"program",channel:0,instrument:Z.program})}break;case"channel":W(Z.channel);break;case"drum":G=ue(Z.params),de();break;case"gchord":a.chordsOff||(z=Z.tacet);break;case"beat":D=Z.beats[0],F=Z.beats[1],I=Z.beats[2];break;case"vol":k=Z.volume;break;case"volinc":T=Z.volume;break;case"beataccents":O=Z.value;break;default:console.log("MIDI creation. Unknown el_type: "+Z.el_type+"\n")}}void 0===f[0].instrument&&(f[0].instrument=l||0),u&&f.unshift(u),s.push(f),q()||(g=!0),C.length}return a.detuneOctave&&function(e,t){for(var r={},i=0;i1){var c=(o=o.sort((function(e,t){return e.pitch-t.pitch})))[o.length-1],l=c.pitch%12,h=!1;for(a=0;!h&&a0&&s.push(C),{tempo:o,instrument:l,tracks:s,totalDuration:d}};var K=["break","(break)","no chord","n.c.","tacet"];function $(e,t,r){return(r-e)/t}function Q(e){var t=!1,i=function(e){if(z)return"break";if(g||!e.chord||0===e.chord.length)return null;for(var t=0;t=0)return"break"}return null}(e);if(i){var a=function(e){if(0!==e.length){if("break"===e)return{chick:[]};var t=e.substring(0,1);if("("===t){if(0===(e=e.substring(1,e.length-2)).length)return;t=e.substring(0,1)}var i=ne[t];if(i){for(var a=r;a<-8;)a+=12;for(;a>8;)a-=12;var n,s=(i+=a)-5;1===e.length&&(n=oe(i,""));var o=e.substring(1),c=o.substring(0,1);"b"===c||"♭"===c?(i--,s--,o=o.substring(1)):"#"!==c&&"♯"!==c||(i++,s++,o=o.substring(1));var l=o.split("/");if((n=oe(i,l[0])).length>=3&&(s=s+(n[2]-n[0])-7),2===l.length&&ne[l[1].substring(0,1)]){var h={"#":1,"♯":1,b:-1,"♭":-1}[l[1].substring(1)]||0;s=i=ne[l[1].substring(0,1)]+h+a}return{boom:i,boom2:s,chick:n}}}}(i);if(a){0===p.length&&(t=!0,p.push({cmd:"program",channel:v,instrument:A})),y=a;var n=$(w,U(_),X(e.time));b.push({chord:y,beat:n,start:X(e.time)})}}return t}function Z(e,t){var r=t.start,i=t.duration,a=R(1/32);switch(e){case"trill":for(var n=1;i>0;)f.push({cmd:"note",pitch:t.pitch+n,volume:t.volume,start:r,duration:a,gap:0,instrument:h,style:"decoration"}),n=1===n?0:1,i-=a,r+=a;break;case"mordent":f.push({cmd:"note",pitch:t.pitch,volume:t.volume,start:r,duration:a,gap:0,instrument:h,style:"decoration"}),i-=a,r+=a,f.push({cmd:"note",pitch:t.pitch+1,volume:t.volume,start:r,duration:a,gap:0,instrument:h,style:"decoration"}),i-=a,r+=a,f.push({cmd:"note",pitch:t.pitch,volume:t.volume,start:r,duration:i,gap:0,instrument:h});break;case"lowermordent":f.push({cmd:"note",pitch:t.pitch,volume:t.volume,start:r,duration:a,gap:0,instrument:h,style:"decoration"}),i-=a,r+=a,f.push({cmd:"note",pitch:t.pitch-1,volume:t.volume,start:r,duration:a,gap:0,instrument:h,style:"decoration"}),i-=a,r+=a,f.push({cmd:"note",pitch:t.pitch,volume:t.volume,start:r,duration:i,gap:0,instrument:h});break;case"turn":a=t.duration/5,f.push({cmd:"note",pitch:t.pitch,volume:t.volume,start:r,duration:a,gap:0,instrument:h,style:"decoration"}),f.push({cmd:"note",pitch:t.pitch+1,volume:t.volume,start:r+a,duration:a,gap:0,instrument:h,style:"decoration"}),f.push({cmd:"note",pitch:t.pitch,volume:t.volume,start:r+2*a,duration:a,gap:0,instrument:h,style:"decoration"}),f.push({cmd:"note",pitch:t.pitch+1,volume:t.volume,start:r+3*a,duration:a,gap:0,instrument:h,style:"decoration"}),f.push({cmd:"note",pitch:t.pitch,volume:t.volume,start:r+4*a,duration:a,gap:0,instrument:h});break;case"roll":for(;i>0;)f.push({cmd:"note",pitch:t.pitch,volume:t.volume,start:r,duration:a,gap:0,instrument:h,style:"decoration"}),i-=2*a,r+=2*a}}function J(e,t){f.length;var r,i=function(e,t){if(t)return 0;var r;if(k)r=k,k=void 0;else if(O)if(j>e)r=I;else{_.num,_.den;var i=$(w,U(_),e);r=0===i?D:parseInt(i,10)===i?F:I}else r=F;return T&&(r+=T,T=void 0),r<0&&(r=0),r>127&&(r=127),t?0:r}(X(e.time),t),s=Q(e);if(e.gracenotes&&e.pitches&&e.pitches.length>0&&e.pitches[0]&&(r=function(e,t){for(var r,i=0,a=[],s=0;s0?A.endType="tenuto":m&&(A.endType=m),A.endType){case"tenuto":A.gap=-.001;break;case"staccato":var L=.4*A.duration;A.gap=o/60*L;break;default:A.gap=0}f.push(A)}}}f.length}var P=function(e){return e.pitches&&e.pitches.length>0&&e.pitches[0]?e.pitches[0].duration:e.elem?e.elem.duration:e.duration}(e);return d=Math.max(d,X(e.time)+R(P)),s}var ee=[0,2,4,5,7,9,11];function te(i){if(void 0!==i.midipitch)return i.midipitch;var a=i.pitch;if(i.accidental)switch(i.accidental){case"sharp":e[a]=1;break;case"flat":e[a]=-1;break;case"natural":e[a]=0;break;case"dblsharp":e[a]=2;break;case"dblflat":e[a]=-2;break;case"quartersharp":e[a]=.25;break;case"quarterflat":e[a]=-.25}var n=12*function(e){return Math.floor(e/7)}(a)+ee[ae(a)]+60;return void 0!==e[a]?n+=e[a]:n+=t[ae(a)],n+=r}function re(e){var t=[0,0,0,0,0,0,0];if(!e.accidentals)return t;for(var r=0;r=0?(e.pitch=Math.round(e.pitch),e.cents=-50):t.indexOf(".25")>=0&&(e.pitch=Math.round(e.pitch),e.cents=50),e}function ae(e){return(e%=7)<0&&(e+=7),e}var ne={A:33,B:35,C:36,D:38,E:40,F:41,G:43},se={dim:[0,3,6],"°":[0,3,6],"˚":[0,3,6],dim7:[0,3,6,9],"°7":[0,3,6,9],"˚7":[0,3,6,9],"ø7":[0,3,6,10],"m7(b5)":[0,3,6,10],m7b5:[0,3,6,10],"m7♭5":[0,3,6,10],"-7(b5)":[0,3,6,10],"-7b5":[0,3,6,10],"7b5":[0,4,6,10],"7(b5)":[0,4,6,10],"7♭5":[0,4,6,10],"7(b9,b5)":[0,4,6,10,13],"7b9,b5":[0,4,6,10,13],"7(#9,b5)":[0,4,6,10,15],"7#9b5":[0,4,6,10,15],"maj7(b5)":[0,4,6,11],maj7b5:[0,4,6,11],"13(b5)":[0,4,6,10,14,21],"13b5":[0,4,6,10,14,21],m:[0,3,7],"-":[0,3,7],m6:[0,3,7,9],"-6":[0,3,7,9],m7:[0,3,7,10],"-7":[0,3,7,10],"-(b6)":[0,3,7,8],"-b6":[0,3,7,8],"-6/9":[0,3,7,9,14],"-7(b9)":[0,3,7,10,13],"-7b9":[0,3,7,10,13],"-maj7":[0,3,7,11],"-9+7":[0,3,7,11,13],"-11":[0,3,7,11,14,17],m11:[0,3,7,11,14,17],"-maj9":[0,3,7,11,14],"-∆9":[0,3,7,11,14],mM9:[0,3,7,11,14],M:[0,4,7],6:[0,4,7,9],"6/9":[0,4,7,9,14],"6add9":[0,4,7,9,14],69:[0,4,7,9,14],7:[0,4,7,10],9:[0,4,7,10,14],11:[0,7,10,14,17],13:[0,4,7,10,14,21],"7b9":[0,4,7,10,13],"7♭9":[0,4,7,10,13],"7(b9)":[0,4,7,10,13],"7(#9)":[0,4,7,10,15],"7#9":[0,4,7,10,15],"(13)":[0,4,7,10,14,21],"7(9,13)":[0,4,7,10,14,21],"7(#9,b13)":[0,4,7,10,15,20],"7(#11)":[0,4,7,10,14,18],"7#11":[0,4,7,10,14,18],"7(b13)":[0,4,7,10,20],"7b13":[0,4,7,10,20],"9(#11)":[0,4,7,10,14,18],"9#11":[0,4,7,10,14,18],"13(#11)":[0,4,7,10,18,21],"13#11":[0,4,7,10,18,21],maj7:[0,4,7,11],"∆7":[0,4,7,11],"Δ7":[0,4,7,11],maj9:[0,4,7,11,14],"maj7(9)":[0,4,7,11,14],"maj7(11)":[0,4,7,11,17],"maj7(#11)":[0,4,7,11,18],"maj7(13)":[0,4,7,14,21],"maj7(9,13)":[0,4,7,11,14,21],"7sus4":[0,5,7,10],m7sus4:[0,3,7,10,17],sus4:[0,5,7],sus2:[0,2,7],"7sus2":[0,2,7,10],"9sus4":[0,5,7,10,14],"13sus4":[0,5,7,10,14,21],aug7:[0,4,8,10],"+7":[0,4,8,10],"+":[0,4,8],"7#5":[0,4,8,10],"7♯5":[0,4,8,10],"7+5":[0,4,8,10],"9#5":[0,4,8,10,14],"9♯5":[0,4,8,10,14],"9+5":[0,4,8,10,14],"-7(#5)":[0,3,8,10],"-7#5":[0,3,8,10],"7(#5)":[0,4,8,10],"7(b9,#5)":[0,4,8,10,13],"7b9#5":[0,4,8,10,13],"maj7(#5)":[0,4,8,11],"maj7#5":[0,4,8,11],"maj7(#5,#11)":[0,4,8,11,18],"maj7#5#11":[0,4,8,11,18],"9(#5)":[0,4,8,10,14],"13(#5)":[0,4,8,10,14,21],"13#5":[0,4,8,10,14,21]};function oe(e,t){var r=se[t];r||(r="ma"===t.slice(0,2).toLowerCase()||"M"===t[0]?se.M:"m"===t[0]||"-"===t[0]?se.m:se.M),e+=12;for(var i=[],a=0;a=0)return i;return i}function n(e,t,r){for(var i=Math.min(e.length,t+3),a=t;a=0)return e[a].decoration[n];return null}function s(e){for(var t=0;t=0&&"bar"!==r[i].el_type;)r[i].noChordVoice=!0,i--}function o(e,t){if(e&&!(e.length<=t)&&e[t].title)return e[t].title.join(" ")}function c(e,t){var r=1/4;e.duration&&(r=e.duration[0]);var i=60;return e.bpm&&(i=e.bpm),r*i/t}function l(t){var r;switch(t.type){case"common_time":r={el_type:"meter",num:4,den:4};break;case"cut_time":r={el_type:"meter",num:2,den:2};break;case"specified":r={el_type:"meter",num:t.value[0].num,den:t.value[0].den};break;default:r={el_type:"meter"}}return e=r.num/r.den,r}function h(e){for(var t=[],r=0;r=0;r--)if(e[r].el_type===t.el_type)return void(JSON.stringify(e[r])!==JSON.stringify(t)&&e.push(t));e.push(t)}i=function(i,h){var p,m=(h=h||{}).program||0,g=h.midiTranspose||0;i.visualTranspose&&(g-=i.visualTranspose);var v=h.channel||0,b=!1,y=h.drum||"",x=h.drumBars||1,w=h.drumIntro||0,k=""!==y,T=[];m=parseInt(m,10),g=parseInt(g,10),10===(v=parseInt(v,10))&&(m=t),y=y.split(" "),x=parseInt(x,10),w=parseInt(w,10);var C=i.formatting.bagpipes;C&&(m=71);var S=[];if(i.formatting.midi){var N=i.formatting.midi;N.program&&N.program.length>0&&(m=N.program[0],N.program.length>1&&(m=N.program[1],v=N.program[0]),b=!0),N.transpose&&(g=N.transpose[0]),N.channel&&(v=N.channel[0],b=!0),N.drum&&(y=N.drum),N.drumbars&&(x=N.drumbars[0]),N.drumon&&(k=!0),10===v&&(m=t),N.beat&&S.push({el_type:"beat",beats:N.beat}),N.nobeataccents&&S.push({el_type:"beataccents",value:!1})}p=h.qpm?parseInt(h.qpm,10):i.metaText.tempo?c(i.metaText.tempo,i.getBeatLength()):h.defaultQpm?h.defaultQpm:180;var E=[];C&&E.push({el_type:"bagpipes"}),E.push({el_type:"instrument",program:m}),v&&E.push({el_type:"channel",channel:v}),g&&E.push({el_type:"transpose",transpose:g}),E.push({el_type:"tempo",qpm:p});for(var _=0;_=0?t="pppp":e.decoration.indexOf("ppp")>=0?t="ppp":e.decoration.indexOf("pp")>=0?t="pp":e.decoration.indexOf("p")>=0?t="p":e.decoration.indexOf("mp")>=0?t="mp":e.decoration.indexOf("mf")>=0?t="mf":e.decoration.indexOf("f")>=0?t="f":e.decoration.indexOf("ff")>=0?t="ff":e.decoration.indexOf("fff")>=0?t="fff":e.decoration.indexOf("ffff")>=0&&(t="ffff"),t&&(M=i[t].slice(0),A[j].push({el_type:"beat",beats:M.slice(0)}),B[X]=!1,L[X]=!1),e.decoration.indexOf("crescendo(")>=0){var a=r(R,ee,"crescendo)"),s=Math.min(127,M[0]+50),o=n(R,ee+a+1,Object.keys(i));o&&(s=i[o][0]),B[X]=a>0&&Math.floor((s-M[0])/a),L[X]=!1}else if(e.decoration.indexOf("crescendo)")>=0)B[X]=!1;else if(e.decoration.indexOf("diminuendo(")>=0){var c=r(R,ee,"diminuendo)"),l=Math.max(15,M[0]-50),h=n(R,ee+c+1,Object.keys(i));h&&(l=i[h][0]),B[X]=!1,L[X]=c>0&&Math.floor((l-M[0])/c)}else e.decoration.indexOf("diminuendo)")>=0&&(L[X]=!1)},G=V.staff,j=0,W=0;W=0?A[j].push({el_type:"transpose",transpose:-12}):q.clef.type.indexOf("+8")>=0&&A[j].push({el_type:"transpose",transpose:12})),i.formatting.midi&&i.formatting.midi.drumoff&&(A[j].push({el_type:"bar"}),A[j].push({el_type:"drum",params:{pattern:"",on:!1}}));var $=0,Q=0,Z=0,J=0;M=[105,95,85,1];for(var ee=0;ee=0?A[j].push({el_type:"transpose",transpose:-12}):te.type.indexOf("+8")>=0&&A[j].push({el_type:"transpose",transpose:12}));break;case"tempo":p=c(te,i.getBeatLength()),A[j].push({el_type:"tempo",qpm:p,timing:P[j]}),z[""+P[j]]={el_type:"tempo",qpm:p,timing:P[j]};break;case"bar":$>0&&A[j].push({el_type:"bar"}),Y(te),$=0;var ne="bar_right_repeat"===te.type||"bar_dbl_repeat"===te.type,se="1"===te.startEnding,oe="bar_left_repeat"===te.type||"bar_dbl_repeat"===te.type||"bar_right_repeat"===te.type;if(ne){var ce=H[j];ce||(ce=0);var le=O[j];le||(le=A[j].length);for(var he=ce;he=0&&n!==t[""+o.timing].qpm&&(n=t[""+o.timing].qpm,"tempo"===o.el_type?(o.qpm=t[""+o.timing].qpm,s++):(e[i].splice(s,0,{el_type:"tempo",qpm:t[""+o.timing].qpm,timing:o.timing}),s+=2))}}(A,z),w)for(var de=i.getPickupLength(),pe=0;peme;)me++;if(A[pe].length>me)for(ae=0;ae0&&A[0].length>0&&(A[0][0].pickupLength=i.getPickupLength()),A}}(),e.exports=i},2842:function(e){var t={__:-2,_:-1,"_/":-.5,"=":0,"":0,"^/":.5,"^":1,"^^":2},r=["C","-","D","-","E","F","-","G","-","A","-","B","c","-","d","-","e","f","-","g","-","a","-","b"];e.exports={noteToMidi:function(e){var i=e.match(/([_^\/]*)([ABCDEFGabcdefg])(,*)('*)/);if(i&&5===i.length){var a=t[i[1]];return 48+r.indexOf(i[2])+a+12*(i[4].length-i[3].length)}return 0},midiToNote:function(e){e=parseInt(e,10);var t=Math.floor(e/12),i=e%12,a=r[i];if("-"===a&&(a="^"+r[i-1]),t>4)for(a=a.toLowerCase(),t-=5;t>0;)a+="'",t--;else for(;t<4;)a+=",",t++;return a}}},5058:function(e){var t={f0:"_C",n0:"=C",s0:"^C",x0:"C",f1:"_D",n1:"=D",s1:"^D",x1:"D",f2:"_E",n2:"=E",s2:"^E",x2:"E",f3:"_F",n3:"=F",s3:"^F",x3:"F",f4:"_G",n4:"=G",s4:"^G",x4:"G",f5:"_A",n5:"=A",s5:"^A",x5:"A",f6:"_B",n6:"=B",s6:"^B",x6:"B",f7:"_c",n7:"=c",s7:"^c",x7:"c",f8:"_d",n8:"=d",s8:"^d",x8:"d",f9:"_e",n9:"=e",s9:"^e",x9:"e",f10:"_f",n10:"=f",s10:"^f",x10:"f",f11:"_g",n11:"=g",s11:"^g",x11:"g",f12:"_a",n12:"=a",s12:"^a",x12:"a",f13:"_b",n13:"=b",s13:"^b",x13:"b",f14:"_c'",n14:"=c'",s14:"^c'",x14:"c'",f15:"_d'",n15:"=d'",s15:"^d'",x15:"d'",f16:"_e'",n16:"=e'",s16:"^e'",x16:"e'"};e.exports=function(e){var r=(e.accidental?e.accidental[0]:"x")+e.verticalPos;return t[r]}},1921:function(e,t,r){var i=r(2842).noteToMidi,a=r(6776),n=r(6629);function s(e,t){for(var r=[],i=0;i=0;i--)if(t.pitch+t.pitchAltered>=e.stringPitches[i]){var a=t.pitch+t.pitchAltered-e.stringPitches[i];return"^"===t.quarter?a-=.5:"v"===t.quarter&&(a+=.5),{num:Math.round(a),str:e.stringPitches.length-1-i,note:t}}return{num:"?",str:e.stringPitches.length-1,note:t}}function l(e,t){var r={num:"?",str:0,note:t};e.push(r),e.error=t.emit()+": unexpected note for instrument"}function h(e){var t=e.tuning,r=e.capo,s=e._super.params.highestNote;this.linePitch=e.linePitch,this.highestNote="a'",s&&(this.highestNote=s),this.measureAccidentals={},this.capo=0,r&&(this.capo=parseInt(r,10)),this.transpose=e.transpose?e.transpose:0,this.tuning=t,this.stringPitches=[];for(var o=0;o0&&(this.capoTuning=function(e){var t=null,r=e.tuning;if(e.capo>0){t=[];for(var i=0;i0&&(r=e.capoTuning);for(var i=r.length-1,a=0;a1?(o=s(this,e)).error&&(n=o.error):e[0].endTie||((r=new a.TabNote(e[0].name,this.clefTranspose)).checkKeyAccidentals(this.accidentals,this.measureAccidentals),(i=c(this,r))?o.push(i):(l(o,r),n=o.error))),n)return o;var h=null;if(t){h=[];for(var f=0;f0&&(r+=" capo:"+e.capo),t=t.replace("%T",r)),t}return""},h.prototype.suppress=function(e){return!!e._super.params.suppress},e.exports=h},8918:function(e){function t(e,t){this.numLines=e,this.lineSpace=t,this.verticalSize=this.numLines*this.lineSpace,this.bar={pitch:3,pitch2:t*e,height:5}}t.prototype.bypass=function(e){var t=e.staffGroup.voices;return!!(t.length>0&&t[0].isPercussion)},t.prototype.setRelative=function(e,t,r){switch(e.type){case"bar":t.pitch=this.bar.pitch,t.pitch2=this.bar.pitch2,t.height=this.height;break;case"symbol":var i=this.bar.pitch2/2;if("dots.dot"==e.name)return r?(t.pitch=i,!1):(t.pitch=i+this.lineSpace,!0)}return r},e.exports=t},6776:function(e,t,r){var i=r(2842),a=i.noteToMidi,n=i.midiToNote;function s(e,t){var r=a(e);t&&(r+=t);var i,s=n(r),o=!1,c=!1,l=null,h=null,f=!1,u=0;e.startsWith("_")?(o=!0,u=-1,"/"==e[1]?(o=!1,h="v",u=0):"_"==e[1]&&(f=!0,u-=1)):e.startsWith("^")?(c=!0,u=1,"/"==e[1]?(c=!1,h="^",u=0):"^"==e[1]&&(f=!0,u+=1)):e.startsWith("=")&&(l=!0,u=0),((i=o||c||null!=h)||l)&&(s=null!=h||f?e.slice(2):e.slice(1));var d=(s.match(/,/g)||[]).length,p=(s.match(/'/g)||[]).length;this.pitch=r,this.pitchAltered=0,this.name=s,this.acc=u,this.isSharp=c,this.isKeySharp=!1,this.isDouble=f,this.isAltered=i,this.isFlat=o,this.isKeyFlat=!1,this.natural=l,this.quarter=h,this.isLower=this.name==this.name.toLowerCase(),this.name=this.name[0].toUpperCase(),this.hasComma=d,this.isQuoted=p}s.prototype.sameNoteAs=function(e){return e.pitch===this.pitch},s.prototype.isLowerThan=function(e){return e.pitch>this.pitch},s.prototype.checkKeyAccidentals=function(e,t){if(!this.isAltered&&!this.natural)if(t[this.name.toUpperCase()])switch(t[this.name.toUpperCase()]){case"__":return this.acc=-2,void(this.pitchAltered=-2);case"_":return this.acc=-1,void(this.pitchAltered=-1);case"=":return this.acc=0,void(this.pitchAltered=0);case"^":return this.acc=1,void(this.pitchAltered=1);case"^^":return this.acc=2,void(this.pitchAltered=2)}else if(e)for(var r=this.name,i=0;i=0){if(r===t)return e.extra[i].x+e.extra[i].w/2;r++}return-1}function d(e){if(e.abcelem){var t=e.abcelem;if(t.rest)return t.gracenotes}return null}function p(e,t,r){var i=e.semantics.notesToNumber(t,r);if(i.error)return e._super.setError(i.error),i;if(i.graces&&i.notes){var a=i.notes.length-1;i.notes[a].graces=i.graces}return i}function m(e,t,r,i,a){for(var n=0;n=0&&(e.semantics.strings.clefTranspose=-12),w.abcelem.type.indexOf("+8")>=0&&(e.semantics.strings.clefTranspose=12)),w.type){case"staff-extra key-signature":this.accidentals=w.abcelem.accidentals,e.semantics.strings.accidentals=this.accidentals;break;case"bar":e.semantics.strings.measureAccidentals={};var C=!1;x===g.children.length-1&&(C=!0);var S=o(w,e);if(S.abcelem.barNumber){delete S.abcelem.barNumber;for(var N=0;N0&&(y.abselem=_,r.push(y),v.children.push(_))}}},e.exports=h},8660:function(e){function t(e,t,r){this.tune=e,this.params=r,this.tuneNumber=t,this.inError=!1}t.prototype.setError=function(e){var t=this.tune;e&&(this.error=e,this.inError=!0,t.warnings?t.warnings.push(e):t.warnings=[e])},e.exports=t},676:function(e,t,r){var i=r(3197),a=r(1696),n=r(4331);function s(e,t){var r=e.plugin.semantics.strings,i=e.renderer.controller.getTextSize,a=r.tabInfos(e.plugin),n=!0;if(r.suppress(e.plugin)&&(n=!1),n){var s=i.calc(a,"tablabelfont","text instrumentname");return t.tabNameInfos={textSize:{height:s.height,width:s.width},name:a},s.height}return 0}function o(e,t,r,i){this.renderer=t,this.plugin=e,this.line=r,this.absolutes=new a,this.staffIndex=i,this.tabStaff={clef:{type:"TAB"}},this.tabSize=e.linePitch*e.nbLines}function c(e,t){return!(!t[e].isTabStaff||e!==t.length-1&&t[e+1].isTabStaff)}function l(e,t){for(var r=t;r>=0;r--)if(!e[r].isTabStaff)return r;return-1}function h(e,t){return"clef"===e[t].children[0].abcelem.el_type?null:0==t?"none":e[t-1].children[0]}o.prototype.doLayout=function(){var e=this.line.staff;if(e){var t=e[0];if(t&&t.clef&&0==t.clef.stafflines)return void this.plugin._super.setError("No tablatures when stafflines=0");e.splice(e.length,0,this.tabStaff)}var r=this.line.staffGroup,a=r.voices,o=function(e){for(var t=0,r=0;rt&&(t=i.specialY.lyricHeightBelow)}return t}(a[0]),f=this.staffIndex,u=r.staffs[f],d=this.tabSize+3-u.bottom-o;u.isTabStaff&&(d=u.top);var p={bottom:-1,isTabStaff:!0,specialY:{tempoHeightAbove:0,partHeightAbove:0,volumeHeightAbove:0,dynamicHeightAbove:0,endingHeightAbove:0,chordHeightAbove:0,lyricHeightAbove:0,lyricHeightBelow:0,chordHeightBelow:0,volumeHeightBelow:0,dynamicHeightBelow:0},lines:this.plugin.nbLines,linePitch:this.plugin.linePitch,dy:.15,top:d},m=function(e,t){for(var r=e.staffIndex,i=0,a=0,n=0;;){if(!t[i])return-1;if(t[i].isTabStaff||(n=t[i].voices.length),t[i].isTabStaff){if(a++,c(i,t)&&a=r){if(i+1==t.length)return i+1;if(!t[i+1].isTabStaff)return i+1}if(++i>t.length)return-1}}(this,r.staffs);if(-1!==m){p.parentIndex=m-1,r.staffs.splice(m,0,p),r.height+=this.tabSize+3;var g=function(e,t){for(var r=t;r>=0;r--)if(!e[r].isTabStaff)return e[r];return null}(r.staffs,m),v=1;(function(e,t){return 1===function(e){for(var t=0,r=0;r1})(r.staffs,g)&&(v=g.voices.length),this.tabStaff.voices=[];for(var b=0;b0&&(y.duplicate=!0);var x=s(this,y)/n.STEP;x=Math.max(x,1),r.staffs[this.staffIndex].top+=1,r.height+=x,y.staff=p;var w=a.length;a.splice(a.length,0,y);var k=h(a,b+this.staffIndex);this.tabStaff.voices[b]=[],this.absolutes.build(this.plugin,a,this.tabStaff.voices[b],b,this.staffIndex,k,w)}!function(e){for(var t=0;t0&&(n[0].invisible=!0);break;case"meter":n[0]=l(a,this.tuneNumber),this.startlimitelem=n[0],r.duplicate&&n.length>0&&(n[0].invisible=!0);break;case"clef":if(n[0]=s(a,this.tuneNumber),!n[0])return null;r.duplicate&&n.length>0&&(n[0].invisible=!0);break;case"key":var h=o(a,this.tuneNumber);h&&(n[0]=h,this.startlimitelem=n[0]),r.duplicate&&n.length>0&&(n[0].invisible=!0);break;case"stem":this.stemdir="auto"===a.direction?void 0:a.direction;break;case"part":var f=new i(a,0,0,"part",this.tuneNumber),u=this.getTextSize.calc(a.title,"partsfont","part");f.addFixedX(new d(a.title,0,0,void 0,{type:"part",height:u.height/p.STEP})),n[0]=f;break;case"tempo":var m=new i(a,0,0,"tempo",this.tuneNumber);m.addFixedX(new g(a,this.tuneNumber,c)),n[0]=m;break;case"style":"normal"===a.head?delete this.style:this.style=a.head;break;case"hint":C=!0,this.saveState();break;case"midi":break;case"scale":this.voiceScale=a.size;break;case"color":this.voiceColor=a.color,r.color=this.voiceColor;break;default:var v=new i(a,0,0,"unsupported",this.tuneNumber);v.addFixed(new d("element type "+a.el_type,0,0,void 0,{type:"debug"})),n[0]=v}return n},N.prototype.createBeam=function(e,t,r){var i=[],n=new a(this.stemHeight*this.voiceScale,this.stemdir,this.flatBeams,r[0]);C&&n.setHint();for(var s=0;se.pitches[r+1].pitch){t=!1;var i=e.pitches[r];e.pitches[r]=e.pitches[r+1],e.pitches[r+1]=i}}while(!t)},A=function(e,t,r,i,a,n,s,o,c){for(var l=r;l>11;l--)l%2!=0||i||e.addFixed(new d(null,o,(a+4)*c,l,{type:"ledger"}));for(l=t;l<1;l++)l%2!=0||i||e.addFixed(new d(null,o,(a+4)*c,l,{type:"ledger"}));for(l=0;l1&&(p=new a(n,"grace",s),C&&p.setHint(),p.mainNote=r);var m=[];for(f=e.gracenotes.length-1;f>=0;f--)o+=10,m[f]=o,e.gracenotes[f].accidental&&(o+=7);for(f=0;f=6?"down":"up";for(i&&(N=i),(a=t.style?t.style:a)&&"normal"!==a||(a="note"),(m=n?S[a].nostem:S[a][-s])||console.log("noteSymbol:",a,s,n),g="down"===N?t.pitches.length-2:1;"down"===N?g>=0:g11||_.verticalPos<1)&&x.push(_.verticalPos-_.verticalPos%2),"down"===N?b=u.getSymbolWidth(m)+2:v=u.getSymbolWidth(m)+2)}var A=t.pitches.length;for(g=0;g0&&(h.bottom=h.bottom-1),e.addHead(h)),b+=O.accidentalshiftx,y=Math.max(y,O.dotshiftx)}if(H){var D=Math.round(70*this.voiceScale)/10,F="down"===N?t.minpitch-D:t.minpitch+1/3;F>6&&!i&&(F=6);var I="down"===N?t.maxpitch-1/3:t.maxpitch+D;I<6&&!i&&(I=6);var V="down"===N||0===e.heads.length?0:e.heads[0].w,Y="down"===N?1:-1;h&&"noteheads.slash.quarter"===h.c&&("down"===N?I-=1:F+=1),h&&"noteheads.triangle.quarter"===h.c&&("down"===N?I-=.7:F-=1.2),e.addRight(new d(null,V,0,F,{type:"stem",pitch2:I,linewidth:Y,bottom:F-1})),f=Math.min(F,I)}return{noteHead:h,roomTaken:b,roomTakenRight:y,min:f,additionalLedgers:x,dir:N,symbolWidth:C}},N.prototype.addLyric=function(e,t){var r="";t.lyric.forEach((function(e){var t=" "===e.divider?"":e.divider;r+=e.syllable+t+"\n"}));var i=this.getTextSize.calc(r,"vocalfont","lyric"),a=t.positioning?t.positioning.vocalPosition:"below";e.addCentered(new d(r,0,i.width,void 0,{type:"lyric",position:a,height:i.height/p.STEP,dim:this.getTextSize.attr("vocalfont","lyric")}))},N.prototype.createNote=function(e,t,r,a){var n,s=null,o=0,l=0,h=0,f=[],p=T(e),m=!1;0===p&&(m=!0,p=.25,t=!0);for(var g=Math.floor(Math.log(p)/Math.log(2)),v=0,y=Math.pow(2,g),w=y/2;y1,this.stemdir,r,g,this.voiceScale);s=_.noteHead,o=_.roomTaken,l=_.roomTakenRight}else{var M=this.addNoteToAbcElement(E,e,v,this.stemdir,this.style,m,g,t,a);void 0!==M.min&&(this.minY=Math.min(M.min,this.minY)),s=M.noteHead,o=M.roomTaken,l=M.roomTakenRight,f=M.additionalLedgers,n=M.dir,h=M.symbolWidth}if(void 0!==e.lyric&&this.addLyric(E,e),void 0!==e.gracenotes&&(o+=this.addGraceNotes(e,a,E,s,this.stemHeight*this.voiceScale,this.isBagpipes,o)),e.decoration&&this.decoration.createDecoration(a,e.decoration,E.top,s?s.w:0,E,o,n,E.bottom,e.positioning,this.hasVocals,this.accentAbove),e.barNumber&&E.addFixed(new d(e.barNumber,-10,0,0,{type:"barNumber"})),A(E,e.minpitch,e.maxpitch,e.rest,h,f,n,-2,1),void 0!==e.chord){var B=x(this.getTextSize,E,e,o,l,h,this.jazzchords,this.germanAlphabet);o=B.roomTaken,l=B.roomTakenRight}return e.startTriplet&&(this.triplet=new b(e.startTriplet,s,{flatBeams:this.flatBeams})),e.endTriplet&&this.triplet&&this.triplet.setCloseAnchor(s),!this.triplet||e.startTriplet||e.endTriplet||e.rest&&"spacer"===e.rest.type||this.triplet.middleNote(s),E},N.prototype.addSlursAndTies=function(e,t,r,i,a,n){if(t.endTie&&this.ties.length>0){for(var s=!1,o=0;o10&&"treble"===t.abcelem.type?13:11;t.addFixed(new d(e,i,r.width,a+r.height/p.STEP,{type:"barNumber",dim:this.getTextSize.attr("measurefont","bar-number")}))},N.prototype.createBarLine=function(e,t,r){var a=new i(t,0,10,"bar",this.tuneNumber),n=null,s=0;t.barNumber&&this.addMeasureNumber(t.barNumber,a);var o="bar_right_repeat"===t.type||"bar_dbl_repeat"===t.type,c="bar_left_repeat"!==t.type&&"bar_thick_thin"!==t.type&&"bar_invisible"!==t.type,l="bar_right_repeat"===t.type||"bar_dbl_repeat"===t.type||"bar_left_repeat"===t.type||"bar_thin_thick"===t.type||"bar_thick_thin"===t.type,h="bar_left_repeat"===t.type||"bar_thick_thin"===t.type||"bar_thin_thin"===t.type||"bar_dbl_repeat"===t.type,u="bar_left_repeat"===t.type||"bar_dbl_repeat"===t.type;if(o||u){for(var p in this.slurs)this.slurs.hasOwnProperty(p)&&this.slurs[p].setEndX(a);this.startlimitelem=a}if(o&&(a.addRight(new d("dots.dot",s,1,7)),a.addRight(new d("dots.dot",s,1,5)),s+=6),c&&(n=new d(null,s,1,2,{type:"bar",pitch2:10,linewidth:.6}),a.addRight(n)),"bar_invisible"===t.type&&(n=new d(null,s,1,2,{type:"none",pitch2:10,linewidth:.6}),a.addRight(n)),t.decoration&&this.decoration.createDecoration(e,t.decoration,12,l?3:1,a,0,"down",2,t.positioning,this.hasVocals,this.accentAbove),l&&(n=new d(null,s+=4,4,2,{type:"bar",pitch2:10,linewidth:4}),a.addRight(n),s+=5),this.partstartelem&&t.endEnding&&(this.partstartelem.anchor2=n,this.partstartelem=null),h&&(n=new d(null,s+=3,1,2,{type:"bar",pitch2:10,linewidth:.6}),a.addRight(n)),u&&(s+=3,a.addRight(new d("dots.dot",s,1,7)),a.addRight(new d("dots.dot",s,1,5))),t.startEnding&&r){var m=this.getTextSize.calc(t.startEnding,"repeatfont","").width;a.minspacing+=m+10,this.partstartelem=new f(t.startEnding,n,null),e.addOther(this.partstartelem)}return a.extraw-=5,void 0!==t.chord&&x(this.getTextSize,a,t,0,0,0,!1,this.germanAlphabet),a},e.exports=N},2652:function(e,t,r){var i=r(6658),a=r(4331),n=r(5810);function s(e,t,r,s,o,c,l,h,f,u,d,p,m,g,v){for(var b=e.split("\n"),y=b.length-1;y>=0;y--){var x,w=b[y],k=0;s||(w=n(w,g,v));var T=h.calc(w,o,c),C=T.width,S=T.height/a.STEP;switch(t){case"left":k=-(d+=C+7),x=u.averagepitch,f.addExtra(new i(w,k,C+4,x,{type:"text",height:S,dim:l,position:"left"}));break;case"right":k=p+=4,x=u.averagepitch,f.addRight(new i(w,k,C+4,x,{type:"text",height:S,dim:l,position:"right"}));break;case"below":f.addRight(new i(w,0,0,void 0,{type:"text",position:"below",height:S,dim:l,realWidth:C}));break;case"above":f.addRight(new i(w,0,0,void 0,{type:"text",position:"above",height:S,dim:l,realWidth:C}));break;default:if(r){var N=r.y+3*a.STEP;f.addRight(new i(w,k+r.x,0,u.minpitch+N/a.STEP,{position:"relative",type:"text",height:S,dim:l}))}else{var E="above";u.positioning&&u.positioning.chordPosition&&(E=u.positioning.chordPosition),"hidden"!==E&&f.addCentered(new i(w,m/2,C,void 0,{type:"chord",position:E,height:S,dim:l,realWidth:C}))}}}return{roomTaken:d,roomTakenRight:p}}e.exports=function(e,t,r,i,a,n,o,c){for(var l=0;l0?o.top+3:o.bottom-1,d=s>0?o.top+3:o.bottom-3,p=d-2;"bass-8"===e.type&&(u=3,f=0),o.addRight(new n("8",5+f,a.getSymbolWidth("8")*h,u,{scalex:h,scaley:h,top:d,bottom:p}))}}return o}},3923:function(e,t,r){var i=r(1409),a=r(6020),n=r(6658);e.exports=function(e,t){if(e.el_type="keySignature",!e.accidentals||0===e.accidentals.length)return null;var r=new i(e,0,10,"staff-extra key-signature",t);r.isKeySig=!0;var s=0;return e.accidentals.forEach((function(e){var t,i=0;switch(e.acc){case"sharp":t="accidentals.sharp",i=-3;break;case"natural":t="accidentals.nat";break;case"flat":t="accidentals.flat",i=-1.2;break;case"quartersharp":t="accidentals.halfsharp",i=-2.5;break;case"quarterflat":t="accidentals.halfflat",i=-1.2;break;default:t="accidentals.flat"}r.addRight(new n(t,s,a.getSymbolWidth(t),e.verticalPos,{thickness:a.symbolHeightInPitches(t),top:e.verticalPos+a.symbolHeightInPitches(t)+i,bottom:e.verticalPos+i})),s+=a.getSymbolWidth(t)+2}),this),r}},2143:function(e,t,r){var i=r(6020),a=r(6658);e.exports=function(e,t,r,n){n||(n={});var s,o=void 0!==n.dir?n.dir:null,c=void 0!==n.headx?n.headx:0,l=void 0!==n.extrax?n.extrax:0,h=void 0!==n.flag?n.flag:null,f=void 0!==n.dot?n.dot:0,u=void 0!==n.dotshiftx?n.dotshiftx:0,d=void 0!==n.scale?n.scale:1,p=void 0!==n.accidentalSlot?n.accidentalSlot:[],m=void 0!==n.shouldExtendStem&&n.shouldExtendStem,g=void 0===n.printAccidentals||n.printAccidentals,v=r.verticalPos,b=0,y=0,x=0;if(void 0===t)e.addFixed(new a("pitch is undefined",0,0,0,{type:"debug"}));else if(""===t)s=new a(null,0,0,v);else{var w=c;if(r.printer_shift){var k="same"===r.printer_shift?1:0;w="down"===o?-i.getSymbolWidth(t)*d+k:i.getSymbolWidth(t)*d-k}var T={scalex:d,scaley:d,thickness:i.symbolHeightInPitches(t)*d,name:r.name};if((s=new a(t,w,i.getSymbolWidth(t)*d,v,T)).stemDir=o,h){var C=v+("down"===o?-7:7)*d;m&&("down"===o&&C>6&&(C=6),"up"===o&&C<6&&(C=6));var S="down"===o?c:c+s.w-.6;e.addRight(new a(h,S,i.getSymbolWidth(h)*d,C,{scalex:d,scaley:d}))}for(y=s.w+u-2+5*f;f>0;f--){var N=1-Math.abs(v)%2;e.addRight(new a("dots.dot",s.w+u-2+5*f,i.getSymbolWidth("dots.dot"),v+N))}}if(s&&(s.highestVert=r.highestVert),g&&r.accidental){var E;switch(r.accidental){case"quartersharp":E="accidentals.halfsharp";break;case"dblsharp":E="accidentals.dblsharp";break;case"sharp":E="accidentals.sharp";break;case"quarterflat":E="accidentals.halfflat";break;case"flat":E="accidentals.flat";break;case"dblflat":E="accidentals.dblflat";break;case"natural":E="accidentals.nat"}for(var _=!1,M=l,A=0;A=6){p[A][0]=v,M=p[A][1],_=!0;break}!1===_&&(M-=i.getSymbolWidth(E)*d+2,p.push([v,M]),b=i.getSymbolWidth(E)*d+2);var B=i.symbolHeightInPitches(E);e.addExtra(new a(E,M,i.getSymbolWidth(E),v,{scalex:d,scaley:d,top:v+B/2,bottom:v-B/2})),x=i.getSymbolWidth(E)/2}return{notehead:s,accidentalshiftx:b,dotshiftx:y,extraLeft:x}}},2525:function(e,t,r){var i=r(1409),a=r(6020),n=r(6658);e.exports=function(e,t){e.el_type="timeSignature";var r=new i(e,0,10,"staff-extra time-signature",t);if("specified"===e.type)for(var s=0,o=0;o",i)),o&&e.addOther(new a(o.start,o.stop,"<",i)),c&&e.addOther(new n(c.start,c.stop))},l.prototype.createDecoration=function(e,t,r,a,n,l,f,u,d,p,m){d||(d={ornamentPosition:"above",volumePosition:p?"above":"below",dynamicPosition:p?"above":"below"}),function(e,t,r,a){for(var n=0;n9&&u++;var m=i/2;"center"!==s.getSymbolAlign(p)&&(m-=s.getSymbolWidth(p)/2),a.addFixedX(new o(p,m,s.getSymbolWidth(p),u))}if("slide"===t[d]&&a.heads[0]){var g=a.heads[0].pitch,v=new o("",-n-15,0,(g-=2)-1),b=new o("",-n-5,0,g+1);a.addFixedX(v),a.addFixedX(b),e.addOther(new c({anchor1:v,anchor2:b,fixedY:!0}))}}return void 0===u&&(u=r),{above:u,below:a.bottom}}(e,t,r,a,n,l,f,u,m);g.above=Math.max(g.above,this.minTop),function(e,t,r,i,a,n,c,l){function h(e,t){"above"===e?i.above+=t:i.below-=t}function f(e){var t;return"above"===e?(t=i.above)c&&(t=c),t}function u(e,i,a){var n=f(i);r.addFixedX(new o(e,t/2,0,n+2,{type:"decoration",klass:"ornament",thickness:3,anchor:a})),h(i,5)}function d(e,i){var a=t/2;"center"!==s.getSymbolAlign(e)&&(a-=s.getSymbolWidth(e)/2);var n=s.symbolHeightInPitches(e)+1,c=f(i);c="above"===i?c+n/2:c-n/2,r.addFixedX(new o(e,a,s.getSymbolWidth(e),c,{klass:"ornament",thickness:s.symbolHeightInPitches(e)})),h(i,n)}for(var p={"+":"scripts.stopped",open:"scripts.open",snap:"scripts.snap",wedge:"scripts.wedge",thumb:"scripts.thumb",shortphrase:"scripts.shortphrase",mediumphrase:"scripts.mediumphrase",longphrase:"scripts.longphrase",trill:"scripts.trill",roll:"scripts.roll",irishroll:"scripts.roll",marcato:"scripts.umarcato",dmarcato:"scripts.dmarcato",umarcato:"scripts.umarcato",turn:"scripts.turn",uppermordent:"scripts.prall",pralltriller:"scripts.prall",mordent:"scripts.mordent",lowermordent:"scripts.mordent",downbow:"scripts.downbow",upbow:"scripts.upbow",fermata:"scripts.ufermata",invertedfermata:"scripts.dfermata",breath:",",coda:"scripts.coda",segno:"scripts.segno"},m=0;mthis.w&&(this.w=e.dx+e.w),this.right[this.right.length]=e,this._addChild(e)},n.prototype.addFixed=function(e){this._addChild(e)},n.prototype.addFixedX=function(e){this._addChild(e)},n.prototype.addCentered=function(e){var t=e.w/2;-tthis.w&&(this.w=e.dx+t),this.right[this.right.length]=e,this._addChild(e)},n.prototype.setLimit=function(e,t){t[e]&&(this.specialY[e]?this.specialY[e]=Math.max(this.specialY[e],t[e]):this.specialY[e]=t[e])},n.prototype._addChild=function(e){e.parent=this,this.children[this.children.length]=e,this.pushTop(e.top),this.pushBottom(e.bottom),this.setLimit("tempoHeightAbove",e),this.setLimit("partHeightAbove",e),this.setLimit("volumeHeightAbove",e),this.setLimit("dynamicHeightAbove",e),this.setLimit("endingHeightAbove",e),this.setLimit("chordHeightAbove",e),this.setLimit("lyricHeightAbove",e),this.setLimit("lyricHeightBelow",e),this.setLimit("chordHeightBelow",e),this.setLimit("volumeHeightBelow",e),this.setLimit("dynamicHeightBelow",e)},n.prototype.pushTop=function(e){void 0!==e&&(void 0===this.top?this.top=e:this.top=Math.max(e,this.top))},n.prototype.pushBottom=function(e){void 0!==e&&(void 0===this.bottom?this.bottom=e:this.bottom=Math.min(e,this.bottom))},n.prototype.setX=function(e){this.x=e;for(var t=0;tthis.max)&&(this.max=e.abcelem.maxpitch))},t.prototype.addBeam=function(e){this.beams.push(e)},t.prototype.setStemDirection=function(){this.average=r(this.total,this.count),this.forceup?this.stemsUp=!0:this.forcedown?this.stemsUp=!1:this.stemsUp=this.average<6,delete this.count,this.total=0},t.prototype.calcDir=function(){this.average=r(this.total,this.elems.length),this.forceup?this.stemsUp=!0:this.forcedown?this.stemsUp=!1:this.stemsUp=this.average<6;for(var e=this.stemsUp?"up":"down",t=0;t0&&this.unalignedWords(e.unalignedWords,i,a,n,s),this.extraText(e,i,a,n,s),e.footer&&r&&this.footer(e.footer,t,i,s)}function s(e,t,r,i,n,s,o){r&&(t&&(r="string"==typeof r?t+r:[{text:t}].concat(r)),a(e,r,"historyfont",n=s?"abcjs-extra-text "+n:"","description",i,{absElemType:"extraText",anchor:"start"},o))}function o(e,t,r,n,s,o,c,l,h,f,u,d){if(r){l=u?"abcjs-extra-text "+l:"";var p=d.calc("A",s,l);if("string"==typeof r)t&&(r=t+"\n"+r),i(e,{marginLeft:n,text:r,font:s,absElemType:"extraText",name:h,"dominant-baseline":"middle",klass:l},d);else{e.push({startGroup:c,klass:l,name:h}),e.push({move:f.info}),t&&(i(e,{marginLeft:n,text:t,font:s,absElemType:"extraText",name:h,"dominant-baseline":"middle"},d),e.push({move:3*p.height/4}));for(var m=0;m0&&this.startVoice.staff.voices[0]===e)},e.exports=t},6891:function(e){e.exports=function(e,t,r,i){this.type="CrescendoElem",this.anchor1=e,this.anchor2=t,this.dir=r,"above"===i?this.dynamicHeightAbove=6:this.dynamicHeightBelow=6,this.pitch=void 0}},3185:function(e){e.exports=function(e,t,r){this.type="DynamicDecoration",this.anchor=e,this.dec=t,"below"===r?this.volumeHeightBelow=6:this.volumeHeightAbove=6,this.pitch=void 0}},8256:function(e){e.exports=function(e,t,r){this.type="EndingElem",this.text=e,this.anchor1=t,this.anchor2=r,this.endingHeightAbove=5,this.pitch=void 0}},3736:function(e){e.exports=function(e,t,r,i,a,n){var s,o=e.text;this.rows=[],t&&this.rows.push({move:t});var c=r.calc("textfont","defined-text");if(""===o)this.rows.push({move:2*c.attr["font-size"]});else if("string"==typeof o)this.rows.push({move:c.attr["font-size"]/2}),this.rows.push({left:i,text:o,font:"textfont",klass:"defined-text",anchor:"start",startChar:e.startChar,endChar:e.endChar,absElemType:"freeText",name:"free-text"}),s=n.calc(o,"textfont","defined-text"),this.rows.push({move:s.height});else if(o){for(var l=0,h=i,f="textfont",u=0;uthis.top&&(this.top=this.pitch2),this.bottom=i,void 0!==this.pitch2&&this.pitch20?this.top+=a.stemHeight:this.bottom+=a.stemHeight),a.dim&&(this.dim=a.dim),a.position&&(this.position=a.position),this.height=a.height?a.height:4,a.top&&(this.top=a.top),a.bottom&&(this.bottom=a.bottom),a.name?this.name=a.name:this.c?this.name=this.c:this.name=this.type,a.realWidth?this.realWidth=a.realWidth:this.realWidth=this.w,this.centerVertically=!1,this.type){case"debug":this.chordHeightAbove=this.height;break;case"lyric":a.position&&"below"===a.position?this.lyricHeightBelow=this.height:this.lyricHeightAbove=this.height;break;case"chord":a.position&&"below"===a.position?this.chordHeightBelow=this.height:this.chordHeightAbove=this.height;break;case"text":void 0===this.pitch?a.position&&"below"===a.position?this.chordHeightBelow=this.height:this.chordHeightAbove=this.height:this.centerVertically=!0;break;case"part":this.partHeightAbove=this.height}};t.prototype.getChordDim=function(){if("debug"===this.type)return null;if(!this.chordHeightAbove&&!this.chordHeightBelow)return null;var e="chord"===this.type?this.realWidth/2:0,t=this.x-e-0;return{left:t,right:t+this.realWidth+0}},t.prototype.invertLane=function(e){void 0===this.lane&&(this.lane=0),this.lane=e-this.lane-1},t.prototype.putChordInLane=function(e){this.lane=e,this.chordHeightAbove?this.chordHeightAbove=1.25*this.height*this.lane:this.chordHeightBelow=1.25*this.height*this.lane},t.prototype.getLane=function(){return void 0===this.lane?0:this.lane},t.prototype.setX=function(e){this.x=e+this.dx},e.exports=t},6994:function(e,t,r){var i=r(1716);e.exports=function(e,t,r,a,n,s,o,c){var l=c.calc("i",r,a);if(""===t)e.push({move:l.height});else{if("string"==typeof t)return void i(e,{marginLeft:s,text:t,font:r,klass:a,marginTop:o.marginTop,anchor:o.anchor,absElemType:o.absElemType,info:o.info,name:n},c);o.marginTop&&e.push({move:o.marginTop});var h=0,f={left:s,anchor:o.anchor,phrases:[]};a&&(f.klass=a),e.push(f);for(var u=0;u0)this.above=!1;else{var e;e=this.anchor1?this.anchor1.pitch:this.anchor2?this.anchor2.pitch:14,this.anchor1&&"down"===this.anchor1.stemDir&&this.anchor2&&"down"===this.anchor2.stemDir?this.above=!0:this.anchor1&&"up"===this.anchor1.stemDir&&this.anchor2&&"up"===this.anchor2.stemDir?this.above=!1:this.anchor1&&this.anchor2?this.above=e>=6:this.anchor1?this.above="down"===this.anchor1.stemDir:this.anchor2?this.above="down"===this.anchor2.stemDir:this.above=e>=6}},t.prototype.calcSlurDirection=function(){if(this.isGrace)this.above=!1;else if(0===this.voiceNumber)this.above=!0;else if(this.voiceNumber>0)this.above=!1;else{var e=!1;this.anchor1&&"down"===this.anchor1.stemDir&&(e=!0),this.anchor2&&"down"===this.anchor2.stemDir&&(e=!0);for(var t=0;te&&(e=this.internalNotes[t].highestVert);e>this.startY&&e>this.endY&&(this.startY=this.endY=e-1)}},e.exports=t},1134:function(e,t,r){var i=r(1716),a=r(6994);e.exports=function(e,t,r,n,s,o,c,l,h,f){if(this.rows=[],e.header&&o){var u=f.calc("X","headerfont","abcjs-header abcjs-meta-top").height;i(this.rows,{marginLeft:c,text:e.header.left,font:"headerfont",klass:"header meta-top",marginTop:-u,info:t.header,name:"header"},f),i(this.rows,{marginLeft:c+s/2,text:e.header.center,font:"headerfont",klass:"header meta-top",marginTop:-u,anchor:"middle",info:t.header,name:"header"},f),i(this.rows,{marginLeft:c+s,text:e.header.right,font:"headerfont",klass:"header meta-top",marginTop:-u,anchor:"end",info:t.header,name:"header"},f)}o&&this.rows.push({move:l.top});var d=r.titleleft?"start":"middle",p=r.titleleft?c:c+s/2;if(e.title){var m=h?"abcjs-title":"";a(this.rows,e.title,"titlefont",m,"title",p,{marginTop:l.title,anchor:d,absElemType:"title",info:t.title},f)}if(n.length)for(var g=0;g0){var v=!(!e.composer&&!e.origin);m=h?"abcjs-rhythm":"",i(this.rows,{marginLeft:c,text:e.rhythm,font:"infofont",klass:m,absElemType:"rhythm",noMove:v,info:t.rhythm,name:"rhythm"},f)}e.composer&&e.composer,e.origin&&e.origin;var b=e.composer?e.composer:"";e.origin&&("string"==typeof b&&"string"==typeof e.origin?b+=" ("+e.origin+")":"string"==typeof b&&"string"!=typeof e.origin?((b=[{text:b}]).push({text:" ("}),(b=b.concat(e.origin)).push({text:")"})):(b.push({text:" ("}),(b=b.concat(e.origin)).push({text:")"}))),b&&(m=h?"abcjs-composer":"",a(this.rows,b,"composerfont",m,"composer",c+s,{anchor:"end",absElemType:"composer",info:t.composer,ingroup:!0},f))}e.author&&e.author.length>0&&(m=h?"abcjs-author":"",a(this.rows,e.author,"composerfont",m,"author",c+s,{anchor:"end",absElemType:"author",info:t.author},f)),e.partOrder&&e.partOrder.length>0&&(m=h?"abcjs-part-order":"",a(this.rows,e.partOrder,"partsfont",m,"part-order",c,{absElemType:"partOrder",info:t.partOrder,anchor:"start"},f))}},2096:function(e){var t=function(e,t,r){this.type="TripletElem",this.anchor1=t,this.number=e,this.durationClass=("d"+Math.round(1e3*t.parent.durationClass)/1e3).replace(/\./,"-"),this.middleElems=[],this.flatBeams=r.flatBeams};t.prototype.isClosed=function(){return!!this.anchor2},t.prototype.middleNote=function(e){this.middleElems.push(e)},t.prototype.setCloseAnchor=function(e){this.anchor2=e,this.anchor1.parent.beam&&"up"!==this.anchor1.stemDir||(this.endingHeightAbove=4)},e.exports=t},3197:function(e){var t=function(e,t){this.children=[],this.beams=[],this.otherchildren=[],this.w=0,this.duplicate=!1,this.voicenumber=e,this.voicetotal=t,this.bottom=7,this.top=7,this.specialY={tempoHeightAbove:0,partHeightAbove:0,volumeHeightAbove:0,dynamicHeightAbove:0,endingHeightAbove:0,chordHeightAbove:0,lyricHeightAbove:0,lyricHeightBelow:0,chordHeightBelow:0,volumeHeightBelow:0,dynamicHeightBelow:0}};t.prototype.addChild=function(e){if("bar"===e.type){for(var t=!0,r=0;t&&r0&&"TempoElement"===t.children[0].type;t.elemset=[],o.beginGroup(e.paper,e.controller);for(var f=0;f=0&&d.setAttribute("class","abcjs-notehead")}}var p=t.type;if(("note"===t.type||"rest"===t.type)&&(t.counters=e.controller.classes.getCurrent(),p=(p+=" d"+Math.round(1e3*t.durationClass)/1e3).replace(/\./g,"-"),t.abcelem.pitches))for(var m=0;m0?g.classList[0]+" ":"";g.setAttribute("class",v+t.overrideClasses)}if(h)t.startChar=t.abcelem.startChar,t.endChar=t.abcelem.endChar,c.add(t,g,!1,l);else{t.elemset.push(g);var b=!1;"note"!==t.type&&"tabNumber"!==t.type||(b=!0),c.add(t,g,b,l)}}else t.elemset.length>0&&c.add(t,t.elemset[0],"note"===t.type,l);if(t.klass&&s(t.elemset,"mark","","#00ff00"),t.hint&&s(t.elemset,"abcjs-hint","",null),t.abcelem.abselem=t,t.heads&&t.heads.length>0){t.notePositions=[];for(var y=0;y=1&&l(e,e.spacing.staffSeparation,v[v.length-1],y.staffGroup);var x=c(e,y.staffGroup,m,b);x.line=p+b,v.push(x),e.paper.closeGroup()}else y.nonMusic&&(t.shouldAddClasses&&(g.klass="abcjs-non-music"),e.paper.openGroup(g),n(e,y.nonMusic,m),e.paper.closeGroup())}return t.reset(),r.bottomText&&r.bottomText.rows&&r.bottomText.rows.length>0&&(t.shouldAddClasses&&(g.klass="abcjs-meta-bottom"),e.paper.openGroup(g),e.moveY(24),n(e,r.bottomText,m),e.paper.closeGroup()),a(e,s,f,h),{staffgroups:v,selectables:m.getElements()}}},9879:function(e,t,r){var i=r(4777);e.exports=function(e,t,r){void 0===t.pitch&&window.console.error("Dynamic Element y-coordinate not set.");var a=i(e,t.anchor.x,t.pitch,t.dec,{scalex:1,scaley:1,klass:e.controller.classes.generate("decoration dynamics"),fill:e.foregroundColor,stroke:"none",name:"dynamics"});return r.wrapSvgEl({el_type:"dynamicDecoration",startChar:-1,endChar:-1,decoration:t.dec},a),[a]}},5947:function(e,t,r){var i=r(6764),a=r(5759),n=r(6454),s=r(7199);e.exports=function(e,t,r,o,c){void 0===t.pitch&&window.console.error("Ending Element y-coordinate not set.");var l=s(e.calcY(t.pitch)),h="";t.anchor1&&(r=s(t.anchor1.x+t.anchor1.w),h+=i("M %f %f L %f %f ",r,l,r,s(l+20))),t.anchor2&&(o=s(t.anchor2.x),h+=i("M %f %f L %f %f ",o,l,o,s(l+20))),h+=i("M %f %f L %f %f ",r,l,o,l),e.paper.openGroup({klass:e.controller.classes.generate("ending"),"data-name":"ending"}),n(e,{path:h,stroke:e.foregroundColor,fill:e.foregroundColor,"data-name":"line"}),t.anchor1&&a(e,{x:s(r+5),y:s(e.calcY(t.pitch-.5)),text:t.text,type:"repeatfont",klass:"ending",anchor:"start",noClass:!0,name:t.text});var f=e.paper.closeGroup();return c.wrapSvgEl({el_type:"ending",startChar:-1,endChar:-1},f),[f]}},9045:function(e,t,r){var i=r(6764),a=r(6454),n=r(7199);function s(e,t,r){return n(e+r*t)}var o=[[3.5,-4.8]],c=[[1.5,-1],[.3,-.3],[-3.5,3.8]],l=[[-1.5,2]],h=[[3,4],[3,-4]],f=[[-3,4],[-3,-4]];function u(e,t){for(var r="",i=0;i1&&s.indexOf(".")<0){var p=n.isInGroup()?"":o.klass;e.paper.openGroup({"data-name":o.name,klass:p});for(var m=0,g=0;g0?t.linewidth+e.lineThickness:t.linewidth-e.lineThickness;t.graphelem=a(e,t.x,f,o,e.calcY(t.pitch2),"abcjs-stem","stem");break;case"ledger":t.graphelem=n(e,t.x,t.x+t.w,t.pitch,"abcjs-ledger","ledger",.35+e.lineThickness)}return 1!==t.scalex&&t.graphelem&&function(e,t,r,i,a,n){e.setAttributeOnElement(t,{style:"transform:scale("+r+","+i+");transform-origin:"+a+"px "+n+"px;"})}(e.paper,t.graphelem,t.scalex,t.scaley,t.x,o),t.graphelem}},7199:function(e){e.exports=function(e){return parseFloat(e.toFixed(2))}},3524:function(e,t,r){var i=r(5741),a=r(5829);function n(e,t,r){this.elements=[],this.paper=e,this.tuneNumber=r,this.selectTypes=t}n.prototype.getElements=function(){return this.elements},n.prototype.add=function(e,t,r,i){if(this.canSelect(e)){var a;a=void 0===this.selectTypes?{selectable:!1,"data-index":this.elements.length}:{selectable:!0,tabindex:0,"data-index":this.elements.length},this.paper.setAttributeOnElement(t,a);var n={absEl:e,svgEl:t,isDraggable:r};void 0!==i&&(n.staffPos=i),this.elements.push(n)}},n.prototype.canSelect=function(e){return!(!1===this.selectTypes||!e||!e.abcelem||!0!==this.selectTypes&&!(void 0===this.selectTypes?"note"===e.abcelem.el_type||"tabNumber"===e.abcelem.el_type:this.selectTypes.indexOf(e.abcelem.el_type)>=0))},n.prototype.wrapSvgEl=function(e,t){var r={tuneNumber:this.tuneNumber,abcelem:e,elemset:[t],highlight:i,unhighlight:a};this.add(r,t,!1)},e.exports=n},4169:function(e){e.exports=function(e,t){var r=Math.round(e.y),i=(e.controller.width-t)/2,a=i+t,n="M "+i+" "+r+" L "+a+" "+r+" L "+a+" "+(r+1)+" L "+i+" "+(r+1)+" L "+i+" "+r+" z";e.paper.pathToBack({path:n,stroke:"rgba(0,0,0,0)",fill:"rgba(0,0,0,255)",class:e.controller.classes.generate("defined-text")})}},7611:function(e){e.exports=function(e,t,r,i){var a=(t+e.padding.left+e.padding.right)*r,n=(e.y+e.padding.bottom)*r;if(e.isPrint&&(n=Math.max(n,1056)),""!==e.ariaLabel){var s="Sheet Music";e.abctune&&e.abctune.metaText&&e.abctune.metaText.title&&(s+=' for "'+e.abctune.metaText.title+'"'),e.paper.setTitle(s);var o=e.ariaLabel?e.ariaLabel:s;e.paper.setAttribute("aria-label",o)}e.paper.insertStyles(".abcjs-dragging-in-progress text, .abcjs-dragging-in-progress tspan {"+["-webkit-touch-callout: none;","-webkit-user-select: none;","-khtml-user-select: none;","-moz-user-select: none;","-ms-user-select: none;","user-select: none;"].join(" ")+"}");var c={overflow:"hidden"};"resize"===i?e.paper.setResponsiveWidth(a,n):(c.width="",c.height=n+"px",r<1?(c.width=a+"px",e.paper.setSize(a/r,n/r)):e.paper.setSize(a,n)),e.paper.setScale(r),e.paper.setParentStyles(c)}},6764:function(e){function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}e.exports=function(){for(var e,r,i,a,n,s=0,o=arguments[s++],c=[];o;){if(r=/^[^\x25]+/.exec(o))c.push(r[0]);else if(r=/^\x25{2}/.exec(o))c.push("%");else{if(!(r=/^\x25(?:(\d+)\$)?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(o)))throw"Huh ?!";if(null==(e=arguments[r[1]||s++])||null==e)throw"Too few arguments.";if(/[^s]/.test(r[7])&&"number"!=typeof e)throw"Expecting number but found "+t(e);switch(r[7]){case"b":e=e.toString(2);break;case"c":e=String.fromCharCode(e);break;case"d":e=parseInt(e);break;case"e":e=r[6]?e.toExponential(r[6]):e.toExponential();break;case"f":e=r[6]?parseFloat(e).toFixed(r[6]):parseFloat(e);break;case"o":e=e.toString(8);break;case"s":e=(e=String(e))&&r[6]?e.substring(0,r[6]):e;break;case"u":e=Math.abs(e);break;case"x":e=e.toString(16);break;case"X":e=e.toString(16).toUpperCase()}e=/[def]/.test(r[7])&&r[2]&&e>0?"+"+e:e,a=r[3]?"0"==r[3]?"0":r[3][1]:" ",n=r[5]-String(e).length,i=r[5]?str_repeat(a,n):"",c.push(r[4]?e+i:i+e)}o=o.substring(r[0].length)}return c.join("")}},5537:function(e,t,r){var i=r(4331),a=r(129),n=r(3145),s=r(7641),o=r(1547),c=r(3624),l=r(5668);function h(e,t,r,n,s){if(r)for(var o=0;o=0&&v.voices&&f(e,t.voices,v.voices),e.showDebug.indexOf("grid")>=0&&(e.paper.dottedLine({x1:e.padding.left,x2:e.padding.left+e.controller.width,y1:m,y2:m,stroke:"#0000ff"}),o(e,{x:e.padding.left,y:e.calcY(v.originalTop),width:e.controller.width,height:e.calcY(v.originalBottom)-e.calcY(v.originalTop),fill:e.foregroundColor,stroke:e.foregroundColor,"fill-opacity":.1,"stroke-opacity":.1}),u=0,E(v,"chordHeightAbove"),E(v,"chordHeightBelow"),E(v,"dynamicHeightAbove"),E(v,"dynamicHeightBelow"),E(v,"endingHeightAbove"),E(v,"lyricHeightAbove"),E(v,"lyricHeightBelow"),E(v,"partHeightAbove"),E(v,"tempoHeightAbove"),E(v,"volumeHeightAbove"),E(v,"volumeHeightBelow"))),e.moveY(i.STEP,-v.bottom),e.showDebug&&e.showDebug.indexOf("grid")>=0&&e.paper.dottedLine({x1:e.padding.left,x2:e.padding.left+e.controller.width,y1:e.y,y2:e.y,stroke:"#0000aa"})}for(var b=2,y=0,x=0;x6&&(u=0)}}N>1&&(d=t.staffs[0].topLine,p=t.staffs[N-1].bottomLine,c(e,t.startx,.6,d,p,null)),e.y=m}},7865:function(e,t,r){var i=r(6637);e.exports=function(e,t,r,a,n,s,o){var c=e.calcY(a);return i(e,t,r,c,n,s,o)}},7641:function(e,t,r){var i=r(7865);e.exports=function(e,t,r,a,n,s){var o="abcjs-top-line",c=2;n&&(c=n),e.paper.openGroup({prepend:!0,klass:e.controller.classes.generate("abcjs-staff")});var l=0,h=0;if(1===a)i(e,t,r,6,o,null,s+e.lineThickness),l=e.calcY(10),h=e.calcY(2);else for(var f=a-1;f>=0;f--){var u=(f+1)*c;h=e.calcY(u),0===l&&(l=h),i(e,t,r,u,o,null,s+e.lineThickness),o=void 0}return e.paper.closeGroup(),[l,h]}},3987:function(e,t,r){var i=r(2435),a=r(5759);e.exports=function(e,t){var r=t.x;void 0===t.pitch&&window.console.error("Tempo Element y-coordinate not set."),t.tempo.el_type="tempo";var n,s=e.calcY(t.pitch)+2;if(t.tempo.preString){n=a(e,{x:r,y:s,text:t.tempo.preString,type:"tempofont",klass:"abcjs-tempo",anchor:"start",noClass:!0,name:"pre"},!0);var o=e.controller.getTextSize.calc(t.tempo.preString,"tempofont","tempo",n).width;r+=o+o/t.tempo.preString.length}if(t.note){t.note.setX(r);for(var c=0;c.1||(this.scale=void 0),t.staffwidth?(this.staffwidthScreen=t.staffwidth,this.staffwidthPrint=t.staffwidth):(this.staffwidthScreen=740,this.staffwidthPrint=680),this.listeners=[],t.clickListener&&this.addSelectListener(t.clickListener),this.renderer=new n(e),this.renderer.setPaddingOverride(t),t.showDebug&&(this.renderer.showDebug=t.showDebug),t.jazzchords&&(this.jazzchords=t.jazzchords),t.accentAbove&&(this.accentAbove=t.accentAbove),t.germanAlphabet&&(this.germanAlphabet=t.germanAlphabet),t.lineThickness&&(this.lineThickness=t.lineThickness),this.renderer.controller=this,this.renderer.foregroundColor=t.foregroundColor?t.foregroundColor:"currentColor",void 0!==t.ariaLabel&&(this.renderer.ariaLabel=t.ariaLabel),this.renderer.minPadding=t.minPadding?t.minPadding:0,this.reset()};function y(e){for(var t=document.createElementNS("http://www.w3.org/2000/svg","svg"),r=0;r0)for(var o=s.staffGroup.voices[0],c=!1,l=0,h=0;hthis.width+1&&(e.topText=new l(e.metaText,e.metaTextInfo,e.formatting,e.lines,n,this.renderer.isPrint,this.renderer.padding.left,this.renderer.spacing,this.classes.shouldAddClasses,this.getTextSize),e.lines&&e.lines.length>0))for(var s=e.lines.length,o=0;o0)for(var h=c.nonMusic.rows.length,d=0;d0&&c.text[0].center)&&(p.left=n/2+this.renderer.padding.left)}}e.tablatures&&v.layoutTablatures(this.renderer,e);var m=g(this.renderer,this.classes,e,this.width,n,this.responsive,a,this.selectTypes,t,r);if(this.staffgroups=m.staffgroups,this.selectables=m.selectables,this.oneSvgPerLine){var b=this.renderer.paper.svg.parentNode;this.svgs=function(e,t,r,i){r||(r="Untitled");var a=t.querySelector("svg");"resize"===i&&(t.style.paddingBottom="");for(var n=a.querySelector("style"),s="resize"===i?a.viewBox.baseVal.width:a.getAttribute("width"),o=t.querySelectorAll("svg > g"),c=0,l=[],h=0;h0&&t.push(e),"abcjs-tab-number"===e)return t.join(" ");if("text instrument-name"===e)return"abcjs-text abcjs-instrument-name";if(null!==this.lineNumber&&t.push("l"+this.lineNumber),null!==this.measureNumber&&t.push("m"+this.measureNumber),null!==this.measureNumber&&t.push("mm"+this.measureTotal()),null!==this.voiceNumber&&t.push("v"+this.voiceNumber),e&&(e.indexOf("note")>=0||e.indexOf("rest")>=0||e.indexOf("lyric")>=0)&&null!==this.noteNumber&&t.push("n"+this.noteNumber),t.length>0){t=(t=t.join(" ")).split(" ");for(var r=0;r0&&(t[r]="abcjs-"+t[r])}return t.join(" ")},e.exports=t},1328:function(e){var t=function(e,t){this.formatting=e,this.classes=t};t.prototype.updateFonts=function(e){e.gchordfont&&(this.formatting.gchordfont=e.gchordfont),e.tripletfont&&(this.formatting.tripletfont=e.tripletfont),e.annotationfont&&(this.formatting.annotationfont=e.annotationfont),e.vocalfont&&(this.formatting.vocalfont=e.vocalfont)},t.prototype.getFamily=function(e){return'"'===e[0]&&'"'===e[e.length-1]?e.substring(1,e.length-1):e},t.prototype.calc=function(e,t){var r;r="string"==typeof e?(r=this.formatting[e])?{face:r.face,size:Math.round(4*r.size/3),decoration:r.decoration,style:r.style,weight:r.weight,box:r.box}:{face:"Arial",size:Math.round(16),decoration:"underline",style:"normal",weight:"normal"}:{face:e.face,size:Math.round(4*e.size/3),decoration:e.decoration,style:e.style,weight:e.weight,box:e.box};var i=this.formatting.fontboxpadding?this.formatting.fontboxpadding:.1;return r.padding=r.size*i,{font:r,attr:{"font-size":r.size,"font-style":r.style,"font-family":this.getFamily(r.face),"font-weight":r.weight,"text-decoration":r.decoration,class:this.classes.generate(t)}}},e.exports=t},9799:function(e){var t=function(e,t){this.getFontAndAttr=e,this.svg=t};t.prototype.updateFonts=function(e){this.getFontAndAttr.updateFonts(e)},t.prototype.attr=function(e,t){return this.getFontAndAttr.calc(e,t)},t.prototype.getFamily=function(e){return'"'===e[0]&&'"'===e[e.length-1]?e.substring(1,e.length-1):e},t.prototype.calc=function(e,t,r,i){var a;a="string"==typeof t?this.attr(t,r):{font:{face:t.face,size:t.size,decoration:t.decoration,style:t.style,weight:t.weight},attr:{"font-size":t.size,"font-style":t.style,"font-family":this.getFamily(t.face),"font-weight":t.weight,"text-decoration":t.decoration,class:this.getFontAndAttr.classes.generate(r)}};var n=this.svg.getTextSize(e,a.attr,i);return a.font.box?{height:n.height+4*a.font.padding,width:n.width+4*a.font.padding}:n},t.prototype.baselineToCenter=function(e,t,r,i,a){return.5*this.calc(e,t,r).height+(a-i-2)*this.attr(t,r).font.size},e.exports=t},2187:function(e){e.exports=function(e,t,r,i){if(e)for(var a=0;a0&&(o.length>0&&" "!==o[o.length-1]&&(o+=" "),o+=t),n.setAttribute("class",o)}}},4331:function(e){var t={FONTEM:360,FONTSIZE:30};t.STEP=93*t.FONTSIZE/720,t.SPACE=10,t.TOPNOTE=15,t.STAVEHEIGHT=100,t.INDENT=50,e.exports=t},5741:function(e,t,r){var i=r(2187);e.exports=function(e,t){void 0===e&&(e="abcjs-note_selected"),void 0===t&&(t="#ff0000"),i(this.elemset,e,"",t)}},8068:function(e,t,r){var i=r(4331);function a(e){"keyboard"===this.dragMechanism&&0!==this.dragYStep&&this.dragTarget&&d.bind(this)(this.dragTarget,this.dragYStep,this.selectables.length,this.dragIndex,e),this.dragYStep=0}function n(e){switch(e.keyCode){case 38:case 40:e.preventDefault()}}function s(e){var t=!1,r=e.target.dataset.index;switch(e.keyCode){case 13:case 32:t=!0,this.dragTarget=this.selectables[r],this.dragIndex=r,this.dragMechanism="keyboard",f.bind(this)(e);break;case 38:t=!0,this.dragTarget=this.selectables[r],this.dragIndex=r,this.dragTarget&&this.dragTarget.isDraggable&&(this.dragging&&this.dragTarget.isDraggable&&this.dragTarget.absEl.highlight(void 0,this.dragColor),this.dragYStep--,this.dragTarget.svgEl.setAttribute("transform","translate(0,"+this.dragYStep*i.STEP+")"));break;case 40:t=!0,this.dragTarget=this.selectables[r],this.dragIndex=r,this.dragMechanism="keyboard",this.dragTarget&&this.dragTarget.isDraggable&&(this.dragging&&this.dragTarget.isDraggable&&this.dragTarget.absEl.highlight(void 0,this.dragColor),this.dragYStep++,this.dragTarget.svgEl.setAttribute("transform","translate(0,"+this.dragYStep*i.STEP+")"));break;case 9:0!==this.dragYStep&&f.bind(this)(e)}t&&e.preventDefault()}function o(e,t){var r,i,a,n=function(e,t){if(!t)return-1;for(var r=0;r=0?(a=function(e,t,r){return e.x<=t.offsetX&&e.x+e.width>=t.offsetX&&e.y<=t.offsetY&&e.y+e.height>=t.offsetY||Math.abs(t.layerY/r-t.offsetY)<3?[t.offsetX,t.offsetY]:[t.layerX,t.layerY]}(e.selectables[n].svgEl.getBBox(),t,e.scale),r=a[0],i=a[1]):(a=function(e){var t,r,i=1,a=1,n=e.target.closest("svg"),s=0;return n&&n.viewBox&&n.viewBox.baseVal&&(0!==n.viewBox.baseVal.width&&(i=n.viewBox.baseVal.width/n.clientWidth),0!==n.viewBox.baseVal.height&&(a=n.viewBox.baseVal.height/n.clientHeight),s=n.viewBox.baseVal.y),e.target&&"svg"===e.target.tagName?(t=e.offsetX,r=e.offsetY):(t=e.layerX,r=e.layerY),[t*=i,(r*=a)+s]}(t),n=function(e,t,r){for(var i=9999999,a=-1,n=0;n0;n++){var s=e.selectables[n];if(e.getDim(s),s.dim.leftt&&s.dim.topr)a=n,i=0;else if(s.dim.topr){var o=Math.min(Math.abs(s.dim.left-t),Math.abs(s.dim.right-t));ot){var c=Math.min(Math.abs(s.dim.top-r),Math.abs(s.dim.bottom-r));cMath.abs(t-s.dim.right)?Math.abs(t-s.dim.right):Math.abs(t-s.dim.left),h=Math.abs(r-s.dim.top)>Math.abs(r-s.dim.bottom)?Math.abs(r-s.dim.bottom):Math.abs(r-s.dim.top),f=Math.sqrt(l*l+h*h);f=0&&i<=12?a:-1}(e,r=a[0],i=a[1])),{x:r,y:i,clickedOn:n}}function c(e){if(e&&e.target&&e.touches&&!(e.touches.length<1)){var t=e.target.getBoundingClientRect(),r=e.touches[0].pageX-t.left,i=e.touches[0].pageY-t.top;e.touches[0].offsetX=r,e.touches[0].offsetY=i,e.touches[0].layerX=e.touches[0].pageX,e.touches[0].layerY=e.touches[0].pageY}}function l(e){var t=e;"touchstart"===e.type&&(c(e),e.touches.length>0&&(t=e.touches[0]));var r=o(this,t);r.clickedOn>=0&&("touchstart"===e.type||0===e.button)&&this.selectables[r.clickedOn]&&(this.dragTarget=this.selectables[r.clickedOn],this.dragIndex=r.clickedOn,this.dragMechanism="mouse",this.dragMouseStart={x:r.x,y:r.y},this.dragging&&this.dragTarget.isDraggable&&(function(e,t){if(e){var r=v(e.svg);r[t]=!0,b(e.svg,r)}}(this.renderer.paper,"abcjs-dragging-in-progress"),this.dragTarget.absEl.highlight(void 0,this.dragColor)))}function h(e){var t=e;if("touchmove"===e.type&&(c(e),e.touches.length>0&&(t=e.touches[0])),this.lastTouchMove=e,this.dragTarget&&this.dragging&&this.dragTarget.isDraggable&&"mouse"===this.dragMechanism&&this.dragMouseStart){var r=o(this,t),a=Math.round((r.y-this.dragMouseStart.y)/i.STEP);a!==this.dragYStep&&(this.dragYStep=a,this.dragTarget.svgEl.setAttribute("transform","translate(0,"+a*i.STEP+")"))}}function f(e){var t=e;"touchend"===e.type&&this.lastTouchMove&&(c(this.lastTouchMove),this.lastTouchMove&&this.lastTouchMove.touches&&this.lastTouchMove.touches.length>0&&(t=this.lastTouchMove.touches[0])),this.dragTarget&&(m.bind(this)(),this.dragTarget.absEl&&this.dragTarget.absEl.highlight&&(this.selected=[this.dragTarget.absEl],this.dragTarget.absEl.highlight(void 0,this.selectionColor)),d.bind(this)(this.dragTarget,this.dragYStep,this.selectables.length,this.dragIndex,t),this.dragTarget.svgEl&&this.dragTarget.svgEl.focus&&(this.dragTarget.svgEl.focus(),this.dragTarget=null,this.dragIndex=-1),function(e,t){if(e){var r=v(e.svg);delete r[t],b(e.svg,r)}}(this.renderer.svg,"abcjs-dragging-in-progress"))}function u(e){e>=0&&eo&&en&&(a=n),a<-n&&(a=-n),a}(x,w,v,k),A=_+Math.floor(M/2),B=_+Math.floor(-M/2),S||(y&&_<6||!y&&_>6)&&(A=6,B=6),[A,B]),d=c(e.stemsUp,r,l);e.addBeam({startX:d[0],endX:d[1],startY:u[0],endY:u[1],dy:t});for(var p=function(e,t,r,i,a){for(var o=[],l=[],h=0;h0&&f.abcelem.beambr&&f.abcelem.beambr<=b+1){l[b].split||(l[b].split=[l[b].x]);var y=c(t,e[h-1],f);l[b].split[l[b].split.length-1]>=y[0]&&(y[0]+=f.w),l[b].split.push(y[0]),l[b].split.push(y[1])}}for(var x=l.length-1;x>=0;x--)if(h===e.length-1||s(e[h+1].abcelem.duration)>-x-4){var w=d,k=p+m*(x+1);l[x].single&&(w=0===h?d+5:d-5,k=n(r.startX,r.startY,r.endX,r.endY,w)+m*(x+1));var T={startX:l[x].x,endX:w,startY:l[x].y,endY:k,dy:a};if(void 0!==l[x].split){var C=l[x].split;T.endX<=C[C.length-1]&&(C[C.length-1]-=f.w),C.push(T.endX),T.split=l[x].split}o.push(T),l=l.slice(0,x)}}}return o}(e.elems,e.stemsUp,e.beams[0],e.isgrace,t),m=0;m0?((a=(r-(i-n*a))/n)*s>50&&(a=50/s),a):null}e.exports=function(e,t,r,n,s){var c,l,h=r;for(c=0;cMath.round(h)&&(h=f,s&&(c=-1))}for(c=0;c=0&&(c.originalTop=c.top,c.originalBottom=c.bottom),n(c,l,"lyricHeightAbove"),n(c,l,"chordHeightAbove",c.specialY.chordLines.above),c.specialY.endingHeightAbove&&(c.specialY.chordHeightAbove?c.top+=2:c.top+=c.specialY.endingHeightAbove+a,l.endingHeightAbove=c.top),c.specialY.dynamicHeightAbove&&c.specialY.volumeHeightAbove?(c.top+=Math.max(c.specialY.dynamicHeightAbove,c.specialY.volumeHeightAbove)+a,l.dynamicHeightAbove=c.top,l.volumeHeightAbove=c.top):(n(c,l,"dynamicHeightAbove"),n(c,l,"volumeHeightAbove")),n(c,l,"partHeightAbove"),n(c,l,"tempoHeightAbove"),c.specialY.lyricHeightBelow&&(c.specialY.lyricHeightBelow+=e.spacing.vocal/i.STEP,l.lyricHeightBelow=c.bottom,c.bottom-=c.specialY.lyricHeightBelow+a),c.specialY.chordHeightBelow){l.chordHeightBelow=c.bottom;var h=c.specialY.chordHeightBelow;c.specialY.chordLines.below&&(h*=c.specialY.chordLines.below),c.bottom-=h+a}c.specialY.volumeHeightBelow&&c.specialY.dynamicHeightBelow?(l.volumeHeightBelow=c.bottom,l.dynamicHeightBelow=c.bottom,c.bottom-=Math.max(c.specialY.volumeHeightBelow,c.specialY.dynamicHeightBelow)+a):c.specialY.volumeHeightBelow?(l.volumeHeightBelow=c.bottom,c.bottom-=c.specialY.volumeHeightBelow+a):c.specialY.dynamicHeightBelow&&(l.dynamicHeightBelow=c.bottom,c.bottom-=c.specialY.dynamicHeightBelow+a),e.showDebug&&e.showDebug.indexOf("box")>=0&&(c.positionY=l);for(var f=0;f0&&(c.top+=d)}r=2-c.bottom}}},735:function(e,t,r){var i=r(937);function a(e){for(var t=0;t0?0:5e-7)}e.exports=function(e,t,r,s,o){var c,l=0,h=1e3,f=o;s.startx=f;var u,d,p=0;for(r&&console.log("init layout",e),c=0;c1e-7?v.push(s.voices[c]):g.push(s.voices[c]);m=0;var b=0;for(c=0;cf&&(f=i.getNextX(g[c]),m=i.getSpacingUnits(g[c]),b=g[c].spacingduration);l+=m,h=Math.min(h,m),r&&console.log("currentduration: ",p,l,h);var y=void 0;for(c=0;c0){f=k;for(var C=0;Cf&&(f=i.getNextX(s.voices[c]),m=i.getSpacingUnits(s.voices[c]));return function(e){for(var t=0,r=0;r0){var a=i.children.length-1,n=i.children[a];if("bar"===n.abcelem.el_type){var s=n.children[0].x;s>t?t=s:n.children[0].x=t}}}}(s.voices),l+=m,s.setWidth(f),{spacingUnits:l,minSpace:h}}},3294:function(e,t,r){var i=r(3721);function a(e){return e.stemsUp}e.exports=function(e){if(e.anchor1&&e.anchor2){e.hasBeam=!!e.anchor1.parent.beam&&e.anchor1.parent.beam===e.anchor2.parent.beam;var t=e.anchor1.parent.beam;if(!e.hasBeam||t.elems[0]===e.anchor1.parent&&t.elems[t.elems.length-1]===e.anchor2.parent||(e.hasBeam=!1),e.hasBeam){var r=a(t)?e.anchor1.x+e.anchor1.w:e.anchor1.x;e.yTextPos=function(e,t,r){if(0===r.beams.length)return 0;r=r.beams[0];var a=e+(t-e)/2;return i(r.startX,r.startY,r.endX,r.endY,a)}(r,e.anchor2.x,t),e.yTextPos+=a(t)?3:-2,e.xTextPos=(o=r,c=e.anchor2.x,o+(c-o)/2),e.top=e.yTextPos+1,e.bottom=e.yTextPos-2,a(t)&&(e.endingHeightAbove=4)}else{e.startNote=Math.max(e.anchor1.parent.top,9)+4,e.endNote=Math.max(e.anchor2.parent.top,9)+4,"rest"===e.anchor1.parent.type&&"rest"!==e.anchor2.parent.type?e.startNote=e.endNote:"rest"===e.anchor2.parent.type&&"rest"!==e.anchor1.parent.type&&(e.endNote=e.startNote);for(var n=0,s=0;se.startNote||n>e.endNote)&&(e.startNote=n,e.endNote=n),e.flatBeams&&(e.startNote=Math.max(e.startNote,e.endNote),e.endNote=Math.max(e.startNote,e.endNote)),e.yTextPos=e.startNote+(e.endNote-e.startNote)/2,e.xTextPos=e.anchor1.x+(e.anchor2.x+e.anchor2.w-e.anchor1.x)/2,e.top=e.yTextPos+1}}var o,c;delete e.middleElems,delete e.flatBeams}},937:function(e){var t=function(){};t.beginLayout=function(e,t){t.i=0,t.durationindex=0,t.startx=e,t.minx=e,t.nextx=e,t.spacingduration=0},t.layoutEnded=function(e){return e.i>=e.children.length},t.getNextX=function(e){return Math.max(e.minx,e.nextx)},t.getSpacingUnits=function(e){return Math.sqrt(8*e.spacingduration)},t.layoutOneItem=function(e,t,r,i,a){var n=r.children[r.i];if(!n)return 0;var s=e-r.minx,o=r.durationindex+n.duration>0?i:0;if("note"===n.abcelem.el_type&&!n.abcelem.rest&&0!==r.voicenumber&&a){var c=a.children[a.i],l=c&&(n.abcelem.maxpitch<=c.abcelem.maxpitch+1&&n.abcelem.maxpitch>=c.abcelem.minpitch-1||n.abcelem.minpitch<=c.abcelem.maxpitch+1&&n.abcelem.minpitch>=c.abcelem.minpitch-1);if(l&&n.abcelem.minpitch===c.abcelem.minpitch&&n.abcelem.maxpitch===c.abcelem.maxpitch&&c.heads&&c.heads.length>0&&n.heads&&n.heads.length>0&&c.heads[0].c===n.heads[0].c&&(l=!1),l){var h=c.heads&&c.heads.length>0?c.heads[0].realWidth:c.fixed.w;n.adjustedWidth||(n.adjustedWidth=h+n.w),n.w=n.adjustedWidth;for(var f=0;f0&&t.putChordInLane(i),void(e[i]=r.right);e.push(r.right),t.putChordInLane(e.length-1)}}function c(e){for(var t=0,r=0;r=0;r--)(i=e[t].children[r]).chordHeightBelow&&o(n,i)}return(a.length>1||n.length>1)&&function(e,t,r){for(var i=0;i=0};n.prototype.reset=function(){this.paper.clear(),this.y=0,this.abctune=null,this.path=null,this.isPrint=!1,this.lineThickness=0,this.initVerticalSpace()},n.prototype.newTune=function(e){this.abctune=e,this.setVerticalSpace(e.formatting),this.isPrint="print"===e.media,this.setPadding(e)},n.prototype.setLineThickness=function(e){this.lineThickness=e},n.prototype.setPaddingOverride=function(e){this.paddingOverride={top:e.paddingtop,bottom:e.paddingbottom,right:e.paddingright,left:e.paddingleft}},n.prototype.setPadding=function(e){function t(t,r,i,a,n){void 0!==e.formatting[i]?t.padding[r]=e.formatting[i]:void 0!==t.paddingOverride[r]?t.padding[r]=t.paddingOverride[r]:t.isPrint?t.padding[r]=a:t.padding[r]=n}t(this,"top","topmargin",38,15),t(this,"bottom","botmargin",38,15),t(this,"left","leftmargin",68,15),t(this,"right","rightmargin",68,15)},n.prototype.adjustNonScaledItems=function(e){this.padding.top/=e,this.padding.bottom/=e,this.padding.left/=e,this.padding.right/=e,this.abctune.formatting.headerfont.size/=e,this.abctune.formatting.footerfont.size/=e},n.prototype.initVerticalSpace=function(){this.spacing={composer:7.56,graceBefore:8.67,graceInside:10.67,graceAfter:16,info:0,lineSkipFactor:1.1,music:7.56,paragraphSkipFactor:.4,parts:11.33,slurHeight:1,staffSeparation:61.33,stemHeight:36.67,subtitle:3.78,systemStaffSeparation:48,text:18.9,title:7.56,top:30.24,vocal:0,words:0}},n.prototype.setVerticalSpace=function(e){void 0!==e.staffsep&&(this.spacing.staffSeparation=4*e.staffsep/3),void 0!==e.composerspace&&(this.spacing.composer=4*e.composerspace/3),void 0!==e.partsspace&&(this.spacing.parts=4*e.partsspace/3),void 0!==e.textspace&&(this.spacing.text=4*e.textspace/3),void 0!==e.musicspace&&(this.spacing.music=4*e.musicspace/3),void 0!==e.titlespace&&(this.spacing.title=4*e.titlespace/3),void 0!==e.sysstaffsep&&(this.spacing.systemStaffSeparation=4*e.sysstaffsep/3),void 0!==e.subtitlespace&&(this.spacing.subtitle=4*e.subtitlespace/3),void 0!==e.topspace&&(this.spacing.top=4*e.topspace/3),void 0!==e.vocalspace&&(this.spacing.vocal=4*e.vocalspace/3),void 0!==e.wordsspace&&(this.spacing.words=4*e.wordsspace/3)},n.prototype.calcY=function(e){return this.y-e*i.STEP},n.prototype.moveY=function(e,t){void 0===t&&(t=1),this.y+=e*t},n.prototype.absolutemoveY=function(e){this.y=e},e.exports=n},4101:function(e){var t="http://www.w3.org/2000/svg";function r(e){this.svg=s(),this.currentGroup=[],e.appendChild(this.svg)}function i(e,t,r){var i=r-e;return"M "+e+" "+t+" l "+i+" 0 l 0 1 l "+-i+" 0 z "}function a(e,t,r){var i=r-t;return"M "+e+" "+t+" l 0 "+i+" l 1 0 l 0 "+-i+" z "}r.prototype.clear=function(){if(this.svg){var e=this.svg.parentNode;this.svg=s(),this.currentGroup=[],e&&(e.innerHTML="",e.appendChild(this.svg))}},r.prototype.setTitle=function(e){var t=document.createElement("title"),r=document.createTextNode(e);t.appendChild(r),this.svg.insertBefore(t,this.svg.firstChild)},r.prototype.setResponsiveWidth=function(e,t){if(this.svg.setAttribute("viewBox","0 0 "+e+" "+t),this.svg.setAttribute("preserveAspectRatio","xMinYMin meet"),this.svg.removeAttribute("height"),this.svg.removeAttribute("width"),this.svg.style.display="inline-block",this.svg.style.position="absolute",this.svg.style.top="0",this.svg.style.left="0",this.svg.parentNode){var r=this.svg.parentNode.getAttribute("class");r?r.indexOf("abcjs-container")<0&&this.svg.parentNode.setAttribute("class",r+" abcjs-container"):this.svg.parentNode.setAttribute("class","abcjs-container"),this.svg.parentNode.style.display="inline-block",this.svg.parentNode.style.position="relative",this.svg.parentNode.style.width="100%";var i=t/e*100;this.svg.parentNode.style["padding-bottom"]=i+"%",this.svg.parentNode.style["vertical-align"]="middle",this.svg.parentNode.style.overflow="hidden"}},r.prototype.setSize=function(e,t){this.svg.setAttribute("width",e),this.svg.setAttribute("height",t)},r.prototype.setAttribute=function(e,t){this.svg.setAttribute(e,t)},r.prototype.setScale=function(e){1!==e?(this.svg.style.transform="scale("+e+","+e+")",this.svg.style["-ms-transform"]="scale("+e+","+e+")",this.svg.style["-webkit-transform"]="scale("+e+","+e+")",this.svg.style["transform-origin"]="0 0",this.svg.style["-ms-transform-origin-x"]="0",this.svg.style["-ms-transform-origin-y"]="0",this.svg.style["-webkit-transform-origin-x"]="0",this.svg.style["-webkit-transform-origin-y"]="0"):(this.svg.style.transform="",this.svg.style["-ms-transform"]="",this.svg.style["-webkit-transform"]="")},r.prototype.insertStyles=function(e){var r=document.createElementNS(t,"style");r.textContent=e,this.svg.insertBefore(r,this.svg.firstChild)},r.prototype.setParentStyles=function(e){for(var t in e)e.hasOwnProperty(t)&&this.svg.parentNode&&(this.svg.parentNode.style[t]=e[t]);this.dummySvg&&(document.querySelector("body").removeChild(this.dummySvg),this.dummySvg=null)},r.prototype.rect=function(e){var t=[],r=e.x,n=e.y,s=e.x+e.width,o=e.y+e.height;return t.push(i(r,n,s)),t.push(i(r,o,s)),t.push(a(s,n,o)),t.push(a(r,o,n)),this.path({path:t.join(" "),stroke:"none","data-name":e["data-name"]})},r.prototype.dottedLine=function(e){var r=document.createElementNS(t,"line");r.setAttribute("x1",e.x1),r.setAttribute("x2",e.x2),r.setAttribute("y1",e.y1),r.setAttribute("y2",e.y2),r.setAttribute("stroke",e.stroke),r.setAttribute("stroke-dasharray","5,5"),this.svg.insertBefore(r,this.svg.firstChild)},r.prototype.rectBeneath=function(e){var r=document.createElementNS(t,"rect");r.setAttribute("x",e.x),r.setAttribute("width",e.width),r.setAttribute("y",e.y),r.setAttribute("height",e.height),e.stroke&&r.setAttribute("stroke",e.stroke),e["stroke-opacity"]&&r.setAttribute("stroke-opacity",e["stroke-opacity"]),e.fill&&r.setAttribute("fill",e.fill),e["fill-opacity"]&&r.setAttribute("fill-opacity",e["fill-opacity"]),this.svg.insertBefore(r,this.svg.firstChild)},r.prototype.text=function(e,r,i){var a=document.createElementNS(t,"text");for(var n in a.setAttribute("stroke","none"),r)r.hasOwnProperty(n)&&a.setAttribute(n,r[n]);for(var s=(""+e).split("\n"),o=0;o0?this.currentGroup[0].removeChild(r):this.svg.removeChild(r)),i&&(n[i]=a),a},r.prototype.openGroup=function(e){e=e||{};var r=document.createElementNS(t,"g");return e.klass&&r.setAttribute("class",e.klass),e.fill&&r.setAttribute("fill",e.fill),e.stroke&&r.setAttribute("stroke",e.stroke),e["data-name"]&&r.setAttribute("data-name",e["data-name"]),e.prepend?this.prepend(r):this.append(r),this.currentGroup.unshift(r),r},r.prototype.closeGroup=function(){var e=this.currentGroup.shift();return e&&0===e.children.length?(e.parentElement.removeChild(e),null):e},r.prototype.path=function(e){var r=document.createElementNS(t,"path");for(var i in e)e.hasOwnProperty(i)&&("path"===i?r.setAttributeNS(null,"d",e.path):"klass"===i?r.setAttributeNS(null,"class",e[i]):void 0!==e[i]&&r.setAttributeNS(null,i,e[i]));return this.append(r),r},r.prototype.pathToBack=function(e){var r=document.createElementNS(t,"path");for(var i in e)e.hasOwnProperty(i)&&("path"===i?r.setAttributeNS(null,"d",e.path):"klass"===i?r.setAttributeNS(null,"class",e[i]):r.setAttributeNS(null,i,e[i]));return this.prepend(r),r},r.prototype.lineToBack=function(e){for(var r=document.createElementNS(t,"line"),i=Object.keys(e),a=0;a0?this.currentGroup[0].appendChild(e):this.svg.appendChild(e)},r.prototype.prepend=function(e){this.currentGroup.length>0?this.currentGroup[0].appendChild(e):this.svg.insertBefore(e,this.svg.firstChild)},r.prototype.setAttributeOnElement=function(e,t){for(var r in t)t.hasOwnProperty(r)&&e.setAttributeNS(null,r,t[r])},r.prototype.moveElementToChild=function(e,t){e.appendChild(t)},e.exports=r}},t={},r=function r(i){var a=t[i];if(void 0!==a)return a.exports;var n=t[i]={exports:{}};return e[i](n,n.exports,r),n.exports}(7001),r;var e,t,r}));